文章目录[隐藏]
参考论文:
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
暂无评论