🌟 Summary (single-line synopsis)
Ultralytics v8.4.9 improves segmentation CopyPaste augmentation reliability (especially for grayscale/hyperspectral-style single-channel inputs) and strengthens the broader export/training ecosystem with better ExecuTorch + Torch support 🚀🧩
📊 Key Changes
- 🧪 (Priority) Segmentation CopyPaste mask fix in
ultralytics/data/augment.py:- Builds the contour mask as a 2D (H×W) array instead of matching the full image tensor shape.
- Draws contours onto a single-channel mask using value
1(instead of(1,1,1)), avoiding channel mismatches.
- 🧾 Version bump:
8.4.8 → 8.4.9🔢 - 📦 NDJSON datasets always re-download when using
ul://...URIs (instead of silently reusing a cached.ndjson) 🧹⬇️ - ⚙️ ExecuTorch support improvements:
- Removes the
<2.10PyTorch upper bound in dependencies (Windows still excludestorch==2.4.0) 🔓 - Centralizes ExecuTorch install checks via
check_executorch_requirements()to reduce platform-specific install failures 🧩
- Removes the
- ⚡ Training + compile coverage: CUDA test now trains with
compile=True, and stride calculation is simplified for more predictable behavior 🧠🔥 - 📚 Docs refresh: Export docs video updated to a more relevant YOLO26 export/deployment tutorial 🎥
🎯 Purpose & Impact
- 🧩 More robust segmentation augmentation: prevents mask shape/channel bugs that can break or silently degrade CopyPaste-based training—especially when images are single-channel (common in grayscale and some hyperspectral pipelines) 📷✅
- 📈 More reliable segmentation training: fewer augmentation edge cases means smoother training runs and more consistent results 🏋️♂️📊
- 🧹 Less “stale dataset” confusion: always refreshing
.ndjsonmetadata helps ensure you train/evaluate on the latest Ultralytics-hosted dataset state when usingul://...🔄🧪 - 🚀 Better export/inference readiness on modern stacks: improved ExecuTorch requirement handling + Torch 2.10+ compatibility reduces install friction and improves deployment workflows 📦⚙️
- ⚡ Safer
compile=Trueusage: better test coverage helps catch regressions for users relying on PyTorch compile for potential speedups 🧠🛠️
What's Changed
- Always redownload NDJSON datasets by @glenn-jocher in #23458
- feat(executorch): Add support for Torch 2.10 in ExecuTorch requirements and imports and remove torch<2.10 pin by @onuralpszr in #23344
- Add missing type hints to
checks.pyanddist.pyby @ahmet-f-gumustas in #23485 - Add https://youtu.be/KGHYU-MKYeE to docs by @RizwanMunawar in #23463
- Fix training with
compileby @Y-T-G in #23479 - refactor: ♻️ Simplify requirement checks for executorch by @onuralpszr in #23475
ultralytics 8.4.9Hyperspectral CopyPaste augmentation by @Y-T-G in #23471
Full Changelog: v8.4.8...v8.4.9