【论文速度】Fast RCNN

https://blog.****.net/wopawn/article/details/52463853

https://blog.****.net/u011718701/article/details/53748724

 

翻译:https://alvinzhu.xyz/2017/10/10/fast-r-cnn/

 

创新点(相较于R-CNN)

 1)共享计算结果:ROIpooling(前向、后向)——附带好处:对输入图片的大小不限制

ROI层:

a)将原image中的区域映射到convfeature map的对应区域

由image到conv feature map是卷积、下采样的操作,其中卷积主要是步长控制了输出

b)将上述区域对应的conv featuremap中的特征用max-pooling转换成一个固定大小H×W的feature map。

 

为什么?

前向:原先1个图片有2000个候选区域,每个候选区域需要做1次的前向计算(在Alexnet中),得到每个候选区域的特征图——》对输入图片做一次前向计算输出整个图形的特征图,根据每个图形的特征图分别提取2000个候选区的特征图(sppnet解决了)

后向:通过改变了采样策略(提高速度、精度)来解决后向传播问题(sppnet没解决需要重新计算不同图片的proposal卷积值)

2)multi-task:一个模型搞定上述2、3、4(end- end)(提高精度)

SVM:在CNN输出层用softmax函数

LR:在CNN输出层加入了用来输出边界框坐标的线性回归层。


【训练阶段】

A:训练集中所有的图像

(1)selective search提取出图像的2000个边框坐标
B:区域建议(建议框)region proposal(2000个边框坐标)+图片

(2)使用数据【对训练集标记的2000个区域和实际区域做比较,确定为前景(IOU>0.5的建议框)、背景(0.1<IOU<0.5建议框);使用mini-batch=128,25%前景样本75%背景样本(数据增广:50%概率水平翻转)】,用模型finetune,获取整幅图像的特征conv5,得到特征图

(3)对每一个区域建议,使用ROI层,从特征图中提取出区域建议所映射的候选区域的固定长度特征

C:区域建议所映射的候选区域的固定长度特征

(4)fc层

(4.1)使用softmax确认分类结果(k+1)

(4.2)使用lr层修正四个实值【只能产生一个分类结果+一个边框?】

基础模型

3种(Alexnet、VGG16、VGG19)

模型改进

1最后一层max-pooling层变成Rol池化层,H*W设置为第一个FC层要求的大小

2输入变成两种输入(图片+ROI)

3输出变成两种输出(FC+分类softmax/fc+坐标细化)

训练方式

1)使用SGD mini-batch

2)hierarchical sampling(采样N=2个图片,从每个图片采样64(R=128/N=2)个ROI区域,在前向、后向传播中ROI共享计算和内存),ROI pooling layer前后batch size从2到128

3)具体样本分布:

25%(正样本,前景,u>=1)的ROIs从候选框中(与真实图片的某类的IOU>=0.5)选取

75%(负样本,背景,u=0)的ROIs从候选框(0.5>与真实图片的20类的最大IOU>=0.1)选取

图像以0.5的概率水平翻转

输出

(1)discrete probability distribution (per RoI), p = (p0, . . . , pK)

p is computed by a softmax over the K+1 outputs of a fully connected layer.

(2)bounding-box regression offsets,  for each of the K object classes, indexed by k.

 We use the parameterization for tk which specifies a scale-invariant translation and log-space height/width shift relative to an object proposal.

【训练时】

Each training RoI is labeled with a ground-truth class u and a ground-truth bounding-box regression target v.

Loss

Loss:

【论文速度】Fast RCNN

【论文速度】Fast RCNN

 [u ≥ 1] evaluates to 1 when u ≥ 1 and 0 otherwise. (catch-all background class is labeled u = 0)

 

【使用L1的原因】

a robust L1 loss that is less sensitive to outliers than the L2 loss used in R-CNN and SPPnet. When the regression targets are unbounded, training with L2 loss can require careful tuning of learning rates in order to prevent exploding gradients. Eq. 3 eliminates this sensitivity.

【论文速度】Fast RCNN

【论文速度】Fast RCNN

【λ的选择】

The hyper-parameter λ in Eq. 1 controls the balance between the two task losses. We normalize the ground-truth regression targets vi to have zero mean and unit variance. All experiments use λ = 1.

Back-propagation through

RoI pooling layers

【ROI层】

ROI定义(region of interested):RoI是卷积特征图中的一个矩形窗口,由(r, c, h,w) 表示(左上角坐标 (r, c)高度,宽度(h,w))

【怎么做?】

将ROI区域(h*w)的特征,变成固定大小H*W(例如7*7)的特征图(使用最大池化,每个pooling的大小子窗口大小约为h/H×w/W)RoI Pooling层将每个候选区域均匀分成M×N块,对每块进行max pooling(将feature map上大小不一的候选区域转变为了大小统一的特征向量),然后送入下一层。

【ROI与pooling的区别?

尽管ROI Pooling可以看做是针对ROI区域的feature mapPooling操作,但因为不是固定尺寸的输入,因此每次的pooling网格大小得手动计算。

 【论文速度】Fast RCNN

【后向传播】

【论文速度】Fast RCNN

【论文速度】Fast RCNN

SGD

Softmax fc

权重

0.01

偏置

0

LR fc

权重

0.001

偏置

0

 

权重:0.001

偏置:0.002

全局:0.001

SGD30k->0.0001*10k

 

解决尺度不变性:

多尺度brute force数据集统一大小(each imageis processed at a pre-definedpixel size during both trainingand testing. Thenetwork must directly learn scale-invariantobject detection from the trainingdata)

 

单尺度image pyramids数据集缩放(providesapproximatescale-invariance tothe network through an imagepyramid:Attest-time, the image pyramid is used to approximatelyscale-normalize each objectproposal.

 

 当ROI较多时,减少svd用来减少全连接层的计算


 

效果

 - 更多候选窗不能提升性能

- 多尺度比单尺度效果略好,时间更长

 

倍增训练数据,能够有2%-3%的准确度提升 
-
网络直接输出各类概率(softmax),比SVM分类器性能略好 

-SVD好

-Finetune(conv3_1及以上(13个卷积层中的9个)的层)

-多任务好


【测试阶段】约等于训练阶段的前向过程

A:输入一张测试集的图像

1) selective search提取出图像的2000个边框坐标

B:区域建议(建议框)regionproposal(2000个边框坐标)+图片(image pyramids

(2)使用训练好的模型,获取整幅图像的特征,得到特征图(fc?)

(3)对每一个区域建议,使用ROI层,从特征图中提取出区域建议所映射的候选区域的固定长度特征

C:区域建议所映射的候选区域的固定长度特征

(4)fc层

(4.1)使用softmax确认分类结果(k+1)

(4.2)使用lr层修正四个实值

D:分类结果+对应的四个实值(边框信息)

(5)检测置信度

(6)使用非极大值抑制,保留最有可能的候选区域(一个区域,可能会有多个框框),可得到该张图片的boundingbox 预测值以及该box对应的类和score