pypi ultralytics 8.4.76
v8.4.76 - Add multi-dataset fine-tuning via MultiTrainer (#24914)

5 hours ago

๐ŸŒŸ Summary

Ultralytics v8.4.76 is headlined by a powerful new multi-dataset fine-tuning workflow ๐Ÿš€, making it much easier to train one YOLO model across several datasets in one run, while also improving tracking defaults, segmentation/tracking stability, and docs clarity.

๐Ÿ“Š Key Changes

  • ๐Ÿ†• Multi-dataset fine-tuning via MultiTrainer

    • You can now pass a list or tuple of datasets to model.train().
    • Ultralytics will fine-tune the same base model separately on each dataset in sequence.
    • It returns a per-dataset metrics dictionary and saves a cross-dataset results chart.
    • This expands the old RF100-specific workflow into a more general tool that works for RF100, custom dataset collections, and broader benchmarking.
  • ๐Ÿ“ˆ Better multi-dataset benchmarking outputs

    • Training runs are grouped into a shared multitrain directory.
    • Results now include:
      • per-dataset metrics
      • a summary JSON file
      • a bar-chart image comparing results across datasets
  • ๐Ÿ”— Easier Ultralytics Platform dataset/model loading

    • Platform web URLs can now be pasted directly and are automatically converted to ul:// format behind the scenes.
    • This helps streamline workflows using the Ultralytics Platform ๐ŸŒ
  • ๐ŸŽฏ Default tracker changed to tracktrack.yaml

    • TrackTrack is now the default multi-object tracker instead of BoT-SORT.
    • Users who rely on default settings may notice different tracking behavior or ID consistency.
  • ๐Ÿ› ๏ธ Segmentation + ReID compatibility fix

    • A fix prevents valid segmentation detections from being incorrectly filtered out when native ReID is enabled.
    • This improves reliability for advanced tracking workflows.
  • ๐Ÿ“ฆ DDP training metrics recovery improved

    • Training now better returns metrics in distributed training setups, rather than losing them in some multi-GPU cases.
  • ๐Ÿ”„ Revert of recent predict() path-list loading change

    • A previous change meant to reduce memory issues for large file-path lists was reverted because it introduced breaking behavior for exported models with static batch sizes.
    • This restores previous compatibility, especially for ONNX, TensorRT, MNN, and TorchScript export use cases.
  • ๐Ÿงฉ Solutions improvements

    • Added show_boxes to instance segmentation solutions so users can turn bounding boxes on or off.
    • Fixed RegionCounter so counts no longer remain stale on empty frames.
    • Clarified region argument docs to better match actual behavior.
  • ๐Ÿ“š Documentation updates

    • Added ADE20K semantic segmentation benchmarks for YOLO26 models.
    • Added lightweight COCO16 / COCO32 / COCO64 test subsets to docs.
    • Tracking docs now highlight newer trackers like OC-SORT, Deep OC-SORT, FastTracker, and TrackTrack.
    • Large docs refresh for SEO, consistency, titles, and clearer guides.

๐ŸŽฏ Purpose & Impact

  • For researchers and advanced users ๐Ÿงช

    • The new multi-dataset training feature is the biggest change in this release.
    • It makes it much easier to compare how a single YOLO base model performs across many datasets without building custom scripts.
    • This is especially useful for benchmarking, transfer learning, dataset sweeps, and robustness testing.
  • For teams managing many datasets ๐Ÿ“‚

    • You can now automate repeated fine-tuning runs in a cleaner, more reproducible way.
    • The saved summary plots and JSON outputs make results easier to review, share, and integrate into reporting pipelines.
  • For tracking users ๐Ÿš—

    • The switch to TrackTrack as the default tracker may improve out-of-the-box tracking quality, but it could also slightly change results in existing workflows that depended on default behavior.
    • If you want the old default, you can still set tracker=botsort.yaml explicitly.
  • For deployment users โš™๏ธ

    • The revert to the earlier predict() behavior helps avoid export/runtime issues, particularly when using static-batch exported models.
    • This favors compatibility and stability over the recent loader behavior change.
  • For solution users ๐Ÿ‘€

    • Visualization controls are better, and region counting is more accurate frame-to-frame.
    • These fixes reduce confusion and improve reliability in real-world video analytics setups.
  • For the broader community ๐Ÿ“˜

    • Many docs were cleaned up and expanded, making Ultralytics features easier to discover and use.
    • The added ADE20K benchmarks and smaller COCO subsets are especially helpful for quick testing and semantic segmentation evaluation.

In short: v8.4.76 is mainly about making multi-dataset fine-tuning much more practical and scalable ๐ŸŒŸ, while also improving default tracking behavior, restoring inference compatibility, and polishing the overall user experience.

What's Changed

  • bump ultralytics-inference version to 0.0.22 in documentation by @onuralpszr in #24886
  • Add show_boxes argument to instance segmentation solution by @raimbekovm in #24835
  • Fix region argument type and default in solutions docs tables by @raimbekovm in #24818
  • docs: unified SEO-consistent page titles (โ‰ค60, "| Ultralytics" suffix) by @glenn-jocher in #24888
  • Fix stale region counts on empty frames in RegionCounter by @raimbekovm in #24819
  • Revert "Fix OOM when passing large list of file paths to predict()" by @onuralpszr in #24895
  • Use tracktrack as default tracker by @Laughing-q in #24897
  • Bump actions/cache from 5 to 6 in /.github/workflows by @dependabot[bot] in #24909
  • docs: add ADE20K semantic segmentation benchmarks by @lmycross in #24901
  • Add COCO16/COCO32/COCO64 subset datasets to detect docs table by @glenn-jocher in #24912
  • docs: add new tracking tips section for OC-SORT, Deep OC-SORT, FastTracker, and TrackTrack by @onuralpszr in #24908
  • Restructure five documentation guides and update descriptions by @raimbekovm in #24913
  • Skip empty mask filter if native ReID is enabled by @Y-T-G in #24907
  • Correct ParkingManagement arguments in parking management guide FAQ by @raimbekovm in #24905
  • Add multi-dataset fine-tuning via MultiTrainer by @glenn-jocher in #24914

Full Changelog: v8.4.75...v8.4.76

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.