基础知识掌握情况决定研究的高度,我们刚开始接触深度学习时,一般都是看到别人的概括,这个方法很好能让我们快速上手,但是也有一个很大的缺点,
知识理解的不透彻,导致我们对算法优化时一头雾水。我也是抱着知识总结的思想开始自己的深度学习知识精髓的探索,也希望能从中帮助到更多人。文章中间存在表述不清的地方希望各位研友(研究深度学习的朋友)提出,我会努力完善自己的文章。

     进入主题,faster R-cnn 简单易懂的思虑整理:

     模块介绍:

    1、最重要的模块——RPN(区域建议网络)

          该网络改善了R-cnn 、Faste
R-cnn的选取候选框带来的时间问题。R-CNN和检测网络共享全图的卷积特征,减少了区域建议的时间。首先遍历整个特征图上的像素点,然后以每个像素点为中心产生9个anchor,这9个anchor是一个超级参数,是我们自己固定的,一般设定为三个不同的比例和三个不同大小的参数。每个像素点得到的框我们对其根据特征对他们进行分类,主要是采用二分类,判断是前景还是背景,我们取消背景框,现在剩下的全部是包含检测物体特征的选框。下面我们将对剩下的选框再次筛选:

          现在开始区分和训练过程:

     训练时我们有一个目标的ground
truth,我们根据这个框可以对和我们的现存的anchor进行筛选。首先删除框本身重叠度高的,达到稀疏效果。另外有一个IOU参数,代表anchor-box与ground-truth-box之间的重叠度。当IOu大于我们设定的超级参数(一般是0.7)时会保留下来,会保证我们选取准确的框。另外还有一个小一个IOU的(一般是0.3)也会留下来。这样为了保证分类训练的样本输入的局部特征,能够保证我们能够检测是能够识别残失部分图片的信息。

      接下来会有两个分支。

      1、采用softmax进行分类,求出每个框的得分和类别。然后求回归,训练网络的卷积和全连接层的权重。

       2、对选框进行移动到ground-true
box,学习选框的回归参数,对选框进行微调。我们得到的训练参数,可以根据输入的特征(中心点长宽高对应的卷积特征)和学习到的权重矩阵,对长宽高进行微调。

     检测的时候我们没有真实的框,我们在对候选框进行选择是时候。寻找一个识别度最高的框,然后根绝微调参数进行校准,达到很好的效果。





 

线性回归就是给定输入的特征向量X,学习一组参数W,使得经过线性回归后的值跟真实值Y(Ground Truth)非常接近。即
。那么Bounding-box中我们的输入以及输出分别是什么呢?

输入:


这个是什么?输入就是这四个数值吗?其实真正的输入是这个窗口对应的CNN特征,也就是R-CNN中的Pool5feature(特征向量)。(注:训练阶段输入还包括 Ground
Truth,也就是下边提到的)

输出:

需要进行的平移变换和尺度缩放,或者说是。我们的最终输出不应该是Ground Truth吗?是的,但是有了这四个变换我们就可以直接得到Ground
Truth,这里还有个问题,根据上面4个公式我们可以知道,P经过,得到的并不是真实值G,而是预测值。