v6.1 - TensorRT, TensorFlow Edge TPU and OpenVINO Export and Inference
This release incorporates many new features and bug fixes (271 PRs from 48 contributors) since our last release in October 2021. It adds TensorRT, Edge TPU and OpenVINO support, and provides retrained models at --batch-size 128 with new default one-cycle linear LR scheduler. YOLOv5 now officially supports 11 different formats, not just for export but for inference (both detect.py and PyTorch Hub), and validation to profile mAP and speed results after export.
Format | export.py --include | Model
:--- | --: | :--
PyTorch | - | yolov5s.pt
TorchScript | torchscript | yolov5s.torchscript
ONNX | onnx | yolov5s.onnx
OpenVINO | openvino | yolov5s_openvino_model/
TensorRT | engine | yolov5s.engine
CoreML | coreml | yolov5s.mlmodel
TensorFlow SavedModel | saved_model | yolov5s_saved_model/
TensorFlow GraphDef | pb | yolov5s.pb
TensorFlow Lite | tflite | yolov5s.tflite
TensorFlow Edge TPU | edgetpu | yolov5s_edgetpu.tflite
TensorFlow.js | tfjs | yolov5s_web_model/
Usage examples (ONNX shown):
Export: python export.py --weights yolov5s.pt --include onnx
Detect: python detect.py --weights yolov5s.onnx
PyTorch Hub: model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5s.onnx')
Validate: python val.py --weights yolov5s.onnx
Visualize: https://netron.app
Important Updates
- TensorRT support: TensorFlow, Keras, TFLite, TF.js model export now fully integrated using
python export.py --include saved_model pb tflite tfjs(https://github.com/ultralytics/yolov5/pull/5699 by @imyhxy) - Tensorflow Edge TPU support ⭐ NEW: New smaller YOLOv5n (1.9M params) model below YOLOv5s (7.5M params), exports to 2.1 MB INT8 size, ideal for ultralight mobile solutions. (https://github.com/ultralytics/yolov5/pull/3630 by @zldrobit)
- OpenVINO support: YOLOv5 ONNX models are now compatible with both OpenCV DNN and ONNX Runtime (https://github.com/ultralytics/yolov5/pull/6057 by @glenn-jocher).
- Export Benchmarks: Benchmark (mAP and speed) all YOLOv5 export formats with
python utils/benchmarks.py --weights yolov5s.pt. Currently operates on CPU, future updates will implement GPU support. (https://github.com/ultralytics/yolov5/pull/6613 by @glenn-jocher). - Architecture: no changes
- Hyperparameters: minor change
- hyp-scratch-large.yaml
lrfreduced from 0.2 to 0.1 (https://github.com/ultralytics/yolov5/pull/6525 by @glenn-jocher).
- hyp-scratch-large.yaml
- Training: Default Learning Rate (LR) scheduler updated
- One-cycle with cosine replace with one-cycle linear for improved results (https://github.com/ultralytics/yolov5/pull/6729 by @glenn-jocher).
New Results
All model trainings logged to https://wandb.ai/glenn-jocher/YOLOv5_v61_official

YOLOv5-P5 640 Figure (click to expand)

Figure Notes (click to expand)
- COCO AP val denotes mAP@0.5:0.95 metric measured on the 5000-image COCO val2017 dataset over various inference sizes from 256 to 1536.
- GPU Speed measures average inference time per image on COCO val2017 dataset using a AWS p3.2xlarge V100 instance at batch-size 32.
- EfficientDet data from google/automl at batch size 8.
- Reproduce by
python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
Example YOLOv5l before and after metrics:
|YOLOv5l
Large|size
(pixels) |mAPval
0.5:0.95 |mAPval
0.5 |Speed
CPU b1
(ms) |Speed
V100 b1
(ms) |Speed
V100 b32
(ms) |params
(M) |FLOPs
@640 (B)
--- |--- |--- |--- |--- |--- |--- |--- |---
v5.0 |640 |48.2 |66.9 |457.9 |11.6 |2.8 |47.0 |115.4
v6.0 (previous) |640 |48.8 |67.2 |424.5 |10.9|2.7 |46.5 |109.1
v6.1 (this release) |640 |49.0 |67.3 |430.0 |10.1|2.7 |46.5 |109.1
Pretrained Checkpoints
|Model |size
(pixels) |mAPval
0.5:0.95 |mAPval
0.5 |Speed
CPU b1
(ms) |Speed
V100 b1
(ms) |Speed
V100 b32
(ms) |params
(M) |FLOPs
@640 (B)
|--- |--- |--- |--- |--- |--- |--- |--- |---
|YOLOv5n |640 |28.0 |45.7 |45 |6.3|0.6|1.9|4.5
|YOLOv5s |640 |37.4 |56.8 |98 |6.4 |0.9 |7.2 |16.5
|YOLOv5m |640 |45.4 |64.1 |224 |8.2 |1.7 |21.2 |49.0
|YOLOv5l |640 |49.0 |67.3 |430 |10.1 |2.7 |46.5 |109.1
|YOLOv5x |640 |50.7 |68.9 |766 |12.1 |4.8 |86.7 |205.7
| | | | | | | | |
|YOLOv5n6 |1280 |36.0 |54.4 |153 |8.1 |2.1 |3.2 |4.6
|YOLOv5s6 |1280 |44.8 |63.7 |385 |8.2 |3.6 |12.6 |16.8
|YOLOv5m6 |1280 |51.3 |69.3 |887 |11.1 |6.8 |35.7 |50.0
|YOLOv5l6 |1280 |53.7 |71.3 |1784 |15.8 |10.5 |76.8 |111.4
|YOLOv5x6
+ TTA|1280
1536 |55.0
55.8 |72.7
72.7 |3136
- |26.2
- |19.4
- |140.7
- |209.8
-
Table Notes (click to expand)
- All checkpoints are trained to 300 epochs with default settings. Nano and Small models use hyp.scratch-low.yaml hyps, all others use hyp.scratch-high.yaml.
- mAPval values are for single-model single-scale on COCO val2017 dataset.
Reproduce bypython val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65 - Speed averaged over COCO val images using a AWS p3.2xlarge instance. NMS times (~1 ms/img) not included.
Reproduce bypython val.py --data coco.yaml --img 640 --task speed --batch 1 - TTA Test Time Augmentation includes reflection and scale augmentations.
Reproduce bypython val.py --data coco.yaml --img 1536 --iou 0.7 --augment
Changelog
Changes between previous release and this release: https://github.com/ultralytics/yolov5/compare/v6.0...v6.1 Changes since this release: https://github.com/ultralytics/yolov5/compare/v6.1...HEAD
New Features and Bug Fixes (271)
- fix
tfconversion in new v6 models by @YoniChechik in https://github.com/ultralytics/yolov5/pull/5153 - Use YOLOv5n for CI testing by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5154
- Update stale.yml by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5156
- Check
'onnxruntime-gpu' if torch.has_cudaby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5087 - Add class filtering to
LoadImagesAndLabels()dataloader by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5172 - W&B: fix dpp with wandb disabled by @AyushExel in https://github.com/ultralytics/yolov5/pull/5163
- Update autodownload fallbacks to v6.0 assets by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5177
- W&B: DDP fix by @AyushExel in https://github.com/ultralytics/yolov5/pull/5176
- Adjust legend labels for classes without instances by @NauchtanRobotics in https://github.com/ultralytics/yolov5/pull/5174
- Improved check_suffix() robustness to
''and""by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5192 - Highlight contributors in README by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5173
- Add hyp.scratch-med.yaml by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5196
- Update Objects365.yaml to include the official validation set by @farleylai in https://github.com/ultralytics/yolov5/pull/5194
- Autofix duplicate label handling by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5210
- Update Objects365.yaml val count by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5212
- Update/inplace ops by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5233
- Add
on_fit_epoch_endcallback by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5232 - Update rebase.yml by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5245
- Add dependabot for GH actions by @zhiqwang in https://github.com/ultralytics/yolov5/pull/5250
- Bump cirrus-actions/rebase from 1.4 to 1.5 by @dependabot in https://github.com/ultralytics/yolov5/pull/5251
- Bump actions/cache from 1 to 2.1.6 by @dependabot in https://github.com/ultralytics/yolov5/pull/5252
- Bump actions/stale from 3 to 4 by @dependabot in https://github.com/ultralytics/yolov5/pull/5253
- Update rebase.yml with workflows permissions by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5255
- autosplit: take image files with uppercase extensions into account by @jdfr in https://github.com/ultralytics/yolov5/pull/5269
- take EXIF orientation tags into account when fixing corrupt images by @jdfr in https://github.com/ultralytics/yolov5/pull/5270
- More informative
EarlyStopping()message by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5303 - Uncomment OpenCV 4.5.4 requirement in detect.py by @SamFC10 in https://github.com/ultralytics/yolov5/pull/5305
- Weights download script minor improvements by @CristiFati in https://github.com/ultralytics/yolov5/pull/5213
- Small fixes to docstrings by @zhiqwang in https://github.com/ultralytics/yolov5/pull/5313
- W&B: Media panel fix by @AyushExel in https://github.com/ultralytics/yolov5/pull/5317
- Add
autobatchfeature for bestbatch-sizeestimation by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5092 - Update
AutoShape.forward()model.classes example by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5324 - DDP
nlfix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5332 - Add pre-commit CI action by @Borda in https://github.com/ultralytics/yolov5/pull/4982
- W&B: Fix sweep by @AyushExel in https://github.com/ultralytics/yolov5/pull/5402
- Update GitHub issues templates by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5404
- Fix
MixConv2d()remove shortcut + apply depthwise by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5410 - Meshgrid
indexing='ij'for PyTorch 1.10 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5309 - Update
get_loggers()by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/4854 - Update README.md by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5438
- Fixed a small typo in CONTRIBUTING.md by @pranathlcp in https://github.com/ultralytics/yolov5/pull/5445
- Update
check_git_status()to run underROOTworking directory by @MrinalJain17 in https://github.com/ultralytics/yolov5/pull/5441 - Fix tf.py
LoadImages()dataloader return values by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5455 - Remove
check_requirements(('tensorflow>=2.4.1',))by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5476 - Improve GPU name by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5478
- Update torch_utils.py import
LOGGERby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5483 - Add tf.py verification printout by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5484
- Keras CI fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5486
- Delete code-format.yml by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5487
- Fix float zeros format by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5491
- Handle edgetpu model inference by @Namburger in https://github.com/ultralytics/yolov5/pull/5372
- precommit: isort by @Borda in https://github.com/ultralytics/yolov5/pull/5493
- Fix
increment_path()with multiple-suffix filenames by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5518 - Write date in checkpoint file by @developer0hye in https://github.com/ultralytics/yolov5/pull/5514
- Update plots.py feature_visualization path issues by @ys31jp in https://github.com/ultralytics/yolov5/pull/5519
- Update cls bias init by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5520
- Common
is_cocologic betwen train.py and val.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5521 - Fix
increment_path()explicit file vs dir handling by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5523 - Fix detect.py URL inference by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5525
- Update
check_file()avoid repeat URL downloads by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5526 - Update export.py by @nanmi in https://github.com/ultralytics/yolov5/pull/5471
- Update train.py by @wonbeomjang in https://github.com/ultralytics/yolov5/pull/5451
- Suppress ONNX export trace warning by @deepsworld in https://github.com/ultralytics/yolov5/pull/5437
- Update autobatch.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5536
- Update autobatch.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5538
- Update Issue Templates with 💡 ProTip! by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5539
- Update
models/hub/*.yamlfiles for v6.0n release by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5540 intersect_dicts()in hubconf.py fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5542- Fix for *.yaml emojis on load by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5543
- Fix
save_one_box()by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5545 - Inside Ultralytics video https://youtu.be/Zgi9g1ksQHc by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5546
- Add
--conf-thres>> 0.001 warning by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5567 LOGGERconsolidation by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5569- New
DetectMultiBackend()class by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5549 - FROM nvcr.io/nvidia/pytorch:21.10-py3 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5592
- Add
notebook_init()to utils/init.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5488 - Fix
check_requirements()resource warning allocation open file by @ayman-saleh in https://github.com/ultralytics/yolov5/pull/5602 - Update train, val
tqdmto fixed width by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5367 - Update val.py
speedandstudytasks by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5608 np.unique()sort fix for segments by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5609- Improve plots.py robustness by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5616
- HUB dataset previews to JPEG by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5627
- DDP
WORLD_SIZE-safe dataloader workers by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5631 - Default DataLoader
shuffle=Truefor training by @werner-duvaud in https://github.com/ultralytics/yolov5/pull/5623 - AutoAnchor and AutoBatch
LOGGERby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5635 - W&B refactor, handle exceptions, CI example by @AyushExel in https://github.com/ultralytics/yolov5/pull/5618
- Replace 2
transpose()with 1permutein TransformerBlock()` by @dingyiwei in https://github.com/ultralytics/yolov5/pull/5645 - Bump pip from 19.2 to 21.1 in /utils/google_app_engine by @dependabot in https://github.com/ultralytics/yolov5/pull/5661
- Update ci-testing.yml to Python 3.9 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5660
- TFDetect dynamic anchor count assignment fix by @nrupatunga in https://github.com/ultralytics/yolov5/pull/5668
- Update train.py comment to 'Model attributes' by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5670
- Update export.py docstring by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5689
NUM_THREADSleave at least 1 CPU free by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5706- Prune unused imports by @Borda in https://github.com/ultralytics/yolov5/pull/5711
- Explicitly compute TP, FP in val.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5727
- Remove
.autoshape()method by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5694 - SECURITY.md by @IL2006 in https://github.com/ultralytics/yolov5/pull/5695
- Save *.npy features on detect.py
--visualizeby @Zengyf-CVer in https://github.com/ultralytics/yolov5/pull/5701 - Export, detect and validation with TensorRT engine file by @imyhxy in https://github.com/ultralytics/yolov5/pull/5699
- Do not save hyp.yaml and opt.yaml on evolve by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5775
- fix the path error in export.py by @miknyko in https://github.com/ultralytics/yolov5/pull/5778
- TorchScript
torch==1.7.0Path support by @miknyko in https://github.com/ultralytics/yolov5/pull/5781 - W&B: refactor W&B tables by @AyushExel in https://github.com/ultralytics/yolov5/pull/5737
- Scope TF imports in
DetectMultiBackend()by @phodgers in https://github.com/ultralytics/yolov5/pull/5792 - Remove NCOLS from tqdm by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5804
- Refactor new
model.warmup()method by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5810 - GCP VM from Image example by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5814
- Bump actions/cache from 2.1.6 to 2.1.7 by @dependabot in https://github.com/ultralytics/yolov5/pull/5816
- Update
dataset_stats()tocv2.INTER_AREAby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5821 - Fix TensorRT potential unordered binding addresses by @imyhxy in https://github.com/ultralytics/yolov5/pull/5826
- Handle non-TTY
wandb.errors.UsageErrorby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5839 - Avoid inplace modifying
imgsinLoadStreamsby @passerbythesun in https://github.com/ultralytics/yolov5/pull/5850 - Update
LoadImagesret_val=Falsehandling by @gmt710 in https://github.com/ultralytics/yolov5/pull/5852 - Update val.py by @pradeep-vishnu in https://github.com/ultralytics/yolov5/pull/5838
- Update TorchScript suffix to
*.torchscriptby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5856 - Add
--workers 8argument to val.py by @iumyx2612 in https://github.com/ultralytics/yolov5/pull/5857 - Update
plot_lr_scheduler()by @daikankan in https://github.com/ultralytics/yolov5/pull/5864 - Update
nlaftercutout()by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5873 AutoShape()models asDetectMultiBackend()instances by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5845- Single-command multiple-model export by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5882
Detections().tolist()explicit argument fix by @lizeng614 in https://github.com/ultralytics/yolov5/pull/5907- W&B: Fix bug in upload dataset module by @AyushExel in https://github.com/ultralytics/yolov5/pull/5908
- Add *.engine (TensorRT extensions) to .gitignore by @greg2451 in https://github.com/ultralytics/yolov5/pull/5911
- Add ONNX inference providers by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5918
- Add hardware checks to
notebook_init()by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5919 - Revert "Update
plot_lr_scheduler()" by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5920 - Absolute '/content/sample_data' by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5922
- Default PyTorch Hub to
autocast(False)by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5926 - Fix ONNX opset inconsistency with parseargs and run args by @d57montes in https://github.com/ultralytics/yolov5/pull/5937
- Make
select_device()robust tobatch_size=-1by @youyuxiansen in https://github.com/ultralytics/yolov5/pull/5940 - fix .gitignore not tracking existing folders by @pasmai in https://github.com/ultralytics/yolov5/pull/5946
- Update
strip_optimizer()by @iumyx2612 in https://github.com/ultralytics/yolov5/pull/5949 - Add nms and agnostic nms to export.py by @d57montes in https://github.com/ultralytics/yolov5/pull/5938
- Refactor
NUM_THREADSby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5954 - Fix Detections class
tolist()method by @yonomitt in https://github.com/ultralytics/yolov5/pull/5945 - Fix
imgszbug by @d57montes in https://github.com/ultralytics/yolov5/pull/5948 pretrained=Falsefix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5966- make parameter ignore epochs by @jinmc in https://github.com/ultralytics/yolov5/pull/5972
- YOLOv5s6 params and FLOPs fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5977
- Update callbacks.py with
__init__()by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5979 - Increase
ar_thrfrom 20 to 100 for better detection on slender (high aspect ratio) objects by @MrinalJain17 in https://github.com/ultralytics/yolov5/pull/5556 - Allow
--weights URLby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5991 - Recommend
jar xf file.zipfor zips by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5993 - *.torchscript inference
self.jitfix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6007 - Check TensorRT>=8.0.0 version by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6021
- Multi-layer capable
--freezeargument by @youyuxiansen in https://github.com/ultralytics/yolov5/pull/6019 - train -> val comment fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6024
- Add dataset source citations by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6032
- Kaggle
LOGGERfix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6041 - Simplify
set_logging()indexing by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6042 --freezefix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6044- OpenVINO Export by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6057
- Reduce G/D/CIoU logic operations by @jedi007 in https://github.com/ultralytics/yolov5/pull/6074
- Init tensor directly on device by @deepsworld in https://github.com/ultralytics/yolov5/pull/6068
- W&B: track batch size after autobatch by @AyushExel in https://github.com/ultralytics/yolov5/pull/6039
- W&B: Log best results after training ends by @AyushExel in https://github.com/ultralytics/yolov5/pull/6120
- Log best results by @awsaf49 in https://github.com/ultralytics/yolov5/pull/6085
- Refactor/reduce G/C/D/IoU
if: elsestatements by @cmoseses in https://github.com/ultralytics/yolov5/pull/6087 - Add EdgeTPU support by @zldrobit in https://github.com/ultralytics/yolov5/pull/3630
- Enable AdamW optimizer by @bilzard in https://github.com/ultralytics/yolov5/pull/6152
- Update export format docstrings by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6151
- Update greetings.yml by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6165
- [pre-commit.ci] pre-commit suggestions by @pre-commit-ci in https://github.com/ultralytics/yolov5/pull/6177
- Update NMS
max_wh=7680for 8k images by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6178 - Add OpenVINO inference by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6179
- Ignore
*_openvino_model/dir by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6180 - Global export format sort by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6182
- Fix TorchScript on mobile export by @yinrong in https://github.com/ultralytics/yolov5/pull/6183
- TensorRT 7
anchor_gridcompatibility fix by @imyhxy in https://github.com/ultralytics/yolov5/pull/6185 - Add
tensorrt>=7.0.0checks by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6193 - Add CoreML inference by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6195
- Fix
nan-robust stream FPS by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6198 - Edge TPU compiler comment by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6196
- TFLite
--int8'flatbuffers==1.12' fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6216 - TFLite
--int8'flatbuffers==1.12' fix 2 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6217 - Add
edgetpu_compilerchecks by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6218 - Attempt
edgetpu-compilerautoinstall by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6223 - Update README speed reproduction command by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6228
- Update P2-P7
models/hubvariants by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6230 - TensorRT 7 export fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6235
- Fix
cmdstring ontfjsexport by @dart-bird in https://github.com/ultralytics/yolov5/pull/6243 - Enable ONNX
--halfFP16 inference by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6268 - Update export.py with Detect, Validate usages by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6280
- Add
is_kaggle()function by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6285 - Fix
devicecount check by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6290 - Fixing bug multi-gpu training by @hdnh2006 in https://github.com/ultralytics/yolov5/pull/6299
select_device()cleanup by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6302- Fix
train.pyparameter groups desc error by @Otfot in https://github.com/ultralytics/yolov5/pull/6318 - Remove
dataset_stats()autodownload capability by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6303 - Console corrupted -> corrupt by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6338
- TensorRT
assert im.device.type != 'cpu'on export by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6340 export.pyreturn exported files/dirs by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6343export.pyautomaticforward_exportby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6352- Add optional
VERBOSEenvironment variable by @johnk2hawaii in https://github.com/ultralytics/yolov5/pull/6353 - Reuse
de_parallel()rather thanis_parallel()by @imyhxy in https://github.com/ultralytics/yolov5/pull/6354 DEVICE_COUNTinstead ofWORLD_SIZEto calculatenwby @sitecao in https://github.com/ultralytics/yolov5/pull/6324- Flush callbacks when on
--evolveby @AyushExel in https://github.com/ultralytics/yolov5/pull/6374 - FROM nvcr.io/nvidia/pytorch:21.12-py3 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6377
- FROM nvcr.io/nvidia/pytorch:21.10-py3 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6379
- Add
albumentationsto Dockerfile by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6392 - Add
stop_training=Falseflag to callbacks by @haimat in https://github.com/ultralytics/yolov5/pull/6365 - Add
detect.pyGIF video inference by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6410 - Update
greetings.yamlemail address by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6412 - Rename logger from 'utils.logger' to 'yolov5' by @JonathanSamelson in https://github.com/ultralytics/yolov5/pull/6421
- Prefer
tflite_runtimefor TFLite inference if installed by @motokimura in https://github.com/ultralytics/yolov5/pull/6406 - Update workflows by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6427
- Namespace
VERBOSEenv variable toYOLOv5_VERBOSEby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6428 - Add
*.asfvideo support by @toschi23 in https://github.com/ultralytics/yolov5/pull/6436 - Revert "Remove
dataset_stats()autodownload capability" by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6442 - Fix
select_device()for Multi-GPU by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6434 - Fix2
select_device()for Multi-GPU by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6461 - Add Product Hunt social media icon by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6464
- Resolve dataset paths by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6489
- Simplify TF normalized to pixels by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6494
- Improved
export.pyusage examples by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6495 - CoreML inference fix
list()->sorted()by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6496 - Suppress
torch.jit.TracerWarningon export by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6498 - Suppress
export.run()TracerWarningby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6499 - W&B: Remember
batch_sizeon resuming by @AyushExel in https://github.com/ultralytics/yolov5/pull/6512 - Update hyp.scratch-high.yaml
lrf: 0.1by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6525 - TODO issues exempt from stale action by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6530
- Update val_batch*.jpg for Chinese fonts by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6526
- Social icons after text by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6473
- Edge TPU compiler
sudofix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6531 - Edge TPU export 'list index out of range' fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6533
- Edge TPU
tf.lite.experimental.load_delegatefix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6536 - Fixing minor multi-streaming issues with TensoRT engine by @greg2451 in https://github.com/ultralytics/yolov5/pull/6504
- Load checkpoint on CPU instead of on GPU by @bilzard in https://github.com/ultralytics/yolov5/pull/6516
- flake8: code meanings by @Borda in https://github.com/ultralytics/yolov5/pull/6481
- Fix 6 Flake8 issues by @Borda in https://github.com/ultralytics/yolov5/pull/6541
- Edge TPU TF imports fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6542
- Move trainloader functions to class methods by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6559
- Improved AutoBatch DDP error message by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6568
- Fix zero-export handling with
if any(f):by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6569 - Fix
plot_labels()colored histogram bug by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6574 - Allow custom
--evolveproject names by @MattVAD in https://github.com/ultralytics/yolov5/pull/6567 - Add
DATASETS_DIRglobal in general.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6578 - return
optfromtrain.run()by @chf4850 in https://github.com/ultralytics/yolov5/pull/6581 - Fix YouTube dislike button bug in
pafypackage by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6603 - Fix
hyp_evolve.yamlindexing bug by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6604 - Fix
ROOT / datawhen running W&Blog_dataset()by @or-toledano in https://github.com/ultralytics/yolov5/pull/6606 - YouTube dependency fix
youtube_dl==2020.12.2by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6612 - Add YOLOv5n to Reproduce section by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6619
- W&B: Improve resume stability by @AyushExel in https://github.com/ultralytics/yolov5/pull/6611
- W&B: don't log media in evolve by @AyushExel in https://github.com/ultralytics/yolov5/pull/6617
- YOLOv5 Export Benchmarks by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6613
- Fix ConfusionMatrix scale
vmin=0.0by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6638 - Fixed wandb logger
KeyErrorby @imyhxy in https://github.com/ultralytics/yolov5/pull/6637 - Fix yolov3.yaml remove list by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6655
- Validate with 2x
--workersby @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6658 - Validate with 2x
--workerssingle-GPU/CPU fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6659 - Add
--cache valoption by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6663 - Robust
scipy.cluster.vq.kmeanstoo few points by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6668 - Update Dockerfile
torch==1.10.2+cu113by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6669 - FROM nvcr.io/nvidia/pytorch:22.01-py3 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6670
- FROM nvcr.io/nvidia/pytorch:21.10-py3 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6671
- Update Dockerfile reorder installs by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6672
- FROM nvcr.io/nvidia/pytorch:22.01-py3 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6673
- FROM nvcr.io/nvidia/pytorch:21.10-py3 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6677
- Fix TF exports >= 2GB by @zldrobit in https://github.com/ultralytics/yolov5/pull/6292
- Fix
--evolve --bucket gs://...by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6698 - Fix CoreML P6 inference by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6700
- Fix floating point in number of workers by @SamuelYvon in https://github.com/ultralytics/yolov5/pull/6701
- Edge TPU inference fix by @RaffaeleGalliera in https://github.com/ultralytics/yolov5/pull/6686
- Use
export_formats()in export.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6705 - Suppress
torchAMP-CPU warnings by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6706 - Update
nwtomax(nd, 1)by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6714 - GH: add PR template by @Borda in https://github.com/ultralytics/yolov5/pull/6482
- Switch default LR scheduler from cos to linear by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6729
- Updated VOC hyperparameters by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6732
New Contributors (48)
- @YoniChechik made their first contribution in https://github.com/ultralytics/yolov5/pull/5153
- @farleylai made their first contribution in https://github.com/ultralytics/yolov5/pull/5194
- @jdfr made their first contribution in https://github.com/ultralytics/yolov5/pull/5269
- @pranathlcp made their first contribution in https://github.com/ultralytics/yolov5/pull/5445
- @MrinalJain17 made their first contribution in https://github.com/ultralytics/yolov5/pull/5441
- @Namburger made their first contribution in https://github.com/ultralytics/yolov5/pull/5372
- @ys31jp made their first contribution in https://github.com/ultralytics/yolov5/pull/5519
- @nanmi made their first contribution in https://github.com/ultralytics/yolov5/pull/5471
- @wonbeomjang made their first contribution in https://github.com/ultralytics/yolov5/pull/5451
- @deepsworld made their first contribution in https://github.com/ultralytics/yolov5/pull/5437
- @ayman-saleh made their first contribution in https://github.com/ultralytics/yolov5/pull/5602
- @werner-duvaud made their first contribution in https://github.com/ultralytics/yolov5/pull/5623
- @nrupatunga made their first contribution in https://github.com/ultralytics/yolov5/pull/5668
- @IL2006 made their first contribution in https://github.com/ultralytics/yolov5/pull/5695
- @Zengyf-CVer made their first contribution in https://github.com/ultralytics/yolov5/pull/5701
- @miknyko made their first contribution in https://github.com/ultralytics/yolov5/pull/5778
- @phodgers made their first contribution in https://github.com/ultralytics/yolov5/pull/5792
- @passerbythesun made their first contribution in https://github.com/ultralytics/yolov5/pull/5850
- @gmt710 made their first contribution in https://github.com/ultralytics/yolov5/pull/5852
- @pradeep-vishnu made their first contribution in https://github.com/ultralytics/yolov5/pull/5838
- @iumyx2612 made their first contribution in https://github.com/ultralytics/yolov5/pull/5857
- @daikankan made their first contribution in https://github.com/ultralytics/yolov5/pull/5864
- @lizeng614 made their first contribution in https://github.com/ultralytics/yolov5/pull/5907
- @greg2451 made their first contribution in https://github.com/ultralytics/yolov5/pull/5911
- @youyuxiansen made their first contribution in https://github.com/ultralytics/yolov5/pull/5940
- @pasmai made their first contribution in https://github.com/ultralytics/yolov5/pull/5946
- @yonomitt made their first contribution in https://github.com/ultralytics/yolov5/pull/5945
- @jinmc made their first contribution in https://github.com/ultralytics/yolov5/pull/5972
- @jedi007 made their first contribution in https://github.com/ultralytics/yolov5/pull/6074
- @awsaf49 made their first contribution in https://github.com/ultralytics/yolov5/pull/6085
- @cmoseses made their first contribution in https://github.com/ultralytics/yolov5/pull/6087
- @bilzard made their first contribution in https://github.com/ultralytics/yolov5/pull/6152
- @pre-commit-ci made their first contribution in https://github.com/ultralytics/yolov5/pull/6177
- @yinrong made their first contribution in https://github.com/ultralytics/yolov5/pull/6183
- @dart-bird made their first contribution in https://github.com/ultralytics/yolov5/pull/6243
- @hdnh2006 made their first contribution in https://github.com/ultralytics/yolov5/pull/6299
- @Otfot made their first contribution in https://github.com/ultralytics/yolov5/pull/6318
- @johnk2hawaii made their first contribution in https://github.com/ultralytics/yolov5/pull/6353
- @sitecao made their first contribution in https://github.com/ultralytics/yolov5/pull/6324
- @haimat made their first contribution in https://github.com/ultralytics/yolov5/pull/6365
- @JonathanSamelson made their first contribution in https://github.com/ultralytics/yolov5/pull/6421
- @motokimura made their first contribution in https://github.com/ultralytics/yolov5/pull/6406
- @toschi23 made their first contribution in https://github.com/ultralytics/yolov5/pull/6436
- @MattVAD made their first contribution in https://github.com/ultralytics/yolov5/pull/6567
- @chf4850 made their first contribution in https://github.com/ultralytics/yolov5/pull/6581
- @or-toledano made their first contribution in https://github.com/ultralytics/yolov5/pull/6606
- @SamuelYvon made their first contribution in https://github.com/ultralytics/yolov5/pull/6701
- @RaffaeleGalliera made their first contribution in https://github.com/ultralytics/yolov5/pull/6686
Full Changelog: https://github.com/ultralytics/yolov5/compare/v6.0...v6.1