Bounding Box预测(Bounding box predictions)

来源:Coursera吴恩达深度学习课程

在上一篇文章滑动窗口的卷积实现(Convolutional implementation of sliding windows)中,我们了解了滑动窗口法的卷积实现,这个算法效率更高,但仍然存在问题,不能输出最精准的边界框。在这篇文章中,将学习如何得到更精准的边界框

如上图,在滑动窗口法中,这些边界框没有一个能完美匹配汽车位置,也许右下角的蓝框是最匹配的啦。甚至最完美的框(右下角的红色框)不是正方形,而是长方形。那么有没有办法让这个算法输出更精准的边界框呢?

其中一个能得到更精准边界框的算法是YOLO算法YOLO(You only look once)意思是你只看一次,这是由Joseph Redmon,Santosh Divvala,Ross Girshick和Ali Farhadi提出的算法。输入图像是100×100的,然后在图像上放一个3×3网格,也可能是其他网络。基本思路是使用图像分类(image classification)和定位算法(localization algorithm),原理与本周的第一个视频类似。例如左上的格子没有汽车,分类标签y是:

最后,9个格子中(3×3的网格)的任何一个都会得到一个8维输出向量,总的输出尺寸是3×3×8。

如果你现在要训练一个输入为100×100×3的神经网络,现在这是输入图像,然后你有一个普通的卷积网络,卷积层,最大池化层等等,选择卷积层和最大池化层,这样最后就映射到一个3×3×8输出尺寸

所以这个算法的优点在于神经网络可以输出精确的边界框。重申一下,把对象分配到一个格子的过程是,将这个对象分配到其中点所在的格子,所以即使对象可以横跨多个格子,也只会被分配到9个格子其中之一,就是3×3网络的其中一个格子,或者19×19网络的其中一个格子。在19×19网格中,两个对象的中点(图中蓝色点所示)处于同一个格子的概率就会更低。

要注意:(1)这和图像分类和定位算法非常像,它显式地输出边界框坐标,能让神经网络输出边界框,可以具有任意宽高比,并且能输出更精确的坐标,不会受到滑动窗口分类器的步长大小限制。(2)这是一个卷积实现,你并没有在3×3网格上跑9次算法,或者你用的是19×19的网格,19平方是361次,所以你不需要让同一个算法跑361次。相反,这是单次卷积实现,但你使用了一个卷积网络,有很多共享计算步骤(shared computation),在处理这3×3计算中很多计算步骤是共享的,或者你的19×19的网格,所以这个算法效率很高。事实上YOLO算法有一个好处,也是它受欢迎的原因,因为这是一个卷积实现,实际上它的运行速度非常快,可以达到实时(real-time)识别

在YOLO算法中,对于这个方框(橘色方框),一般约定左上这个点是(0,0),然后右下这个点是(1,1),b_x和b_y必须在0-1之间,b_h和b_w可能会大于1。

总之,这就是YOLO算法(你只看一次算法),如果你感兴趣,也可以看看YOLO的论文。

论文:Redmon, Joseph, et al. "You Only Look Once: Unified, Real-Time Object Detection." (2015):779-788.

说明:记录学习笔记,如果错误欢迎指正!转载请联系我。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值