Replies: 10 comments 2 replies
-
How small is "small"? There are 3 sizes you need to give to us:
No, I don't believe you can change the anchors once training has started. This must be done prior to training. Take a look at DarkMark, it has options to easily recalculate anchors, and various other things to speed up training. For example: https://www.ccoderun.ca/programming/darknet_faq/#time_to_train Loss should be below 1. If it bounces between 4.5 and 8.0, either your annotations are incorrect or the way you've set things up the objects are below the threshold. You may need to look into something like DarkHelp's tiling. |
Beta Was this translation helpful? Give feedback.
-
@stephanecharette Thank you.
Trainingbatch=64 learning_rate=0.001 Okay, I may have to retrain the network from the beginning and use the anchor values generated using darknet. I went through my training data set again and I didn't find any wrong annotations. If I have to retrain the network for my data set, what would be the optimal parameters to use in the cfg file? Thank you again. |
Beta Was this translation helpful? Give feedback.
-
Let's take one of your images, say 5933x4193. And the object is 21x35. (Or even smaller you say?) So your image is resized to 416x416 to match the network dimensions. That is a horizontal factor of 14.26 and vertical factor of 10.08. Darknet cannot find a 1-pixel object in your images. What you'd have to do is enable tiling for example. Darknet doesn't support this natively, but I have some information on the DarkHelp page: https://www.ccoderun.ca/darkhelp/api/Tiling.html If you need more help in understanding network/image/object sizes, I have some videos on youtube that explains the relationship. For example: https://www.youtube.com/watch?v=Oz-49MpO2rQ |
Beta Was this translation helpful? Give feedback.
-
Awesome, I'll take a look at both the links and let you know if I have any questions. If I have to start training from scratch, I am thinking of using yolov4. Will I still face the same issues with yolov4 if I were to keep all the default values? Basically I am trying to detect numbers letters and some symbols from the images, that is why the object sizes are so small. Do you recommend using Full-model or Tiny-model of yolo for this purpose? |
Beta Was this translation helpful? Give feedback.
-
Doesn't matter if you use full or tiny, you'll still have the exact same issue. Darknet cannot find an object that is 1 pixel in size. Sounds like a what you are doing is similar to this project: https://www.youtube.com/watch?v=u6SRR9KrHjk |
Beta Was this translation helpful? Give feedback.
-
Oh okay, I am going through DarkHelp and image tiling, hopefully I'll have better results this time. I'll keep you posted. |
Beta Was this translation helpful? Give feedback.
-
@stephanecharette If I am using image tiling as mentioned in DarkMark and DarkHelp, should I still consider the recommendations provided in " How to improve object detection" section of Readme file at https://github.com/AlexeyAB/darknet ? Do I need to use image tiling only while training or I must use it for both training and testing? Have you tried running any of your projects of Google Colab? |
Beta Was this translation helpful? Give feedback.
-
Which recommendation are you referring to? There are many. Most are good recommendations to always follow.
Obviously both. The whole idea is to work around you resizing your objects to impossibly small 1-pixel objects.
I've never run on Google Colab. DarkHelp requires Windows or Linux, while DarkMark requires Linux with X since it is a GUI application. |
Beta Was this translation helpful? Give feedback.
-
If you using tiling, then there is zero resizing. That is the point to tiling. See the links and videos I posted above where tiling is explained. |
Beta Was this translation helpful? Give feedback.
-
@AlexeyAB, @stephanecharette, In the section "How to improve object detection", to make the bounding boxes more accurate, it is suggested to change |
Beta Was this translation helpful? Give feedback.
-
@AlexeyAB I am training yolov3 network for 102 classes. My training has crossed 104k which is more than 50% of the training. Whenever I test the weights, I am not getting any predictions on the test image, the avg loss keeps oscillating between 4.5 and 8.0, is this expected? Is it okay to change the anchor values in the cfg file at this stage of the training?(Used default values until and realized that I am training the network to detect small objects.) Any ideas how to make the testing predictions better?
Beta Was this translation helpful? Give feedback.
All reactions