Ultralytics v8.3.235 β IMX500 Segmentation, Modernized Exports & Smoother Logging
Ultralytics v8.3.235 is out! ![]()
This release makes Sony IMX500 exports more powerful with YOLO11 instance segmentation, modernizes CoreML, ExecuTorch, and IMX export backends, improves Jetson reliability, and removes an older Torch pin so you can safely use PyTorch 2.9+ in export workflows.
You can explore the full release details in the v8.3.235 notes on the Ultralytics GitHub releases page.
Summary
IMX500 now supports YOLO11 instance segmentation (export + inference)
CoreML, ExecuTorch, and IMX backends updated to current, stable toolchains
Jetson JetPack 6 Docker is safer with a pinned ONNX range
ClearML & Neptune logging automatically follows new plots
Export Docker no longer forces Torch β€ 2.8.0, enabling PyTorch 2.9+ with a safe ONNX patch
New Features
YOLO11 Instance Segmentation on Sony IMX500
Sony IMX500 export now supports instance segmentation in addition to detect, pose, and classify:
- IMX export paths extended with a new
segment_forwardimplementation inultralytics.utils.export.imx. - IMX constraints in
Exporter.__call__now allow segmentation models and enforceint8=Trueandnms=Trueforsegmentas well. - IMX NMS wrapper and autobackend updated to handle segmentation outputs (masks + protos) correctly.
The IMX docs have been refreshed to explicitly list Object Detection, Pose Estimation, Classification, and Instance Segmentation as supported tasks, and now include:
- Python and CLI examples for YOLO11 segmentation IMX export and inference
- Example folder structure for an exported
yolo11n-seg_imx_model - A complete Raspberry Pi AI Camera instance segmentation deployment example using Aitrios application modules
You can see the full IMX changes in the PR updating IMX conversion and segmentation support by @ambitious-octopus, described in this pull request.
Improvements
IMX Export Robustness & Modern Requirements
IMX export has been made more robust and aligned with current tooling:
- IMX export now requires PyTorch β₯ 2.9.0 and Python β₯ 3.9
- IMX export is blocked on ARM64 (not supported)
- Switched from
sony-custom-layerstoedge-mdt-clfor custom layers/NMS - Updated converter/tooling stack:
imx500-converter[pt]>=3.17.3edge-mdt-cl<1.1.0edge-mdt-tpc>=1.2.0model-compression-toolkit>=2.4.1pydantic<=2.11.7
To keep ONNX export stable with PyTorch 2.9+, IMX export now runs ONNX export inside a new onnx_export_patch() context, temporarily disabling Dynamo to avoid known ONNX-related issues.
On the inference side, the autobackend:
- Uses
edge-mdt-clNMS ops andonnxruntime-extensions - Handles IMX segmentation outputs consistently with the updated export path
CoreML & ExecuTorch Export/Inference Modernization
CoreML and ExecuTorch exports have been updated to use modern, stable versions:
-
CoreML
- Minimum
coremltoolsbumped from>=8.0to>=9.0 - Enforces
numpy>=1.14.5,<=2.3.5to avoid breakage with future numpy prereleases - Constraints applied consistently in
pyproject.toml, theexport_coremlpath, and the CoreML autobackend
- Minimum
-
ExecuTorch
- Version bumped from
1.0.0to1.0.1for both export and inference - Still ensures
setuptools<71.0.0to avoid known compatibility issues
- Version bumped from
These export updates were contributed by @onuralpszr and are detailed in this CoreML and ExecuTorch update PR.
PyTorch Export Docker: Torch 2.9+ Ready
To align with the new IMX requirements and modern PyTorch:
- Removed the Docker-side hack that forced
torch<=2.8.0inpyproject.toml - Export Docker image now respects normal PyTorch constraints, allowing Torch 2.9.0+
- Still pins
numpy==1.26.4for Sony IMX export stability - Introduces a reusable
onnx_export_patch()helper to keep ONNX export stable with Torch 2.9+ by disabling Dynamo during export
This refactor was made by @lakshanthad, described in the Torch pin removal PR.
Jetson JetPack 6: Safer ONNX Version
For NVIDIA Jetson users:
Dockerfile-jetson-jetpack6now patchespyproject.tomlto enforceonnx>=1.12.0,<1.20.0- This avoids known TFLite export issues with ONNX 1.20.0 on JetPack 6
You can see the Docker/Jetson change in the work by @Laughing-q, described in this Jetson ONNX pin PR.
ClearML & Neptune Logging: Future-Proof and Automatic
Experiment tracking with ClearML and Neptune is now more flexible:
- Callbacks dynamically collect plots from
trainer.plotsandtrainer.validator.plots - Any plot whose filename contains
"batch"is skipped (debug/per-batch visualizations) - No more hardcoded lists like
results.pngorconfusion_matrix.png
This means new or custom plots will automatically appear in your ClearML and Neptune dashboards without any additional callback changes.
These logging improvements were contributed by @Y-T-G and are documented in this ClearML/Neptune plots PR.
Stronger Dependency Installation Behavior
To make environments more predictable:
attempt_installno longer passes--prerelease=allowtouv pip install- This significantly reduces the chance of pulling in unstable prerelease packages into export/inference environments
Reference Docs Additions
New API docs entries have been added for:
ultralytics.utils.export.imx.segment_forwardultralytics.utils.patches.onnx_export_patch
These make it easier to trace and understand the new segmentation and ONNX export behavior in the codebase.
Testing & Stability
IMX export tests have been re-enabled and tightened:
test_export_imxnow requires Torch β₯ 2.9.0 and Python β₯ 3.9- The test is skipped on Windows, macOS, and ARM64
- Uses a configurable
MODELconstant instead of a hardcodedyolov8n.pt, improving maintainability
Overall, this release focuses heavily on stable, modern export pipelines and more reliable test coverage around them.
Purpose & Impact
-
End-to-end IMX500 with YOLO11 segmentation
Run YOLO11 instance segmentation from training to IMX500 deployment, including Raspberry Pi AI Camera workflows, with clearer docs and example structures. -
Modern export stacks without surprises
CoreML, ExecuTorch, IMX, and Jetson exports are aligned to supported versions and safe numpy/ONNX ranges, reducing breakage from upstream changes. -
PyTorch 2.9+ ready with ONNX stability
Lifting the Torch β€ 2.8.0 pin while addingonnx_export_patch()lets you adopt newer PyTorch while maintaining export reliability. -
Richer, low-maintenance experiment tracking
ClearML and Neptune will automatically track future plots you introduce, with no callback edits required. -
More predictable environments
Avoiding prerelease dependencies and tightening version constraints gives you more reproducible pipelines in CI and production.
What Changed (PR Overview)
- IMX segmentation and converter updates by @ambitious-octopus, as described in the IMX segmentation support PR
- Jetson JetPack 6 ONNX pin by @Laughing-q, discussed in this Dockerfile-jetson-jetpack6 PR
- ClearML & Neptune plots logging fix by @Y-T-G, detailed in this logging improvements PR
- CoreML and ExecuTorch export/inference updates by @onuralpszr, in this CoreML/ExecuTorch update PR
- Torch pin removal and IMX export alignment by @lakshanthad, in the Torch 2.8.0 pin removal PR
You can review all changes between v8.3.234 and v8.3.235 in the full diff on the Ultralytics GitHub compare view.
Try It Out
Update to the latest release:
pip install -U ultralytics
Then try exporting a YOLO11 segmentation model to IMX:
from ultralytics import YOLO
model = YOLO("yolo11n-seg.pt")
model.export(format="imx", int8=True, nms=True)
Or via CLI:
yolo export model=yolo11n-seg.pt format=imx int8=True nms=True
Feedback Welcome
The Ultralytics community and contributors made this release possible. If you:
- Hit any issues with IMX500, CoreML, ExecuTorch, Jetson, or logging
- Have ideas for improving exports, docs, or examples
- Want to share your YOLO11 deployment results
β¦then please open a discussion or issue on the Ultralytics GitHub repository. Your feedback directly shapes what we prioritize next.