I am currently trying to train my own YOLOv1 network, based on this repository: https://github.com/ivanwhaf/yolov1-pytorch
The images I want to train look like this:
Three classes I want to detect:
- Class 0: A meter (the "clocks" at the bottom)
- Class 1: The number display
- Class 2: Each individual digit
I generated 160 training images and automatically generated the YOLO bounding boxes, for the image above they look like this:
0.21875 0.5833333333333334 0.25 0.3333333333333333 0
0.5 0.5833333333333334 0.25 0.3333333333333333 0
0.78125 0.5833333333333334 0.25 0.3333333333333333 0
0.5 0.14583333333333334 0.9375 0.20833333333333334 1
0.890625 0.14583333333333334 0.09375 0.15833333333333333 2
0.765625 0.14583333333333334 0.09375 0.15833333333333333 2
0.640625 0.14583333333333334 0.09375 0.15833333333333333 2
0.515625 0.14583333333333334 0.09375 0.15833333333333333 2
0.390625 0.14583333333333334 0.09375 0.15833333333333333 2
0.265625 0.14583333333333334 0.09375 0.15833333333333333 2
After 40 epochs or so I end up with a Loss of around 1.8
(the network started at 200) but the bounding boxes are no where near where they should be:
Red is the prediction and green are the ground truth bounding boxes.
Do you have an idea why that is? Did I do something wrong with labelling the bounding boxes of the training images?