PyCharm reformat (#4209)
* PyCharm reformat * YAML reformat * Markdown reformat
This commit is contained in:
parent
750465edae
commit
b60b62e874
|
|
@ -7,21 +7,24 @@ assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Before submitting a bug report, please be aware that your issue **must be reproducible** with all of the following, otherwise it is non-actionable, and we can not help you:
|
Before submitting a bug report, please be aware that your issue **must be reproducible** with all of the following,
|
||||||
|
otherwise it is non-actionable, and we can not help you:
|
||||||
|
|
||||||
- **Current repo**: run `git fetch && git status -uno` to check and `git pull` to update repo
|
- **Current repo**: run `git fetch && git status -uno` to check and `git pull` to update repo
|
||||||
- **Common dataset**: coco.yaml or coco128.yaml
|
- **Common dataset**: coco.yaml or coco128.yaml
|
||||||
- **Common environment**: Colab, Google Cloud, or Docker image. See https://github.com/ultralytics/yolov5#environments
|
- **Common environment**: Colab, Google Cloud, or Docker image. See https://github.com/ultralytics/yolov5#environments
|
||||||
|
|
||||||
If this is a custom dataset/training question you **must include** your `train*.jpg`, `val*.jpg` and `results.png` figures, or we can not help you. You can generate these with `utils.plot_results()`.
|
If this is a custom dataset/training question you **must include** your `train*.jpg`, `val*.jpg` and `results.png`
|
||||||
|
figures, or we can not help you. You can generate these with `utils.plot_results()`.
|
||||||
|
|
||||||
## 🐛 Bug
|
## 🐛 Bug
|
||||||
A clear and concise description of what the bug is.
|
|
||||||
|
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
## To Reproduce (REQUIRED)
|
## To Reproduce (REQUIRED)
|
||||||
|
|
||||||
Input:
|
Input:
|
||||||
|
|
||||||
```
|
```
|
||||||
import torch
|
import torch
|
||||||
|
|
||||||
|
|
@ -30,6 +33,7 @@ c = a / 0
|
||||||
```
|
```
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
|
|
||||||
```
|
```
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "/Users/glennjocher/opt/anaconda3/envs/env1/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3331, in run_code
|
File "/Users/glennjocher/opt/anaconda3/envs/env1/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3331, in run_code
|
||||||
|
|
@ -39,17 +43,17 @@ Traceback (most recent call last):
|
||||||
RuntimeError: ZeroDivisionError
|
RuntimeError: ZeroDivisionError
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Expected behavior
|
## Expected behavior
|
||||||
|
|
||||||
A clear and concise description of what you expected to happen.
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
|
||||||
## Environment
|
## Environment
|
||||||
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
- OS: [e.g. Ubuntu]
|
- OS: [e.g. Ubuntu]
|
||||||
- GPU [e.g. 2080 Ti]
|
- GPU [e.g. 2080 Ti]
|
||||||
|
|
||||||
|
|
||||||
## Additional context
|
## Additional context
|
||||||
|
|
||||||
Add any other context about the problem here.
|
Add any other context about the problem here.
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,8 @@ assignees: ''
|
||||||
|
|
||||||
## Motivation
|
## Motivation
|
||||||
|
|
||||||
<!-- Please outline the motivation for the proposal. Is your feature request related to a problem? e.g., I'm always frustrated when [...]. If this is related to another GitHub issue, please link here too -->
|
<!-- Please outline the motivation for the proposal. Is your feature request related to a problem?
|
||||||
|
e.g., I'm always frustrated when [...]. If this is related to another GitHub issue, please link here too -->
|
||||||
|
|
||||||
## Pitch
|
## Pitch
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,4 @@ assignees: ''
|
||||||
|
|
||||||
## ❔Question
|
## ❔Question
|
||||||
|
|
||||||
|
|
||||||
## Additional context
|
## Additional context
|
||||||
|
|
|
||||||
|
|
@ -8,32 +8,44 @@ We love your input! We want to make contributing to YOLOv5 as easy and transpare
|
||||||
- Proposing a new feature
|
- Proposing a new feature
|
||||||
- Becoming a maintainer
|
- Becoming a maintainer
|
||||||
|
|
||||||
YOLOv5 works so well due to our combined community effort, and for every small improvement you contribute you will be helping push the frontiers of what's possible in AI 😃!
|
YOLOv5 works so well due to our combined community effort, and for every small improvement you contribute you will be
|
||||||
|
helping push the frontiers of what's possible in AI 😃!
|
||||||
|
|
||||||
## Submitting a Pull Request (PR) 🛠️
|
## Submitting a Pull Request (PR) 🛠️
|
||||||
|
|
||||||
Submitting a PR is easy! This example shows how to submit a PR for updating `requirements.txt` in 4 steps:
|
Submitting a PR is easy! This example shows how to submit a PR for updating `requirements.txt` in 4 steps:
|
||||||
|
|
||||||
### 1. Select File to Update
|
### 1. Select File to Update
|
||||||
|
|
||||||
Select `requirements.txt` to update by clicking on it in GitHub.
|
Select `requirements.txt` to update by clicking on it in GitHub.
|
||||||
<p align="center"><img width="800" alt="PR_step1" src="https://user-images.githubusercontent.com/26833433/122260847-08be2600-ced4-11eb-828b-8287ace4136c.png"></p>
|
<p align="center"><img width="800" alt="PR_step1" src="https://user-images.githubusercontent.com/26833433/122260847-08be2600-ced4-11eb-828b-8287ace4136c.png"></p>
|
||||||
|
|
||||||
### 2. Click 'Edit this file'
|
### 2. Click 'Edit this file'
|
||||||
|
|
||||||
Button is in top-right corner.
|
Button is in top-right corner.
|
||||||
<p align="center"><img width="800" alt="PR_step2" src="https://user-images.githubusercontent.com/26833433/122260844-06f46280-ced4-11eb-9eec-b8a24be519ca.png"></p>
|
<p align="center"><img width="800" alt="PR_step2" src="https://user-images.githubusercontent.com/26833433/122260844-06f46280-ced4-11eb-9eec-b8a24be519ca.png"></p>
|
||||||
|
|
||||||
### 3. Make Changes
|
### 3. Make Changes
|
||||||
|
|
||||||
Change `matplotlib` version from `3.2.2` to `3.3`.
|
Change `matplotlib` version from `3.2.2` to `3.3`.
|
||||||
<p align="center"><img width="800" alt="PR_step3" src="https://user-images.githubusercontent.com/26833433/122260853-0a87e980-ced4-11eb-9fd2-3650fb6e0842.png"></p>
|
<p align="center"><img width="800" alt="PR_step3" src="https://user-images.githubusercontent.com/26833433/122260853-0a87e980-ced4-11eb-9fd2-3650fb6e0842.png"></p>
|
||||||
|
|
||||||
### 4. Preview Changes and Submit PR
|
### 4. Preview Changes and Submit PR
|
||||||
Click on the **Preview changes** tab to verify your updates. At the bottom of the screen select 'Create a **new branch** for this commit', assign your branch a descriptive name such as `fix/matplotlib_version` and click the green **Propose changes** button. All done, your PR is now submitted to YOLOv5 for review and approval 😃!
|
|
||||||
|
Click on the **Preview changes** tab to verify your updates. At the bottom of the screen select 'Create a **new branch**
|
||||||
|
for this commit', assign your branch a descriptive name such as `fix/matplotlib_version` and click the green **Propose
|
||||||
|
changes** button. All done, your PR is now submitted to YOLOv5 for review and approval 😃!
|
||||||
<p align="center"><img width="800" alt="PR_step4" src="https://user-images.githubusercontent.com/26833433/122260856-0b208000-ced4-11eb-8e8e-77b6151cbcc3.png"></p>
|
<p align="center"><img width="800" alt="PR_step4" src="https://user-images.githubusercontent.com/26833433/122260856-0b208000-ced4-11eb-8e8e-77b6151cbcc3.png"></p>
|
||||||
|
|
||||||
### PR recommendations
|
### PR recommendations
|
||||||
|
|
||||||
To allow your work to be integrated as seamlessly as possible, we advise you to:
|
To allow your work to be integrated as seamlessly as possible, we advise you to:
|
||||||
- ✅ Verify your PR is **up-to-date with origin/master.** If your PR is behind origin/master an automatic [GitHub actions](https://github.com/ultralytics/yolov5/blob/master/.github/workflows/rebase.yml) rebase may be attempted by including the /rebase command in a comment body, or by running the following code, replacing 'feature' with the name of your local branch:
|
|
||||||
|
- ✅ Verify your PR is **up-to-date with origin/master.** If your PR is behind origin/master an
|
||||||
|
automatic [GitHub actions](https://github.com/ultralytics/yolov5/blob/master/.github/workflows/rebase.yml) rebase may
|
||||||
|
be attempted by including the /rebase command in a comment body, or by running the following code, replacing 'feature'
|
||||||
|
with the name of your local branch:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git remote add upstream https://github.com/ultralytics/yolov5.git
|
git remote add upstream https://github.com/ultralytics/yolov5.git
|
||||||
git fetch upstream
|
git fetch upstream
|
||||||
|
|
@ -41,30 +53,42 @@ git checkout feature # <----- replace 'feature' with local branch name
|
||||||
git merge upstream/master
|
git merge upstream/master
|
||||||
git push -u origin -f
|
git push -u origin -f
|
||||||
```
|
```
|
||||||
- ✅ Verify all Continuous Integration (CI) **checks are passing**.
|
|
||||||
- ✅ Reduce changes to the absolute **minimum** required for your bug fix or feature addition. _"It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is."_ -Bruce Lee
|
|
||||||
|
|
||||||
|
- ✅ Verify all Continuous Integration (CI) **checks are passing**.
|
||||||
|
- ✅ Reduce changes to the absolute **minimum** required for your bug fix or feature addition. _"It is not daily increase
|
||||||
|
but daily decrease, hack away the unessential. The closer to the source, the less wastage there is."_ -Bruce Lee
|
||||||
|
|
||||||
## Submitting a Bug Report 🐛
|
## Submitting a Bug Report 🐛
|
||||||
|
|
||||||
If you spot a problem with YOLOv5 please submit a Bug Report!
|
If you spot a problem with YOLOv5 please submit a Bug Report!
|
||||||
|
|
||||||
For us to start investigating a possibel problem we need to be able to reproduce it ourselves first. We've created a few short guidelines below to help users provide what we need in order to get started.
|
For us to start investigating a possibel problem we need to be able to reproduce it ourselves first. We've created a few
|
||||||
|
short guidelines below to help users provide what we need in order to get started.
|
||||||
|
|
||||||
When asking a question, people will be better able to provide help if you provide **code** that they can easily understand and use to **reproduce** the problem. This is referred to by community members as creating a [minimum reproducible example](https://stackoverflow.com/help/minimal-reproducible-example). Your code that reproduces the problem should be:
|
When asking a question, people will be better able to provide help if you provide **code** that they can easily
|
||||||
|
understand and use to **reproduce** the problem. This is referred to by community members as creating
|
||||||
|
a [minimum reproducible example](https://stackoverflow.com/help/minimal-reproducible-example). Your code that reproduces
|
||||||
|
the problem should be:
|
||||||
|
|
||||||
* ✅ **Minimal** – Use as little code as possible that still produces the same problem
|
* ✅ **Minimal** – Use as little code as possible that still produces the same problem
|
||||||
* ✅ **Complete** – Provide **all** parts someone else needs to reproduce your problem in the question itself
|
* ✅ **Complete** – Provide **all** parts someone else needs to reproduce your problem in the question itself
|
||||||
* ✅ **Reproducible** – Test the code you're about to provide to make sure it reproduces the problem
|
* ✅ **Reproducible** – Test the code you're about to provide to make sure it reproduces the problem
|
||||||
|
|
||||||
In addition to the above requirements, for [Ultralytics](https://ultralytics.com/) to provide assistance your code should be:
|
In addition to the above requirements, for [Ultralytics](https://ultralytics.com/) to provide assistance your code
|
||||||
|
should be:
|
||||||
|
|
||||||
* ✅ **Current** – Verify that your code is up-to-date with current GitHub [master](https://github.com/ultralytics/yolov5/tree/master), and if necessary `git pull` or `git clone` a new copy to ensure your problem has not already been resolved by previous commits.
|
* ✅ **Current** – Verify that your code is up-to-date with current
|
||||||
* ✅ **Unmodified** – Your problem must be reproducible without any modifications to the codebase in this repository. [Ultralytics](https://ultralytics.com/) does not provide support for custom code ⚠️.
|
GitHub [master](https://github.com/ultralytics/yolov5/tree/master), and if necessary `git pull` or `git clone` a new
|
||||||
|
copy to ensure your problem has not already been resolved by previous commits.
|
||||||
If you believe your problem meets all of the above criteria, please close this issue and raise a new one using the 🐛 **Bug Report** [template](https://github.com/ultralytics/yolov5/issues/new/choose) and providing a [minimum reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) to help us better understand and diagnose your problem.
|
* ✅ **Unmodified** – Your problem must be reproducible without any modifications to the codebase in this
|
||||||
|
repository. [Ultralytics](https://ultralytics.com/) does not provide support for custom code ⚠️.
|
||||||
|
|
||||||
|
If you believe your problem meets all of the above criteria, please close this issue and raise a new one using the 🐛 **
|
||||||
|
Bug Report** [template](https://github.com/ultralytics/yolov5/issues/new/choose) and providing
|
||||||
|
a [minimum reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) to help us better
|
||||||
|
understand and diagnose your problem.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
By contributing, you agree that your contributions will be licensed under the [GPL-3.0 license](https://choosealicense.com/licenses/gpl-3.0/)
|
By contributing, you agree that your contributions will be licensed under
|
||||||
|
the [GPL-3.0 license](https://choosealicense.com/licenses/gpl-3.0/)
|
||||||
|
|
|
||||||
67
README.md
67
README.md
|
|
@ -52,31 +52,33 @@ YOLOv5 🚀 is a family of object detection architectures and models pretrained
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
## <div align="center">Documentation</div>
|
## <div align="center">Documentation</div>
|
||||||
|
|
||||||
See the [YOLOv5 Docs](https://docs.ultralytics.com) for full documentation on training, testing and deployment.
|
See the [YOLOv5 Docs](https://docs.ultralytics.com) for full documentation on training, testing and deployment.
|
||||||
|
|
||||||
|
|
||||||
## <div align="center">Quick Start Examples</div>
|
## <div align="center">Quick Start Examples</div>
|
||||||
|
|
||||||
|
|
||||||
<details open>
|
<details open>
|
||||||
<summary>Install</summary>
|
<summary>Install</summary>
|
||||||
|
|
||||||
[**Python>=3.6.0**](https://www.python.org/) is required with all [requirements.txt](https://github.com/ultralytics/yolov5/blob/master/requirements.txt) installed including [**PyTorch>=1.7**](https://pytorch.org/get-started/locally/):
|
[**Python>=3.6.0**](https://www.python.org/) is required with all
|
||||||
|
[requirements.txt](https://github.com/ultralytics/yolov5/blob/master/requirements.txt) installed including
|
||||||
|
[**PyTorch>=1.7**](https://pytorch.org/get-started/locally/):
|
||||||
<!-- $ sudo apt update && apt install -y libgl1-mesa-glx libsm6 libxext6 libxrender-dev -->
|
<!-- $ sudo apt update && apt install -y libgl1-mesa-glx libsm6 libxext6 libxrender-dev -->
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git clone https://github.com/ultralytics/yolov5
|
$ git clone https://github.com/ultralytics/yolov5
|
||||||
$ cd yolov5
|
$ cd yolov5
|
||||||
$ pip install -r requirements.txt
|
$ pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details open>
|
<details open>
|
||||||
<summary>Inference</summary>
|
<summary>Inference</summary>
|
||||||
|
|
||||||
Inference with YOLOv5 and [PyTorch Hub](https://github.com/ultralytics/yolov5/issues/36). Models automatically download from the [latest YOLOv5 release](https://github.com/ultralytics/yolov5/releases).
|
Inference with YOLOv5 and [PyTorch Hub](https://github.com/ultralytics/yolov5/issues/36). Models automatically download
|
||||||
|
from the [latest YOLOv5 release](https://github.com/ultralytics/yolov5/releases).
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import torch
|
import torch
|
||||||
|
|
@ -85,7 +87,7 @@ import torch
|
||||||
model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5m, yolov5l, yolov5x, custom
|
model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5m, yolov5l, yolov5x, custom
|
||||||
|
|
||||||
# Images
|
# Images
|
||||||
img = 'https://ultralytics.com/images/zidane.jpg' # or PosixPath, PIL, OpenCV, numpy, list
|
img = 'https://ultralytics.com/images/zidane.jpg' # or file, Path, PIL, OpenCV, numpy, list
|
||||||
|
|
||||||
# Inference
|
# Inference
|
||||||
results = model(img)
|
results = model(img)
|
||||||
|
|
@ -101,7 +103,9 @@ results.print() # or .show(), .save(), .crop(), .pandas(), etc.
|
||||||
<details>
|
<details>
|
||||||
<summary>Inference with detect.py</summary>
|
<summary>Inference with detect.py</summary>
|
||||||
|
|
||||||
`detect.py` runs inference on a variety of sources, downloading models automatically from the [latest YOLOv5 release](https://github.com/ultralytics/yolov5/releases) and saving results to `runs/detect`.
|
`detect.py` runs inference on a variety of sources, downloading models automatically from
|
||||||
|
the [latest YOLOv5 release](https://github.com/ultralytics/yolov5/releases) and saving results to `runs/detect`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ python detect.py --source 0 # webcam
|
$ python detect.py --source 0 # webcam
|
||||||
file.jpg # image
|
file.jpg # image
|
||||||
|
|
@ -117,13 +121,18 @@ $ python detect.py --source 0 # webcam
|
||||||
<details>
|
<details>
|
||||||
<summary>Training</summary>
|
<summary>Training</summary>
|
||||||
|
|
||||||
Run commands below to reproduce results on [COCO](https://github.com/ultralytics/yolov5/blob/master/data/scripts/get_coco.sh) dataset (dataset auto-downloads on first use). Training times for YOLOv5s/m/l/x are 2/4/6/8 days on a single V100 (multi-GPU times faster). Use the largest `--batch-size` your GPU allows (batch sizes shown for 16 GB devices).
|
Run commands below to reproduce results
|
||||||
|
on [COCO](https://github.com/ultralytics/yolov5/blob/master/data/scripts/get_coco.sh) dataset (dataset auto-downloads on
|
||||||
|
first use). Training times for YOLOv5s/m/l/x are 2/4/6/8 days on a single V100 (multi-GPU times faster). Use the
|
||||||
|
largest `--batch-size` your GPU allows (batch sizes shown for 16 GB devices).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size 64
|
$ python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size 64
|
||||||
yolov5m 40
|
yolov5m 40
|
||||||
yolov5l 24
|
yolov5l 24
|
||||||
yolov5x 16
|
yolov5x 16
|
||||||
```
|
```
|
||||||
|
|
||||||
<img width="800" src="https://user-images.githubusercontent.com/26833433/90222759-949d8800-ddc1-11ea-9fa1-1c97eed2b963.png">
|
<img width="800" src="https://user-images.githubusercontent.com/26833433/90222759-949d8800-ddc1-11ea-9fa1-1c97eed2b963.png">
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
@ -132,7 +141,8 @@ $ python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size
|
||||||
<summary>Tutorials</summary>
|
<summary>Tutorials</summary>
|
||||||
|
|
||||||
* [Train Custom Data](https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data) 🚀 RECOMMENDED
|
* [Train Custom Data](https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data) 🚀 RECOMMENDED
|
||||||
* [Tips for Best Training Results](https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results) ☘️ RECOMMENDED
|
* [Tips for Best Training Results](https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results) ☘️
|
||||||
|
RECOMMENDED
|
||||||
* [Weights & Biases Logging](https://github.com/ultralytics/yolov5/issues/1289) 🌟 NEW
|
* [Weights & Biases Logging](https://github.com/ultralytics/yolov5/issues/1289) 🌟 NEW
|
||||||
* [Supervisely Ecosystem](https://github.com/ultralytics/yolov5/issues/2518) 🌟 NEW
|
* [Supervisely Ecosystem](https://github.com/ultralytics/yolov5/issues/2518) 🌟 NEW
|
||||||
* [Multi-GPU Training](https://github.com/ultralytics/yolov5/issues/475)
|
* [Multi-GPU Training](https://github.com/ultralytics/yolov5/issues/475)
|
||||||
|
|
@ -147,10 +157,11 @@ $ python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|
||||||
## <div align="center">Environments and Integrations</div>
|
## <div align="center">Environments and Integrations</div>
|
||||||
|
|
||||||
Get started in seconds with our verified environments and integrations, including [Weights & Biases](https://wandb.ai/site?utm_campaign=repo_yolo_readme) for automatic YOLOv5 experiment logging. Click each icon below for details.
|
Get started in seconds with our verified environments and integrations,
|
||||||
|
including [Weights & Biases](https://wandb.ai/site?utm_campaign=repo_yolo_readme) for automatic YOLOv5 experiment
|
||||||
|
logging. Click each icon below for details.
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://colab.research.google.com/github/ultralytics/yolov5/blob/master/tutorial.ipynb">
|
<a href="https://colab.research.google.com/github/ultralytics/yolov5/blob/master/tutorial.ipynb">
|
||||||
|
|
@ -173,7 +184,6 @@ Get started in seconds with our verified environments and integrations, includin
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
## <div align="center">Compete and Win</div>
|
## <div align="center">Compete and Win</div>
|
||||||
|
|
||||||
We are super excited about our first-ever Ultralytics YOLOv5 🚀 EXPORT Competition with **$10,000** in cash prizes!
|
We are super excited about our first-ever Ultralytics YOLOv5 🚀 EXPORT Competition with **$10,000** in cash prizes!
|
||||||
|
|
@ -183,7 +193,6 @@ We are super excited about our first-ever Ultralytics YOLOv5 🚀 EXPORT Competi
|
||||||
<img width="850" src="https://github.com/ultralytics/yolov5/releases/download/v1.0/banner-export-competition.png"></a>
|
<img width="850" src="https://github.com/ultralytics/yolov5/releases/download/v1.0/banner-export-competition.png"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
## <div align="center">Why YOLOv5</div>
|
## <div align="center">Why YOLOv5</div>
|
||||||
|
|
||||||
<p align="center"><img width="800" src="https://user-images.githubusercontent.com/26833433/114313216-f0a5e100-9af5-11eb-8445-c682b60da2e3.png"></p>
|
<p align="center"><img width="800" src="https://user-images.githubusercontent.com/26833433/114313216-f0a5e100-9af5-11eb-8445-c682b60da2e3.png"></p>
|
||||||
|
|
@ -195,11 +204,13 @@ We are super excited about our first-ever Ultralytics YOLOv5 🚀 EXPORT Competi
|
||||||
<details>
|
<details>
|
||||||
<summary>Figure Notes (click to expand)</summary>
|
<summary>Figure Notes (click to expand)</summary>
|
||||||
|
|
||||||
* GPU Speed measures end-to-end time per image averaged over 5000 COCO val2017 images using a V100 GPU with batch size 32, and includes image preprocessing, PyTorch FP16 inference, postprocessing and NMS.
|
* GPU Speed measures end-to-end time per image averaged over 5000 COCO val2017 images using a V100 GPU with batch size
|
||||||
|
32, and includes image preprocessing, PyTorch FP16 inference, postprocessing and NMS.
|
||||||
* EfficientDet data from [google/automl](https://github.com/google/automl) at batch size 8.
|
* EfficientDet data from [google/automl](https://github.com/google/automl) at batch size 8.
|
||||||
* **Reproduce** by `python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt`
|
* **Reproduce** by
|
||||||
</details>
|
`python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt`
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
### Pretrained Checkpoints
|
### Pretrained Checkpoints
|
||||||
|
|
||||||
|
|
@ -222,23 +233,29 @@ We are super excited about our first-ever Ultralytics YOLOv5 🚀 EXPORT Competi
|
||||||
<details>
|
<details>
|
||||||
<summary>Table Notes (click to expand)</summary>
|
<summary>Table Notes (click to expand)</summary>
|
||||||
|
|
||||||
* AP<sup>test</sup> denotes COCO [test-dev2017](http://cocodataset.org/#upload) server results, all other AP results denote val2017 accuracy.
|
* AP<sup>test</sup> denotes COCO [test-dev2017](http://cocodataset.org/#upload) server results, all other AP results
|
||||||
* AP values are for single-model single-scale unless otherwise noted. **Reproduce mAP** by `python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65`
|
denote val2017 accuracy.
|
||||||
* Speed<sub>GPU</sub> averaged over 5000 COCO val2017 images using a GCP [n1-standard-16](https://cloud.google.com/compute/docs/machine-types#n1_standard_machine_types) V100 instance, and includes FP16 inference, postprocessing and NMS. **Reproduce speed** by `python val.py --data coco.yaml --img 640 --conf 0.25 --iou 0.45 --half`
|
* AP values are for single-model single-scale unless otherwise noted. **Reproduce mAP**
|
||||||
|
by `python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65`
|
||||||
|
* Speed<sub>GPU</sub> averaged over 5000 COCO val2017 images using a
|
||||||
|
GCP [n1-standard-16](https://cloud.google.com/compute/docs/machine-types#n1_standard_machine_types) V100 instance, and
|
||||||
|
includes FP16 inference, postprocessing and NMS. **Reproduce speed**
|
||||||
|
by `python val.py --data coco.yaml --img 640 --conf 0.25 --iou 0.45 --half`
|
||||||
* All checkpoints are trained to 300 epochs with default settings and hyperparameters (no autoaugmentation).
|
* All checkpoints are trained to 300 epochs with default settings and hyperparameters (no autoaugmentation).
|
||||||
* Test Time Augmentation ([TTA](https://github.com/ultralytics/yolov5/issues/303)) includes reflection and scale augmentation. **Reproduce TTA** by `python val.py --data coco.yaml --img 1536 --iou 0.7 --augment`
|
* Test Time Augmentation ([TTA](https://github.com/ultralytics/yolov5/issues/303)) includes reflection and scale
|
||||||
</details>
|
augmentation. **Reproduce TTA** by `python val.py --data coco.yaml --img 1536 --iou 0.7 --augment`
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
## <div align="center">Contribute</div>
|
## <div align="center">Contribute</div>
|
||||||
|
|
||||||
We love your input! We want to make contributing to YOLOv5 as easy and transparent as possible. Please see our [Contributing Guide](CONTRIBUTING.md) to get started.
|
We love your input! We want to make contributing to YOLOv5 as easy and transparent as possible. Please see
|
||||||
|
our [Contributing Guide](CONTRIBUTING.md) to get started.
|
||||||
|
|
||||||
## <div align="center">Contact</div>
|
## <div align="center">Contact</div>
|
||||||
|
|
||||||
For issues running YOLOv5 please visit [GitHub Issues](https://github.com/ultralytics/yolov5/issues). For business or professional support requests please visit
|
For issues running YOLOv5 please visit [GitHub Issues](https://github.com/ultralytics/yolov5/issues). For business or
|
||||||
[https://ultralytics.com/contact](https://ultralytics.com/contact).
|
professional support requests please visit [https://ultralytics.com/contact](https://ultralytics.com/contact).
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ d='../datasets' # unzip directory
|
||||||
url=https://github.com/ultralytics/yolov5/releases/download/v1.0/
|
url=https://github.com/ultralytics/yolov5/releases/download/v1.0/
|
||||||
f='coco2017labels.zip' # or 'coco2017labels-segments.zip', 68 MB
|
f='coco2017labels.zip' # or 'coco2017labels-segments.zip', 68 MB
|
||||||
echo 'Downloading' $url$f ' ...'
|
echo 'Downloading' $url$f ' ...'
|
||||||
curl -L $url$f -o $f && unzip -q $f -d $d && rm $f & # download, unzip, remove in background
|
curl -L $url$f -o $f && unzip -q $f -d $d && rm $f &
|
||||||
|
|
||||||
# Download/unzip images
|
# Download/unzip images
|
||||||
d='../datasets/coco/images' # unzip directory
|
d='../datasets/coco/images' # unzip directory
|
||||||
|
|
@ -22,6 +22,6 @@ f2='val2017.zip' # 1G, 5k images
|
||||||
f3='test2017.zip' # 7G, 41k images (optional)
|
f3='test2017.zip' # 7G, 41k images (optional)
|
||||||
for f in $f1 $f2; do
|
for f in $f1 $f2; do
|
||||||
echo 'Downloading' $url$f '...'
|
echo 'Downloading' $url$f '...'
|
||||||
curl -L $url$f -o $f && unzip -q $f -d $d && rm $f & # download, unzip, remove in background
|
curl -L $url$f -o $f && unzip -q $f -d $d && rm $f &
|
||||||
done
|
done
|
||||||
wait # finish background tasks
|
wait # finish background tasks
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ d='../datasets' # unzip directory
|
||||||
url=https://github.com/ultralytics/yolov5/releases/download/v1.0/
|
url=https://github.com/ultralytics/yolov5/releases/download/v1.0/
|
||||||
f='coco128.zip' # or 'coco2017labels-segments.zip', 68 MB
|
f='coco128.zip' # or 'coco2017labels-segments.zip', 68 MB
|
||||||
echo 'Downloading' $url$f ' ...'
|
echo 'Downloading' $url$f ' ...'
|
||||||
curl -L $url$f -o $f && unzip -q $f -d $d && rm $f & # download, unzip, remove in background
|
curl -L $url$f -o $f && unzip -q $f -d $d && rm $f &
|
||||||
|
|
||||||
wait # finish background tasks
|
wait # finish background tasks
|
||||||
|
|
|
||||||
2
train.py
2
train.py
|
|
@ -83,7 +83,6 @@ def train(hyp, # path/to/hyp.yaml or hyp dictionary
|
||||||
if resume:
|
if resume:
|
||||||
weights, epochs, hyp = opt.weights, opt.epochs, opt.hyp
|
weights, epochs, hyp = opt.weights, opt.epochs, opt.hyp
|
||||||
|
|
||||||
|
|
||||||
# Config
|
# Config
|
||||||
plots = not evolve # create plots
|
plots = not evolve # create plots
|
||||||
cuda = device.type != 'cpu'
|
cuda = device.type != 'cpu'
|
||||||
|
|
@ -96,7 +95,6 @@ def train(hyp, # path/to/hyp.yaml or hyp dictionary
|
||||||
assert len(names) == nc, f'{len(names)} names found for nc={nc} dataset in {data}' # check
|
assert len(names) == nc, f'{len(names)} names found for nc={nc} dataset in {data}' # check
|
||||||
is_coco = data.endswith('coco.yaml') and nc == 80 # COCO dataset
|
is_coco = data.endswith('coco.yaml') and nc == 80 # COCO dataset
|
||||||
|
|
||||||
|
|
||||||
# Model
|
# Model
|
||||||
pretrained = weights.endswith('.pt')
|
pretrained = weights.endswith('.pt')
|
||||||
if pretrained:
|
if pretrained:
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,6 @@ def get_token(cookie="./cookie"):
|
||||||
return line.split()[-1]
|
return line.split()[-1]
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
# Google utils: https://cloud.google.com/storage/docs/reference/libraries ----------------------------------------------
|
# Google utils: https://cloud.google.com/storage/docs/reference/libraries ----------------------------------------------
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
# YOLOv5 experiment logging utils
|
# YOLOv5 experiment logging utils
|
||||||
import torch
|
|
||||||
import warnings
|
import warnings
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
|
import torch
|
||||||
from torch.utils.tensorboard import SummaryWriter
|
from torch.utils.tensorboard import SummaryWriter
|
||||||
|
|
||||||
from utils.general import colorstr, emojis
|
from utils.general import colorstr, emojis
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import argparse
|
import argparse
|
||||||
import yaml
|
|
||||||
|
|
||||||
from wandb_utils import WandbLogger
|
from wandb_utils import WandbLogger
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import sys
|
import sys
|
||||||
import wandb
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
import wandb
|
||||||
|
|
||||||
FILE = Path(__file__).absolute()
|
FILE = Path(__file__).absolute()
|
||||||
sys.path.append(FILE.parents[2].as_posix()) # add utils/ to path
|
sys.path.append(FILE.parents[2].as_posix()) # add utils/ to path
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,10 @@
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import yaml
|
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
import yaml
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
FILE = Path(__file__).absolute()
|
FILE = Path(__file__).absolute()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue