Ultralytics YOLO
Abstract
🌟 Summary v8.4.172 makes oriented-box cropping work as expected and improves reliability across model training, export, dataset handling, and deployment. 📊 Key Changes Rotation-aligned OBB crops: save_crop=True and ObjectCropper now save crops upright and aligned to each oriented bounding box. Areas extending beyond the image are filled with black. Model correctness fixes: AIFI positional embeddings now match non-square feature maps, and RT-DETR computes matching costs in float32 to avoid AMP precision errors affecting training assignments. More reliable training and resume: NaN recovery now correctly restarts the recovered epoch, while resumed runs preserve the selected optimizer and early-stopping progress. Improved dataset and export handling: Corrupted dataset caches trigger a rescan; classification datasets recognize more supported image formats; and static INT8 exports can calibrate even when the dataset is smaller than the requested batch. Broader Python support: Python 3.14 is added to package support and several Docker and export environments. The Python export image remains on Python 3.13 for dependencies that do not yet support 3.14. Platform documentation refreshed: Docs now describe current Platform behavior and APIs, including Agents management, dataset version comparisons, and direct LabelMe imports. 🎯 Purpose & Impact OBB users can now get useful, tightly aligned crops instead of no crops or axis-aligned approximations. Training and validation should be more dependable, particularly when using AMP, recovering from NaNs, or resuming an interrupted run. Dataset and export workflows are more resilient to damaged caches, varied image formats, and small calibration datasets. Updated Python support and clearer Platform documentation make it easier to choose compatible environments and follow current workflows. What's Changed Fix NaN conv outputs in JetPack5 Docker image from OpenBLAS 0.3.8 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26473 Bump Prettier from 3.8.5 to 3.9.9 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26472 Remove cloudpickle and filelock base dependencies and disallow new ones by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26471 Remove redundant Lost-state checks in ByteTrack and FastTracker second association by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26481 Use pre-cached assets in COCO-eval and CLI solutions tests by @JaviChulvi in https://github.com/ultralytics/ultralytics/pull/26476 Align validation, Edge TPU export, and Platform dataset, Agents API, and billing docs with current behavior by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26467 Fix AIFI position embedding for non-square feature maps by @ArgoHA in https://github.com/ultralytics/ultralytics/pull/26483 Align Ultralytics Platform docs with current Platform behavior by @pderrenger in https://github.com/ultralytics/ultralytics/pull/26485 Move AMD doc to Deployment Integrations by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/26489 Name LabelMe and Labelbox in Platform import format lists and correct Label Studio OBB and VOC notes by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26488 Use >= floors in example requirements to stop Dependabot pin bumps by @dependabot[bot] in https://github.com/ultralytics/ultralytics/pull/26501 Restore the shared CI asset cache in Docker tests and keep it out of images by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26502 Fix corrupt dataset caches, NaN recovery, YOLOE predict state and batching, RT-DETR save_txt, and tracker/cfg/solution bugs by @cainiao33 in https://github.com/ultralytics/ultralytics/pull/26477 Fix RT-DETR Hungarian matching precision under AMP by @Nikhi00718 in https://github.com/ultralytics/ultralytics/pull/26475 Restore the optimizer=auto choice and early stopping state on resume by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26487 Replace outputs from previous predict and val runs and give each video its own output name by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26494 Fix integer crop coordinates and JPEG output collisions by @Vaishnavi220506 in https://github.com/ultralytics/ultralytics/pull/26474 Upgrade CPU containers and isolated exports to newer Python versions by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26510 Load every supported image format in classification datasets and refresh stale disk cache by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26497 Fix OpenVINO INT8 calibration for undersized datasets by @JaviChulvi in https://github.com/ultralytics/ultralytics/pull/26507 Fix yolo_bbox2segment background-first detection and rerun duplicates, and accept jpeg and uppercase masks by @wizzseen in https://github.com/ultralytics/ultralytics/pull/26508 Add rotation-aligned OBB crops to save_crop by @Nikhi00718 in https://github.com/ultralytics/ultralytics/pull/26486 New Contributors @ArgoHA made their first contribution in https://github.com/ultralytics/ultralytics/pull/26483 Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.171...v8.4.172