0.背景以及知识补充
0.1 感受野
感受野(Receptive Field)是指神经元对输入信号的敏感范围。在计算机视觉领域,特别是卷积神经网络(CNN)中,一个神经元的感受野是指它在输入特征图上可以"看到"的区域大小。感受野越大,表示该神经元可以捕捉到更大范围的特征信息。
在卷积层中,感受野的大小取决于卷积核的大小、步幅(stride)和使用了多少个卷积层。通常,随着卷积层的深度增加,神经元的感受野也会相应地扩大。这意味着,随着网络的深入,卷积神经网络可以捕捉到输入图像中更高级别的特征。
通俗来理解,就是由于卷积的位置相关性,对于特征图的某块区域,它只是由上一层特征图中某块区域得到的,也即融合了这块区域的信息,但和其他区域没有关系。因而这块区域就被称为其感受野。感受野可以逐层向上传递。
在没有填充情况下,特征图某块区域的中心和其感受野区域的中心在两层的特征图中的相对位置是一致的。且若卷积核形状为正常正方形,两块区域对应的长宽比相同,也即相似。相似比可以由卷积操作的步长,kernel_size等相关参数得到。
(上述红色框即两块区域的对应关系,大的即为小区域的感受野。)
大的卷积核和小的卷积核在卷积神经网络中都有其适用的场景。大的卷积核可以捕捉到更大范围内的特征,但是参数数量较多,容易过拟合。小的卷积核可以降低参数数量,提高计算效率,但是捕捉的特征范围较小。通常情况下,在卷积神经网络的开头使用大的卷积核,以捕捉到更大范围内的特征,然后使用小的卷积核,以减少参数数量,提高计算效率。这种方法可以在不失去太多信息的情况下,减少计算量。(卷积核越大可以增加感受野)
对于经典网络vgg,其中用多个小的卷积核替代大的,既保证了感受野的一致(越大越好),还减少了参数量,增加了非线性层,因此相对其他网络表现出了较好的性能。
0.2 Faster R-CNN需要解决的问题
Fast R-CNN的出现,将卷积,图像分类,边界框回归一体化,大大加快的计算速度。但对于候选区域选取的问题仍然没有解决,传统采用Selective Search搜索算法来选取候选区域,但计算速度非常缓慢,因此为了解决候选区域的选取问题,Faster R-CNN应运而生。
1.主要工作——提出了RPN网络架构
输入一张图片,经过卷积网络形成特征图。对于特征图上每一点处,都取形状大小不定的anchor,这样子映射回去原图中就是真正的候选区域。
且由于是对于特征图每个点取anchor,这样映射回去的候选区域就可以完全覆盖整张图片;且由于大小尺寸不同,可以用来预测大小不同的物体;由于经过卷积后特征图尺寸相对原图小很多,遍历特征图中所有点产生的anchor数量也有限,不会严重影响计算速度。上述特征符合候选区域的要求。
训练过程,我们是把经过卷积网络后的特征图由滑动生成的大小不一的anchors作为样本,把原图中的ground truth映射到特征图上,anchors与映射后的ground truth求iou,遍历所有ground truth,若存在某iou大于设定的阈值,则类别标签被打为前景,否则认为是背景。同理,对于前景,最大的iou对应的ground truth就认为是它的边界框回归标签。这样,再结合映射关系,输入一张图片,就可以得到许多候选框,且经过回归获得更准确的位置,并且具有是前景还是背景的标签。(记得映射回去原图才是候选区域)
对于经过RPN网络初步得到的这些候选框区域,再根据其分类得分采用NMS可以减少大量重复冗余的候选区域,生成最终的候选区域。
接着进行Fast R-CNN操作即可。
2.补充:Fast R-CNN和 Faster R-CNN的训练标签自动标注问题
2.1 Fast R-CNN
先是用搜索算法生成候选区域
-
类别标签确定:
- 如果候选区域与某个ground truth的IoU大于设定阈值(通常是0.5),则赋予该ground truth的类别标签。
- 如果与所有ground truth的IoU都小于阈值,则标记为背景。
- 如果与多个ground truth都有高IoU,通常选择IoU最高的那个。
-
边界框回归标签确定:
- 对于被认为是前景的候选区域,找到IoU最高的ground truth。
- 计算候选区域与该ground truth之间的偏移量(中心点坐标偏移和宽高缩放因子)。
- 这些计算得到的偏移量作为边界框回归的标签。
也即类别标签和边界框标签都是通过遍历比较与ground truth的iou得到的。
2.2 Faster R-CNN
利用RPN网络生成候选区域(具体的训练过程前面有提,也是与特征图中的ground truth比较iou,得到类别和偏移量标签,进行训练)
经过RPN网络后,可以得到相应的候选区域,且一部分已经被打为是背景,一部分被打为是前景。
-
类别标签:
- 使用RPN生成的候选区域(proposal)与ground truth计算IoU。
- 如果IoU大于设定阈值(通常为0.5),则分配对应的类别标签。
- 小于阈值的标记为背景。
-
边界框回归标签:
- 对于非背景的候选区域,计算其与IoU最高的ground truth之间的偏移量。
- 这些偏移量作为检测网络边界框回归的标签。
与Fast R-CNN不同,Faster R-CNN经过RPN网络后就已经一部分候选框被打上了是背景的标签,对于剩下的候选框再进行Fast R-CNN打标签的操作。相当于进行了两次对于背景标签的筛选,使得标注更为准确。(打标签方法仍然是遍历ground truth的iou)
2.3 打标签的位置
和RPN的标注标签的方式相同,在Fast R-CNN阶段训练标签的标注并不是在原图上进行,而是在RoI Pooling池化之后,送入全连接层进行分类和边界框回归任务之前。需要把ground truth和候选区域都映射到RoI Pooling的特征图上,再利用iou标注类别和偏移量标签,进行后续训练,所以分类和边界框回归任务是同时进行的。
特征图相对原图信息更为密集,且尺寸更小,可以更好的减少计算量。
3.关于NMS
一般NMS的使用是在两个地方
1.生成候选区域时,有时候候选框重叠过大,我们可以根据RPN网络的分类得分,利用NMS删除掉iou重叠程度较大的候选区域,减少计算量。
2.做出最后的目标检测时,由于网络输出的检测框较多,我们其实只希望一个物体出现一个检测框,因此在测试时(训练不做),我们逐类别做NMS,生成最终的预测框。