计算机视觉的深度学习 Lecture15:Object Detection 笔记 EECS 498.007/008

一些介绍:

amodal box (非模态box?)
标记隐含的物体大小

只检测一个目标的流程

同时计算分类分数和Box坐标、使用Multitask Loss。Multitask Loss现在是一种非常常见的方法。

滑动窗口检测多个目标
开销巨大(右下是所有可能的滑动窗口数量*位置=All possilbe boxes)

解决方案:区域选择:使用proposal method预先搜索图片上目标的“可能区域”(或者叫ROI)(不是滑动窗口的box),之后可以在“可能区域”上做图像分类+检测(RCNN)

  • proposal method是一些启发式方法可以寻找“可能区域”,可能用到了图像梯度、角点检测等技术
  • 启发式方法相对较快(CPU几秒)

RCNN Region-Base CNN

基于Region,就是在启发式方法搜得的部分区域中(ROI)进行分类,并且还会做一个变换–在一个ROI中检测出的框子可以偏离原ROI的中心坐标、修改框子大小。
下面px,py为中心位置,ph,pw为高和宽
注意到送入卷积神经网络时,ROI要warp成224*224。下面的Transformation式子bx=px+pwtx,这种变换某种程度上可以让他们学到“warp invariant”,也就是逆warp。

|500
注意:

image-20230513183445963

对比Box:交并比IOU

IOU=重叠区域/并区域
|500
IOU>0.5不错,>0.7很好,>0.9接近完美,对于部分目标而言,>0.9表示框子之间的间隔只有几个像素
|500

Non-Max Suppression (NMS)

目标检测的时候图像上可能出现不同目标的多个框子重叠。NMS可以将其区分开来。

常用NMS算法流程:

  • 取当前最大概率框子A,将A对其他所有框子求IOU,

  • IOU>0.7的框子都认为和A是同一个目标、删去

  • 重复这个过程
    |325|325

    |350

(2019)还处理不好的例子:

mAP计算

p p t 里对这个内容讲解非常好、演示了算法流程,直接去看 \color{green} \mathrm{ppt}里对这个内容讲解非常好、演示了算法流程,直接去看 ppt里对这个内容讲解非常好、演示了算法流程,直接去看
AP值是AP曲线下的面积,最大为1(因为精确度和Recall最大为1)

如果AP要到1,则需要

  • 所有检测对象与ground-truth box(GT box)的IOU>thresh
  • 所有“正确检测概率”统统大于“错误检测概率”(对应于图上就是左边全绿框、右边全红框)
  • 所有ground-truth box(GT box)被覆盖(就是标记的所有框子对应的对象要被检测到,判定检测到就是IOU)
    • 只满足第一条可能出现有一条狗没有被检测到,这一条就覆盖了这种情况(当然这个说法有点“问题”,因为这是在反解释算法)

mAP就是在所有类上的AP取平均值

如果thresh固定等与0.5,暗含我们不关心实际上检测的有多精确(框子有多贴合),这样不是一个好的metric
所以实践中我们会检测不同thresh的mAP值,在论文中的写法就是mAP@thresh=0.xx

COCOmAP就是对不同thresh的mAP求平均

原来的RCNN速度太慢,因为要在proposal method搜索出的很多个(eg. 2000)ROI上做检测。改进方法是交换warp和卷积的顺序:

Fast RCNN

先整个卷积,然后在特征图上用proposal method搜索,再使用小CNN进行检测

Backbone指的是主干网络,ConvNet,用一个较好的图像分类网络即可
结构上对比AlexNet:

问题:How to crop features?

解决方案:
首先,这个crop区域是从原图上“切”的,不是从feature map上切的;只不过我们在原图上找到区域后要对应到卷积之后的区域。
步骤:

  • 绿框是启发式方法搜到的ROI,他可以对应于卷积之后的部分grid但是不一定能对齐,故通过“snap”方法强制让ROI对齐到卷积之后的grid。
  • 然后使用max-pool将其强制降采样为指定size(这里是2x2)
  • 这样对于不同的ROI大小输入,计算出的Region Feature的格式都是固定的

    问题很显然,Slight misalignment,有轻微的不对齐、直觉上也挺奇怪

解决办法:线性插值(不太重要)
点值=周围四个点加权求和,权是曼哈顿距离

然后用加权之后的值降采样成指定shape

image-20230513204458184

Faster RCNN

将启发式搜索ROI的过程更换为一个卷积神经网络(region proposal network,RPN)来处理
这样就需要额外训练RPN

image-20230513202210564

卷积之后的一个grid对应于一个指定大小的Anchor box,这个gird经过RPN可以预测他对应的Anchor是否存在一个目标(object)、是一个二分类问题。

当然一开始固定的Anchor可能不匹配目标,所以之后加了一个transform(将Anchor转为Proposal),提供了偏移和缩放框子形态的能力。
4*20*15,这里的4应该指的是4个参数(宽高中心位置)

image-20230513202434069

但实际上一个框子可能能力达不到;所以对于每一个点我们会预测出K个Anchor

image-20230513202937169

综合一下,对于Faster RCNN就有4个loss值需要计算:
RPN二分类(是否有目标)、RPN回归(Anchor->Proposal)、结果分类、结果回归

image-20230513203440962

Faster RCNN是一种典型的两阶段目标检测网络,问题是,我们到底需不需要两个阶段?

image-20230513203747322

一种单阶段网络:RPN直接预测出C+1类(多的一类是是否为Object),然后transform之后给出框子形态

image-20230513203922475

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值