DeepLearning · 2019年11月20日 2

DL-001-R-CNN

2014#R-CNN学习笔记

Region with CNN feature

 

整体思路:将整张图片分块处理,分块用Alexnet识别

相对于之前的改进

1.分块方式(ss)selective search

2.缺乏大量的标注数据时,比较好的可行的手段是,进行神经网络的迁移学习,采用在其他大型数据集训练过后的神经网络,然后在小规模特定的数据集中进行 fine-tune 微调。

流程

1.生成候选区域 Region proposals.

2.特征抽取 Feature extraction

取代滑动使用SS划分图片;抽取了一个 4096 维的特征向量,采用的是 Alexnet,但是由于Alexnet227*227,图片暴力变形;人为加P=16的边框

3.目标检测

将每个候选区域进行尺寸的修整变换,送进神经网络以读取特征,然后用 SVM 进行类别的识别,并产生分数。针对每个类,通过计算 IoU 指标,采取非极大性抑制,以最高分的区域为基础,剔除掉重叠位置的区域。

候选区域输入CNN提取特征向量时会产生图片扭曲:

CNN中,FC层由于神经元的数量固定,此时输入图片大小固定,而前面的卷积层并无此限制

Alexnet结构示意图

关于SS(selective search)

分子块的最直接方法叫滑动窗口法(sliding window approach)。

滑动窗口的方法就是按照子块的大小在整幅图像上穷举所有子图像块,数据量巨大。

SS是另外一类基于区域(region proposal)的方法。

大致做法:

step0:生成区域集R

step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…}

step2:找出相似度最高的两个区域,将其合并为新集,添加进R

step3:从S中移除所有与step2中有关的子集

step4:计算新集与所有子集的相似度

step5:跳至step2,直至S为0