目录1.目标检测算法分类2.RCNN1概念2RCNN算法 正向传播 流程3RCNN框架4RCNN 的问题2.Fast RCNN1简介2相比 RCNN 的三个改进3算法流程4针对 softmax 和 regressor 的补充5损失函数的计算7Fast RCNN 框架1.目标检测算法分类两阶段方法与单阶段方法:两阶段方法两阶段方法将目标检测任务分为候选区域生成和目标分类定位两个阶段。首先通过选择性搜索、区域建议网络RPN等方法生成候选区域然后对每个候选区域进行分类和边界框回归。典型的两阶段方法有RCNN系列和Faster R-CNN等。单阶段方法单阶段方法直接在图像上密集地预测目标的类别和边界框通常通过将图像分割为网格单元并为每个单元生成预测来实现。常见的单阶段方法包括YOLO系列和SSD等。2.RCNN1概念RCNNRegion-based Convolutional Neural Networks 基于区域的卷积神经网络是一种经典的目标检测算法。它通过将图像分割成多个候选区域并对每个候选区域进行分类和边界框回归来实现目标检测。RCNN最初由Girshick等人在2014年提出在之前都是使用人为定义特征的目标检测准确率只有30%左右RCNN直接将准确率提高了30%。2RCNN算法 正向传播 流程第一步选取候选区域Region Proposals在图像中提取候选区域1k~2k个这些候选区域通常是通过选择性搜索Selective Search等算法生成的。选择性搜索将图像分割为多个不同尺度和形状的区域并根据颜色、纹理、大小等特征进行合并以产生可能包含目标的候选区域。第二步特征提取对每个候选区域应用卷积神经网络CNN来提取特征表示特征向量。对于每个候选框通常放缩到相同尺寸然后使用预训练的CNN模型如AlexNet、VGGNet或ResNet等在候选区域上进行前向传播以获得固定长度的特征向量特征向量个数为候选框数上图中一个4096维的特征向量对应一个候选框。第三步目标分类提取的特征向量作为输入上图是合并成了特征矩阵经过一个或多个上图为20个支持向量机SVM 二分器Support Vector Machine分类器进行目标类别的分类。最后生成的结果每一行向量代表的是某个候选框中的目标是猫的概率狗的概率……第四步非极大值抑制NMS由于选择性搜索算法可能会生成重叠的候选区域为了消除冗余的检测结果对第三步中得到的分类矩阵的每一列使用非极大值抑制来筛选最终的检测边界框。每一行的第一列都是这个候选框内是猫的概率所以用非极大值抑制来选出一个最优的候选框其他去掉。其他列同理第五步边框位置修正使用回归器进一步筛选边框回归器在后边faster RNN中讲。上图右下角绿色窗口的实际框指的是实际物体的最优框这一步做的就是将黄色的建议框调整地接近绿色框。3RCNN框架通过上面的流程可以得出RCNN的框架4RCNN 的问题检测速度慢候选框选取太多特征提取操作冗余训练速度慢训练过程繁琐训练所需空间大训练提取的特征都要写入磁盘需要很大的存储空间2.Fast RCNN1简介相比于 RCNNFast RCNN同样使用VGG16作为网络的backbone与R-CNN相比训练时间快9倍测试推理时间快213倍准确率从62%提升至66%。2相比 RCNN 的三个改进1.卷积不再是对每个region proposal进行而是直接对整张图像这样减少了很多重复计算。原来RCNN是对每个region proposal分别做卷积因为一张图像中有2000左右的region proposal肯定相互之间的重叠率很高因此产生重复计算。2.用ROI pooling进行特征的尺寸变换因为全连接层的输入要求尺寸大小一样因此不能直接把region proposal作为输入。3.将regressor放进网络一起训练每个类别对应一个regressor同时用softmax代替原来的SVM分类器不用训练多个SVM了。3算法流程第一步生成候选区域一张图像生成1K~2K个候选区域(使用Selective Search算法)我们将某个候选区域称为ROI区域。注意训练过程中并不会直接使用所有的2000个候选框一般会先通过 iou 分出正样本iou0.5和负样本(iou0.5)然后从其中随机采样第二步生成特征矩阵将整个图像输入网络得到相应的特征图将SS算法生成的候选框投影到特征图上提取相应的特征矩阵。这是和 RCNN 很大的不同R-CNN依次将2000个候选框区域输入卷积神经网络得到特征存在大量冗余提取时间很长。Fast-RCNN将整张图像送入网络一次性计算整张图像特征这样就可以根据特征图的坐标获得想要的候选区域的特征图不需要重复计算。第三步缩放特征矩阵将每个特征矩阵通过ROI pooling 层缩放到7×7大小的特征矩阵第四步将特征图展平为向量通过一系列全连接层然后通过softmax 和 bbox regressor得到预测结果总结如上图将一张图像输入到 Deep ConvNet 中得到图像的特征图根据ROI区域与整体图像的坐标映射关系进行特征映射能够得到每一个候选区域的特征矩阵。将每一个特征矩阵通过RoI pooling layer池化到固定尺寸7×7然后展平为向量。再经过两个全连接层FC得到ROI特征向量。之后 ROI特征向量 并联两个FC其中一个用于目标概率预测softmax另一个用于边界框参数的回归bounding box regressor。4针对 softmax 和 regressor 的补充分类器边界框回归器5损失函数的计算Fast RCNN 中需要预测N1个类别的概率以及边界框的回归参数所以定义了两个损失函数分类损失和边界框回归损失。7Fast RCNN 框架相比于RCNNFast RCNN将框架缩减到了两部分