计算机视觉

计算机视觉

主要任务:通过对采集的图片或视频进行处理以获得相应场景的信息。

马尔提出的计算机视觉非常重要的观点:人类视觉的主要功能是通过大脑进行一系列处理和变换,来复原真实世界中的三维场景,并且这种神经系统里的信息处理是可以用计算的方式重现(理论,算法和硬件)。

端到端的学习/训练:完全交给深度学习模型直接学习从原始数据期望输出的映射

object detection

物体再哪里以及是什么

问题:物体的尺寸变化范围很大,摆放物体的角度,姿势不定,可以出现再图片的任何地方,还是多类别

目前学术和工业界出现的目标检测算法分成3类:

  1. 传统的目标检测算法:Cascade + HOG/DPM + Haar/SVM以及上述方法的诸多改进、优化;

  2. 候选区域/窗 + 深度学习分类:通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如:
    R-CNN(Selective Search + CNN + SVM)
    SPP-net(ROI Pooling)
    Fast R-CNN(Selective Search + CNN + ROI)
    Faster R-CNN(RPN + CNN + ROI)
    R-FCN 等等

  3. 基于深度学习的回归方法:YOLO/SSD/DenseBox 等方法;以及最近出现的结合RNN算法的RRC detection;结合DPM的Deformable CNN等

计算机视觉

fine-tuning:使用预训练的网络来重新fine-turning(微调)

一般使用多个filter分别进行卷积,最终得到多个特征图

感受野:原始区域

FCN:先卷积,再计算,只计算一次

缺点:感受野大小固定,卷积窗口固定,效果可能不会得到非常好的效果

mAP(平均准确率均值)

多个类别AP的平均值(0~1之间)

top10的话准确率可能会下降,召会率会上升

计算机视觉

非极大值抑制(NMS)

选出置信度最高的候选框,如果和当前最高分的候选框重叠面积IOU大于一定阈值,就将其删除

twostage: 产生候选区域,对候选区域分类

onestage:直接产生物体的类别概率和位置坐标值

R-CNN

预先找出图中目标可能出现的位置:候选区域(Region Proposal)

利用图像中的纹理、边缘、颜色等信息,可以保证在选取较少窗口的情况下保持较高的召回率。

方法:

selective search

step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…}
step2:找出相似度最高的两个区域,将其合并为新集,添加进R
step3:从S中移除所有与step2中有关的子集
step4:计算新集与所有子集的相似度
step5:跳至step2,直至S为空

相似度主要是颜色,纹理,尺寸,交叠

物体映射要特征图中的相同的位置

之后对候选区域进行图像分裂的工作(特征提取+分类)

fast R-CNN

2000个region proposal为图像的一部分,

所以可以对图像提一次卷积层特征,将region proposal在原图的位置映射到卷积层特征图上

然后将每个region proposal的卷积层特征输入到全连接层做后续操作

问题:每个region proposal的尺度不一样(输入必需是固定长度——SPP Net)

SPP Net

CNN一般都含有卷积部分和全连接部分,其中,卷积层不需要固定尺寸的图像,而全连接层是需要固定大小的输入。

warp/crop(缩放、扣出)这种预处理,会导致的问题要么被拉伸变形、要么物体不全,限制了识别精确度。

借鉴卷积层可以适应任何尺寸

在普通CNN结构中加入了ROI池化层,使得网络的输入图像可以是任意尺寸的,输出则不变,同样是一个固定维数的向量。

R-CNN和SPP Net检测流程的比较:
计算机视觉

与R-CNN框架图对比:

1最后一个卷积层后加了一个ROI pooling layer

2损失函数使用了多任务损失函数(multi-task loss),将边框回归Bounding Box Regression直接加入到CNN网络中训练

RPN层:生成候选区域,每个点生成k个候选区域anchor

计算机视觉

faster R-CNN

计算机视觉
计算机视觉

对于生成的anchor,RPN要做的事情有两个,第一个是判断anchor到底是前景还是背景,意思就是判断这个anchor到底有没有覆盖目标,第二个是为属于前景的anchor进行第一次坐标修正

RPN的本质是一个树状结构,树干是一个3×3的卷积层,树枝是两个1×1的卷积层,第一个1×1的卷积层解决了前后景的输出,第二个1×1的卷积层解决了边框修正的输出。

如果一个anchor与ground truth的IoU在0.7以上,那这个anchor就算前景(positive)。

如果这个anchor与ground truth的IoU在0.3以下,那么这个anchor就算背景(negative)。

anchor与ground truth的IoU介于0.3和0.7的anchor没有使用

总结:

RCNN
1.在图像中确定约1000-2000个候选框 (使用选择性搜索Selective Search)
2.每个候选框内图像块缩放至相同大小,并输入到CNN内进行特征提取
3.对候选框中提取出的特征,使用分类器判别是否属于一个特定类
4.对于属于某一类别的候选框,用回归器进一步调整其位置

确定候选框,缩放,提取特征,某一候选框调整

Fast R-CNN
1.在图像中确定约1000-2000个候选框 (使用选择性搜索Selective Search)
2.对整张图片输进CNN,得到feature map
3.找到每个候选框在feature map上的映射patch,将此patch作为每个候选框的卷积特征输入到SPP layer和之后的层
4.对候选框中提取出的特征,使用分类器判别是否属于一个特定类
5.对于属于某一类别的候选框,用回归器进一步调整其位置

确定候选框,整张图片卷积得feature map,候选框在feature map映射patch输入SPP层,分类器,某一候选区调整

Faster R-CNN
1.对整张图片输进CNN,得到feature map
2.卷积特征输入到RPN,得到候选框的特征信息
3.对候选框中提取出的特征,使用分类器判别是否属于一个特定类
4.对于属于某一类别的候选框,用回归器进一步调整其位置
整张图片卷积得feature map,输入到RPN,分类器,某一候选区调整

Mask R-CNN

计算机视觉

YOLO

使用了回归的思想

图像,分成了7X7的网格

每个网格预测2个边框(目标的置信度以及每个边框在多个类别上的概率)

根据阈值去除可能性较低的目标窗口,NMS去除冗余窗口

缺点:没有了region proposal机制,使得目标不能非常精准的定位

SSD

结合YOLO的回归思想以及Faster R-CNN的anchor机制

基础网络结构VGG16

300 512

每一层生成n个候选区加起来 总共的结果->NMS 每个结果包含25个值

增加了空洞卷积

特征金字塔:获得不同尺度的特征映射并进行预测(增加预算量的同时可能会提高检测的j精度)

计算机视觉

浅层卷积层可以得到物体边缘信息,深层网络可以得到更细节更抽象的特征

代价函数的计算:

预选框和目标类别的置信度以及相应的位置回归 比例α 默认1

N:match到Ground Truthd的预选框数量

Neg 背景类别

位置回归与fast R-CNN一样

Hard negative mining:选取误差较大的负样本,使模型更快优化和跟稳定

Data augmentation:训练图像随机采样