yolov9 icon indicating copy to clipboard operation
yolov9 copied to clipboard

No news about paper being accepted? => T, S, M model configs published?

Open AlexAnnecy opened this issue 9 months ago • 16 comments

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? :).

AlexAnnecy avatar Apr 27 '24 17:04 AlexAnnecy

We are all looking forward to the release of these models.

BossCrab-jyj avatar Apr 28 '24 01:04 BossCrab-jyj

I've started to build my own reduced size models!!

AlexAnnecy avatar Apr 28 '24 05:04 AlexAnnecy

I've started to build my own reduced size models!!

How?

shahriarahmadf avatar Apr 28 '24 13:04 shahriarahmadf

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 avatar Apr 30 '24 16:04 AlexAnnecy

@AlexAnnecy Could you please share your custom model spec and any useful information when you successfully build your lightweight version of YOLOv9?

minhnhathcmus avatar May 07 '24 01:05 minhnhathcmus

@minhnhathcmus I will, I had some challenges to train properly - https://github.com/WongKinYiu/yolov9/issues/414

But now I have a new lead.

AlexAnnecy avatar May 07 '24 14:05 AlexAnnecy

@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 avatar May 09 '24 14:05 AlexAnnecy

@AlexAnnecy Not on any basis but did you change the reparameterization code to make it appropriate to your reduced-size model?

minhnhathcmus avatar May 10 '24 01:05 minhnhathcmus

@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.

AlexAnnecy avatar May 10 '24 17:05 AlexAnnecy

@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 )

AlexAnnecy avatar May 10 '24 17:05 AlexAnnecy

@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?

AlexAnnecy avatar May 10 '24 18:05 AlexAnnecy

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.

yjh0410 avatar May 21 '24 06:05 yjh0410

yolov9-s and yolov9-m are released.

WongKinYiu avatar Jun 05 '24 11:06 WongKinYiu

@WongKinYiu Could you provide us the re-parameterize code for yolov9-s and yolov9-m? Thank you so much.

minhnhathcmus avatar Jun 05 '24 11:06 minhnhathcmus

https://github.com/WongKinYiu/yolov9/blob/main/tools/reparameterization.ipynb

WongKinYiu avatar Jun 05 '24 12:06 WongKinYiu

@WongKinYiu Is yolov9-t also trained using auxiliary heads ? If so could you also add the reparameterization code for that model.

Rares926 avatar Jul 05 '24 11:07 Rares926