算法原理-YOLO v1

一、Yolo v1介绍

如R-CNN,Fast-R-CNN,Faster-R-CNN等方法主要是通过region proposal产生大量的可能包含待检测物体的 potential bounding box,再用分类器去判断每个 bounding box里是否包含有物体,以及物体所属类别的 probability或者 confidence,。

YOLO不同于这些物体检测方法,它将物体检测任务当做一个regression问题来处理,使用一个神经网络,直接从一整张图像来预测出bounding box 的坐标、box中包含物体的置信度和物体的probabilities。因为YOLO的物体检测流程是在一个神经网络里完成的,所以可以end to end来优化物体检测性能。

YOLO将输入图像划分为S*S的栅格,每个栅格负责检测中心落在该栅格中的物体。

每一个栅格预测B个bounding boxes的位置(x,y,w,h),以及这些bounding boxes的confidence scores (confidence scores反映了模型对于这个栅格的预测:该栅格是否含有物体,以及这个box的坐标预测的有多准)

如果bounding box中心落在物体上时,则confidence score则为 predicted bounding box与 ground truth box之间的 IOU。(训练时2个bounding box的IOU,哪个比较大(更接近对象实际的bounding box),就由哪个bounding box来负责预测该对象是否存在,同时对象真实bounding box的位置也就填入该bounding box。另一个不负责预测的bounding box的confidence=0)。

每一个栅格还要预测C个 conditional class probability(条件类别概率)Pr(Classi|Object)。即在一个栅格包含一个Object的前提下,它属于某个类的概率。

最后一层输出为 (7*7)*(5*2+20)的维度。每个 1*1*30的维度对应原图7*7个cell中的一个,1*1*30中含有类别预测和bbox坐标预测。

二、训练与损失函数

损失函数的设计目标就是让坐标(x,y,w,h),confidence,classification 这个三个方面达到很好的平衡。

三、预测(inference)

训练好的YOLO,输入一张图片,将输出一个 7*7*30 的张量(tensor)来表示图片中所有网格包含的对象(概率),该对象可能的2个位置(bounding box)和可信程度(置信度)。

在测试阶段,将每个栅格的conditional class probabilities与每个 bounding box的 confidence相乘,得到每个bounding box的class-specific confidence score:

即:  Score_{ij} = P(C_i|Object) * Confidence_j

每个网格有:20个对象的概率*2个bounding box的置信度,共40个得分(候选对象)。49个网格共1960个得分。

为了从中提取出最有可能的那些对象和位置,YOLO采用NMS(非极大值抑制)算法,每种对象分别进行NMS,那么每种对象有 1960/20=98 个得分。

NMS(非极大值抑制)

NMS方法核心思想是:选择得分最高的作为输出,与该输出重叠的去掉,不断重复这一过程直到所有备选处理完。

NMS步骤:

1)设置一个Score的阈值,低于该阈值的候选对象排除掉(将该Score设为0)

2)遍历每一个对象类别

2.1)遍历该对象的98个得分

2.1.1)找到Score最大的那个对象及其bounding box,添加到输出列表

2.1.2)对每个Score不为0的候选对象,计算其与上面2.1.1输出对象的bounding box的IOU

2.1.3)根据预先设置的IOU阈值,所有高于该阈值(重叠度较高)的候选对象排除掉(将Score设为0)

2.1.4)如果所有bounding box要么在输出列表中,要么Score=0,则该对象类别的NMS完成,返回步骤2处理下一种对象

3)输出列表即为预测的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值