Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
e0eb62706d
70
README.md
70
README.md
|
@ -61,6 +61,21 @@ HS**V** Intensity | +/- 50%
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/26833433/50525037-6cbcbc00-0ad9-11e9-8c38-9fd51af530e0.jpg">
|
<img src="https://user-images.githubusercontent.com/26833433/50525037-6cbcbc00-0ad9-11e9-8c38-9fd51af530e0.jpg">
|
||||||
|
|
||||||
|
## Speed
|
||||||
|
|
||||||
|
https://cloud.google.com/deep-learning-vm/
|
||||||
|
**Machine type:** n1-highmem-4 (4 vCPUs, 26 GB memory)
|
||||||
|
**CPU platform:** Intel Skylake
|
||||||
|
**GPUs:** 1-4 x NVIDIA Tesla P100
|
||||||
|
**HDD:** 100 GB SSD
|
||||||
|
|
||||||
|
GPUs | `batch_size` | speed | COCO epoch
|
||||||
|
--- |---| --- | ---
|
||||||
|
(P100) | (images) | (s/batch) | (min/epoch)
|
||||||
|
1 | 24 | 0.84s | 70min
|
||||||
|
2 | 48 | 1.27s | 53min
|
||||||
|
4 | 96 | 2.11s | 44min
|
||||||
|
|
||||||
# Inference
|
# Inference
|
||||||
|
|
||||||
Run `detect.py` to apply trained weights to an image, such as `zidane.jpg` from the `data/samples` folder:
|
Run `detect.py` to apply trained weights to an image, such as `zidane.jpg` from the `data/samples` folder:
|
||||||
|
@ -77,18 +92,57 @@ Run `detect.py` with `webcam=True` to show a live webcam feed.
|
||||||
|
|
||||||
# Pretrained Weights
|
# Pretrained Weights
|
||||||
|
|
||||||
**Darknet** format:
|
- Darknet `*.weights` format: https://pjreddie.com/media/files/yolov3.weights
|
||||||
- https://pjreddie.com/media/files/yolov3.weights
|
- PyTorch `*.pt` format: https://drive.google.com/drive/folders/1uxgUBemJVw9wZsdpboYbzUN4bcRhsuAI
|
||||||
- https://pjreddie.com/media/files/yolov3-tiny.weights
|
|
||||||
|
|
||||||
**PyTorch** format:
|
# mAP
|
||||||
- https://drive.google.com/drive/folders/1uxgUBemJVw9wZsdpboYbzUN4bcRhsuAI
|
|
||||||
|
|
||||||
# Validation mAP
|
- Use `test.py --weights weights/yolov3.weights` to test the official YOLOv3 weights.
|
||||||
|
- Use `test.py --weights weights/latest.pt` to test the latest training results.
|
||||||
|
- Compare to official darknet results from https://arxiv.org/abs/1804.02767.
|
||||||
|
|
||||||
Run `test.py` to validate the official YOLOv3 weights `weights/yolov3.weights` against the 5000 validation images. You should obtain a .584 mAP at `--img-size 416`, or .586 at `--img-size 608` using this repo, compared to .579 at 608 x 608 reported in darknet (https://arxiv.org/abs/1804.02767).
|
<i></i> | ultralytics/yolov3 | darknet
|
||||||
|
--- | ---| ---
|
||||||
|
YOLOv3-320 | 51.3 | 51.5
|
||||||
|
YOLOv3-416 | 54.9 | 55.3
|
||||||
|
YOLOv3-608 | 57.9 | 57.9
|
||||||
|
|
||||||
Run `test.py --weights weights/latest.pt` to validate against the latest training results. **Default training settings produce a 0.522 mAP at epoch 62.** Hyperparameter settings and loss equation changes affect these results significantly, and additional trade studies may be needed to further improve this.
|
``` bash
|
||||||
|
sudo rm -rf yolov3 && git clone https://github.com/ultralytics/yolov3
|
||||||
|
# bash yolov3/data/get_coco_dataset.sh
|
||||||
|
sudo rm -rf cocoapi && git clone https://github.com/cocodataset/cocoapi && cd cocoapi/PythonAPI && make && cd ../.. && cp -r cocoapi/PythonAPI/pycocotools yolov3
|
||||||
|
cd yolov3
|
||||||
|
|
||||||
|
python3 test.py --save-json --conf-thres 0.001 --img-size 416
|
||||||
|
Namespace(batch_size=32, cfg='cfg/yolov3.cfg', conf_thres=0.001, data_cfg='cfg/coco.data', img_size=416, iou_thres=0.5, nms_thres=0.45, save_json=True, weights='weights/yolov3.weights')
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.308
|
||||||
|
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.549
|
||||||
|
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.310
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.141
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.334
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.454
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.267
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.403
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.428
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.237
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.464
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.585
|
||||||
|
|
||||||
|
python3 test.py --save-json --conf-thres 0.001 --img-size 608 --batch-size 16
|
||||||
|
Namespace(batch_size=16, cfg='cfg/yolov3.cfg', conf_thres=0.001, data_cfg='cfg/coco.data', img_size=608, iou_thres=0.5, nms_thres=0.45, save_json=True, weights='weights/yolov3.weights')
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.328
|
||||||
|
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.579
|
||||||
|
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.335
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.190
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.357
|
||||||
|
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.428
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.279
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.429
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.456
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.299
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.483
|
||||||
|
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.572
|
||||||
|
```
|
||||||
|
|
||||||
# Contact
|
# Contact
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue