pypi ultralytics 8.4.107
v8.4.107 - Add Huawei Ascend export (#25432)

4 hours ago

🌟 Summary

Huawei Ascend support arrives in Ultralytics, enabling YOLO models to export and run as hardware-optimized .om models on Ascend NPUs. 🚀

📊 Key Changes

  • Huawei Ascend export and inference 🧠

    • Adds format=ascend to compile YOLO models through Huawei’s CANN ATC compiler.
    • Produces self-describing .om files with metadata, targeting a specified Ascend SoC through name, such as Ascend310P3 or Ascend310B4.
    • Adds AutoBackend support using ais_bench for inference on Ascend hardware.
    • Supports detection, segmentation, pose, OBB, classification, semantic segmentation, and depth models.
    • Uses static-shape FP16 compilation and supports host-side export without requiring an attached Ascend device.
    • Adds aliases including huawei, cann, and om, while preventing cann from being incorrectly routed to NCNN.
    • Adds documentation and API references for the new Ascend exporter and inference backend.
  • Ultralytics Platform support ☁️

    • Increases supported deployment formats from 19 to 20 by adding Huawei Ascend export.
    • Ascend export is now reflected throughout the Ultralytics Platform documentation and format selection guides.
  • Faster and cleaner FLOPs profiling

    • Profiles models directly instead of creating expensive deep copies.
    • Removes the unused get_flops_with_torch_profiler utility.
    • Updates ultralytics-thop to version 2.1.0 or newer for improved profiling performance and cleanup reliability.
  • More reliable distributed training 🌐

    • DDP now prefers random available ports below the operating system’s ephemeral range.
    • Reduces rendezvous failures caused by port reuse, while retaining an operating-system fallback.
  • Tracking and evaluation fixes

    • Restores TrackTrack deleted-detection recovery for PyTorch models.
    • Corrects class-name and AP alignment in PR_curve.png when classes have no predictions.
    • Prevents empty segmentation annotations from corrupting bounding boxes in GroundingDataset.
    • Makes optimizer names case-insensitive for MuSGD, so values such as musgd work correctly.
  • Clearer low-disk-space reporting 💾

    • Reports available disk space in KB below 1 MB instead of displaying ambiguous 0.0 MB values.

🎯 Purpose & Impact

  • Broader hardware deployment: Users targeting Huawei Atlas boards and OrangePi AIPro devices now have a direct path from a trained YOLO checkpoint to accelerated Ascend inference. 🏭🤖

  • Simpler deployment workflow: Export with a familiar command such as:

    yolo export model=yolo26n.pt format=ascend name=Ascend310B4

    The generated model directory can then be loaded through standard Ultralytics prediction APIs.

  • Improved edge performance potential: Ascend’s AI Core executes compiled FP16 models on-device, supporting low-power applications such as robotics, industrial inspection, and smart cameras.

  • Faster development workflows: FLOPs profiling should require less time and memory, particularly for larger models.

  • More dependable training and tracking: Distributed jobs, TrackTrack recovery, optimizer selection, and evaluation plots behave more consistently.

  • Better diagnostics: Disk-space errors now provide actionable information, making it easier to distinguish a nearly full disk from one with only a small amount of free space.

⚠️ Ascend export requires the Linux-based CANN toolkit and the atc compiler. Ascend inference additionally requires the CANN runtime and ais_bench on the target device.

What's Changed

Full Changelog: v8.4.106...v8.4.107

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.