【计算机视觉】目标检测方法汇总
1、 选择性搜索:方法:滑动窗口,规则块(利用约束进行剪枝)、选择性搜索(自底向上合并相邻的重叠区域) 一步步计算相似度 并且合并、剔除相似度的高的
OverFeat: 核心思想:
1) 区域提名;多尺度滑动
2) 分类和定位:CNN来做分类和预测边框位置 与AlexNet类似 1-5层特征抽取,6-9层为分类层(分类任务) 不同的任务公用特征抽取层(1-5层),只替换6-9层。
3) ’聚合(采用了滑动窗口和多尺度)不同位置和不同大小块上的分类置信度会进行累加。
采用全连接层改造成卷积层的方式,使得相同区域的计算结果可以共享。(共享计算)
基于区域提名的方法
1.R-CNN
2.SPP-net(Spatial Pyramid Pooling,SSP):传统的方案是对图像进行不同位置的裁剪。SPP会对整图提取固定维度的特征,再把图片平均分成四份、16份
不论输入图片大小是多少,都是提取固定长度的特征 16份为 16256 4份 4256 整图 1*256
SPP使用了多级的空间尺度特征
能够在不同维度抽取特征
主要步骤如下:
1) 区域提名:从原图生成2000个候选框
2) 区域大小缩放:不再做区域归一化 而是缩放到 min(w,h)=s
3) 特征提取
4) 分类与回归
3.Fast R-CNN
解决重复计算带来的问题。
使用简化的SPP层 RoI池化层
测试和训练不再分多步进行省去存储空间
SVD:使用SVD分解全连接层的参数矩阵,压缩为规模很小的全连接层。
步骤:
1) 特征提取 整图输入 得到特征层
2) 区域提名:从原始图片中提取候选区域 并把这些候选框一一投影到最后的特征层
3) 区域归一化:针对特征层的每个区域候选框进行RoI池化,得到固定大小的特征表示;
4) 分类与回归:通过2个全连接层,分别用Softmax多分类进行目标识别,用回归模型进行边框位置与大小微调。
4.Faster R-CNN
不再使用选择性搜索!使用RPN(Region Proposal Network)来计算候选框
任意大小为输入,输出一批区域提名,每个区域对应一个目标分数和位置信息!
1) 特征提取:同Fast R-CNN 整张图输入
2) 区域提名 k个不同的矩形框 (k个标准框anchor boxes,一般取9)
3) 区域判定:提取后进行判断,用k个回归模型微调候选框位置、大小。
4) 分类与回归:
5.R-FCN
将最后的全连接换成一个位置敏感的卷积网络,这样所有的计算都可以共享。
具体来说,先把每个提名区域划分成k*k个网格 每个网格都有对应编码
会有预测有C+1个输出,C是类别数,1是背景类别。
步骤:
1) 区域提名 RPN 全卷积网络结构
2) 分类与回归:利用和RPN共享的特征进行分类 当进行bbox回归时,将C设置为4.
无区域提名的方法:
6.YOLO: 端到端的方法,进一步把目标判定和目标识别合二为一。
特点:
划分成网格 在每个格子中找边框,如B=2,则每个格子找两个边框及其对应的置信度、对每个格子进行分类求概率。较大的物体可由多个网格单元进行提名。采用NMS(非最大抑制)
直接分类不进行提名
问题:如有2个小目标在一个格子中,模型只能预测一个;损失函数对大小不同的框未做区分。
7.SSD:Single Shot Multibox Detector
改进了YOLO的缺点:
每个格子上有大小固定的不同的Box,称为Default box,用来框定目标物体的位置。
SSD网络:1.前面网络是用于图像分类的标准网络(去掉分类相关层),2.后面的网络用于多尺度特征映射层,实现检测不同大小的目标。
SSD借鉴了Faster-RCNN中的Anchor机制,同时使用多尺度。