吴恩达deeplearning之CNN—目标检测(2)

本文深入探讨了YOLO(You Only Look Once)算法在目标检测中的应用,包括Bounding Box预测、IOU(交并比)、非极大值抑制、Anchor Boxes等关键概念。YOLO算法通过卷积神经网络实现高效精确的边界框预测,解决了滑动窗口算法的不足,并通过非极大值抑制避免了对同一对象的多次检测。此外,Anchor Boxes的引入允许每个格子检测多个对象,提高了检测效果。
摘要由CSDN通过智能技术生成

5. Bounding Box预测

     这一部分主要讨论看怎么能得到更为精准的边界框。

     在滑动窗口算法中,通过取离散的位置集合然后再上面跑分类器,在有的情况下这些边界框没有一个能完美匹配汽车位置,甚至最合适的边界框可能并不是正方形而是长方形,怎么让边界框的输出更为精准?
     其中一个能得到更精准的边界框的算法是YOLO算法,YOLO算法[1]的意思是你只看一次。比如你的输入图像是100*100的,然后再图像上放一个网格,为了介绍起来简单一些,这里用3*3网格,实际实现时会用更精细的网格,可能19*19,基本思路是使用图像分类和定位算法,然后将算法应用到9个格子上。更具体一点,你需要如下定义训练标签:
     对于9个格子中的每一个,指定一个标签y,y是8维向量 [pc,bx,by,bh,bw,c1,c2,c3] ,含义和之前讲述的目标定位是一样的,所以最终图像输出的标签尺寸是3*3*8,如果你现在要训练一个输入图像是100*100*3的图像,然后你有一个普通卷积网络,最后就映射到一个3*3*8的输出尺寸,这类算法的优点是可以输出精确的边界框,所以测试的时候你做的是喂入输入图像X,然后经过正向传播,得出输出y,然后对于这里3*3位置对应的9个输出就反应对应位置是否包含对象,以及对象的具体位置和类型。只要每个区域中对象个数不超过一个,这个算法应该是没问题的。在这里举例用的是3*3的网格,但是在实际应用中会选用更精细的19*19网格,所以输出结果就是19*19*8,这样的网络精细的多,多个对象分配到同一个网格中的概率也就小很多。首先,这个算法和图像分类和定位算法很类似,同样输出了对象的具体问题,也就不会受到滑动窗口分类器的步长大小限制;其次,这是一个卷积实现并没有在3*3的网格上跑9次算法,这是单次卷积实现,共享了很多计算步骤,所以算法的计算效率很高。YOLO算法几乎可以达到实时识别的效率
这里写图片描述

     怎么指定边界框?
这里写图片描述

6.交并比(IOU)

     在对象检测中,希望能同时定位对象,如果实际是红色边框,你的算法给出紫色的边框,那么如何判断算法给出结果的好坏呢?所以交并比(Intersection over union)函数做的是,计算两个边界框交集和并集之比,两个边界框的并集为绿色斜线标识区域,交集是黄色斜线标识区域,那么IOU就是交集的面积除以并集的面积,一般约定在计算机检测任务中 IOU0.5 就说检测正确,如果预测器和实际边界框完美重叠 IOU=1 ,如果希望更严格一点,你可以调大IOU的阈值。下一部分讨论的非最大抑制可以让YOLO算法的输出效果更好。
这里写图片描述

7.非极大值抑制

     到目前为止我们学习到的对象检测中的一个问题是,算法可能对同一个对象作出多次检测,所以算法对某个对象不是检测出一次而是检测出多次。非最大值抑制方法可以确保算法对每个对象只检出一次。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值