其他分享
首页 > 其他分享> > 深度学习中目标检测Object Detection的基础概念及常用方法

深度学习中目标检测Object Detection的基础概念及常用方法

作者:互联网

目录

What is detection?

detection的任务就是classification+localization

cs231n 课程截图

从左到右:语义分割semantic segmentation,图片分类classification,目标检测detection,实例分割instance segmentation

关键术语

img

方法

two stage

将问题分两个阶段解决:首先从原图选出一系列候选框(object proposal)作为图中各个物体可能的bbox;然后将这些候选框输入到网络中,得出框的分类结果(多分类,是哪一类物体or背景?)和框的回归结果(坐标定位的准确值)

R-CNN

在第一阶段使用selective search这类region proposal method来得出一系列proposal;阶段二将每个region proposal分别输入到CNN网络中,提取出特征向量,然后交给SVM分类器。

Fast R-CNN

在阶段二,针对R-CNN将每个proposal分别输入到网络带来的许多重复计算做出改进,提出直接将整张图输入到网络,只是在分类之前添加ROI pooling层,将阶段一提取出来的proposal(也就是ROI)映射到特征图中【注意阶段一提出来的proposal坐标是在原图坐标系下,因此还包括一个从原图尺度到当前特征图尺度的转换,一般是乘上缩放倍数】。

另一方面,Fast R-CNN也简化了整体的训练过程,不同于R-CNN将提取特征的网络、SVM分类、bbox回归看做三个独立的训练阶段,Fast R-CNN通过在网络中添加分类损失softmax loss和回归损失regression loss,结合两个损失(一般是加权求和),得到multi-task的loss,用其训练网络,使训练过程简化为只有一个阶段。

Faster R-CNN

Fast R-CNN提高了效率,但在阶段一仍然使用的是selective search之类的方法,阶段一和阶段二之间是分离的,这意味着训练的时候并不能做到端到端(end to end)的训练,换句话说,如果阶段一出现了错误导致阶段二表现不好,这个不好的结果无法在训练的时候回传到阶段一去使其做出调整。

因此Faster R-CNN提出了RPN(Region Proposal Network),将阶段一提取proposal的任务也用一个网络来解决,并且让阶段一和阶段二的网络共享一部分权值,从而节省了许多算力。

Faster R-CNN architecture

Faster R-CNN = RPN + Fast R-CNN

图中可以看出RPN 与 Fast R-CNN 两个网络共享了用来提取特征的卷积层,而得出特征图之后,RPN继续生成proposal,将RPN的输出与之前提取的特征图通过ROI pooling之后,作为Fast R-CNN后续部分的输入,得到分类结果与回归结果

RPN

RPN做的事情只是先粗略地提取出一堆候选框,通过网络进行分类(二分类,是物体or背景?)以及回归,得到较为准确的候选框,然后送入Fast RCNN进行更细致的分类与回归

提出概念anchor:

one stage

直接在整张图片上采样一系列的候选框

共同存在问题

多尺度

不同物体有不同种尺寸,有的网络可能比较倾向于检测出大尺寸的物体(在图像中占面积比较大),而难以应对小物体

image pyramid

将同一张输入图像resize为多种尺寸,然后分别输入到网络中,将检测结果综合起来

feature pyramid

只用一张输入图像,但使用网络中来自不同层的特征图(不同层则意味着特征图尺寸不同),分别进行分类和回归,将结果综合起来

平移不变性

样本不均衡


各个步骤可能出现的问题

输入:

网络:

输出:

参考资料

2D 总结 https://zhuanlan.zhihu.com/p/34142321

https://zhuanlan.zhihu.com/p/34179420 模型的评测与训练技巧

https://blog.csdn.net/JNingWei/article/details/80039079 他人总结的 框架图的形式解释各个类别

标签:原图,候选框,Object,Detection,bbox,深度,CNN,proposal,anchor
来源: https://www.cnblogs.com/notesbyY/p/10986930.html