π Summary
Ultralytics 8.3.193 boosts long-video and large-batch inference performance by auto-enabling TorchVision NMS, streamlines checkpoint loading with a single API, and delivers cleaner, more informative progress bars and logging. π
π Key Changes
- Long-sequence inference optimization (PR #21926) β‘
- Detects long sequences (streams, screenshots, >1000 images, or any video) and preloads
torchvision
to trigger TorchVision-based NMS automatically. - Keeps warnings targeted: only warns when not in stream mode.
- Detects long sequences (streams, screenshots, >1000 images, or any video) and preloads
- Unified checkpoint loading API (PR #21933) π
- Replaces
attempt_load_one_weight
/attempt_load_weights
with a singleload_checkpoint
function across the codebase. - Docs updated to reference
ultralytics.nn.tasks.load_checkpoint
. - Minimal example:
from ultralytics.nn.tasks import load_checkpoint model, ckpt = load_checkpoint("yolo11n.pt", device="cpu", fuse=False)
- Replaces
- TQDM progress bar improvements (PRs #21944, #21934, #21932) π
- Faster, simpler formatting via f-strings, smarter/smoother rate calculations.
- Human-friendly rate scaling by default (K/M/G for all units), plus βGβ tier for very high rates.
- Cleaner completion display for byte downloads (e.g., β12.3 MBβ instead of β12.3/12.3 MBβ).
- Note: output strings changed; update any scripts that parse exact progress text.
- Clearer save paths (PR #21931) ποΈ
get_save_dir()
now returns absolute paths for unambiguous run locations in logs.
- Stable exports via dependency pin (PR #21941) π
- Pins
onnxslim==0.1.65
for ONNX and TF SavedModel exports to avoid unexpected breakages.
- Pins
- Robust PyTorch version handling (PR #21921) π§°
- Normalizes
TORCH_VERSION
usage to prevent issues with non-string version objects and align all version checks/logging.
- Normalizes
- Better segmentation validation (PR #21503) π§ͺ
- Corrects mask preparation for
overlap_mask=True
and simplifies IoU computation for more accurate, efficient val results.
- Corrects mask preparation for
- Dataset and docs fixes (PRs #21939, #21942, #21929, #21930) π
- Fixes
autosplit
import inxView.yaml
(ultralytics.data.split.autosplit
). - Clarifies recommended dataset folder structure in docs.
- Updates docs CI to target Python 3.9; improves a label error message to mention negative coordinates.
- Fixes
π― Purpose & Impact
- Faster, more reliable inference on long videos/large image sets with automatic TorchVision NMS preloadβno user action required. π¬β‘
- Simpler model loading for developers via a single
load_checkpoint
entry point; fewer APIs to remember. π§ - Cleaner, more readable progress bars and absolute save paths improve day-to-day usability and logs across CLI and Ultralytics HUB. π§
- More stable export workflows thanks to dependency pinning; fewer surprise failures in ONNX/TF pipelines. π¦
- Improved compatibility and diagnostics across PyTorch versions; fewer version-related edge cases. π‘οΈ
- More accurate segmentation validation and smoother dataset setup with fixed imports and clarified docs. β
Tip: If any tooling relies on exact progress bar strings, review and adjust parsers due to the new TQDM formatting. βοΈ
What's Changed
- Update docs.yml for Python 3.9 ruff format target by @glenn-jocher in #21929
- Display resolved
save_dir
by @glenn-jocher in #21931 - Remove TQDM duplicate filesize info on completion by @glenn-jocher in #21932
- TQDM smart rate scaling by @glenn-jocher in #21934
- Clarify negative coordinate assertion by @samrere in #21930
- Pin
onnxslim==0.1.65
by @Laughing-q in #21941 - Fix
autosplit
import inxView.yaml
by @Laughing-q in #21939 - Fix
torch._version_
check forTorch>1.9
by @RizwanMunawar in #21921 - Scope batch mask process to
_prepare_batch
by @Y-T-G in #21503 - Consolidate checkpoint loading functions by @glenn-jocher in #21933
- Faster isinstance() checks by @glenn-jocher in #21928
- Fix dataset directory structure information in docs by @RizwanMunawar in #21942
- TQDM f-strings for speed by @glenn-jocher in #21944
ultralytics 8.3.193
Preloadtorchvision
for long-sequence inference by @Laughing-q in #21926
New Contributors
Full Changelog: v8.3.192...v8.3.193