Skip to content

Conversation

@mkturkcan
Copy link

Description

Added YOLOv9 support and results through ultralytics.

No additional dependencies needed.

Type of change

  • New feature (non-breaking change which adds functionality)

How has this change been tested, please provide a testcase or example of how you tested the change?

Tested on an A6000 GPU machine (results are included).

@SkalskiP
Copy link
Collaborator

Hi @onuralpszr 👋🏻 can you take a look?

@onuralpszr
Copy link
Contributor

Hello o/ @mkturkcan, 👋

We already have YOLOv9 and chose to use the "original" repository code for comparisons. This is why we avoided using variations of the models—just as we used the original RT-DETR GitHub code instead of the Transformers version—to minimize discrepancies and present the purest results possible.

If @SkalskiP agrees to make an exception, my suggestion would be to simply rename the YOLOv9 models with a suffix, such as "ultralytics-yolov9n," to make it clearer. But then that would open the door re-run all other models with different variations, If allow that variations sure but otherwise we need to close this pr and focus on original run as well.

One more side note: You can compare our original model runs with yours and observe the significant differences between the Ultralytics versions and the original implementation.

Thank you.

@SkalskiP
Copy link
Collaborator

Do we have YOLOv9? I'm looking in the leaderboard and I don't see it.

@onuralpszr
Copy link
Contributor

onuralpszr commented Feb 19, 2025

**SkalskiP ** commented

https://github.com/roboflow/model-leaderboard/tree/develop/models/object_detection/yolov9

(it was disabled via Linas at the time)

@mkturkcan
Copy link
Author

You can see that the results shared here outperform the yolov9 results in the repo significantly and would be at the top of the leaderboard. It is not clear to me what the issue is with the original yolov9 repo results - I'll have to check later. I just checked that their val.py reports a high mAP50-95 though (and need to check why/how).

In general I'd suggest allowing different reproductions for a leaderboard, as research code can be pretty messy and a good implementation might significantly outperform the original while not providing new architectural changes.

@mkturkcan
Copy link
Author

I tracked the performance gap to significant differences in the detect.py implementation in the original yolov9 repository compared to their val.py. I switched run.py to use val.py in yolov9 for simplicity. The new results are slightly better than the ultralytics ones at a first glance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants