yolov9
yolov9 copied to clipboard
No news about paper being accepted? => T, S, M model configs published?
Hello @WongKinYiu ,
Really appreciate your contribution.
We know the T, S and M model configs will not be published until paper is accepted, but is there any hint of when that could happen? :)
Maybe it would be possible to get the S size config as a sneak peak? :).
We are all looking forward to the release of these models.
I've started to build my own reduced size models!!
I've started to build my own reduced size models!!
How?
I've started to build my own reduced size models!!
How?
By starting from the -C model spec (yolov9-c.yaml) and reducing the various components sizes.
@AlexAnnecy Could you please share your custom model spec and any useful information when you successfully build your lightweight version of YOLOv9?
@minhnhathcmus I will, I had some challenges to train properly - https://github.com/WongKinYiu/yolov9/issues/414
But now I have a new lead.
@minhnhathcmus unfortunately I'm am unable to train a good model: the trained model mAP decreased when I remove the auxiliary branch using the reparameterization script. I think there is a problem with the training procedure (cc @WongKinYiu )
@AlexAnnecy Not on any basis but did you change the reparameterization code to make it appropriate to your reduced-size model?
@minhnhathcmus I did not change number of layers, my base mode is yolov9-c, only reduced number of elements/parameters in each layer. I did check the reparam code, and from what I could tell, changes are not needed in this case. But in fact, I will look again. So be sure: the degradation is something like from 60% to 55% mAP-50.
@minhnhathcmus allow me to add to that: I tried a retrain of yolov9-c, so no changes needed anywhere, and again, after removing auxiliary branch, results are slightly worse (cc: @WongKinYiu )
@minhnhathcmus , what I didn't do, is to let it train for 500 epochs... not sure if this would solve the problem. @WongKinYiu do we need to train for 500 epochs to get parity between training and converted model?
Dear friends, I may have explored the structure of GELAN-S (similar to YOLOv9-S), and its model parameters and FLOPs are very close to the results reported in the paper. Please consider trying our implementation of GELAN-S.
- Project link: https://github.com/yjh0410/YOLO-Tutorial-v2
- Configuration file for GELAN-S: https://github.com/yjh0410/YOLO-Tutorial-v2/blob/main/yolo/config/gelan_config.py
- Model code of GELAN-S: https://github.com/yjh0410/YOLO-Tutorial-v2/tree/main/yolo/models/gelan
Results (300 epoch,16batch size,1GPU,IN1k pretrained weight for backbone):
Model | Batch | Scale | FPSFP32 RTX 4060 |
APval 0.5:0.95 |
APval 0.5 |
FLOPs (G) |
Params (M) |
Weight | Logs |
---|---|---|---|---|---|---|---|---|---|
GELAN-S | 1xb16 | 640 | 34(38) | 42.6 | 58.8 | 27.1 (26.4) | 7.1 (7.2) | ckpt | log |
However, wefound that the FPS of our reproduced GELAN-S (batch size=1 on a RTX4060 GPU, 640x640, FP32) is significantly lower than YOLOv8-S. GELAN may be a module with fewer parameters and better performance, but it may not be an efficient module. My guess is that there are too many 1x1 convolutions in GELAN's structure (backbone and pafpn). The above is just my personal guess, please correct me if I am wrong.
Please ignore my comment since the official S/M models have be released.
yolov9-s and yolov9-m are released.
@WongKinYiu Could you provide us the re-parameterize code for yolov9-s and yolov9-m? Thank you so much.
https://github.com/WongKinYiu/yolov9/blob/main/tools/reparameterization.ipynb
@WongKinYiu Is yolov9-t also trained using auxiliary heads ? If so could you also add the reparameterization code for that model.