π Summary
Faster, more stable instance segmentation and more reliable exports. This release accelerates mask cropping by ~3x, hardens ONNX/RT-DETR exports, and restores official Jetson JetPack 5 Docker builds β all while refreshing docs and tutorials. β‘οΈπ‘οΈπ§
π Key Changes
-
βοΈ Segmentation speedup (priority)
- Refactored
utils.ops.crop_mask
for ~3x faster mask cropping on small batches (e.g., 6 masks on M4 MacBook Pro) by using efficient per-mask slicing for n<50 and vectorized logic for larger batches. - Reduced memory use and simplified logic; safer integer box indexing and cleaner interpolation.
- Additional performance tweak: only filters predictions without masks when needed (
amax
-based check) to avoid slow indexing on common cases. - PR: Segmentation crop_masks speedup (#22386) by @glenn-jocher
- Refactored
-
π§ ONNX export reliability
- Sets
dynamo=False
by default on PyTorch 2.4 to avoid Dynamo-related instability during export; transparent to users. - PR: Set dynamo=False by default for ONNX exports (#22388) by @Y-T-G
- Sets
-
π« RT-DETR export safeguards
- Uses explicit class checks (
RTDETRDecoder
) and forcesnms=False
for end-to-end/RT-DETR exports. - Enforces ONNX opset defaults (19) and valid range (16β19) for RT-DETR.
- PR: Prevent nms export for RTDETR models (#22385) by @Y-T-G
- Uses explicit class checks (
-
π¦ Export Docker stability
- Pins
torch<=2.8.0
in the Python export Docker image to avoid IMX issues with 2.9.0; keepsnumpy==1.26.4
. - PR: Pin torch<=2.8.0 in Dockerfile-python-export (#22392) by @Laughing-q
- Pins
-
π§ Jetson support
- Re-enables CI builds for NVIDIA Jetson JetPack 5 Docker image (ARM64), restoring official images for edge deployments.
- PR: Re-enable JetPack5 Docker builds (#22375) by @lakshanthad
-
π Docs and examples
- Updated and added tutorial videos across multiple pages (RT-DETR, YOLO-World, YOLOE, Track mode, Distance Calculation) to improve onboarding.
- Minor example fix: dataset download path now defaults to
dir='datasets'
. - PR: Docs video refresh (#22408) by @RizwanMunawar
π― Purpose & Impact
- Faster segmentation inference and lower memory usage, especially for typical use cases with fewer masks (beneficial across CPU/GPU and Apple Silicon). π
- More robust and predictable ONNX exports on PyTorch 2.4+; fewer surprises in CI/CD and deployments (including Ultralytics HUB). π‘οΈ
- Correct-by-default RT-DETR exports that avoid unsupported NMS paths and enforce compatible opsets. β
- Stable, reproducible Docker-based exports for IMX targets; reduced breakage from upstream library changes. π
- Jetson users get up-to-date, official JetPack 5 images, simplifying ARM64 edge deployments. π§©
- Clearer learning resources and smoother onboarding with refreshed video tutorials. π₯
Tip: Upgrade with pip install -U ultralytics
and enjoy speedups automaticallyβno code changes needed for segmentation or export workflows.
What's Changed
- Set
dynamo=False
by default for ONNX exports by @Y-T-G in #22388 - Pin
torch<=2.8.0
inDockerfile-python-export
by @Laughing-q in #22392 - Prevent
nms
export for RTDETR models by @Y-T-G in #22385 - Re-enable JetPack5 Docker builds on GitHub-Hosted runners by @lakshanthad in #22375
- Add https://youtu.be/leOPZhE0ckg to docs and refresh outdated embeds by @RizwanMunawar in #22408
ultralytics 8.3.215
Segmentationcrop_masks
speedup by @glenn-jocher in #22386
Full Changelog: v8.3.214...v8.3.215