YOLO算法详解

YOLO(You Only Look Once)是CVPR2016的一篇文章,是目标检测领域比较有名的的一篇文章,yolo出名不在于它的精度高,而在于他的速度很快,下面介绍的是yolo的第一版,在yolo之后,又改进出了yolo-v2,yolo-v3,v2,v3的精度相比较于v1就有大大提升了,这个后面再详细介绍。

在介绍yolo之前,首先引入一下目标检测的进展,yolo之前的目标检测一般是如何做的呢?

有两个代表:DPM以及RCNN系列
1.DPM:利用sliding window,提取特征(SIFT等),进行比对
2.RCNN: 利用region proposal方法提取,利用网络进行分类,并进行坐标回归预测

yolo是怎么做的呢?

yolo直接采用regression(回归)的方法进行坐标框的检测以及分类,使用一个end-to-end的简单网络,直接实现坐标回归与分类,如下图所示

http://ww1.sinaimg.cn/large/87675bbbgy1frvpaorx8ij20d907cgny.jpg

yolo具体是怎么做的呢?

yolo首先将图像分割成S*S个grid(S默认取7),然后对每个gird,预测B个(bounding box + confidence),(B默认为2),confidence定义为 P r ( O b j e c t ) ∗ I O U p r e d t r u t h P_r(Object)*IOU_{pred}^{truth} Pr(Object)IOUpredtruth,如果不存在物体,则confidence为0,否则期望其为IOU,bounding box为:[x,y,w,h]其中(x,y)为object中心点坐标

每个gird另外预测C个类别的概率,作者在VOC上实验,所以C取为20(这里为什么不是类似Fast RCNN的21类,因为是否为背景,作者放到了上面的confidence中),
在测试过程中将confidence与C类的probability相乘如: P r ( C l a s s i ∣ O b j e c t ) ∗ P r ( O b j e c t ) ∗ I O U p r e d t r u t h = P r ( C l a s s i ) ∗ I O U p r e d t r u t h P_r(Class_i|Object)*P_r(Object)*IOU_{pred}^{truth}=P_r(Class_i)*IOU_{pred}^{truth} Pr(ClassiObject)Pr(Object)IOUpredtruth=Pr(Classi)IOUpredtruth就可以得到每个类别的概率以及其bounding box的准确度。

说这么多,大家可能不清晰,那具体的预测过程是怎么样的呢?下面展示一下

  1. 首先通过20个类与每个grid的2个预测bounding box的confidence相乘,得到该bounding box为每个类的概率,对每个grid都做该操作,将得到7*7*2=98个向量,如下图黄色矩形所示,其中,每一列代表每个预测的bounding box为各个类别的概率值,每一行【下面图中么有行,可以看下2张图】对应每个类别,以下2张图中第一个图为例,第一行便对应于dog的概率,第一列则对应于bounging box1.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值