New Release: Ultralytics v8.3.235

:rocket: Ultralytics v8.3.235 – IMX500 Segmentation, Modernized Exports & Smoother Logging

Ultralytics v8.3.235 is out! :tada:

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.


:glowing_star: Summary

  • :white_check_mark: IMX500 now supports YOLO11 instance segmentation (export + inference)
  • :white_check_mark: CoreML, ExecuTorch, and IMX backends updated to current, stable toolchains
  • :white_check_mark: Jetson JetPack 6 Docker is safer with a pinned ONNX range
  • :white_check_mark: ClearML & Neptune logging automatically follows new plots
  • :white_check_mark: Export Docker no longer forces Torch ≀ 2.8.0, enabling PyTorch 2.9+ with a safe ONNX patch

:brain: 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_forward implementation in ultralytics.utils.export.imx.
  • IMX constraints in Exporter.__call__ now allow segmentation models and enforce int8=True and nms=True for segment as 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.


:counterclockwise_arrows_button: 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-layers to edge-mdt-cl for custom layers/NMS
  • Updated converter/tooling stack:
    • imx500-converter[pt]>=3.17.3
    • edge-mdt-cl<1.1.0
    • edge-mdt-tpc>=1.2.0
    • model-compression-toolkit>=2.4.1
    • pydantic<=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-cl NMS ops and onnxruntime-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 coremltools bumped from >=8.0 to >=9.0
    • Enforces numpy>=1.14.5,<=2.3.5 to avoid breakage with future numpy prereleases
    • Constraints applied consistently in pyproject.toml, the export_coreml path, and the CoreML autobackend
  • ExecuTorch

    • Version bumped from 1.0.0 to 1.0.1 for both export and inference
    • Still ensures setuptools<71.0.0 to avoid known compatibility issues

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.0 in pyproject.toml
  • Export Docker image now respects normal PyTorch constraints, allowing Torch 2.9.0+
  • Still pins numpy==1.26.4 for 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-jetpack6 now patches pyproject.toml to enforce onnx>=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.plots and trainer.validator.plots
  • Any plot whose filename contains "batch" is skipped (debug/per-batch visualizations)
  • No more hardcoded lists like results.png or confusion_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_install no longer passes --prerelease=allow to uv 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_forward
  • ultralytics.utils.patches.onnx_export_patch

These make it easier to trace and understand the new segmentation and ONNX export behavior in the codebase.


:test_tube: Testing & Stability

IMX export tests have been re-enabled and tightened:

  • test_export_imx now requires Torch β‰₯ 2.9.0 and Python β‰₯ 3.9
  • The test is skipped on Windows, macOS, and ARM64
  • Uses a configurable MODEL constant instead of a hardcoded yolov8n.pt, improving maintainability

Overall, this release focuses heavily on stable, modern export pipelines and more reliable test coverage around them.


:bullseye: 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 adding onnx_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.


:package: What Changed (PR Overview)

You can review all changes between v8.3.234 and v8.3.235 in the full diff on the Ultralytics GitHub compare view.


:rocket: 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

:speech_balloon: 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.