🌟 Summary
Ultralytics 8.3.117 introduces a major update to TFLite model exports, switching from flatbuffers to a simpler JSON metadata format for improved Python 3.12+ compatibility. This release also brings enhancements to Docker support, distributed training, and model export workflows, along with several bug fixes and documentation improvements. 🚀
📊 Key Changes
- TFLite Metadata Overhaul: Replaces the TFLite Support package and flatbuffers-based metadata with a new JSON-based approach, making TFLite exports compatible with Python 3.12 and above.
- Backward Compatibility: Automatically falls back to the legacy metadata format for Python versions below 3.12.
- Docker & CI Improvements: Updates Dockerfiles and GitHub Actions workflows for better Python 3.12 support and ARM64 benchmarking.
- MobileCLIP Dependency Update: Switches to the Ultralytics-maintained MobileCLIP fork for easier installation and improved reliability.
- Distributed Training Fixes: Enhances YOLO distributed training stability, especially on Windows and with different PyTorch backends.
- CoreML Export Fix: Resolves box size issues when exporting models to CoreML.
- Prediction Robustness: Restores automatic class inference in detection models when metadata is missing, improving prediction reliability.
- Documentation Upgrade: Adds a step-by-step YouTube video tutorial to the Docker Quickstart guide for easier onboarding.
- Codebase Cleanup: Refines import statements for better maintainability and fewer import errors.
🎯 Purpose & Impact
- Future-Proof TFLite Exports: Ensures users can export and use TFLite models with the latest Python versions, reducing compatibility headaches.
- Smoother Installations: The new MobileCLIP fork and Docker updates make setup and deployment more reliable across platforms.
- Easier Distributed Training: Users training YOLO models on clusters or Windows systems will experience fewer errors and smoother runs.
- Broader Hardware Support: ARM64 benchmarking and Docker improvements benefit users on Jetson and other ARM devices.
- Improved User Experience: The new Docker video guide and restored prediction logic make it easier for both beginners and advanced users to get started and achieve reliable results.
- ⚠️ Breaking Change: TFLite metadata format has changed. If you rely on the old flatbuffers-based metadata, you may need to update your code or workflows.
This release is a significant step towards modern Python compatibility, easier deployments, and a more robust user experience across the Ultralytics ecosystem! 🎉
What's Changed
- Add https://youtu.be/IYWQZvtOy_Q to docs by @RizwanMunawar in #20347
- Fix private local import issue by @Laughing-q in #20343
- Fix DDP with Gloo backend on Windows by @Y-T-G in #20330
- Use Ultralytics MobileCLIP fork for YOLOE by @glenn-jocher in #20337
- Fix predictions if metadata is missing by @Y-T-G in #20353
- Add Benchmarks CI to
Dockerfile-arm64
by @lakshanthad in #20236 - Fix box sizes for CoreML exports by @sidekickr in #20357
ultralytics 8.3.117
Replace TFLite Support with JSON metadata by @glenn-jocher in #16413
Full Changelog: v8.3.116...v8.3.117