参考 目标检测-Yolo框架_Dragon Prince的博客-CSDN博客
RCNN、Fast-RCNN、Faster-RCNN介绍_rcnn fast rcnn faster rcnn_夜半罟霖的博客-CSDN博客
基于深度学习的目标检测算法主要分为两类:Two stage和One stage。
1)Tow Stage
先进行区域生成,该区域称之为region proposal(简称RP,一个有可能包含待检物体的预选框),再通过卷积神经网络进行样本分类。
任务流程:特征提取 --> 生成RP --> 分类/定位回归。
常见tow stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
- 相对较高的检测准确率,但运行速度较慢
R-CNN (Regions with CNN features)
结构:
Region proposal module:selective search输出候选区域(缩放处理)
Feature extraction network: CNN提取特征(Alexnet)
classifier(task1):根据CNN提取的特征做分类任务(SVM)
locator(task2):对每类样本都单独设置回归器模型;Alexnet第五层特征作为输入,输出候选区域平移和缩放的变换系数
Fast R-CNN
warped region:对生成的候选框进行统一的缩放处理
- anisotropically scales (各向异性缩放)
即不论候选框的长宽比例,直接进行缩放,这样做的虽然很方便,但候选框可能会存在严重的拉伸变形状,影响后续的特征提取效果
- isotropically (各向同性缩放)【一般使用】`
如果候选框存在着长宽比例不一致的情况,则进行裁剪和填充使其比例一致。先裁剪后填充或者是先填充后裁剪都是可以的。
特征提取(CNN)
在进行特征提取时我们需要利用 CNN 为这些候选框进行打标,选择的标准就是 IOU(交并比)。当选择性搜索选出来的候选框与人工打标的候选框的 IOU 达到 0.5 以上时,这个候选框便是目标物体(正样本),否则则是负样本(背景)。
缺点:卷积层的权重无法更新
SVM 分类器和边界框回归
将 CNN 提取的特征向量输入 SVM 分类器进行分类即可得到目标物体的类别,然后对每一类目标,使用一个线性回归器对边界框位置进行精修,使其输出更为准确的边界框坐标
Fast R-CNN
Fast R-CNN 网络将整张图片和一组候选区域作为输入。先利用卷积层和最大池化产生卷积特征图,然后对于每个目标区域使用兴趣区域池化层(RoI)来从特征图中提取固定长度的特征向量。然后这些特征向量被送进全连接层产生两个并行的输出层:一个产生softmax的分类结果,另一层产生目标物体的坐标值。Fast R-CNN 的结构如下图所示:
RoI(Region of Interest)Pooling 本质上就是候选框
2)One Stage
不用RP,直接在网络中提取特征来预测物体分类和位置。
任务流程:特征提取–> 分类/定位回归。
常见的one stage目标检测算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等
p_c: 预测结果的置信概率
b...: 边框坐标
C: one-hot分类编码
AP:P-R曲线的面积
mAP(Mean Average Precision) :类别的平均AP