Commit Graph
100 Commits
Author SHA1 Message Date
Glenn Jocher 956be8e642 YOLOv5 release v6.0 (#5141)
* Update P5 models

* Update P6 models

* Update with GFLOPs and Params

* Update with GFLOPs and Params

* Update README

* Update

* Update README

* Update

* Update

* Add times

* Update README

* Update results

* Update results

* Update results

* Update hyps

* Update plots

* Update plots

* Update README.md

* Add nano models to hubconf.py
2021-10-11 23:47:18 -07:00
Glenn Jocher 0bf24cf641 Add OpenCV DNN option for ONNX inference (#5136)
* Add OpenCV DNN option for ONNX inference

Usage:

```bash
python detect.py --weights yolov5s.onnx  # ONNX Runtime inference
python detect.py --weights yolov5s.onnx -dnn  # OpenCV DNN inference
```

* DNN prediction to tensor

* Update detect.py
2021-10-11 12:39:20 -07:00
Glenn Jocher 4cf7d487a6 Update plots.py (#5127) 2021-10-11 01:59:22 -07:00
Glenn Jocher 7d37b3c52e Update val.py pad = 0.0 if task == speed else 0.5 (#5121)
* Update val.py `pad = 0.0 if task == speed else 0.5`

* Cleanup
2021-10-10 23:20:42 -07:00
Glenn Jocher ba4b79de8b Update val.py --speed and --study usages (#5120) 2021-10-10 21:15:28 -07:00
Glenn Jocher 4f9718abe6 Pass --device for --task study (#5118) 2021-10-10 15:07:26 -07:00
Glenn Jocher 276b674513 Fix SKU-110K HUB: OSError (#5106) 2021-10-09 00:12:59 -07:00
Glenn Jocher 57ce73cd4f Update datasets.py comments (#5088) 2021-10-07 16:04:08 -07:00
Glenn Jocher ce8e5dc8bb Update Dockerfile to ADD Arial.ttf (#5084)
* Update Dockerfile to `ADD` Arial.ttf

Fix for `Arial.ttf download in Docker` #5078

* Cleanup

* Cleanup2
2021-10-07 14:16:33 -07:00
Glenn Jocher 070af88108 Fix yaml.safe_load() ignore emoji errors (#5060) 2021-10-05 13:41:52 -07:00
Glenn Jocher 5afc9c25ef Implement --save-period locally (#5047)
This PR adds a new training argument `--save-period` to save training checkpoints every `x` epochs. To save training every 50 epochs for example:
```
python train.py --save-period 50  # saves epoch50.pt, epoch100.pt, epoch150.pt, ... etc.
```

This saved checkpoints in addition to existing last.pt and best.pt checkpoints and does not affect their behavior. Default value is -1, i.e. disabled.
2021-10-04 18:48:46 -07:00
Glenn Jocher d133968b1e Clip TTA Augmented Tails (#5028)
* Clip TTA Augmented Tails

Experimental TTA update.

* Update yolo.py

* Update yolo.py

* Update yolo.py

* Update yolo.py
2021-10-04 15:48:55 -07:00
Glenn Jocher b0ade48457 Fix missing opt.device on --task study (#5031) 2021-10-02 17:55:55 -07:00
Glenn Jocher cce7e78fae Created using Colaboratory 2021-09-30 19:10:55 -07:00
Glenn Jocher 89a6e9ffa7 Compute loss on final val (#5017) 2021-09-30 15:16:11 -07:00
Glenn Jocher b20e381492 Update README.md (#5015) 2021-09-30 14:06:00 -07:00
Glenn Jocher 452e84703c Update train.py (#5014) 2021-09-30 13:57:53 -07:00
Glenn Jocher ba99092304 Update W&B README (#5006) 2021-09-30 00:35:00 -07:00
Glenn Jocher 1916226841 Created using Colaboratory 2021-09-29 22:18:16 -07:00
Glenn Jocher 42354d7025 Update README.md 2021-09-29 16:56:10 -07:00
Glenn Jocher cd35a009ba Revert torch.hub.load() test (#4986)
Temporarily reverts https://github.com/ultralytics/yolov5/pull/4978 until torch 1.10 is released, which should resolve `urllib.error.HTTPError: HTTP Error 403: rate limit exceeded` errors generated by torch hub from GitHub actions runners.
2021-09-28 20:11:20 -07:00
Glenn Jocher 9988059b10 Clickable CI badge (#4985) 2021-09-28 17:46:14 -07:00
Glenn Jocher 6b19f728a1 Created using Colaboratory 2021-09-28 17:33:48 -07:00
Glenn Jocher cff7d2af45 Created using Colaboratory 2021-09-28 17:29:05 -07:00
Glenn Jocher 0c93ec762a Faster --img 64 CI tests (#4979) 2021-09-28 12:41:28 -07:00
Glenn Jocher 94705a9528 Add Hub custom models to CI tests (#4978)
* Update ci-testing.yml for Hub custom model tests

* Update ci-testing.yml
2021-09-28 12:28:18 -07:00
Glenn Jocher 38c779b099 Created using Colaboratory 2021-09-28 10:04:56 -07:00
Glenn Jocher fb982d6030 Fix relative ROOT Pytorch Hub custom model bug (#4974)
* Fix relative `ROOT` Pytorch Hub custom model bug

* Update yolo.py
2021-09-28 06:36:12 -07:00
Glenn Jocher 2993c3fa7a Add roboflow (#4956) 2021-09-27 19:00:05 -07:00
Glenn Jocher 3aeb57d66f Created using Colaboratory 2021-09-27 18:32:22 -07:00
Glenn Jocher 5ed28603cf Update relative ROOT logic (#4955)
* Update relative `ROOT` logic

* python 3.9 Path().is_relative_to() removal
2021-09-27 18:26:41 -07:00
Glenn Jocher 4e04cb0dc8 Allow YOLOv5 execution from arbitrary cwd (#4954)
* Allow YOLOv5 execution from arbitrary `cwd`

* Fix str bugs
2021-09-27 17:40:20 -07:00
Glenn Jocher a820b43aca Automatic Chinese fonts plotting (#4951)
* Automatic Chinese fonts plotting

* Default PIL=False
2021-09-27 13:48:15 -07:00
Glenn Jocher c5ba2abb4a Update Dockerfile (#4935) 2021-09-26 19:16:14 -07:00
Glenn Jocher 5a8e4343d8 Scope check_file() search space (#4933)
`check_file()` is now limited to searching opt-in directories: /data, /models, /utils. This prevents large non-project directories like /.git and /venv from being searched, which may cause `check_file()` to slow significantly.
2021-09-26 17:11:46 -07:00
Glenn Jocher 793383232f Update default Albumentations (#4931) 2021-09-26 12:10:33 -07:00
Glenn Jocher d856c48298 Validate best.pt on train end (#4889)
* Validate best.pt on train end

* 0.7 iou for COCO only

* pass callbacks

* active model.float() if not half

* print Validating best.pt...

* add newline
2021-09-26 11:54:53 -07:00
Glenn Jocher e687873436 Add Slack Forum badge to README (#4930)
Add badge with link to join the new YOLOv5 Slack Forum!
https://join.slack.com/t/ultralytics/shared_invite/zt-w29ei8bp-jczz7QYUmDtgo6r6KcMIAg
2021-09-26 10:54:55 -07:00
Glenn Jocher 39c17ce0b9 Fix root referenced before assignment (#4920)
* Fix `root` referenced before assignment

Fix for bug introduced by #4919 discovered on VOC autodownload:
```
python train.py --data VOC.yaml
```

* Cleanup
2021-09-25 09:16:14 -07:00
Glenn Jocher a64a4c839f Replace os.system('unzip file.zip') -> ZipFile.extractall() (#4919)
* Replace `os.system('unzip file.zip')` -> `ZipFile.extractall()`

* Cleanup
2021-09-25 08:52:36 -07:00
Glenn Jocher 8ad9e4ed5b Annotator check_font() RANK -1 remove progress (#4864)
* Annotator `check_font()` RANK -1 remove progress

* Cleanup
2021-09-20 13:57:23 +02:00
Glenn Jocher 2b3109eeb0 Fix DDP destruction LOGGER.info() (#4863) 2021-09-20 13:12:48 +02:00
Glenn Jocher 2809616345 Update Dockerfile (#4862) 2021-09-20 13:10:41 +02:00
Glenn Jocher 40d1c80503 Update Dockerfile (#4861) 2021-09-20 12:22:24 +02:00
Glenn Jocher 9ef94940aa Update greetings.yml (#4856) 2021-09-18 18:43:26 +02:00
Glenn Jocher 4c839eeb10 Simplify check_requirements() usage (#4855)
* Simplify `check_requirements()` usage

* remove assert, print()
2021-09-18 18:34:30 +02:00
Glenn Jocher 4d1a2ac87e Update sys.path.append(str(ROOT)) (#4852)
* Update `sys.path.append(str(ROOT))`

* Cleanup
2021-09-18 15:02:08 +02:00
Glenn Jocher 3732f9ac8a Refactor argparser printing to print_args() (#4850)
* Refactor argparser printing to `print_args()`

* Cleanup
2021-09-18 14:16:19 +02:00
Glenn Jocher 84bfa89236 Consolidate init_seeds() (#4849) 2021-09-18 13:28:42 +02:00
Glenn Jocher 4fdaec0449 Single cache_version definition (#4846)
Defines dataset labels *.cache version in a single place, fixing a bug introduced in #4845.
2021-09-17 18:01:52 +02:00
Glenn Jocher fe39562a5f Sorted datasets update to cache_labels() (#4845)
PR should produce datasets sorted alphabetically by filename. Cache version incremented to 0.5. 

Note: will force a one-time re-caching of existing datasets on first-use.
2021-09-17 17:35:45 +02:00
Glenn Jocher 3a822a22ce PIL.ImageDraw.text(anchor=...) removal, reduce to >=7.1.2 (#4842)
* Unpin Pillow

* Update requirements.txt

* Update plots.py
2021-09-17 13:02:37 +02:00
Glenn Jocher e83792e65c Created using Colaboratory 2021-09-17 11:40:47 +02:00
Glenn Jocher 850f98f508 Created using Colaboratory 2021-09-17 11:39:00 +02:00
Glenn Jocher 27a4736e96 Fix val.py study plot (#4831)
* Fix val.py study plot

* call plot_val_study

* Rename plot_study_txt to plot_val_study
2021-09-16 17:55:58 +02:00
Glenn Jocher 6b44ecd53d Fix 'PyTorch starting from' for URL weights (#4828)
Follows #4823
2021-09-16 14:38:35 +02:00
Glenn Jocher 0dc725e3dc Refactor forward() method profiling (#4816) 2021-09-16 09:47:34 +02:00
Glenn Jocher 621b6d5ba8 Evolution --resume fix (#4802)
Also disable `/weights` dir creation when evolving as no weights are saved and empty folder causes user expectations of weights.
2021-09-15 13:13:33 +02:00
Glenn Jocher b74dd4ba4f Add --int8 argument (#4799)
* Add `--int8` argument

* parents[0] bug fix

* Fix order
2021-09-15 11:33:46 +02:00
Glenn Jocher aa1859909c Update ci-testing.yml (#4772) 2021-09-12 23:40:28 +02:00
Glenn Jocher b161edf873 Update ci-testing.yml (#4770) 2021-09-12 17:55:41 +02:00
Glenn Jocher c3a93d783d Add TensorFlow formats to export.py (#4479)
* Initial commit

* Remove unused export_torchscript return

* ROOT variable

* Add prefix to fcn arg

* fix ROOT

* check_yaml into run()

* interim fixes

* imgsz=(320, 320)

* Hardcode tf_raw_resize False

* Finish opt elimination

* Update representative_dataset_gen()

* Update export.py with TF methods

* SiLU and GraphDef fixes

* file_size() directory handling feature

* export fixes

* add lambda: to representative_dataset

* Detect training False default

* Fuse false for TF models

* Embed agnostic NMS arguments

* Remove lambda

* TensorFlow.js export success

* Add pb to Usage

* Add *_tfjs_model/ to ignore files

* prepend YOLOv5 to function headers

* Remove end --- comments

* parameterize tfjs export pb file

* update run() data default /ROOT

* update --include help

* update imports

* return ct_model

* Consolidate TFLite export

* pb prerequisite to tfjs

* TF modules CamelCase

* Remove exports from tf.py and cleanup

* pass agnostic NMS arguments

* CI

* CI

* ignore *_web_model/

* Add tensorflow to CI dependencies

* CI tensorflow-cpu

* Update requirements.txt

* Remove tensorflow check_requirement

* CI coreml tfjs

* export only onnx torchscript

* reorder exports torchscript first
2021-09-12 15:52:24 +02:00
Glenn Jocher c47be26f34 Replace path.absolute() with path.resolve() (#4763) 2021-09-11 22:46:33 +02:00
Glenn Jocher cd810c8286 Centralize user_config_dir() decision making (#4755) 2021-09-11 16:32:08 +02:00
Glenn Jocher 22ee6fb7c1 Update is_writeable() for 2 methods (#4744)
* Writeable test

* Fix

* Cleanup
2021-09-10 17:52:33 +02:00
Glenn Jocher ff35292520 Add TF and TFLite models to .dockerignore (#4748) 2021-09-10 17:52:21 +02:00
Glenn Jocher 6c554b75ea Add TF and TFLite models to .gitignore (#4747) 2021-09-10 17:51:22 +02:00
Glenn Jocher a144536f88 Fix is_writeable() for 3 OS support (#4743)
* Fix `is_writeable()` for 3 OS support

* Update general.py
2021-09-10 17:06:22 +02:00
Glenn Jocher 7af1b4c266 Improved detect.py timing (#4741)
* Improved detect.py timing

* Eliminate 1 time_sync() call

* Inference-only time

* dash

* #Save section

* Cleanup
2021-09-10 14:34:09 +02:00
Glenn Jocher c5360f6e70 Fix --data from_HUB.zip (#4732)
@KalenMike
2021-09-09 18:01:59 +02:00
Glenn Jocher 4a025ae97f Fix user_config_dir() for GCP/AWS functions (#4726)
* Fix `user_config_dir()` for GCP/AWS functions

Compatability fix for GCP functions and AWS lambda for user config directory in https://github.com/ultralytics/yolov5/pull/4628

* Windows skip check
2021-09-09 17:57:46 +02:00
Glenn Jocher 8e94bf62d9 Add user_config_dir('Ultralytics') (#4715)
* Add `user_config_dir`

* Linux to .config
2021-09-08 18:13:59 +02:00
Glenn Jocher 25a7e1dae5 Update check_yaml() comment (#4713)
* Update `check_yaml()` comment

* Cleanup
2021-09-08 16:01:03 +02:00
Glenn Jocher f984cce52a Fix check_suffix() (#4712)
Fix a bug when `file=''`
2021-09-08 15:06:31 +02:00
Glenn Jocher a2b3c71636 Add suffix checks (#4711)
* Add suffix checks

* Cleanup

* Cleanup2

* Cleanup3
2021-09-08 14:36:12 +02:00
Glenn Jocher 548745181a EarlyStopper updates (#4679) 2021-09-05 19:09:53 +02:00
Glenn Jocher fad57c29cd Fix is_coco on missing data['val'] key (#4642) 2021-09-01 16:30:14 +02:00
Glenn Jocher 234e8ae6fa Fix for plot_evolve() string argument (#4639) 2021-09-01 15:00:13 +02:00
Glenn Jocher de534e9221 Fix 3 for Arial.ttf redownloads with hub inference (#4629)
Fix 3 for Arial.ttf redownloads with hub inference, follow-on to #4628.
2021-08-31 20:54:10 +02:00
Glenn Jocher a4e8f78c5e Fix 2 for Arial.ttf redownloads with hub inference (#4628) 2021-08-31 20:05:17 +02:00
Glenn Jocher ba0f80874f Fix for Arial.ttf redownloads with hub inference (#4627) 2021-08-31 15:01:41 +02:00
Glenn Jocher 50a9828679 DDP torch.jit.trace() --sync-bn fix (#4615)
* Remove assert

* debug0

* trace=not opt.sync

* sync to sync_bn fix

* Cleanup
2021-08-30 18:35:07 +02:00
Glenn Jocher bb5ebc290e Close matplotlib plots after opening (#4612)
* Close plots

* Replace fig.close() for plt.close()
2021-08-30 17:22:21 +02:00
Glenn Jocher 3a72d4a7e3 Update check_git_status() warning (#4610) 2021-08-30 17:05:45 +02:00
Glenn Jocher e7d1842a98 Auto-download Arial.ttf on init (#4606)
* Auto-download Arial.ttf on init

* Fix ROOT
2021-08-30 14:58:22 +02:00
Glenn Jocher bb4da083d1 Created using Colaboratory 2021-08-30 14:33:53 +02:00
Glenn Jocher dc13820c9d TensorBoard on_train_end() speed improvements (#4605) 2021-08-30 13:01:41 +02:00
Glenn Jocher b894e69dfc Update mosaic plots font size (#4596) 2021-08-29 18:05:49 +02:00
Glenn Jocher bfad364455 Created using Colaboratory 2021-08-29 17:56:35 +02:00
Glenn Jocher dbbc6b5c48 Re-order plots.py to class-first (#4595) 2021-08-29 17:44:51 +02:00
Glenn Jocher e5e5ebc799 Auto-UTF handling (#4594) 2021-08-29 17:15:18 +02:00
Glenn Jocher de44376d1b Create Annotator() class (#4591)
* Add Annotator() class

* Download Arial

* 2x for loop

* Cleanup

* tuple 2 list

* max_size=1920

* bold logging results to

* tolist()

* im = annotator.im

* PIL save in detect.py

* Smart asarray in detect.py

* revert to cv2.imwrite

* Cleanup

* Return result asarray

* Add `Profile()` profiler

* CamelCase Timeout

* Resize after mosaic

* pillow>=8.0.0

* daemon imwrite

* Add cv2 support

* Remove plot_wh_methods and plot_one_box

* pil=False for hubconf.py annotations

* im.shape bug fix

* colorstr common.py

* join daemons

* Update t.daemon

* Removed daemon saving
2021-08-29 16:46:13 +02:00
Glenn Jocher bbfafeabdb Add Profile() profiler (#4587)
* Add `Profile()` profiler

* CamelCase Timeout
2021-08-29 13:49:04 +02:00
Glenn Jocher d7aa3f153d Remove image_weights DDP code (#4579)
* Initial commit

* Update
2021-08-28 19:17:21 +02:00
Glenn Jocher 93cc015748 Add EarlyStopping feature (#4576)
* Add EarlyStopping feature

* Add comment

* Cleanup

* Cleanup2

* debug

* debug2

* debug3

* debug3

* debug4

* debug5

* debug6

* debug7

* debug8

* debug9

* debug10

* debug11

* debug12

* Cleanup

* Add TODO for known DDP issue
2021-08-28 19:03:52 +02:00
Glenn Jocher 8b18b66304 ONNX opset 13 (#4566) 2021-08-27 16:00:39 +02:00
Glenn Jocher 8ac96b7975 Fix for AP calculation limits 0.0 - 1.0 (#4563)
This PR brings alignment in AP computation practices with Detectron2 and MMDetection. 

Problem first noted by @yusiyoh in https://github.com/ultralytics/yolov5/issues/4546
2021-08-27 13:23:29 +02:00
Glenn Jocher e899d6e8fb Fix for corrupt JPEGs auto-fix PR (#4560)
Auto-fix corrupt JPEGs PR introduced a bug whereby the f.seek() operation read all of the bytes in the image, resulting in the PIL image having nothing to read upon the .save() operation. 

Fix was to re-open the image using PIL before saving.
2021-08-27 13:01:21 +02:00
Glenn Jocher 11f85e7e71 Auto-fix corrupt JPEGs (#4548)
* Autofix corrupt JPEGs

This PR automatically re-saves corrupt JPEGs and trains with the resaved images. WARNING: this will overwrite the existing corrupt JPEGs in a dataset and replace them with correct JPEGs, though the filesize may increase and the image contents may not be exactly the same due to lossy JPEG compression schemes. Results may vary by JPEG decoder and hardware.

Current behavior is to exclude corrupt JPEGs from training with a warning to the user, but many users have been complaining about large parts of their dataset being excluded from training.

* Clarify re-save reason
2021-08-26 15:51:04 +02:00
Glenn Jocher 2da6444c92 Fix for python models/yolo.py --profile (#4541)
Profiling fix copies input to Detect layer to circumvent inplace changes to the feature maps.
2021-08-25 21:23:28 +02:00