Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add YOLOv9 ultralytics support #76

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

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
Collaborator

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
Collaborator

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