🌟 Summary
Ultralytics v8.3.239 focuses on smoother SAM 3 text prompting, richer system monitoring via SystemLogger(), quieter logs, and broader ONNX export support (including Jetson JetPack 6), plus improved contributor attribution in the docs. 🚀
📊 Key Changes
-
SAM 3 text prompting made plug‑and‑play 🧩
- Replaced the custom SAM3 tokenizer with CLIP’s built‑in
SimpleTokenizer(). - Removed the need to manually download and pass
bpe_simple_vocab_16e6.txt.gz. SAM3SemanticPredictorandSAM3VideoSemanticPredictorno longer take abpe_pathargument.- If
clipisn’t installed, Ultralytics auto-installs it from the Ultralytics CLIP repo. - Updated SAM 3 docs and reference nav to reflect the simpler API and removed tokenizer module.
- Replaced the custom SAM3 tokenizer with CLIP’s built‑in
-
SystemLogger()gains real‑time throughput metrics 📈SystemLogger.get_metrics()now supportsrates=Trueto report disk and network MB/s:- Disk:
read_mbs,write_mbs - Network:
recv_mbs,sent_mbs
- Disk:
- Default behavior (
rates=False) still returns cumulative MB since logger init. - Adds internal tracking of previous disk/net stats and time for safe rate calculations.
- Example docs updated to show GPU keys as strings (
"0","1").
-
Centralized warning suppression for cleaner logs 🔕
- Moved scattered
warnings.filterwarnings(...)calls intoultralytics/utils/__init__.py. - Removed local warning suppression from:
- Exporter (
ultralytics/engine/exporter.py) - MobileCLIP text model loader (
ultralytics/nn/text_model.py) - Plotting utils (
ultralytics/utils/plotting.py) - TensorBoard callbacks (
ultralytics/utils/callbacks/tensorboard.py)
- Exporter (
- TensorBoard graph logging now:
- Tries a simple trace first, then an RT-DETR‑style export fallback.
- Logs a single, more informative warning if both fail.
- Moved scattered
-
ONNX export updated to support ONNX 1.20.0+ 📦
- Exporter now requires
onnx>=1.12.0,<2.0.0instead of capping at1.19.1for:export_onnxexport_saved_model(TensorFlow route)
- Jetson JetPack 6 Dockerfile no longer hard‑pins ONNX below 1.20.0; the workaround was removed.
- Comment in
pyproject.tomlupdated to note MacOS testing up toonnx==1.20.0.
- Exporter now requires
-
Docs & authorship improvements 📚
- SAM 3 docs simplified: all examples now construct
SAM3SemanticPredictor/SAM3VideoSemanticPredictorwithoutbpe_path. mkdocs.ymlnav updated to drop the removedtokenizer_vereference page.docs/mkdocs_github_authors.yamlexpanded with many new GitHub usernames and avatars, plus aliases and Ultralytics team mappings for better contributor attribution.
- SAM 3 docs simplified: all examples now construct
-
CI / tooling maintenance 🧰
- GitHub Actions:
actions/download-artifactbumped from v6 → v7 (Node.js 24 runtime) inpublish.yml. - Package version bumped to
8.3.239inultralytics/__init__.pyfor clear release tracking.
- GitHub Actions:
🎯 Purpose & Impact
-
Easier SAM 3 text-based segmentation 💬
- No more manual BPE vocabulary downloads or
bpe_pathwiring. - Using CLIP’s own tokenizer reduces duplicated code and aligns SAM 3 text prompts with standard CLIP tooling.
- SAM 3 examples become more “drop‑in” for new users: just provide
sam3.ptand go.
- No more manual BPE vocabulary downloads or
-
Better monitoring for training and deployment 📊
SystemLogger.get_metrics(rates=True)lets you watch live I/O throughput, which is especially helpful when:- Diagnosing dataset loading bottlenecks.
- Monitoring training jobs on shared servers or in production.
- Preserving the old cumulative behavior avoids breaking existing dashboards or scripts.
-
Quieter, more focused logs 🤫
- Centralized warning suppression cuts repeated, noisy framework warnings (timm, CoreML, ONNX/TorchScript, matplotlib) across the codebase.
- Makes logs easier to read, especially during long training/export runs or when using TensorBoard.
-
More robust ONNX export, including Jetson 🖥️
- Supporting ONNX up to
<2.0.0(including 1.20.0) unblocks environments like Jetson JetPack 6 that depend on newer ONNX. - Removing the Jetson Dockerfile hack avoids surprising dependency rewrites and simplifies maintenance.
- Supporting ONNX up to
-
Improved documentation and community recognition 🤝
- Cleaner, up‑to‑date docs around SAM 3 reduce setup friction and confusion.
- Expanded author mapping ensures more contributors are correctly credited on documentation pages, which encourages community engagement.
Overall, v8.3.239 is a quality‑of‑life release: SAM 3 is simpler to use, monitoring is more informative, logs are tidier, and ONNX export is more future‑proof—without breaking existing workflows. ✅
What's Changed
- Restore GitHub authors with avatars and usernames by @glenn-jocher in #22961
- feat: 📦 update onnx version to 1.20.0 by @onuralpszr in #22867
- Bump actions/download-artifact from 6 to 7 in /.github/workflows by @dependabot[bot] in #22951
- Use
CLIPtokenizer functionality and remove the need ofbpe_simple_vocabfor SAM3 by @Y-T-G in #22958 - Centralize warning suppression by @glenn-jocher in #22962
- SystemLogger rate mode by @glenn-jocher in #22964
- SAM3 and
SystemLogger()improvements by @glenn-jocher in #22965
Full Changelog: v8.3.238...v8.3.239