π Summary
A focused export refactor that adds a complete Sony IMX500 pipeline, cleans up IMX-specific logic in model heads, and introduces clearer export APIsβplus stability fixes for ONNX (OBB), TensorRT exports, and smoother multi-GPU training. π
π Key Changes
-
Export refactor and new IMX pipeline (PR #22005) β¨
- New, clearer export APIs:
export_onnx
βtorch2onnx
export_engine
βonnx2engine
- New Sony IMX export:
torch2imx
utility with quantization and IMX-friendly NMS wrapping- IMX-specific helpers (
FXModel
, Detect/Pose overrides,NMSWrapper
)
- Export utilities reorganized to
ultralytics/utils/export/
withimx.py
- Detect/Pose heads simplified by removing IMX-only branches
- Removed
FXModel
fromtorch_utils
- Docs updated to reflect the new structure
- New, clearer export APIs:
-
IMX support clarity (PR #22082) π§
- Error messages now explicitly state IMX exports support YOLOv8n and YOLO11n (detection only in benchmarks).
-
ONNX + OBB reliability (PR #22079) π§©
- Fixes a RuntimeError for OBB models exported with NMS on CUDA by safeguarding empty-mask cases.
-
TensorRT export stability (PR #22080) βοΈ
- Corrects dynamic shape handling and re-enables TensorRT tests
- Extends GPU CI timeout from 20 β 60 minutes for reliability
-
DDP training improvements (PR #22073) πΌ
- Initializes
world_size
/ddp
earlier, simplifies DDP APIs, and prevents duplicate wandb logs
- Initializes
-
Tuner robustness (PR #22066) π‘οΈ
- Avoids
KeyError
whenclose_mosaic
isnβt in the hyperparameter search space
- Avoids
-
UX polish (PRs #22071, #22083, #22046, #22063, #22085) βοΈ
- Aligns multi-GPU device printing
- Clearer export error when trying to βexportβ to
pt
- Fixes a broken DeepStream link for Jetson users
- Documentation typo and formatting cleanups
- Updates docs authors metadata
π― Purpose & Impact
- Cleaner, more intuitive export APIs π§
- The
torch2onnx
andonnx2engine
names make conversion stages explicit and reduce confusion.
- The
- First-class Sony IMX exports π¦
- New
torch2imx
enables end-to-end IMX500 deployment with built-in quantization and NMS wrapping. - Clearer docs and package layout make maintenance and contributions easier.
- New
- More reliable exports across backends β
- ONNX OBB fix prevents runtime failures on CUDA.
- TensorRT export is more dependable, with re-enabled coverage to catch regressions earlier.
- Smoother multi-GPU training π§
- Early DDP setup avoids double logging and simplifies internals, improving stability for distributed runs.
- Fewer paper cuts for users βοΈ
- Robust tuner behavior, better error messages, aligned device output, and updated docs links all reduce friction.
Quick tips:
- Export to ONNX:
- CLI:
yolo export model=yolo11n.pt format=onnx
- CLI:
- Export to TensorRT:
- CLI:
yolo export model=yolo11n.pt format=engine dynamic
- CLI:
- Export to Sony IMX:
- CLI:
yolo export model=yolo11n.pt format=imx
- Note: IMX benchmarks currently enforce detection-only and support YOLOv8n/YOLO11n.
- CLI:
What's Changed
- Fix
KeyError
whenclose_mosaic
not part of search space by @Y-T-G in #22066 - Update yolo-data-augmentation.md by @miles-deans-ultralytics in #22063
- Update deepstream-nvidia-jetson.md by @miles-deans-ultralytics in #22046
- Revert "Re-enable TensorRT export in GPU tests" by @glenn-jocher in #22078
- Fix DDP device spacing by @glenn-jocher in #22071
- Add Onuralp and Miles to MkDocs GitHub authors by @glenn-jocher in #22085
- Improve export error message for
pt
format by @RizwanMunawar in #22083 - Update
IMX
export assert message to includeYOLO11n
by @RizwanMunawar in #22082 - Fix ONNX
RuntimeError
for OBB models exported with NMS by @Y-T-G in #22079 - Fix TensorRT dynamic shape calculation by @Y-T-G in #22080
- Fix
wandb
logging twice when running DDP training by @Laughing-q in #22073 ultralytics 8.3.200
Refactor Sony IMX exports toimx.py
by @Laughing-q in #22005
New Contributors
- @miles-deans-ultralytics made their first contribution in #22063
Full Changelog: v8.3.199...v8.3.200