With the release of the new game I’m sure a lot of folks are interested in tracking the game pieces. I’m sure some of y’all have made progress and that’s great. But for folks who are struggling or don’t know where to start, or just want something that works… let’s talk.
Above is running a fine tuned YoloV8 on one of the field tour videos (I needed a video that contained Notes and that was clearly ok for public display…) As you can see it’s not perfect, lots of false positives. This was trained on ~1 minute of footage of the quarter scale Notes I printed on Kickoff. (More on training later)
I wanted to share it with teams (here). This is the exact model and all annotated training data. Base work on it, use it as is, whatever. Just don’t be a jerk.
But there’s more, I wanted to improve the model as well as show more how models are trained without the fancy Roboflow training stuff (though if all you care about is getting something that works, Roboflow is great, let me get a proof of concept in under an hour, highly recommend) so I started working on doing it more manually (I say more because I’m still using a fair bit of Roboflow’s tooling, it makes life a lot easier) but let’s you run on your own infrastructure with a fair bit more flexibility.
The biggest hurdle to ML models is getting good training data - for real world tasks there exist data sets like COCO but obviously none of those will contain FRC specific game pieces. A very modern approach is to use a larger slower model like FB’s SegmentAnythingModel to assist in generating labeled data, you still have to do some clean up later but it’s a lot less work. So, I set out to do that… and now I’m handing it to you.
I will be using this to annotate training data and then manually refining it to train a new model. I’m still working on finding the right place to host the data set and weights (likely a zip file in google drive) but wanted to share it in case you want to do this on your own.
I know it’s likely a lot of students are interested in this domain and may not have mentors able to support their interests, I hope that this helps.