【CV】一文看懂目标检测神器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)

ModelAPvalAPtestAP50SpeedGPUFPSGPU
paramsFLOPS
YOLOv5s36.636.655.8「2.1ms」「476」
7.5M13.2B
YOLOv5m43.443.462.43.0ms333
21.8M39.4B
YOLOv5l46.646.765.43.9ms256
47.8M88.1B
YOLOv5x「48.4」「48.4」「66.9」6.1ms164
89.0M166.4B
YOLOv3-SPP45.645.565.24.5ms222
63.0M118.0B

AP测试表示COCOtest-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, glenn.jocher@ultralytics.com。

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

往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群请扫码进群:
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值