-
-
Notifications
You must be signed in to change notification settings - Fork 16.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
- Loading branch information
1 parent
938efe5
commit 956be8e
Showing
15 changed files
with
229 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -191,7 +191,7 @@ Get started in seconds with our verified environments. Click each icon below for | |
</a> | ||
</div> | ||
|
||
|Weights and Biases|Roboflow - ⭐ NEW| | ||
|Weights and Biases|Roboflow ⭐ NEW| | ||
|:-:|:-:| | ||
|Automatically track and visualize all your YOLOv5 training runs in the cloud with [Weights & Biases](https://wandb.ai/site?utm_campaign=repo_yolo_readme)|Label and automatically export your custom datasets directly to YOLOv5 for training with [Roboflow](https://roboflow.com/?ref=ultralytics) | | ||
|
||
|
@@ -207,53 +207,47 @@ We are super excited about our first-ever Ultralytics YOLOv5 🚀 EXPORT Competi | |
|
||
## <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="left"><img width="800" src="https://user-images.githubusercontent.com/26833433/136901921-abcfcd9d-f978-4942-9b97-0e3f202907df.png"></p> | ||
<details> | ||
<summary>YOLOv5-P5 640 Figure (click to expand)</summary> | ||
|
||
<p align="center"><img width="800" src="https://user-images.githubusercontent.com/26833433/114313219-f1d70e00-9af5-11eb-9973-52b1f98d321a.png"></p> | ||
<p align="left"><img width="800" src="https://user-images.githubusercontent.com/26833433/136763877-b174052b-c12f-48d2-8bc4-545e3853398e.png"></p> | ||
</details> | ||
<details> | ||
<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. | ||
* 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` | ||
|
||
* **COCO AP val** denotes [email protected]:0.95 metric measured on the 5000-image [COCO val2017](http://cocodataset.org) dataset over various inference sizes from 256 to 1536. | ||
* **GPU Speed** measures average inference time per image on [COCO val2017](http://cocodataset.org) dataset using a [AWS p3.2xlarge](https://aws.amazon.com/ec2/instance-types/p3/) V100 instance at batch-size 32. | ||
* **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 yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt` | ||
</details> | ||
|
||
### Pretrained Checkpoints | ||
|
||
[assets]: https://github.com/ultralytics/yolov5/releases | ||
|
||
|Model |size<br><sup>(pixels) |mAP<sup>val<br>0.5:0.95 |mAP<sup>test<br>0.5:0.95 |mAP<sup>val<br>0.5 |Speed<br><sup>V100 (ms) | |params<br><sup>(M) |FLOPs<br><sup>640 (B) | ||
|--- |--- |--- |--- |--- |--- |---|--- |--- | ||
|[YOLOv5s][assets] |640 |36.7 |36.7 |55.4 |**2.0** | |7.3 |17.0 | ||
|[YOLOv5m][assets] |640 |44.5 |44.5 |63.1 |2.7 | |21.4 |51.3 | ||
|[YOLOv5l][assets] |640 |48.2 |48.2 |66.9 |3.8 | |47.0 |115.4 | ||
|[YOLOv5x][assets] |640 |**50.4** |**50.4** |**68.8** |6.1 | |87.7 |218.8 | ||
| | | | | | | | | | ||
|[YOLOv5s6][assets] |1280 |43.3 |43.3 |61.9 |**4.3** | |12.7 |17.4 | ||
|[YOLOv5m6][assets] |1280 |50.5 |50.5 |68.7 |8.4 | |35.9 |52.4 | ||
|[YOLOv5l6][assets] |1280 |53.4 |53.4 |71.1 |12.3 | |77.2 |117.7 | ||
|[YOLOv5x6][assets] |1280 |**54.4** |**54.4** |**72.0** |22.4 | |141.8 |222.9 | ||
| | | | | | | | | | ||
|[YOLOv5x6][assets] TTA |1280 |**55.0** |**55.0** |**72.0** |70.8 | |- |- | ||
[TTA]: https://github.com/ultralytics/yolov5/issues/303 | ||
|
||
|Model |size<br><sup>(pixels) |mAP<sup>val<br>0.5:0.95 |mAP<sup>val<br>0.5 |Speed<br><sup>CPU b1<br>(ms) |Speed<br><sup>V100 b1<br>(ms) |Speed<br><sup>V100 b32<br>(ms) |params<br><sup>(M) |FLOPs<br><sup>@640 (B) | ||
|--- |--- |--- |--- |--- |--- |--- |--- |--- | ||
|[YOLOv5n][assets] |640 |28.4 |46.0 |**45** |**6.3**|**0.6**|**1.9**|**4.5** | ||
|[YOLOv5s][assets] |640 |37.2 |56.0 |98 |6.4 |0.9 |7.2 |16.5 | ||
|[YOLOv5m][assets] |640 |45.2 |63.9 |224 |8.2 |1.7 |21.2 |49.0 | ||
|[YOLOv5l][assets] |640 |48.8 |67.2 |430 |10.1 |2.7 |46.5 |109.1 | ||
|[YOLOv5x][assets] |640 |50.7 |68.9 |766 |12.1 |4.8 |86.7 |205.7 | ||
| | | | | | | | | | ||
|[YOLOv5n6][assets] |1280 |34.0 |50.7 |153 |8.1 |2.1 |3.2 |4.6 | ||
|[YOLOv5s6][assets] |1280 |44.5 |63.0 |385 |8.2 |3.6 |16.8 |12.6 | ||
|[YOLOv5m6][assets] |1280 |51.0 |69.0 |887 |11.1 |6.8 |35.7 |50.0 | ||
|[YOLOv5l6][assets] |1280 |53.6 |71.6 |1784 |15.8 |10.5 |76.8 |111.4 | ||
|[YOLOv5x6][assets]<br>+ [TTA][TTA]|1280<br>1536 |54.7<br>**55.4** |**72.4**<br>72.3 |3136<br>- |26.2<br>- |19.4<br>- |140.7<br>- |209.8<br>- | ||
|
||
<details> | ||
<summary>Table Notes (click to expand)</summary> | ||
|
||
* All checkpoints are trained to 300 epochs with default settings and hyperparameters. | ||
* AP<sup>test</sup> denotes COCO [test-dev2017](http://cocodataset.org/#upload) server results, all other AP results | ||
denote val2017 accuracy. | ||
* **mAP** values are for single-model single-scale unless otherwise noted.<br>**Reproduce** by `python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65` | ||
* **Speed** 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.<br>**Reproduce** | ||
by `python val.py --data coco.yaml --img 640 --conf 0.25 --iou 0.45 --half` | ||
* **TTA** [Test Time Augmentation](https://github.com/ultralytics/yolov5/issues/303) includes reflection and scale.<br>**Reproduce** by `python val.py --data coco.yaml --img 1536 --iou 0.7 --augment` | ||
* **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](http://cocodataset.org) dataset.<br>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](https://aws.amazon.com/ec2/instance-types/p3/) instance. NMS times (~1 ms/img) not included.<br>Reproduce by `python val.py --data coco.yaml --img 640 --conf 0.25 --iou 0.45` | ||
* **TTA** [Test Time Augmentation](https://github.com/ultralytics/yolov5/issues/303) includes reflection and scale augmentations.<br>Reproduce by `python val.py --data coco.yaml --img 1536 --iou 0.7 --augment` | ||
|
||
</details> | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license | ||
# Hyperparameters for low-augmentation COCO training from scratch | ||
# python train.py --batch 64 --cfg yolov5n6.yaml --weights '' --data coco.yaml --img 640 --epochs 300 --linear | ||
# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials | ||
|
||
lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3) | ||
lrf: 0.01 # final OneCycleLR learning rate (lr0 * lrf) | ||
momentum: 0.937 # SGD momentum/Adam beta1 | ||
weight_decay: 0.0005 # optimizer weight decay 5e-4 | ||
warmup_epochs: 3.0 # warmup epochs (fractions ok) | ||
warmup_momentum: 0.8 # warmup initial momentum | ||
warmup_bias_lr: 0.1 # warmup initial bias lr | ||
box: 0.05 # box loss gain | ||
cls: 0.5 # cls loss gain | ||
cls_pw: 1.0 # cls BCELoss positive_weight | ||
obj: 1.0 # obj loss gain (scale with pixels) | ||
obj_pw: 1.0 # obj BCELoss positive_weight | ||
iou_t: 0.20 # IoU training threshold | ||
anchor_t: 4.0 # anchor-multiple threshold | ||
# anchors: 3 # anchors per output layer (0 to ignore) | ||
fl_gamma: 0.0 # focal loss gamma (efficientDet default gamma=1.5) | ||
hsv_h: 0.015 # image HSV-Hue augmentation (fraction) | ||
hsv_s: 0.7 # image HSV-Saturation augmentation (fraction) | ||
hsv_v: 0.4 # image HSV-Value augmentation (fraction) | ||
degrees: 0.0 # image rotation (+/- deg) | ||
translate: 0.1 # image translation (+/- fraction) | ||
scale: 0.5 # image scale (+/- gain) | ||
shear: 0.0 # image shear (+/- deg) | ||
perspective: 0.0 # image perspective (+/- fraction), range 0-0.001 | ||
flipud: 0.0 # image flip up-down (probability) | ||
fliplr: 0.5 # image flip left-right (probability) | ||
mosaic: 1.0 # image mosaic (probability) | ||
mixup: 0.0 # image mixup (probability) | ||
copy_paste: 0.0 # segment copy-paste (probability) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license | ||
|
||
# Parameters | ||
nc: 80 # number of classes | ||
depth_multiple: 0.33 # model depth multiple | ||
width_multiple: 0.25 # layer channel multiple | ||
anchors: | ||
- [19,27, 44,40, 38,94] # P3/8 | ||
- [96,68, 86,152, 180,137] # P4/16 | ||
- [140,301, 303,264, 238,542] # P5/32 | ||
- [436,615, 739,380, 925,792] # P6/64 | ||
|
||
# YOLOv5 v6.0 backbone | ||
backbone: | ||
# [from, number, module, args] | ||
[[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 | ||
[-1, 1, Conv, [128, 3, 2]], # 1-P2/4 | ||
[-1, 3, C3, [128]], | ||
[-1, 1, Conv, [256, 3, 2]], # 3-P3/8 | ||
[-1, 6, C3, [256]], | ||
[-1, 1, Conv, [512, 3, 2]], # 5-P4/16 | ||
[-1, 9, C3, [512]], | ||
[-1, 1, Conv, [768, 3, 2]], # 7-P5/32 | ||
[-1, 3, C3, [768]], | ||
[-1, 1, Conv, [1024, 3, 2]], # 9-P6/64 | ||
[-1, 3, C3, [1024]], | ||
[-1, 1, SPPF, [1024, 5]], # 11 | ||
] | ||
|
||
# YOLOv5 v6.0 head | ||
head: | ||
[[-1, 1, Conv, [768, 1, 1]], | ||
[-1, 1, nn.Upsample, [None, 2, 'nearest']], | ||
[[-1, 8], 1, Concat, [1]], # cat backbone P5 | ||
[-1, 3, C3, [768, False]], # 15 | ||
|
||
[-1, 1, Conv, [512, 1, 1]], | ||
[-1, 1, nn.Upsample, [None, 2, 'nearest']], | ||
[[-1, 6], 1, Concat, [1]], # cat backbone P4 | ||
[-1, 3, C3, [512, False]], # 19 | ||
|
||
[-1, 1, Conv, [256, 1, 1]], | ||
[-1, 1, nn.Upsample, [None, 2, 'nearest']], | ||
[[-1, 4], 1, Concat, [1]], # cat backbone P3 | ||
[-1, 3, C3, [256, False]], # 23 (P3/8-small) | ||
|
||
[-1, 1, Conv, [256, 3, 2]], | ||
[[-1, 20], 1, Concat, [1]], # cat head P4 | ||
[-1, 3, C3, [512, False]], # 26 (P4/16-medium) | ||
|
||
[-1, 1, Conv, [512, 3, 2]], | ||
[[-1, 16], 1, Concat, [1]], # cat head P5 | ||
[-1, 3, C3, [768, False]], # 29 (P5/32-large) | ||
|
||
[-1, 1, Conv, [768, 3, 2]], | ||
[[-1, 12], 1, Concat, [1]], # cat head P6 | ||
[-1, 3, C3, [1024, False]], # 32 (P6/64-xlarge) | ||
|
||
[[23, 26, 29, 32], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5, P6) | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.