一文看懂目标检测神器YOLO5





  磐创AI出品   

该库代表Ultralytics对未来对象检测方法的开源研究,并结合了以前的YOLO库https://github.com/ultralytics/yolov3在自定义数据集上训练了数千个模型而得到的最佳实践。**所有代码和模型都在积极的开发中,如有修改或删除,恕不另行通知。**如果使用,风险自负。

GPU速度测量:使用V100的GPU在超过5000张COCO val2017图像上测量批处理大小为8的平均每张图像的端到端时间,包括图像预处理,PyTorch FP16推断,后处理和NMS。


  • 「2020年6月22日」:PANet(https://arxiv.org/abs/1803.01534)更新:新的特性,更少的参数,更快的推理和改进的mAP 364fcfd(https://github.com/ultralytics/yolov5/commit/364fcfd7dba53f46edd4f04c037a039c0a287972)。
  • 「2020年6月19日」:FP16(https://pytorch.org/docs/stable/nn.html#torch.nn.Module.half)作为新的默认设置,可用于更小的检查点和更快的推断d4c6674(https://github.com/ultralytics/yolov5/commit/d4c6674c98e19df4c40e33a777610a18d1961145)。
  • 「2020年6月9日」:CSP(https://github.com/WongKinYiu/CrossStagePartialNetworks)更新:改进了速度,大小和准确性(归功于@WongKinYiu)。
  • 「2020年5月27日」:公开发布库。YOLOv5模型是所有已知YOLO实现中最先进(SOTA)的。
  • 「2020年4月1日」:未来开始发展基于YOLOv3(https://github.com/ultralytics/yolov3) / YOLOv4(https://github.com/AlexeyAB/darknet)的一系列PyTorch模型。

预训练的检查点(checkpoints)

Model APval APtest AP50 SpeedGPU FPSGPU
params FLOPS
YOLOv5s 36.6 36.6 55.8 「2.1ms」 「476」
7.5M 13.2B
YOLOv5m 43.4 43.4 62.4 3.0ms 333
21.8M 39.4B
YOLOv5l 46.6 46.7 65.4 3.9ms 256
47.8M 88.1B
YOLOv5x 「48.4」 「48.4」 「66.9」 6.1ms 164
89.0M 166.4B
YOLOv3-SPP 45.6 45.5 65.2 4.5ms 222
63.0M 118.0B

** AP测试表示COCO test-dev2017(http://cocodataset.org/#upload)服务器结果,表中所有其他AP结果表示val2017准确性。**所有AP编号均适用于单模型单尺度,而没有集成或测试时间增加。通过 python test.py --img 736 --conf 0.001进行使用。**速度GPU测量:进行再现使用一个V100的GPU和一个GCPn1-standard-16)(https://cloud.google.com/compute/docs/machine-types#n1_standard_machine_types)实例在超过5000张COCO val2017图像上测量每张图像的端到端时间,包括图像预处理,PyTorch FP16图像推断(批量大小 32 --img-size 640),后处理和NMS。此图表中包括的平均NMS时间为1-2ms / img。通过 python test.py --img 640 --conf 0.1进行测试。**所有检查点均使用默认的设置和超参数训练到300个epochs(无自动增强)。

要求

Python 3.7或更高版本,安装了 requirements.txt要求的所有的库和 torch >= 1.5,运行下面命令进行安装:

  $ pip install -U -r requirements.txt   

教程

  • Notebook(https://github.com/ultralytics/yolov5/blob/master/tutorial.ipynb)

  • Kaggle(https://www.kaggle.com/ultralytics/yolov5-tutorial)

  • Train Custom Data(https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data)

  • PyTorch Hub(https://github.com/ultralytics/yolov5/issues/36)

  • ONNX and TorchScript Export(https://github.com/ultralytics/yolov5/issues/251)

  • Test-Time Augmentation (TTA)(https://github.com/ultralytics/yolov5/issues/303)

  • Google Cloud Quickstart(https://github.com/ultralytics/yolov5/wiki/GCP-Quickstart)

  • Docker Quickstart(https://github.com/ultralytics/yolov5/wiki/Docker-Quickstart)

推断

可以在大多数常见的媒体格式上进行推断。模型检查点(https://drive.google.com/open?id=1Drs_Aiu7xx6S-ix95f9kNsA6ueKRpN2J)(在网上如果有对应的检查点的话)会自动下载。结果保存到 ./inference/output

  $ python detect.py --source file.jpg  # image    
                            file.mp4  # video
                            ./dir  # directory
                            0  # webcam
                            rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa  # rtsp stream
                            http://112.50.243.8/PLTV/88888888/224/3221225900/1.m3u8  # http stream

要对 ./inference/images文件夹中的示例进行推断,请执行以下操作:

  $ python detect.py --source ./inference/images/ --weights yolov5s.pt --conf 0.4   

Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.4, device='', fourcc='mp4v', half=False, img_size=640, iou_thres=0.5, output='inference/output', save_txt=False, source='./inference/images/', view_img=False, weights='yolov5s.pt')
Using CUDA device0 _CudaDeviceProperties(name='Tesla P100-PCIE-16GB', total_memory=16280MB)

Downloading https://drive.google.com/uc?export=download&id=1R5T6rIyy3lLwgFXNms8whc-387H0tMQO as yolov5s.pt... Done (2.6s)

image 1/2 inference/images/bus.jpg: 640x512 3 persons, 1 buss, Done. (0.009s)
image 2/2 inference/images/zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.009s)
Results saved to /content/yolov5/inference/output

复现我们的训练

下载 COCO(https://github.com/ultralytics/yolov5/blob/master/data/get_coco2017.sh),安装 Apex(https://github.com/NVIDIA/apex)并在运行下面命令。在一台有V100的GPU上,YOLOv5s / m / l / x的训练时间为2/4/6/8天(多个GPU的训练速度更快)。使用您的GPU允许的最大 --batch-size容量(下面的batchsize是为16 GB设备而设置的)。

  $ python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size 64   
                                         yolov5m                                48
                                         yolov5l                                32
                                         yolov5x                                16

复现我们的环境

要访问最新的工作环境(已预安装所有库,包括CUDA / CUDNN,Python和PyTorch),请考虑以下网站:

  • 「Google Cloud」深度学习VM,提供$300的免费赠金:请参阅我们的GCP快速入门指南(https://github.com/ultralytics/yolov5/wiki/GCP-Quickstart)

  • 「Google Colab Notebook」具有12小时的免费GPU时间。

  • 「Docker Image」https://hub.docker.com/r/ultralytics/yolov5

    请参阅Docker快速入门指南(https://github.com/ultralytics/yolov5/wiki/Docker-Quickstart)

引用


关于我们

Ultralytics是一家总部位于美国的粒子物理学和AI初创公司,拥有超过6年的专业知识,可为政府,学术和商业客户提供支持。我们可以提供广泛的计算机视觉AI服务,从简单的专家建议到交付完全定制的端到端生产解决方案,包括:

  • 「基于云的AI」系统可 「实时」处理 「数百个高清视频流。」
  • 「Edge AI」已集成到自定义iOS和Android应用程序中,可实时进行 「30 FPS视频推断。」
  • 「自定义数据训练」,超参数设置和可以把模型导出到任何地方。

有关业务查询和专业支持的相关请求,请访问https://www.ultralytics.com。

联系

**有问题(issue)可以直接在库中提出。**对于业务查询或专业支持的相关请求,请访问https://www.ultralytics.com或email Glenn Jocher,[email protected]。

原文链接:https://github.com/ultralytics/yolov5

你可能感兴趣的:(dev)