YOLO模型详解

YOLO将物体检测作为一个回归问题进行求解,输入图像经过一次inference,便能得到图像中所有物体的位置和其所属类别及相应的置信概率。而rcnn/fast rcnn/faster rcnn将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding box(回归问题)。

YOLO检测网络包括24个卷积层和2个全连接层,如下图所示。(YOLO网络借鉴了GoogLeNet分类网络结构,不同的是,YOLO未使用inception-module,而是使用1x1卷积层(此处1x1卷积层的存在是为了跨通道信息整合)+ 3x3卷积层简单替代。

(1) 将原图划分为SxS的网格。如果一个目标的中心落入某个格子,这个格子就负责检测该目标。

(2) 每个网格要预测Bbounding boxes,以及C个类别概率Pr(classi|object)

YOLO中,每个格子只有一个C类别,即相当于忽略了Bbounding boxes每个格子只判断一次类别,这样做非常简单粗暴。

(3) 每个bounding box除了要回归自身的位置之外,还要附带预测一个confidence值。这个confidence代表了所预测的box中含有目标的置信度和这个bounding box预测的有多准两重信息:

如果有目标落中心在格子里Pr(Object)=1;否则Pr(Object)=0。 第二项是预测的bounding box和实际的ground truth之间的IOU.

每个bounding box都包含了5个预测量:(x, y, w, h, confidence),其中(x, y)代表预测box相对于格子的中心,(w, h)为预测box相对于图片的widthheight比例,confidence就是上述置信度。需要说明,这里的x, y, wh都是经过归一化的.

(4) 由于输入图像被分为SxS网格,每个网格包括5个预测量:(x, y, w, h, confidence)和一个C类,所以网络输出是SxSx(5xB+C)大小
 

 

训练:

Loss = λcoord * 坐标预测误差 +(含objectbox confidence预测误差 + λnoobj * 不含objectbox confidence预测误差)

            + 类别预测误差

(1) bounding box(x, y, w, h)的坐标预测误差。

检测算法的实际使用中,一般都有这种经验:对不同大小的bounding box预测中,相比于大box大小预测偏一点,小box大小测偏一点肯定更不能被忍受。所以在Loss中同等对待大小不同的box是不合理的。为了解决这个问题,作者用了一个比较取巧的办法,即对wh求平方根进行回归。从后续效果来看,这样做很有效,但是也没有完全解决问题。

(2) bounding boxconfidence预测误差

由于绝大部分网格中不包含目标,导致绝大部分boxconfidence=0,所以在设计confidence误差时同等对待包含目标和不包含目标的box也是不合理的,否则会导致模型不稳定。作者在不含objectboxconfidence预测误差中乘以惩罚权重λnoobj=0.5

除此之外,同等对待4个值(x, y, w, h)的坐标预测误差与1个值的conference预测误差也不合理,所以作者在坐标预测误差误差之前乘以权重λcoord=5

(3) 分类预测误差

缩进即每个box属于什么类别,需要注意一个网格只预测一次类别,即默认每个网格中的所有Bbounding box都是同一类。

(1) 对于bounding box的宽和高做如下normalization,使得输出宽高介于0~1

                    

(2) 使用(row, col)网格的offset归一化bounding box的中心坐标:

   

x,y为当前坐标相对于格子左上角点的坐标。

 

测试:

在检测目标的时候,每个网格预测的类别条件概率和bounding box预测的confidence信息相乘,就得到每个bounding boxclass-specific confidence score:

等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。

非极大值抑制(NMS)

  • 将所有框的得分排序,选中最高分及其对应的框;
     
  • 遍历其余的框,如果和当前最高分框的重叠面积(IOU)大于一定阈值,我们就将框删除;
     
  • 从未处理的框中继续选一个得分最高的,重复上述过程。

优缺点

  • 优点:
     
    • 1速度快:GPU:titan x,mAP:63.4%,数据集:VOC,检测速度:45fps;
       
    • 2背景误检率低:YOLO在训练和推理过程中能‘看到’整张图像的整体信息,而基于region-proposal的物体检测方法(如rcnn/fast-rcnn),在检测过程中,只‘看到’候选框内的局部图像信息;
       
    • 3泛化能力强:YOLO模型可以学到更加一般的特征,对艺术类作品中的物体检测同样适用。
       
  • 缺点:
     
    • 1、识别物体位置精准性差;
       
    • 2、召回率低。
      • 每个cell仅预测2个Bbox(Yolo-V1);
      • 最终只选择IOU最高的Bbox作为物体检测输出,即每个cell最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。这是YOLO方法的一个缺陷。
         
    • 3、由于输出层为全连接层,因此在检测时,YOLO训练模型只支持与训练图像相同的输入分辨率。

 

参考:https://www.zybuluo.com/rianusr/note/1417734

原文:https://arxiv.org/abs/1506.02640

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值