1 RCNN
网络分为四个部分:区域划分、特征提取、区域分类、边框回归
区域划分:使用selective search算法画出2k个左右候选框,送入CNN
特征提取:使用imagenet上训练好的模型,进行finetune
区域分类:从头训练一个SVM分类器,对CNN出来的特征向量进行分类
边框回归:使用线性回归,对边框坐标进行精修
优点:
ss算法比滑窗得到候选框高效一些;使用了神经网络的结构,准确率比传统检测提高了
缺点:
1、ss算法太耗时,每张图片都分成2k,并全部送入CNN,计算量很大,训练和inference时间长
2、四个模块基本是单独训练的,CNN使用预训练模型finetune、SVM重头训练、边框回归重头训练。微调困难,可能有些有利于边框回归的特征并没有被CNN保留
2 Fast-RCNN
Fast-RCNN具体原理解析
相对RCNN,准确率和速度都提高了,具体做了以下改进:
1、依旧使用了selective search算法对原始图片进行候选区域划分,但送入CNN的是整张原始图片,相当于对一张图片只做一次特征提取,计算量明显降低
2、在原图上selective search算法画出的候选区域对应到CNN后面输出的feature map上,得到2k个左右的大小长宽比不一的候选区域,然后使用RoI pooling将这些候选区域resize到统一尺寸,继续后续的运算
3、将边框回归融入到卷积网络中,相当于CNN网络出来后,接上两个并行的全连接网络,一个用于分类,一个用于边框回归,变成多任务卷积网络训练。这一改进,相当于除了selective search外,剩余的属于端到端,网络一起训练可以更好的使对于分类和回归有利的特征被保留下来
4、分类器从SVM改为softmax,回归使用平滑L1损失
缺点:因为有selective search,所以还是太慢了,一张图片inference需要3s左右,其中2s多耗费在ss上,且整个网络不是端到端