New
0.2.0
🎉 This release is a big one: YOLOX support is here, bringing a super-fast model under the much more permissive Apache 2.0 license (no more AGPL headaches!). Even more exciting, postprocessing is now fully model-agnostic—so you’re no longer limited to COCO-trained models, but can use your own custom-trained models and class lists with ease. Unlock new use cases and deploy anywhere!
Enhancements
- Added YOLOX support - thanks @aspett (Andrew Pett)!
- Added
init/2callback to theYOLO.Modelbehaviour for model initialization - Model-agnostic postprocessing:
- Removed fixed
{8400, 84}shape constraint - Now supports dynamic shapes like
{batch_size, num_detections, bbox_coords + num_classes} - Enables use of custom-trained models with varying class counts
- Removed fixed
- Optimized NMS implementation:
- Rewritten using
Nx.Defnfor 100x performance improvement - Added support for variable detection counts and class numbers
- Rewritten using
- Improved Ultralytics preprocessing:
- New implementation using
defn:- 1.18K iterations/second, 846.54µs per operation, 19.67KB memory
- Old implementation:
- 458 iterations/second, 2.18ms per operation, 44.59KB memory
- New implementation using
- Made
:classes_pathoptional inYOLO.load/1 - Added benchmark scripts to measure performance on different models and hardware.
- Added new Livebook examples for Ultralytics YOLO, YOLOX, a model trained on Open Images V7, and real-time webcam detection.
yolox_nano.onnx,yolox_s.onnx,coco_classes.jsonavailable undermodels/directory (used in tests).
Deprecations
- fully removed
YOLO.Models.Yolov8in favor ofYOLO.Models.Ultralytics.