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, and support, and provides retrained models at with new default one-cycle linear LR . 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.
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 lrf reduced from 0.2 to 0.1 (https://github.com/ultralytics/yolov5/pull/6525 by @glenn-jocher).
mAPval values are for single-model single-scale on COCO val2017 dataset. Reproduce by python 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 by python val.py --data coco.yaml --img 640 --task speed --batch 1
TTATest Time Augmentation includes reflection and scale augmentations. Reproduce by python 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 tf conversion 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_cuda by @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_end callback 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 autobatch feature for best batch-size estimation 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 nl fix 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 under ROOT working 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 LOGGER by @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_coco logic 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/*.yaml files 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
LOGGER consolidation 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 tqdm to fixed width by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5367
Update val.py speed and study tasks 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=True for training by @werner-duvaud in https://github.com/ultralytics/yolov5/pull/5623
AutoAnchor and AutoBatch LOGGER by @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 1 permute in 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_THREADS leave 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 --visualize by @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.0 Path 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() to cv2.INTER_AREA by @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.UsageError by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5839
Avoid inplace modifyingimgs in LoadStreams by @passerbythesun in https://github.com/ultralytics/yolov5/pull/5850
Update LoadImagesret_val=False handling 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 *.torchscript by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5856
Add --workers 8 argument 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 nl after cutout() by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5873
AutoShape() models as DetectMultiBackend() 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 to batch_size=-1 by @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_THREADS by @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 imgsz bug by @d57montes in https://github.com/ultralytics/yolov5/pull/5948
pretrained=False fix 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_thr from 20 to 100 for better detection on slender (high aspect ratio) objects by @MrinalJain17 in https://github.com/ultralytics/yolov5/pull/5556
Allow --weights URL by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5991
Recommend jar xf file.zip for zips by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/5993
*.torchscript inference self.jit fix 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 --freeze argument 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 LOGGER fix 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
--freeze fix 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: else statements 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=7680 for 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_grid compatibility fix by @imyhxy in https://github.com/ultralytics/yolov5/pull/6185
Add tensorrt>=7.0.0 checks 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_compiler checks by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6218
Attempt edgetpu-compiler autoinstall 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/hub variants 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 cmd string on tfjs export by @dart-bird in https://github.com/ultralytics/yolov5/pull/6243
Enable ONNX --half FP16 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 device count 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.py parameter 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.py return exported files/dirs by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6343
export.py automatic forward_export by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6352
Add optional VERBOSE environment variable by @johnk2hawaii in https://github.com/ultralytics/yolov5/pull/6353
Reuse de_parallel() rather than is_parallel() by @imyhxy in https://github.com/ultralytics/yolov5/pull/6354
DEVICE_COUNT instead of WORLD_SIZE to calculate nw by @sitecao in https://github.com/ultralytics/yolov5/pull/6324
Flush callbacks when on --evolve by @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 albumentations to Dockerfile by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6392
Add stop_training=False flag to callbacks by @haimat in https://github.com/ultralytics/yolov5/pull/6365
Add detect.py GIF video inference by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6410
Update greetings.yaml email 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_runtime for 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 VERBOSE env variable to YOLOv5_VERBOSE by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6428
Add *.asf video 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.py usage 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.TracerWarning on export by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6498
Suppress export.run()TracerWarning by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6499
W&B: Remember batch_size on resuming by @AyushExel in https://github.com/ultralytics/yolov5/pull/6512
Update hyp.scratch-high.yaml lrf: 0.1 by @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 sudo fix 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_delegate fix 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 --evolve project names by @MattVAD in https://github.com/ultralytics/yolov5/pull/6567
Add DATASETS_DIR global in general.py by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6578
return opt from train.run() by @chf4850 in https://github.com/ultralytics/yolov5/pull/6581
Fix YouTube dislike button bug in pafy package by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6603
Fix hyp_evolve.yaml indexing bug by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6604
Fix ROOT / data when running W&B log_dataset() by @or-toledano in https://github.com/ultralytics/yolov5/pull/6606
YouTube dependency fix youtube_dl==2020.12.2 by @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.0 by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6638
Fixed wandb logger KeyError by @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 --workers by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6658
Validate with 2x --workers single-GPU/CPU fix by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6659
Add --cache val option by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6663
Robust scipy.cluster.vq.kmeans too few points by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6668
Update Dockerfile torch==1.10.2+cu113 by @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 torch AMP-CPU warnings by @glenn-jocher in https://github.com/ultralytics/yolov5/pull/6706
Update nw to max(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