吴恩达神经网络和深度学习-学习笔记-43-Bounding box 预测 + YOLO算法

滑动窗口目标检测的缺点

在滑动窗法中,取这些离散的位置的集合,然后在它们上面跑分类器。在这种情况下,这些边界框没有一个能完美匹配汽车位置。

还有,最完美的边界框甚至不是方形,而是稍微有点长方形。
在这里插入图片描述

得到更精准的边界框——YOLO算法

YOLO算法图像分类+定位算法非常像(显式地输出边界框坐标),所以这能让神经网络输出边界框,可以具有任意宽高比,并且能输出更精确的坐标,而不会受到滑动窗法分类器的步长大小限制。

其次,这是一个卷积实现,我们并没有在3×3网格上跑9次算法,相反这是单次卷积实现。我们使用了一个卷积网络,有很多共享计算步骤,所以YOLO算法效率很高

示例:

比如你的输入图像是100×100的,然后在图像上放一个网格( 实际会用更精细的网格,可能19×19)。

这样情况下,多个对象分配到同一个格子的概率就小得多。

把对象分配到一个格子的过程是:观察对象的中点,然后将这个对象分配到其中点所在的格子。所以即使对象横跨多个格子,也只会被分配到9个格子其中之一。
在这里插入图片描述

YOLO算法的基本思路:

使用图像分类和定位算法,然后将算法应用到9个格子上。

更具体一点是:
你需要这样定义训练标签,所以对于9个格子中的每一个指定一个标签y,y是8维向量(和定位算法一样)
在这里插入图片描述

YOLO算法的做法:

取两个对象的中点,然后将这个对象分配给包含对象中点的格子,所以左边的汽车就分配到第二行第一个格子上;这辆Condor中点在第二行第三个格子,分配给这个格子。
在这里插入图片描述
在这里插入图片描述
最后整张图片的输出尺寸是3×3×8
在这里插入图片描述

训练过程

有一个输入x就是这样的输入图像,然后有这些3×3×8的目标标签y。
用反向传播训练神经网络时,将任意输入x映射到这类输出向量y。

算法优点

  • 神经网络可以输出精确的边界框。
  • 这是一个卷积实现。实际上它的运行速度非常快,可以达到实时识别。

所以测试的时候,你做的是喂入输入图像x,然后跑正向传播,直到你得到这个输出y。

只要每个格子中对象数目没有超过1个,这个算法应该是没问题的。

编码边界框 b_x b_y b_h b_w

b_x、b_y、b_h、b_w单位是相对格子尺度的比例。
在这里插入图片描述
b_x和b_y必须在0和1之间(中点位于对象分配到的格子的范围内,否则这个对象就应该分配到另一个格子上)。

b_h和b_w可以大于1(取决于车在图片的大小)。

吴恩达老师这里就只给出一个合理的约定 用起来应该没问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值