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

ultralytics 8.1.39 add YOLO-World training #9268

Merged
merged 93 commits into from
Mar 31, 2024
Merged

Conversation

Laughing-q
Copy link
Member

@Laughing-q Laughing-q commented Mar 24, 2024

Usage:

from ultralytics import YOLOWorld

model = YOLOWorld("yolov8s-worldv2.pt")
model.train(data="coco128.yaml")

TODO:

  • LVIS docs
  • Verify WorldTrainerFromScratch

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Enhancements in LVIS dataset support, model training updates, and technical refinements across the Ultralytics framework.

📊 Key Changes

  • Added support and detailed documentation for the LVIS dataset.
  • Updated CLIP model installation to use the Ultralytics repository.
  • Introduced refactorings in model training for the YOLO-World architecture, including enhanced CLIP model support.
  • Refined data augmentation processes, particularly for multi-modal (image + text) training scenarios.
  • Made improvements in dataset management, including better cache file handling and support for additional datasets.
  • Adjustments in model and dataset configurations for more accurate training results.

🎯 Purpose & Impact

  • Enhanced Dataset Support: Including LVIS enhances the model's ability to train on a wider range of object categories, improving versatility and accuracy.
  • Model Training and Evaluation Improvements: Updates in model training, especially with the introduction of YOLO-World-related features, pave the way for more advanced multi-modal learning capabilities.
  • Robust Data Handling: Improved dataset caching and configurations streamline the data preparation process, making model training more efficient.
  • Technical Refinements: General code enhancements contribute to a more robust, efficient, and flexible machine learning pipeline.

@glenn-jocher
Copy link
Member

glenn-jocher commented Mar 29, 2024

@Laughing-q hey I looked through this, this is really nice and comprehensive, including added docs and reference section pages.

I added a few missing docstrings and updated the val.py class_map (I think it needs to be zero-indexed), but that's the only changes I've made. Are there are sections you're not sure about, or is this ready to merge to main now?

@Laughing-q
Copy link
Member Author

Laughing-q commented Mar 29, 2024

@glenn-jocher Thanks for reviewing! I updated the class_map to start from index 1 because that's what LVIS data needs when I intended to save json and manually validated mAP by using their API. Then I figured that for user cases they might not really care about whether the index starts from 0 or 1 so I eventually pushed the update. Do you think we should keep the index starting from 0? then probably create a class_map for LVIS just like we did for COCO?

EDIT: This reminds me we probably want do the same thing to LVIS evaluation as well, introduce a is_lvis variable maybe and do evaluation by using LVIS api when it's True.

@Laughing-q
Copy link
Member Author

@glenn-jocher rest of the PR I think is all good, but since you were asking, I feel like it's better to hold it for another several hours and let me check if there're any places to improve, since it's a PR adding more than 2000 lines(1200 lines are from lvis.yaml though..). What do you think?

@Laughing-q
Copy link
Member Author

Laughing-q commented Mar 29, 2024

@glenn-jocher ok I've added lvis api support to evaluate the final results just like we did for coco 9b2ecaf.
Also I add an extra +1 for category_id for lvis dataset while saving predictions in json format so it can be evaluated correctly e76a479.
I think the PR is all set! :)

@glenn-jocher glenn-jocher changed the title YOLO-World: Add training support ultralytics 8.1.39 add YOLO-World training support Mar 31, 2024
@glenn-jocher glenn-jocher changed the title ultralytics 8.1.39 add YOLO-World training support ultralytics 8.1.39 add YOLO-World training Mar 31, 2024
@glenn-jocher glenn-jocher merged commit e9187c1 into main Mar 31, 2024
13 checks passed
@glenn-jocher glenn-jocher deleted the yolo-world-training branch March 31, 2024 14:30
@glenn-jocher glenn-jocher removed the TODO High priority items label Mar 31, 2024
@glenn-jocher
Copy link
Member

@Laughing-q PR merged!!

hmurari pushed a commit to hmurari/ultralytics that referenced this pull request Apr 17, 2024
Signed-off-by: Glenn Jocher <[email protected]>
Co-authored-by: UltralyticsAssistant <[email protected]>
Co-authored-by: Glenn Jocher <[email protected]>
gkinman pushed a commit to Octasic/ultralytics that referenced this pull request May 30, 2024
Signed-off-by: Glenn Jocher <[email protected]>
Co-authored-by: UltralyticsAssistant <[email protected]>
Co-authored-by: Glenn Jocher <[email protected]>
@ccl-private
Copy link

@Laughing-q Hi, can you help me take a look at this issue? #13793

iamdgarcia pushed a commit to iamdgarcia/ultralytics_16U that referenced this pull request Nov 8, 2024
Signed-off-by: Glenn Jocher <[email protected]>
Co-authored-by: UltralyticsAssistant <[email protected]>
Co-authored-by: Glenn Jocher <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add YOLO World training
5 participants