吴恩达第四门-卷积神经网络-第三周6-10学习笔记
3.6交并比
什么是交并比
交并比(loU)函数做的是计算两个边界框交集和并集之比。两个边界框的并集是这个区域,就是属于包含两个边界框区域(绿色阴影表示区域),而交集就是这个比较小的区域(橙色阴影表示区域),那么交并比就是交集的大小,这个橙色阴影面积,然后除以绿色阴影的并集面积。
一般约定,在计算机检测任务中,如果loU>=0.5,则认为检测正确。如果预测器和实际边界框完美重叠,loU就是1。
所以这是衡量定位精确度的一种方式,我们只需要统计算法正确检测和定位对象的次数,你就可以用这样的定义判断对象定位是否准确。
3.7非极大值抑制
我们的对象检测算法可能会对同一个对象做多次检测,而非极大值抑制可以确保我们的对象检测算法对每个对象只检测一次。
举一个对象检测的例子,如果我们的任务是要检测出图片中的汽车数量,我们可以使用各自将图片分成若干个小格子,实际应该可以检测出两辆车来。
但在我们运行对象分类和定位算法时,对于每个格子都运行一次,所以这个格子(编号1)可能会认为这辆车中点应该在格子内部,这几个格子(编号2、3)也会这么认为。也就是说一辆车的多个格子被触发了多次检测,我们需要保证同一个车的不同格子只会被检测成一辆车。,这就是非极大抑制的功能。
先找超过pc超过阈值的框,再找出pc值最高的pc,然后依次找pc值第二高,第三高的pc值得框,如果和最高的框交并比高,就抑制。所有所有框就会被高亮或者变暗,最后抛弃所有暗的选项,就会剩下预测结果。
3.8Anchor Boxes
Anchor Boxes用于使一个格子可以检测出多个对象。
上图中得到的向量是将两个anchor box中的向量内容关联起来的产物。
我们有两个anchor box,就取这两个anchor box作为对象,其中编号2紫色框的是anchorbox1,而anchor box 2形状是紫色框的(编号3),然后你观察哪一个anchor box和实际边界框红色框的交并比更高,不管选的是哪一个,这个对象不只分配到一个格子,而是分配到一对,即(grid cell,anchor box)对,这就是对象在目标标签中的编码方式。在这个例子中我们最终就会得到一个3×3×16的输出。
3.9YOLO 算法
YOLO算法由我们之前学过的各种有关对象检测的算法共同构成。
YOLO对象检测算法。该实例分3类,图像分3x3格,2格anchor,所以输出y是3x3x2x8
相当于一遍前向传播后,有3x3x16的输出,即3x3x2的anchor,抛弃低概率(低pc的框),然后根据每一个分类用非极大值抑制得出定位和分类。
3.10候选区域(选修)
在我们运行滑动窗算法时,我们会发现在某些区域里的检测是没有意义的,比如上图中的1区域和2区域。为了解决这个问题在本节视频中介绍了R-CNN算法。这个算法尝试选出一些区域,在这些区域上运行卷积网络分类器是有意义的,所以这里不再针对每个滑动窗运行检测算法,而是只选择一些窗口,在少数窗口上运行卷积网络分类器。
选出候选区域的方法是运行图像分割算法,分割的结果是下边的图像,为了找出可能存在对象的区域。比如说,分割算法在这里得到一个色块,所以你可能会选择这样的边界框(编号1),然后在这个色块上运行分类器,就像这个绿色的东西(编号2),在这里找到一个色块,接下来我们还会在那个矩形上(编号2)运行一次分类器,看看有没有东西。