# Model Framework Comparison ## License Comparison | Framework | License | Commercial Use | OAK-D Support | |-----------|---------|----------------|---------------| | **RT-DETR** | Apache 2.0 | ✅ Free | ⭐ Excellent | | **YOLOv6** | MIT | ✅ Free | ⭐ Excellent | | **YOLOX** | MIT | ✅ Free | ⭐ Excellent | | RF-DETR | Check repo | ⚠️ Unknown | ⚠️ May need conversion | | YOLOv8/v11 | AGPL-3.0 | ❌ Paid ($1k-5k/yr) | Excellent | ## Performance on OAK-D 4 Pro (48 TOPS INT8) | Model | Size | Speed (FPS) | Accuracy | Training Time | |-------|------|-------------|----------|---------------| | RT-DETR r18 | ~15MB | 30-40 | Good | Fast | | RT-DETR r34 | ~30MB | 20-30 | Better | Medium | | YOLOv6n | ~10MB | 40-50 | Good | Fast | | YOLOv6s | ~20MB | 30-40 | Better | Medium | | YOLOX nano | ~6MB | 50-60 | Good | Fast | | YOLOX-s | ~18MB | 35-45 | Better | Medium | ## Which to Choose? ### For Maximum Speed (50-60 FPS): **YOLOX nano** - Smallest, fastest, proven ### For Best Balance (30-40 FPS): **RT-DETR r18** or **YOLOv6n** - Modern, accurate ### For Best Accuracy (20-30 FPS): **RT-DETR r34** or **YOLOv6s** - Larger models ### Recommended Starting Point: **YOLOv6n** - Great balance, proven OAK compatibility, MIT license ## Training Commands All models use the same workflow in the GUI, or from command line: ### RT-DETR ```bash .venv/bin/python train_rtdetr.py \ --dataset-dir dataset_prepared \ --model rtdetr-r18 \ --epochs 100 ``` ### YOLOv6 ```bash .venv/bin/python train_yolov6.py \ --dataset-dir dataset_prepared \ --model yolov6n \ --epochs 100 ``` ### YOLOX (YOLOv8 equivalent) ```bash .venv/bin/python train_yolox.py \ --dataset-dir dataset_prepared \ --model yolox-nano \ --epochs 100 ``` ## Export for OAK-D All models export to OpenVINO format for OAK deployment: ```bash # RT-DETR .venv/bin/python export_rtdetr_oak.py --weights runs/rtdetr_training/training/weights/best.pt # YOLOv6/YOLOX use Ultralytics export .venv/bin/python -c " from ultralytics import YOLO model = YOLO('runs/yolov6_training/training/weights/best.pt') model.export(format='openvino', imgsz=640, half=False) " ``` Then convert to blob: - Online: https://blobconverter.luxonis.com/ - CLI: `blobconverter --openvino-xml model.xml` ## Tips 1. **Start with nano/r18 models** for fast iteration 2. **Train for 100-200 epochs** - use early stopping 3. **Collect 200+ images** for good accuracy 4. **Test on OAK-D** before collecting more data 5. **Use INT8 quantization** for full 48 TOPS speed