一文看懂目标检测神器YOLO5

标签: dev | 发表时间:2021-12-13 00:00 | 作者:
出处:http://itindex.net/relian




  磐创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

相关 [目标 神器 yolo5] 推荐:

一文看懂目标检测神器YOLO5

- - IT瘾-dev
该库代表Ultralytics对未来对象检测方法的开源研究,并结合了以前的YOLO库https://github.com/ultralytics/yolov3在自定义数据集上训练了数千个模型而得到的最佳实践. **所有代码和模型都在积极的开发中,如有修改或删除,恕不另行通知. GPU速度测量:使用V100的GPU在超过5000张COCO val2017图像上测量批处理大小为8的平均每张图像的端到端时间,包括图像预处理,PyTorch FP16推断,后处理和NMS.

神器valgrind

- - 斯巴达第二季
其实早在2006年我就用过valgrind,但当时valgrind不能观测daemon的内存泄漏问题,所以后来渐渐用得少了. 今天又遇到一个内存泄漏问题,程序颇大,手工调试不太现实了,所以又想到了valgrind,毕竟在这7年间,valgrind又强大了不少. 查了一下,它已经可以检测daemon进程了,方法在 这里 对应的官方文档在 这里 其中"monitor leak_check full reachable any"相当于设置gdb的breakpoint.

下一个目标:广播

- yimin - It Talks-魏武挥的blog
从报纸杂志到书籍电视,传统媒体在全方位地受到数字媒体的冲击,数字革命的颠覆性正在横扫一切传统媒体的角落,现在看来,最后一个堡垒:广播业,也将迎来有力挑战. 美国著名传媒杂志《Media Life》在去年年底展望2011年全美传媒行业的时候,还很乐观地估计,广播行业将从09年的14%衰退中迎来复苏. 在当时,潘朵拉(Pandora.com)这类“网络电台”已经兴起,但该杂志依然满不在乎地说:“尽管Pandora互联网广播服务和其它网站可以依据个人喜好定制个性化网络电台服务,但那仍然属于小众市场.

我的愿望与目标

- bill boy - 嘉佑中文博客
中午,大学校友通过微信语音留言给我,说他要回家结婚了,7月5日走,要请我吃饭. 他们在台州本地的团购网站上预订了晚餐,我跟他们刚刚从九峰山下的某酒店吃完回来. 他们打算 10月2日 结婚,再三嘱咐我一定要过去参加他们的婚礼. 我肯定届时会去郑州,但是这很可能是最后一次在台州见他们. 又一个朋友,而且是很要好的朋友,就要走了,有点失落因为在台州又少了一个依靠,同时也让我多了一个离开黄岩的借口.

有目标?请闭嘴

- - Starming星光社最新更新
当你给了自己一个全新的目标,你会不会想要跟身边(亲密)的人分享它呢. 通常来讲,很多人都会说出来,在这种行为背后,有些是出于“期望获得来自他人的有效监督”的目的,而有些则纯粹是觉得“没什么好隐瞒的,不妨说出来”. 但如果效率天阶告诉你:当有一天你的目标宣告失败(或迟迟不能达成),其根本原因却仅仅是因为你“告诉别人了”,你会不会觉得难以置信呢.

谈技术团队目标

- - Tim[后端技术]
技术主管新年想得最多的一件事必定是如何比上一年做得更好. 宏大的目标设定每个团队都会做,谈几个不引人注意的小问题. 见过一些技术团队将计划定义为“按时完成需求”,需求驱动并没有什么不对,但是研发工作仅考虑被动需求的话是很难做好. 之前完成的许多需求有什么共性. 经常出问题/bug/故障的项目/功能/模块是哪些.

目标管理体系:OKR

- - 标点符
OKR体系的全称是Objectives & Key Results,即目标与关键成果. 所谓OKR,O = Objective 可以理解为企业目标,KR =Key Results 可以理解为关键结果. 浓缩在一起就是“为确保达成企业目标的关键结果分解与实施”. OKR是企业进行目标管理的一个简单有效的系统,能够将目标管理自上而下贯穿到基层.

JavaScript TDD 神器jasmine

- - JavaScript - Web前端 - ITeye博客
今天参加了圣路易斯本地的一个meet up group. 演讲主题是javascript 的tdd. 演讲者展示了jasmine的功能,真的是神器啊. 以下是jasmine的网址:. jasmine的syntax 极其简单:. 还有很多功能还在探索中,在写2500行的js之前知道这个就好了. 已有 0 人发表留言,猛击->> 这里<<-参与讨论.

前端神器 Sublime Text 2

- - 博客园_首页
  博主之前一直用notepdd++写前端代码,用得也挺顺手了,早就听说sublime的大名,一直也懒得去试试看,认为都是工具用着顺手就好. 这几天突然心血来潮,下了个试了下,结果. 结果博主毫无节操的抛弃了notepad++. 下面根据博主这几天的使用心得,来介绍下这款前端神器,介于使用时间很短,有些说的不妥的地方还望各位看官海涵.