YOLO3 -- 介绍

YOLO介绍


YOLO官网

YOLO(You Only Look Once)是目标检测模型,目标检测是计算机视觉中比较简单的任务,用来在一张图片中找到某些特定的物体,目标检测不仅要求我们识别这些物体的种类,同时要求我们标出这些物体的位置

YOLO是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以利用实时系统。现在YOLO已经发展到v5版本,不过最新版本也是在原有的版本上基础不断改进演化的,所以本文分析YOLO v3版本

类别是指离散数据,位置是指连续数据

YOLO原理


使用YOLO的目的是在一张图片中找出物体,并给出它的类别和位置。目标检测是基于监督学习的,每张图片的监督信息是它所包含的N个物体,每个物体的信息有5个,分别是物体的中心位置(x,y)和它的高(h)宽(w),最后是它的类别。

YOLO算法思路


  1. 缩放输入的图片。
  2. 将图片送入到卷积神经网络中进行预测。
  3. 通过预测的结果进行置信度的阈值处理,得到最终的结果。

YOLO训练过程


YOLO在ImageNet上用前20个卷积层和1个全连接层做通用的类别识别训练,并达到比较高的准确率,之后在预训练好的结构上添加了4个卷积层和1个全连接层做目标识别训练。

因为想提高目标识别的整体表现,所以YOLO在ImageNet预训练时,输入图片尺寸是224224,但在PASCAL VOC上做目标识别的专项训练时,输入图片尺寸变成了448448。

YOLO Loss设定


采用合适的 loss 对于训练一个神经网络而言非常重要。其实,只有理解了 YOLO 的 loss 设计原则,才算真正理解了 YOLO 算法的核心。一般 Loss 值越低,代表网络准确度越高,训练的越有效,所以训练时基本上是以减弱 loss 值为目标的。在训练时,用 sum-squared error (误差的平方的和)来作为 loss 进行优化。采用 sum-squared error 是因为它容易进行优化,但是它也有不好的地方,那就是对于提高 mAP 的表现有些吃力。

sum-squared error 会让 Loss 函数对于位置预测、类别预测的误差权重一样。实际情况是,YOLO 在每一张图片上会预测 772=98 个 bbox,但只有很少的 bbox 才包含目标,哪些不包含目标的 bbox 它们的 confidence 会在训练过程中很快变成 0,所以哪些包含了目标的网格它们预测的 bbox 的梯度会更加急剧变化,这样而言,整个预测系统处于不平衡也不稳定的状态,最终可能出现 loss 无法收敛。
最终的 Loss 变成了一个复合的 Loss,公式如下:
在这里插入图片描述

总结


  • YOLO 就是一个撒渔网的捕鱼过程,一次性搞定所有的目标定位。
  • YOLO 快的原因在于比较粗的粒度将输入图片划分网格,然后做预测。
  • YOLO 的算法精髓都体现在它的Loss设计上及用户如何针对问题改进Loss。

版权声明:本文为CSDN博主「LHL_C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45946270/article/details/122113556

LHL_C

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

暂无评论

发表评论

相关推荐