Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is it?
This PR includes the training data, models, configs, and integration for a YOLO model based approach for ball detection.
What's Missing?
At this point the model was trained on a laughably small number of photos (less than 30), but still outperforms current detection. We need to collect ball images collected from the various PiTrac users to ensure that the model has the most robust image set for training as possible.
What's Next?
This PR is missing a lot of the tooling I used to actually create that data. These are still WIP and need to have very opinionated workflows that might just require another repository for some of the assets.
Annotator
The Annotator tool is one of the key components for training the data set. This tool looks at the
/unprocessed_imagesdirectory for any images and then opens an interface to allow the user to go through each image, draw a circle around each ball, and then confirm. Then based on the naming structure we use for those images they are moved into appropriate folders inSoftware\GroundTruthAnnotator\yolo\imageswith their associated training data for yolo inSoftware\GroundTruthAnnotator\yolo\labelsTraining Workflow
The training workflow is written in python and is what consumes the training images from above and converts them into the Yolo Model, and then the ONNX model which is what the PiTrac uses.