物体检测(Object detection)
检测图片中所有物体的类别标签(Category label)位置(最小外接矩形/Bounding box)
区域卷积神经网络(R-CNN系列)
R-CNN
模型结构
按分类问题对待:模块一:提取物体区域(不同位置,不同尺寸,数量很多),模块二:对区域进行分类识别(CNN分类器,计算量大)
CNN训练流程(4步)
1·M<-在ImageNet上对CNN模型进行pre-train(预训练)
预训练:取一个在其他数据集上训练好的模型,进行初始模型(公用层的参数已经训练好了)
2·M’<-使用所有SS生成区域对M进行fine-train(再训练)
再训练:基于现在需要解决的数据集进行训练,使得其适应当前的数据集
Loss:概率log值
Softmax层改成(N+I)-way其他不变
32个正样本/物体(N类):跟Ground-truth重合IoU>=0.5(被检物体与背景的重合度大于0.5)
96个负样本/背景(I类):IoU<0.5(被检物体与背景的重合度小于0.5)
3·C<-在M‘的Fc7特征在训练线性SVMs分类器
Hinge loss(SVM的损失函数)
每个类别(N类)对应一个SVM分类器
正样本:所有的Ground-truth区域
负样本:跟Ground-truth重合IoU<0.3的SS区域
4·R<-在M‘的Conv5(第五个卷积层输出的结果)特征上训练Bounding box回归模型
提升定位性能(Bounding box的准确性)
每个类别(N类)训练一个回归模型
将SS提供的Bounding box做重新映射P->G,位置重新规划
输出结果;P的IoU>0.6(P为SS算法提出的旧位置信息,G为输出的信息)
模型优化:Squared loss(差平方和loss),,
测试阶段:
参数w已经训练好
R-CNN测试阶段
SS算法提取~2000个区域/图片,将所有的区域膨胀+缩放到227*227。
使用fine-tune过的AlexNet计算2套特征,为每个类别执行:
Fc7特征->SVM分类器->类别分值
使用非极大值抑制(IoU>=0.5)获取无冗余的区域子集
(重复下列操作)
所有区域按分值从大到小排列
剔除冗余:与最大分值区域IoU>=0.5的所有区域
保留该最大分值区域,剩余区域作为新候选集
Conv5特征 ->Bounding Box回归模型 ->Bbox偏差
使用Bbox偏差修正区域子集
性能评价:
SPP-Net网络
R-CNN速度慢的一个重要原因,卷积特征重复计算量太大,每张图片的~2000区域都会计算CNN特征
俩大改进,直接输入整图,所有区域共享卷积计算(一遍),在conv5层输出上提取所有区域的特征,引入空间金字塔池化,为不同尺寸的区域,在Conv5输出上提取特征,映射到尺寸固定的全连接层上。
空间金字塔池化,替换conv5的Pooling层,3个level和21个Bin:1*1,2*2,4*4,bin内使用max pooling,每个SS区域会产生21个Bin
SPP-Net问题:
继承了R-CNN的剩余问题,需要存储大量特征,复杂的多阶段训练,训练时间长(特征提取时间下降),新问题:SPP层之前的所有卷积层参数不能finetune。
Fast R-CNN
改进:比R-CNN,SPP-Net更快的training /test 更高的mAP,实现end-to-end(端对端)单阶段训练,多任务损失函数(Multi-task loss)所有层的蚕食都可以实现finetune(微调),不需要离线存储特征文件。
在SPP-Net基础引入2个新技术,感兴趣区域池化层(RoI,pooling layer)多任务损失函数(Multi-task loss)
感兴趣区域池化(RoI pooling):空间金字塔池化(SPP pooling)的单层特例,将RoI区域的卷积特征拆分成H*W网格(7*7for VGG),每个Bin内的所有特征进行Max pooling
Faster R-CNN
集成了RPN网络,Faster R-CNN = fast R-CNN+RPN,取代离线的SS模块,解决性能瓶颈,经一部共享卷积层计算,基于Attention机制,引导Fast R-CNN关注区域,Region proposals量少优势(~300)高precision,高recall。
RPN网络:
Faster R-CNN网络:
四步训练流程
step1 - 训练RPN网络
卷积层初始化<-ImageNet 上 pretrained模型参数
step2 - 训练Fast R-CNN网络
卷积层初始化<-ImageNet上pretrained模型参数
Region proposals由Step1的RPN生成
step3 - 调优RPN
卷积层初始化<-Fast R-CNN的卷积层参数
固定卷积层,finetune剩余层
step4 - 调优fast R-CNN
固定卷积层,finetune剩余层
Region proposals 由step3的RPN生成