[RFC] Support YOLOX detection model
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 17.9k
- Forks
- 7.3k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 13
Description
🚀 The feature
YOLO aka. You Only Look Once, which is a vibrant series of object detection models since the release of Joseph Redmon You Only Look Once: Unified, Real-Time Object Detection.
So far a couple of more notable implementations are as follows (all PyTorch):
- YOLOv3 2018. Cited by 14369 ^yolov3-ultralytics
- YOLOv4 2020. Cited by 4905
- YOLOv5 2020. Starred at GitHub 29.4k ^yolov5-ultralytics
- YOLOX 2021. Cited by 299 ^yolox
- YOLOv7 2022. ^yolov7
Motivation, pitch
Until now, one of the most successful ones is probably YOLOv5. YOLOv5 is great, and they have also built up a very friendly community and ecosystem. We don't intend to copy YOLOv5 into TorchVision, our main goal here is to make training SoTA models easier and share reusable subcomponents to build the next SoTA models in the same/proxy family.^yolo-keras
YOLOX is a high-performance anchor-free YOLO, and it has a good balance in terms of copyright and code quality, it's enough to have a YOLOX implementation from the community's perspective.
The License
YOLO{v5/v7} are built under the GPL-3.0 license, and YOLOX is built under the Apache-2.0 license.
More context
I have previously rewritten the code used in the inference part of YOLOv5 according to the style and specification of torchvision^yolort, and I can relicense that part to BSD-3-Clause license. The amount of work involved in the model inference part is not much with the help of YOLOX base code.
Data augmentation and a new trainer engine will be the core of what we will do here.
The data augmentation section is in the planning list https://github.com/pytorch/vision/issues/6224 , and we have already merged some augmentation methods like https://github.com/pytorch/vision/pull/5825 , I think it would help us to build the next SoTA models with a new primitives like classification models.^classification-primitives
As TorchVision adds more and more models, it may be time to abstract out a simple trainer engine for sharing reusable subcomponents. It might be more appropriate to open a new thread for necessity and specific steps about this part.
cc @datumbox @YosuaMichael @oke-aditya
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No repository files or tests are named. Start by reading this RFC, the linked data-augmentation planning issue #6224, and the augmentation work in PR #5825, then compare the proposed YOLOX scope with the linked YOLOX implementation. Done would require an agreed implementation plan covering the model, augmentation, and training-engine boundaries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, pytorch
- Domain
- computer-vision, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100