Glenn Jocher
33712d6dd0
Global Wheat Detection 2020 Dataset Auto-Download ( #2968 )
...
* Create GlobalWheat2020.yaml
* Update and rename visdrone.yaml to VisDrone.yaml
* Update GlobalWheat2020.yaml
2021-04-28 20:11:02 +02:00
Glenn Jocher
2c7c075fb1
Update restapi.py ( #2967 )
2021-04-28 17:50:07 +02:00
Glenn Jocher
57812df68c
New Colors() class ( #2963 )
2021-04-28 16:05:14 +02:00
Glenn Jocher
4200674a13
Add yolov5/ to sys.path() for *.py subdir exec ( #2949 )
...
* Add yolov5/ to sys.path() for *.py subdir exec
* Update export.py
2021-04-27 17:02:07 +02:00
Glenn Jocher
4890499344
Improved yolo.py profiling ( #2940 )
...
* Improved yolo.py profiling
Improved column order and labelling.
* Update yolo.py
2021-04-26 23:58:21 +02:00
Glenn Jocher
1849916726
Check_requirements() enclosing apostrophe bug fix ( #2929 )
...
This fixes a bug where the '>' symbol in python package requirements was not running correctly with subprocess.check_output() commands.
2021-04-25 23:33:25 +02:00
Glenn Jocher
9c7bb5a52c
ACON Activation batch-size 1 bug patch ( #2901 )
...
* ACON Activation batch-size 1 bug path
This is not a great solution to https://github.com/nmaac/acon/issues/4 but it's all I could think of at the moment.
WARNING: YOLOv5 models with MetaAconC() activations are incapable of running inference at batch-size 1 properly due to a known bug in https://github.com/nmaac/acon/issues/4 with no known solution.
* Update activations.py
* Update activations.py
* Update activations.py
* Update activations.py
2021-04-25 22:54:07 +02:00
Glenn Jocher
3665c0f59b
test.py native --single-cls ( #2928 )
2021-04-25 20:05:16 +02:00
Glenn Jocher
de19d396e7
Update visdrone.yaml ( #2921 )
2021-04-24 16:28:27 +02:00
Glenn Jocher
45632b2704
Update download() for tar.gz files ( #2919 )
...
* Update download() for tar.gz files
* Update general.py
2021-04-24 15:53:15 +02:00
Glenn Jocher
1b1ab4cca2
Add file_size() function ( #2911 )
...
* Add file_size() function
* Update export.py
2021-04-24 01:31:11 +02:00
Glenn Jocher
646386ff09
Update export.py for 2 dry runs ( #2910 )
...
* Update export.py for 2 dry runs
* Update export.py
2021-04-24 00:10:38 +02:00
Glenn Jocher
a2a514dec8
Update export.py ( #2909 )
2021-04-23 23:50:02 +02:00
Glenn Jocher
28db237639
Default optimize_for_mobile() on TorchScript models ( #2908 )
...
Per https://pytorch.org/tutorials/recipes/script_optimized.html this should improve performance on torchscript models (and maybe coreml models also since coremltools operates on a torchscript model input, though this still requires testing).
2021-04-23 21:21:58 +02:00
Glenn Jocher
14d2d2d75f
Update google_utils.py ( #2900 )
2021-04-22 20:27:32 +02:00
Glenn Jocher
cdb678f418
Update yolo.py ( #2899 )
2021-04-22 19:27:21 +02:00
Glenn Jocher
264d860f8d
ACON activation function ( #2893 )
...
* ACON Activation Function
## 🚀 Feature
There is a new activation function [ACON (CVPR 2021)](https://arxiv.org/pdf/2009.04759.pdf ) that unifies ReLU and Swish.
ACON is simple but very effective, code is here: https://github.com/nmaac/acon/blob/main/acon.py#L19

The improvements are very significant:

## Alternatives
It also has an enhanced version meta-ACON that uses a small network to learn beta explicitly, which may influence the speed a bit.
## Additional context
[Code](https://github.com/nmaac/acon ) and [paper](https://arxiv.org/pdf/2009.04759.pdf ).
* Update activations.py
2021-04-22 17:26:05 +02:00
Glenn Jocher
78fd077657
VisDrone2019-DET Dataset Auto-Download ( #2882 )
...
* VisDrone Dataset Auto-Download
* add visdrone.yaml
* cleanup
* add VisDrone2019-DET-test-dev
* cleanup VOC
2021-04-22 12:10:26 +02:00
Glenn Jocher
f7bc685c2c
Implement yaml.safe_load() ( #2876 )
...
* Implement yaml.safe_load()
* yaml.safe_dump()
2021-04-21 14:34:45 +02:00
Glenn Jocher
c5c647e281
Update increment_path() to handle file paths ( #2867 )
2021-04-20 19:47:07 +02:00
Glenn Jocher
238583b7d5
Update FUNDING.yml ( #2833 )
...
* Update FUNDING.yml
* move FUNDING.yml to ./github
2021-04-18 14:40:58 +02:00
Glenn Jocher
803f51bcee
Create FUNDING.yml ( #2832 )
2021-04-18 14:28:27 +02:00
Glenn Jocher
c15e25c40f
PyTorch Hub cv2 .save() .show() bug fix ( #2831 )
...
* PyTorch Hub cv2 .save() .show() bug fix
cv2.rectangle() was failing on non-contiguous np array inputs. This checks for contiguous arrays and applies is necessary:
```python
imgs[i] = im if im.data.contiguous else np.ascontiguousarray(im) # update
```
* Update plots.py
```python
assert im.data.contiguous, 'Image not contiguous. Apply np.ascontiguousarray(im) to plot_on_box() input image.'
```
* Update hubconf.py
Expand CI tests to OpenCV image.
2021-04-18 13:47:40 +02:00
Glenn Jocher
aff03be35a
YouTube Bug Fix ( #2818 )
...
Fix for #2810
```shell
python detect.py --source 0
```
introduced by YouTube Livestream Detection PR #2752
2021-04-16 17:58:28 +02:00
Glenn Jocher
1f3e482bce
ONNX Simplifier ( #2815 )
...
* ONNX Simplifier
Add ONNX Simplifier to ONNX export pipeline in export.py. Will auto-install onnx-simplifier if onnx is installed but onnx-simplifier is not.
* Update general.py
2021-04-16 14:03:27 +02:00
Glenn Jocher
e5d71223b8
Update README.md
2021-04-15 16:45:50 +02:00
Glenn Jocher
1487bc84ff
Update README.md
2021-04-12 13:27:40 +02:00
Glenn Jocher
860ca98832
Created using Colaboratory
2021-04-12 13:10:08 +02:00
Glenn Jocher
cac8a765c8
Created using Colaboratory
2021-04-12 13:02:40 +02:00
Glenn Jocher
2eab46e2cf
Update tutorial.ipynb
2021-04-12 12:33:04 +02:00
Glenn Jocher
6b718e9127
Created using Colaboratory
2021-04-12 12:31:28 +02:00
Glenn Jocher
54d65160b7
Update tutorial.ipynb
2021-04-12 12:26:28 +02:00
Glenn Jocher
0f395b3e3b
YOLOv5 v5.0 Release patch 1 ( #2764 )
...
* torch.jit.trace(model, img, strict=False)
* Update check_file()
* Update hubconf.py
* Update README.md
2021-04-11 23:11:43 +02:00
Glenn Jocher
f5b8f7d54c
YOLOv5 v5.0 Release ( #2762 )
2021-04-11 19:23:47 +02:00
Glenn Jocher
9029759cb3
Created using Colaboratory
2021-04-11 16:28:32 +02:00
Glenn Jocher
6dd1083bbb
Tensorboard model visualization bug fix ( #2758 )
...
This fix should allow for visualizing YOLOv5 model graphs correctly in Tensorboard by uncommenting line 335 in train.py:
```python
if tb_writer:
tb_writer.add_graph(torch.jit.trace(model, imgs, strict=False), []) # add model graph
```
The problem was that the detect() layer checks the input size to adapt the grid if required, and tracing does not seem to like this shape check (even if the shape is fine and no grid recomputation is required). The following will warn:
https://github.com/ultralytics/yolov5/blob/0cae7576a9241110157cd154fc2237e703c2719e/train.py#L335
Solution is below. This is a YOLOv5s model displayed in TensorBoard. You can see the Detect() layer merging the 3 layers into a single output for example, and everything appears to work and visualize correctly.
```python
tb_writer.add_graph(torch.jit.trace(model, imgs, strict=False), [])
```
<img width="893" alt="Screenshot 2021-04-11 at 01 10 09" src="https://user-images.githubusercontent.com/26833433/114286928-349bd600-9a63-11eb-941f-7139ee6cd602.png ">
2021-04-11 01:33:55 +02:00
Glenn Jocher
0cae7576a9
utils/wandb_logging PEP8 reformat ( #2755 )
...
* wandb_logging PEP8 reformat
* Update wandb_utils.py
2021-04-10 21:09:23 +02:00
Glenn Jocher
b5de52c4cd
torch.cuda.amp bug fix ( #2750 )
...
PR https://github.com/ultralytics/yolov5/pull/2725 introduced a very specific bug that only affects multi-GPU trainings. Apparently the cause was using the torch.cuda.amp decorator in the autoShape forward method. I've implemented amp more traditionally in this PR, and the bug is resolved.
2021-04-09 18:19:49 +02:00
Glenn Jocher
fca5e2a48f
autocast enable=torch.cuda.is_available() ( #2748 )
2021-04-09 13:34:49 +02:00
Glenn Jocher
c03d590320
Add Hub results.pandas() method ( #2725 )
...
* Add Hub results.pandas() method
New method converts results from torch tensors to pandas DataFrames with column names.
This PR may partially resolve issue https://github.com/ultralytics/yolov5/issues/2703
```python
results = model(imgs)
print(results.pandas().xyxy[0])
xmin ymin xmax ymax confidence class name
0 57.068970 391.770599 241.383545 905.797852 0.868964 0 person
1 667.661255 399.303589 810.000000 881.396667 0.851888 0 person
2 222.878387 414.774231 343.804474 857.825073 0.838376 0 person
3 4.205386 234.447678 803.739136 750.023376 0.658006 5 bus
4 0.000000 550.596008 76.681190 878.669922 0.450596 0 person
```
* Update comments
torch example input now shown resized to size=640 and also now a multiple of P6 stride 64 (see https://github.com/ultralytics/yolov5/issues/2722#issuecomment-814785930 )
* apply decorators
* PEP8
* Update common.py
* pd.options.display.max_columns = 10
* Update common.py
2021-04-07 16:28:07 +02:00
Glenn Jocher
c8c8da6079
Update README with collapsable notes ( #2721 )
...
* Update README with collapsable notes.
* cleanup
* center table
2021-04-06 17:54:47 +02:00
Glenn Jocher
ec8979f1d2
Updated filename attributes for YOLOv5 Hub BytesIO ( #2718 )
...
Fix 2 for 'Model predict with forward will fail if PIL image does not have filename attribute' #2702
2021-04-06 13:18:56 +02:00
Glenn Jocher
74276d5189
Updated filename attributes for YOLOv5 Hub results ( #2708 )
...
Proposed fix for 'Model predict with forward will fail if PIL image does not have filename attribute' #2702
2021-04-05 22:20:09 +02:00
Glenn Jocher
9ccfa85249
pip install coremltools onnx ( #2690 )
...
Requested in https://github.com/ultralytics/yolov5/issues/2686
2021-04-02 13:00:46 +02:00
Glenn Jocher
17300a4c7b
autoShape forward im = np.asarray(im) # to numpy ( #2689 )
...
Slight speedup.
2021-04-02 12:36:38 +02:00
Glenn Jocher
2af059c0d8
PyTorch Hub model.save() increment as runs/hub/exp ( #2684 )
...
* PyTorch Hub model.save() increment as runs/hub/exp
This chane will align PyTorch Hub results saving with the existing unified results saving directory structure of
runs/
/train
/detect
/test
/hub
/exp
/exp2
...
* cleanup
2021-04-02 11:55:10 +02:00
Glenn Jocher
b8b862993d
Update README with Tips for Best Results tutorial ( #2682 )
...
* Update README with Tips for Best Results tutorial
* Update README.md
2021-04-01 15:01:00 +02:00
Glenn Jocher
877b826e3a
Created using Colaboratory
2021-04-01 11:31:27 +02:00
Glenn Jocher
51cc0962b5
Update README.md
2021-04-01 11:16:56 +02:00
Glenn Jocher
1b475c1797
Created using Colaboratory
2021-03-30 20:07:18 +02:00
Glenn Jocher
1b100cd53e
Created using Colaboratory ( #2649 )
2021-03-29 16:43:37 +02:00
Glenn Jocher
866bc7d640
Speed profiling improvements ( #2648 )
...
* Speed profiling improvements
* Update torch_utils.py
deepcopy() required to avoid adding elements to model.
* Update torch_utils.py
2021-03-29 15:19:07 +02:00
Glenn Jocher
2bf34f50fd
PyTorch Hub amp.autocast() inference ( #2641 )
...
I think this should help speed up CUDA inference, as currently models may be running in FP32 inference mode on CUDA devices unnecesarily.
2021-03-28 20:23:40 +02:00
Glenn Jocher
ee169834bd
PyTorch Hub custom model to CUDA device fix ( #2636 )
...
Fix for #2630 raised by @Pro100rus32
2021-03-28 17:22:00 +02:00
Glenn Jocher
2e95cf3d79
Improve git_describe() fix 1 ( #2635 )
...
Add stderr=subprocess.STDOUT to catch error messages.
2021-03-28 17:09:06 +02:00
Glenn Jocher
6e8c5b7678
Improve git_describe() ( #2633 )
...
Catch 'fatal: not a git repository' returns and return '' instead (observed in GCP Hub checks).
2021-03-28 15:39:31 +02:00
Glenn Jocher
9b92d3ee76
FROM nvcr.io/nvidia/pytorch:21.03-py3 ( #2623 )
...
Update Docker FROM nvcr.io/nvidia/pytorch:21.03-py3
2021-03-27 18:35:53 +01:00
Glenn Jocher
2dfe32030a
Remove conflicting nvidia-tensorboard package ( #2622 )
...
Attempt to resolve tensorboard Docker error in https://github.com/ultralytics/yolov5/issues/2573
2021-03-27 18:31:53 +01:00
Glenn Jocher
005d7a8c54
Update Detections() self.n comment ( #2620 )
...
```python
self.n = len(self.pred) # number of images (batch size)
```
2021-03-26 21:19:15 +01:00
Glenn Jocher
a57f23d18b
Update detections() self.t = tuple() ( #2617 )
...
* Update detections() self.t = tuple()
Fix multiple results.print() bug.
* Update experimental.py
* Update yolo.py
2021-03-26 13:23:11 +01:00
Glenn Jocher
0ff5aeca61
Create date_modified() ( #2616 )
...
Updated device selection string with fallback for non-git directories.
```python
def select_device(device='', batch_size=None):
# device = 'cpu' or '0' or '0,1,2,3'
s = f'YOLOv5 🚀 {git_describe() or date_modified()} torch {torch.__version__} ' # string
...
```
2021-03-26 12:52:47 +01:00
Glenn Jocher
77415a42e5
Update git_describe() for remote dir usage ( #2606 )
2021-03-26 01:44:00 +01:00
Glenn Jocher
fca16dc4b3
Remove Cython from requirements.txt ( #2604 )
...
Cython should be a dependency of the remaining packages in requirements.txt, so should be installed anyway even if not a direct requirement.
2021-03-25 21:48:25 +01:00
Glenn Jocher
3bb414890a
resume.py typo ( #2603 )
2021-03-25 20:55:20 +01:00
Glenn Jocher
d4456e43b2
Update segment2box() comment ( #2600 )
2021-03-25 15:12:49 +01:00
Glenn Jocher
ad05e37d99
Save webcam results, add --nosave option ( #2598 )
...
This updates the default detect.py behavior to automatically save all inference images/videos/webcams unless the new argument --nosave is used (python detect.py --nosave) or unless a list of streaming sources is passed (python detect.py --source streams.txt)
2021-03-25 14:09:49 +01:00
Glenn Jocher
333ccc5b0f
YOLOv5 PyTorch Hub models >> check_requirements() ( #2592 )
...
Improved user-feedback following requirements auto-update.
2021-03-24 17:51:39 +01:00
Glenn Jocher
75feeb797c
YOLOv5 PyTorch Hub models >> check_requirements() ( #2591 )
...
Prints 'Please restart runtime or rerun command for update to take effect.' following package auto-install to inform users to restart/rerun.
2021-03-24 16:42:54 +01:00
Glenn Jocher
8ace1b1b99
YOLOv5 PyTorch Hub models >> check_requirements() ( #2588 )
...
* YOLOv5 PyTorch Hub models >> check_requirements()
Update YOLOv5 PyTorch Hub requirements.txt path to cache path.
* Update hubconf.py
2021-03-24 16:23:54 +01:00
Glenn Jocher
9f98201dd9
W&B DDP fix 2 ( #2587 )
...
Revert unintentional change to test batch sizes caused by PR https://github.com/ultralytics/yolov5/pull/2125
2021-03-24 15:43:32 +01:00
Glenn Jocher
2bcc89d762
YOLOv5 PyTorch Hub models >> check_requirements() ( #2577 )
...
* Update hubconf.py with check_requirements()
Dependency checks have been missing from YOLOv5 PyTorch Hub model loading, causing errors in some cases when users are attempting to import hub models in unsupported environments. This should examine the YOLOv5 requirements.txt file and pip install any missing or version-conflict packages encountered.
This is highly experimental (!), please let us know if this creates problems in your custom workflows.
* Update hubconf.py
2021-03-24 15:42:00 +01:00
Glenn Jocher
e5b0200cd2
Update tensorboard>=2.4.1 ( #2576 )
...
* Update tensorboard>=2.4.1
Update tensorboard version to attempt to address https://github.com/ultralytics/yolov5/issues/2573 (tensorboard logging fail in Docker image).
* cleanup
2021-03-24 01:29:00 +01:00
Glenn Jocher
2b329b0945
Enhanced check_requirements() with auto-install ( #2575 )
...
* Update check_requirements() with auto-install
This PR builds on an idea I had to automatically install missing dependencies rather than simply report an error message.
YOLOv5 should now 1) display all dependency issues and not simply display the first missing dependency, and 2) attempt to install/update each missing/VersionConflict package.
* cleanup
* cleanup 2
* Check requirements.txt file exists
* cleanup 3
2021-03-24 01:05:59 +01:00
Glenn Jocher
0d891c601e
check_requirements() exclude pycocotools, thop ( #2571 )
...
Exclude non-critical packages from dependency checks in detect.py. pycocotools and thop in particular are not required for inference.
Issue first raised in https://github.com/ultralytics/yolov5/issues/1944 and also raised in https://github.com/ultralytics/yolov5/discussions/2556
2021-03-23 14:25:55 +01:00
Glenn Jocher
1c132a1f94
Update Detections() times=None ( #2570 )
...
Fix for results.tolist() method breaking after YOLOv5 Hub profiling PRshttps://github.com/ultralytics/yolov5/pull/2460 https://github.com/ultralytics/yolov5/pull/2459 and
2021-03-23 14:10:47 +01:00
Glenn Jocher
ed2c74218d
Created using Colaboratory
2021-03-14 23:32:39 -07:00
Glenn Jocher
9b11f0c58b
PyTorch Hub models default to CUDA:0 if available ( #2472 )
...
* PyTorch Hub models default to CUDA:0 if available
* device as string bug fix
2021-03-14 23:16:17 -07:00
Glenn Jocher
2d41e70e82
Scipy kmeans-robust autoanchor update ( #2470 )
...
Fix for https://github.com/ultralytics/yolov5/issues/2394
2021-03-14 21:58:12 -07:00
Glenn Jocher
6f718cee74
Created using Colaboratory
2021-03-13 20:20:09 -08:00
Glenn Jocher
20d879db36
Update tutorial.ipynb
2021-03-13 20:05:21 -08:00
Glenn Jocher
f813f6dcc8
autoShape() speed profiling update ( #2460 )
2021-03-13 20:00:03 -08:00
Glenn Jocher
569757ecc0
Add autoShape() speed profiling ( #2459 )
...
* Add autoShape() speed profiling
* Update common.py
* Create README.md
* Update hubconf.py
* cleanuip
2021-03-13 19:50:34 -08:00
Glenn Jocher
747c2653ee
CVPR 2021 Argoverse-HD autodownload curl ( #2455 )
...
curl preferred over wget for slightly better cross platform compatibility (i.e. out of the box macos compatible).
2021-03-12 22:27:53 -08:00
Glenn Jocher
08d4918d7f
labels.jpg class names ( #2454 )
...
* labels.png class names
* fontsize=10
2021-03-12 22:15:41 -08:00
Glenn Jocher
f4197214aa
Update test.py --task train val study ( #2453 )
...
* Update test.py --task train val study
* update argparser --task
2021-03-12 22:08:42 -08:00
Glenn Jocher
f01f3223d5
Integer printout ( #2450 )
...
* Integer printout
* test.py 'Labels'
* Update train.py
2021-03-12 13:35:44 -08:00
Glenn Jocher
886f1c03d8
DDP after autoanchor reorder ( #2421 )
2021-03-09 23:43:46 -08:00
Glenn Jocher
d5ca8ca34e
CVPR 2021 Argoverse-HD autodownload fix ( #2418 )
2021-03-09 21:07:27 -08:00
Glenn Jocher
e8a2b83268
GCP sudo docker userdata.sh ( #2393 )
...
* GCP sudo docker
* cleanup
2021-03-07 20:21:49 -08:00
Glenn Jocher
7c2c95732c
AWS wait && echo "All tasks done." ( #2391 )
2021-03-07 20:18:30 -08:00
Glenn Jocher
ba18528b47
bbox_iou() stability and speed improvements ( #2385 )
2021-03-06 13:07:34 -08:00
Glenn Jocher
c64fe219b4
ENV HOME=/usr/src/app ( #2382 )
...
Set HOME environment variable per Binder requirements.
https://github.com/binder-examples/minimal-dockerfile
2021-03-05 15:53:57 -08:00
Glenn Jocher
692e1f31dc
--no-cache notebook ( #2381 )
2021-03-05 15:26:27 -08:00
Glenn Jocher
e931b9da33
Resume with custom anchors fix ( #2361 )
...
* Resume with custom anchors fix
* Update train.py
2021-03-03 21:06:36 -08:00
Glenn Jocher
a3ecf0fd64
Anchor override ( #2350 )
2021-03-02 23:08:21 -08:00
Glenn Jocher
fe6ebb96bb
Created using Colaboratory
2021-03-02 19:20:51 -08:00
Glenn Jocher
ab86cec854
FROM nvcr.io/nvidia/pytorch:21.02-py3 ( #2341 )
2021-03-02 13:01:59 -08:00
Glenn Jocher
fab5085674
EMA bug fix 2 ( #2330 )
...
* EMA bug fix 2
* update
2021-03-01 17:13:34 -08:00
Glenn Jocher
fd96810518
remove TTA 1 pixel offset ( #2325 )
2021-02-28 21:14:08 -08:00
Glenn Jocher
c2026a5f35
Update Dockerfile install htop ( #2320 )
2021-02-27 15:55:31 -08:00