图像算法-Yolov1

基本思想

YOLO(You Only Look Once )是针对深度学习目标检测问题提出的另一种框架,其核心思想是生成RoI+目标检测两阶段算法用一套网络的一阶段算法代替,直接在输出层回归bounding box的位置和所属类别。

之前的物体检测方法首先需要产生大量可能包含待检测物体的先验框, 然后用分类器判断每个先验框对应的边界框里是否包含待检测物体,以及物体所属类别的概率或者置信度,同时需要后处理修正边界框,最后基于一些准则过滤掉置信度不高和重叠度较高的边界框,进而得到检测结果。这种基于先产生候选区再检测的方法虽然有相对较高的检测准确率,但运行速度较慢。

YOLO创造性的将物体检测任务直接当作回归问题(regression problem)来处理,将候选区和检测两个阶段合二为一。只需一眼就能知道每张图像中有哪些物体以及物体的位置。

实际上,YOLO并没有真正去掉候选区,而是采用了预定义候选区的方法,也就是将图片划分为77个网格,每个网格允许预测出2个边框,总共492个bounding box,可以理解为98个候选区域,它们很粗略地覆盖了图片的整个区域。YOLO以降低mAP为代价,大幅提升了时间效率。
在这里插入图片描述
每个网格单元预测这些框的2个边界框和置信度分数。这些置信度分数反映了该模型对框是否包含目标的可靠程度,以及它预测框的准确程度。置信度定义为:
P r ( O b j e c t ) ∗ I O U p r e d t r u t h Pr(Object)*IOU_{pred}^{truth} Pr(Object)IOUpredtruth如果该单元格中不存在目标,则置信度分数应为零。否则,我们希望置信度分数等于预测框与真实值之间联合部分的交集(IOU)。

每个边界框包含5个预测:x ,y ,w ,h 和置信度。(x,y)坐标表示边界框相对于网格单元边界框的中心。宽度和高度是相对于整张图像预测的。最后,置信度预测表示预测框与实际边界框之间的IOU。

每个网格单元还预测 个条件类别概率 P r ( C l a s s i ∣ O b j e c t ) Pr(Class_i|Object) Pr(ClassiObject)。这些概率以包含目标的网格单元为条件。每个网格单元我们只预测的一组类别概率,而不管边界框的的数量 是多少。

网络结构

YOLOv1网络有24个卷积层,后面是2个全连接层。我们只使用11 降维层,后面
是 3
3卷积层。如下图所示:
在这里插入图片描述
为了快速实现快速目标检测,YOLOV1还训练了快速版本。快速YOLO使用具有较少卷积层(9层而不是24层)的神经网络,在这些层中使用较少的滤波器。除了网络规模之外,YOLO和快速YOLO的所有训练和测试参数都是相同的。网络的最终输出是7730(1470)的预测张量。

训练过程

(1)预训练。采用前20个卷积层、平均池化层、全连接层进行了大约一周的预训练;
(2)输入。输入数据为224* 224和448*448大小的图像;
(3)采用相对坐标。通过图像宽度和高度来规范边界框的宽度和高度,使它们落在0和1之间;边界框 和 坐标参数化为特定网格单元位置的偏移量,边界也在0和1之间;
(4)损失函数如下图示:
在这里插入图片描述

  • 损失函数由坐标预测、是否包含目标物体置信度、类别预测构成;、
  • 其中 1 i o b j 1_i^{obj} 1iobj表示目标是否出现在网格单元 中,表示 1 i o b j 1_i^{obj} 1iobj 网格单元 中的第 个边界框预测器“负责”该预测;
  • 如果目标存在于该网格单元中(前面讨论的条件类别概率),则损失函数仅惩罚分类错误;
  • 如果预测器“负责”实际边界框(即该网格单元中具有最高IOU的预测器),则它也仅惩罚边界框坐标错误。

(5)学习率。第一个迭代周期,慢慢地将学习率从 1 0 − 3 10^{-3} 103 提高到 1 0 − 2 10^{-2} 102 ;然后继续以 1 0 − 2 10^{-2} 102 的学习率训练75个迭代周期,用 1 0 − 3 10^{-3} 103 的学习率训练30个迭代周期,最后用 1 0 − 4 10^{-4} 104 的学习率训练30个迭代周期。
(6)避免过拟合策略。使用dropout和数据增强来避免过拟合。

优缺点

(1)优点

-YOLO 检测物体速度快。

  • YOLO在训练和测试时都能看到一整张图的信息,因此YOLO在检测物体是能很好利用上下文信息,从而不容易在背景上预测出错误的物体信息。
  • YOLO可以学到物体泛化特征
    (2) 缺点
  • 容易产生定位错误
  • 对小物体检测效果不好
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
yolov1-yolov5是一系列基于深度学习的目标检测算法,以下是它们的主要特点和改进之处: - yolov1yolo系列的第一个版本,它采用了单个卷积神经网络来进行目标检测。整体思想是将输入图像分成网格,并在每个网格预测边界和类别。然后使用非极大值抑制来排除重叠的边界,最终得到检测结果。 - yolov2是yolo系列的第二个版本,相比yolov1做了许多改进。其包括使用批量归一化(batch normalization)来加速训练过程,引入更高分辨率的分类器(hi-res classifier)来提高检测精度,引入先验(anchor boxes)和维度聚类(dimension priors)来更好地预测边界的位置和尺寸。 - yolov3是yolo系列的第三个版本,它在yolov2的基础上进行了进一步的改进。主要的改动包括引入了残差网络(resnet)来提高特征提取的效果,使用多尺度预测来提高对不同大小目标的检测能力,并采用多标签分类网络来增加模型的表达能力。 - yolov4是yolo系列的第四个版本,它在yolov3的基础上进行了一系列优化和改进。其包括使用更深的网络结构、引入更多的技巧来提高训练和推理速度,使用焦点损失函数(focal loss)来解决类别不平衡问题,引入自适应形态匹配(Adaptive Spatial Matching)等技术来提高检测的精度和稳定性。 - yolov5是yolo系列的最新版本,它在yolov4的基础上进行了一些改进。主要包括使用更轻量级的网络结构,引入新的数据增强方法和训练策略,以及改进的损失函数等。yolov5在保持检测精度的同时,显著提升了推理速度和模型大小。 总结来说,yolov1-yolov5是一系列不断改进的目标检测算法,它们在网络结构、特征提取、损失函数等方面进行了不同的改进和优化,从而不断提高了检测精度和速度。每个版本都有自己的特点和改进之处,选择适合的版本取决于具体的应用场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值