Posts

YOLO v7 training #3

Image
Since my  last YOLO v7 training seemed to be short, in terms of epochs, I took the last network weights as initial weights for a continuous training procedure. This procedure was very similar to the last one, with the number of epochs being the only change: Training : 56 000 images Validation : 14 000 images Total: 70 000 images Train - Valid Ratio: 80% - 20% Trained with more 200 epochs, added to the previous trained 100: epochs: 300 batch size: 64  initial learning rate: 0.01 (  lr0  ) final OneCycleLR learning rate (  lrf  ): 0.1 (  lr0*lrf  )  After more than 46 hours of training, the two Loss metrics ( Box  and  Objectness ) graphs looked like this: Evaluating the previous graphs, it is clear that the separation of the 2 training procedures (epoch 100) resulted in a high disturbance on the loss curves, making it achieve highest (worst) values. The same occurrence can be depicted on Precision curves: It was expected that the fi...

Synthetic Dataset Generation (real texture)

YOLOv7 training for our own object has proven to be very powerful if a wide enough dataset can be provided. In order to achieve this massive number of images, collected from the same source (homogeneous dataset), a synthetic dataset was generated, following these steps: Collect real wood block measures and texture. Using Blender software, create the object CAD model, importing its own real texture. Calibrate the camera intrinsic parameters, using some known pattern (I used a large chessboard). Collect several online background (materials) scenes. With the Wood Block CAD model + camera intrinsic parameters + background materials, generate the dataset, choosing the amount of different scenes, target objects and distractors (using BlenderProc ). This generated dataset is most-close to reality comparing to other previous synthetic datasets mentioned in this blog, since it considers the real camera intrinsic parameters and includes the real texture on the object CAD model. The dataset resu...