yolov5原理到实现

文章目录[隐藏]

参考论文:

Scaled-YOLOv4: Scaling Cross Stage Partial Network

You Only Look Once: Unified, Real-Time Object Detection

YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。从网络设计上,YOLO与rcnn、fast rcnn及faster rcnn的区别如下:

YOLO训练和检测均是在一个单独网络中进行。YOLO没有显示地求取region proposal的过程。而rcnn/fast rcnn 采用分离的模块(独立于网络之外的selective search方法)求取候选框(可能会包含物体的矩形区域),训练过程因此也是分成多个模块进行。

我们将该模型实现为卷积神经网络,并在PASCAL VOC检测数据集上对其进行评估。网络的初始卷积层从图像中提取特征,而完全连接的层预测输出概率和坐标。

YOLO的网络有24个卷积层,后面是2个完全连接的层。使用了1×1还原层和3×3卷积层。完整的网络如下图所示。

search模块,将RPN集成到fast rcnn检测网络中,得到一个统一的检测网络。尽管RPN与fast rcnn共享卷积层,但是在模型训练过程中,需要反复训练RPN网络和fast rcnn网络(注意这两个网络核心卷积层是参数共享的)。

experiment

实验过程:

YOLO模型训练分为两步:

1)预训练。使用ImageNet

1000类数据训练YOLO网络的前20个卷积层+1个average池化层+1个全连接层。训练图像分辨率

resize到224x224。

2)预训练得到的前20个卷积层网络参数来初始化YOLO模型前20个卷积层的网络参数,然后用VOC 20类标注数据进行YOLO模型训练。为提高图像精度,在训练检测模型时,将输入图像分辨率resize到448x448。

Yolo的优点:

  • 快。YOLO将物体检测作为回归问题进行求解,整个检测网络pipeline简单。在titan x GPU上,在保证检测准确率的前提下(63.4% mAP,VOC 2007 test set),可以达到45fps的检测速度。
  • 背景误检率低。YOLO在训练和推理过程中能‘看到’整张图像的整体信息,而基于region proposal的物体检测方法(如rcnn/fast rcnn),在检测过程中,只‘看到’候选框内的局部图像信息。因此,若当图像背景(非物体)中的部分数据被包含在候选框中送入检测网络进行检测时,容易被误检测成物体。测试证明,YOLO对于背景图像的误检率低于fast rcnn误检率的一半。
  • 通用性强。YOLO对于艺术类作品中的物体检测同样适用。它对非自然图像物体的检测率远远高于DPM和RCNN系列检测方法。

但相比RCNN系列物体检测方法,YOLO具有以下缺点:

  • 识别物体位置精准性差。
  • 召回率低。

Result

YOLO是一种用于目标检测的统一模型。我们的模型构造简单,可以训练直接在完整图像上。与基于分类器的方法不同,YLO是根据直接对应于检测性能的损失函数进行训练的,整个模型是联合训练的。

Fast YOLO是速度比较快的通用目标检测器,YOLO推动了实时目标检测的最新发展。YOLO还可以很好地推广到新的领域,使其成为依赖于快速、健壮的对象检测的应用程序的理想选择。

复现流程:

参考代码:

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

1.使用自己的数据集(voc格式)训练模型
2.推理:
​​​​​​​model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # or yolov5m, yolov5l, yolov5x, custom

可以在这里更改模型

测试:

python3 detect.py --weights yolov5n.pt --img 640

将测试图片或者视频放在yolov5/data/images下面

复现结果:

​​​​​​​​​​​​​​

版权声明:本文为CSDN博主「这个利弗莫尔不太冷」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_48262500/article/details/121506045

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Pytorch—万字入门SSD物体检测

前言 由于初入物体检测领域,我在学习SSD模型的时候遇到了很多的困难。一部分困难在于相关概念不清楚,专业词汇不知其意,相关文章不知所云;另一部分困难在于网上大部分文章要么只是简要介绍了SS