An intelligent dataset labeling tool combining YOLO-World's open-set detection capabilities with human verification, optimized for quickly creating high-quality COCO-format datasets.
- YOLO-World Integration: Leverage state-of-the-art open-set object detection
- Smart Frame Selection: Avoid redundant frames using detection-based similarity checks
- Interactive GUI:
- Real-time bounding box editing
- Class cycling with single click
- Drag-to-draw missing detections
- Dynamic confidence threshold adjustment
- COCO Dataset Export: Industry-standard output format
- Performance Optimizations:
- GPU-accelerated inference
- Multi-threaded processing
- Intelligent frame caching
graph TD;
A[Input Video/Images] --> B[YOLO-World Detection]
B --> C[Frame Filtering]
C --> D[Manual Verification GUI]
D --> E[COCO Dataset Export]
E --> F[Training Ready Dataset]
This project was born from the need to:
- Reduce manual labeling effort in custom detection projects
- Create a middle-ground between fully automatic and manual labeling
- Leverage YOLO-World's exceptional open-vocabulary capabilities
- Provide a standardized COCO-format output for compatibility with modern ML frameworks
- Python 3.8+
- NVIDIA GPU (recommended)
- CUDA 11.8
- cuDNN 8.6+
git clone https://github.com/sah4jpatel/AutoLabeller.git
cd AutoLabeller
pip install -e .
autolabel
--input path/to/input
--classes "class1" "class2" ...
--model path/to/model.pt
--output dataset.json
autolabel
--input path/to/video_or_directory
--classes class1 class2 class3
--model custom_yoloworld.pt
--output my_dataset.json
--conf_thresh 0.15
--full_video
--min_images 1000
| Flag | Description | Default |
|---|---|---|
--input |
Video file or image directory | Required |
--classes |
Space-separated list of classes | Required |
--model |
YOLO-World model path | Required |
--output |
Output COCO JSON path | dataset.json |
--conf_thresh |
Detection confidence threshold | 0.25 |
--full_video |
Disable frame filtering | False |
--min_images |
Minimum output images | 0 |
- Prepare dataset in COCO format
- Create model config (
custom.yaml):
path: datasets/custom
train: images/train
val: images/val
names:
0: class1
1: class2
- Start training:
yolo detect train data=custom.yaml model=yolow_world.pt epochs=100 imgsz=640 device=0
Full training documentation: Ultralytics YOLO-World Docs
Q: Getting ModuleNotFoundError: No module named 'autolabeller'
A: Ensure proper installation using pip install -e . from project root
Q: GUI window scaling issues
A: Install screeninfo package: pip install screeninfo
Q: CUDA out of memory errors
A: Reduce batch size in detection parameters or use smaller model variant
MIT License - see LICENSE for details
