deeplearning.ai第四课第三周:目标检测

1 目标定位

目标定位用于确定目标在图像中的位置。

检测 = 分类 + 定位;

定位:
图像左上角(0,0),右下角(1,1);
图像定位输出四个值,分别为 b x , b y , b w , b h b_x,b_y,b_w,b_h bx,by,bw,bh
b x , b y , b w , b h ∈ ( 0 , 1 ) b_x,b_y,b_w,b_h \in (0,1) bx,by,bw,bh(0,1)

定位也是一个有监督的任务,对训练样本标注目标的坐标位置,迫使神经网络去学习对应的权重系数去预测目标的位置。

损失函数:当检测到图像中包含目标时,损失值为分类的交叉熵损失和定位坐标和ground-truth坐标之间的欧式距离之和;当检测到目标中不包含目标时,损失值只是分类的交叉熵损失。

2 特征点检测

人脸特征点检测和人体姿态估计中的特征点检测都是和目标定位一样进行实现,使用大量详细标注了关键点的图像进行训练得到卷积网络,计算标注特征点与预测特征点之间的欧式距离差值,最小化该差值训练网络得到具有良好性能的卷积神经网络。

3 基于滑动窗口的目标检测

基于滑动窗口的目标检测的实现思路是,首先训练一个目标分类网络,然后对于测试图像,选取固定大小的窗口依次滑过图像,将每一个图像块送入分类网络,若分类结果结果显示该图像块中包含目标,则实现了目标检测。为了实现不同大小的目标的检测,可以使用不同大小的窗口滑过图像以实现多尺度的目标检测。

基于滑动窗口的目标检测的缺点是,若不使用特别小或者特别多的检测窗口则无法实现目标的精确定位,若使用特别小的检测窗口则计算任务量太大。

4 滑动窗口的卷积实现解决计算任务量大的问题

上面学习的基于滑动窗口的目标检测需要从图像中取出各子块进行分类,因此执行效率较低。有没有哪种方法可以提升时间效率?答案就是用卷积层来替代全连接层,从而可以对任意大小的图像都可以一次性进行处理过程。

在这里插入图片描述
替代过程如上图所示,在上图第一行所示的网络结构中,最后一个卷积层的输出为5 * 5 * 16,将其变换为单行向量与后面的包含400个元素的层通过全连接相连,这样全连接层的每个神经元都与前一层的5 * 5 * 16个神经元相连。若使用400个5 * 5 * 16的卷积核,那么输出为1 * 1 * 400,且输出层中每一个神经元依然与前面层5 * 5 * 16个神经元相连。因此,使用卷积层代替全连接层取得了相同的连接效果。

在这里插入图片描述如上图所示,用卷积层代替全连接层之后,就可以对任意大小的图像一次性进行前向运算,而不必再把各图像子块送入网络进行前向运算,这样可以有效提升图像的处理效率。这样得到的输出结果中各值与输入图像中的局部块是一一对应的关系。用卷积层代替全连接层的思路来自于论文overFeat。

5 IOU

Intersection of Union,IOU,计算检测框和ground-truth bounding box之间的交并比,即两个框的交集面积与两个框的并集面积之比。IOU衡量两个bounding box的重叠程度。

一般认为预测bounding box与ground-truth bounding box之间的IOU大于0.5则认为预测框正确,当然可以使用更高的阈值以实现更加严格的过滤。

6 NMS

non-max supression,NMS,非最大值抑制,用于删除同一个目标上多个重复的检测框,只保留置信度最高的检测结果。

NMS的核心思想是只保留置信度最高的检测框,抑制那些和高置信度检测框高度重合(高IOU值)的低置信度检测框。

NMS的实现过程为:

  • 删除当前图像检测结果中置信度小于指定阈值(例如 p c ≤ 0.6 p_c \leq 0.6 pc0.6)的检测框;
  • 选取当前图像剩余检测结果中置信度最高的检测框,予以保留;
  • 逐个计算剩余的检测框与置信度最高的检测框之间的IOU,若超过了指定阈值(例如0.5),则认为两个检测框高度重合,将该检测框进行删除。

在这里插入图片描述

7 Anchor Box

YOLO的实现中,每个目标都归属于包含目标中心位置的grid cell,且每个grid cell只能输出一个包含目标的概率和bounding box,这样每个grid cell只能对单个目标进行检测。

使用anchor box,则一个grid cell可以对多个目标进行检测。每个grid cell处理的anchor box的数量和形状都是预先定义的。每个grid cell的输出也变成了多组(anchor box的数量)结果,每组结果为包含目标的概率 p c p_c pc、目标的四个位置坐标及目标的类别。
在这里插入图片描述
在这里插入图片描述使用多个anchor box的yolo算法,检测出来的目标不再是只给包含其中心位置的grid cell,还要给定该grid cell中和检测框IOU最大的anchor box,即输出结果为(grid
cell number,anchor box number)的形式。

anchor box的数量及形状一般是预先设置的。

使用anchor box依然有两种情况无法良好检测:

  • 具有相同中心位置的目标数量多于了预设的anchor box的数量;
  • 同一个grid cell中包含了多个形状相似的目标。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值