当前位置:   article > 正文

YOLO模型详解

yolo模型

简介

       YOLO模型是用来目标检测的,也就是在一副图像中检测到物体并识别出物体在图像中所在的位置,YOLO相比于以往的带有建议框的神经网络,速度大有提升,下边详细介绍YOLO网络

模型特点

  • 取消了建议框,直接使用神经网络生成对应位置
  • 之前RCNN系列使用的建议框之间会重叠,造成重复劳动
  • YOLO是端到端的,输入一次图像即可完成分类与回归工作

YOLO网络层

        网络还是比较简单的,从448*448*3的图像依次经过途中所有卷积层与池化层得出了7*7*1024的特征图,再经过两层全连接层得到7*7*30的输出结果

        下边解释一下为什么输出层数是30,当我们得到7*7*1024的特征图时,对每一个网格都做一次预测,也就是预测以该网格为中心,某一高度和宽度的box中有没有待检测的物体,也就是置信度,所以可以发现我没找一个box,就等于求了(x,y,w,h,c)五个量,其中x和y是box中心在该网格的位置,因为box中心不可能都在网格的正中间,所以x,y代表中心在网格的相对位置,如果box中心在网格左上角,那么x=0,y=0,如果box中心在网格右下角,那么x =1,y=1,而h和w也不是代表box真实的高度和1宽度,而是与实际图片像素大小的比,比如box的宽为5个像素,而图片实际大小为448,那么w = 5/448;置信度c = P*IoU,其中P代表当前格子里是否含有待检测的物体,1代表有,0代表没有,这里和具体哪个类没有关系,比如在voc2012数据集中,一共有20个类,如果P=1代表当前box中含有20类中某一种或某几种,如果P=0则代表box只有背景,IoU代表交并比。所以找一共box就需要预测5个值,文章中每个网格处预测了两个box,所以就有十个参数,知道了含不含待检测物体后还要检测物体属于哪一类,所以还要预测20个值,代表当前物体属于某一类的概率,于是有5*2+20 = 30

 

       文章每个网格只选取2个box,但并不意味着不能多选,选的越多精度越多,但是会消耗大量的计算量,具体选多少是精度与代价的折中

模型预测

        现在已经知道了某个box的参数以及该box中属于各类的概率,下边要计算该box属于第i类的置信度,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score,这个值是用来衡量box选取位置和识别精度的好坏的:

                         preview

       接下来就是设置阈值,将得分低的box过滤掉,然后对保留的box进行非极大值抑制处理,就得到最终的检测结果

损失函数

        YOLO的损失包括box的位置、置信度、类别损失,如下所示:

        为什么h和w要加根号:举个例子,如下图所示三个框,绿框为预测值,红框为标准框,如果直接做差平方,B与A和B与C的loss是一样的,可是考虑面积B是A的25倍,而C是B的三倍多一些,很明显B应该更加接近C,所以当加了个根号之后,B对A损失变为3.06,B对C损失变为1.17,更加符合实际判断

                                      

 

模型缺点

  • 对小物体及邻近目标检测效果差:当一个小格中出现多于两个小物体或者一个小格中出现多个不同物体时效果欠佳。 

          原因:B表示每个小格预测边界框数,而YOLO默认落入同一格子里的所有边界框均为同种类物体。

  • 图片进入网络前会先进行resize为448X448,降低检测速度(大约几十ms),如果直接训练对应尺寸会有加速空间。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/299629
推荐阅读
相关标签
  

闽ICP备14008679号