跟李沐学AI随记-16-物体检测算法(R-CNN,SSD,YOLO)

141 阅读2分钟

区域卷积神经网络(region-based CNN或regions with CNN features,R-CNN)

  • 使用启发式搜索算法选择锚框
  • 使用预训练模型对每个锚框抽取特征
  • 训练SVM对类别分类
  • 训练线性回归模型用于预测边缘框偏移

image.png --引入ROI池化层

  • 给定锚框。均匀分割成m×n块,输出每块里的最大值
  • 所以可以对不同大小的锚框,都总输出nm个值

image.png

Fast-RCNN

整张图片用CNN提取特征,然后再使用ROI池化层,对每个锚框生成固定长度的特征。(例如,在图像中生成了100个锚框,ROI池化层为2×2的,最后经过初步特征提取后输出100*4的向量)

用CNN生成特征图,再根据原始锚框的位置,在其在特征图上的映射确定位置,再在特征图上进行ROI池化

image.png

Mask-RCNN

如果在训练集中还标注了每个目标在图像上的像素级位置,那么Mask R-CNN能够有效地利用这些详尽的标注信息进一步提升目标检测的精度。(利用FCN来利用像素信息)

Mask R-CNN将兴趣区域汇聚层替换为了 兴趣区域对齐层,使用双线性插值(bilinear interpolation)来保留特征图上的空间信息,从而更适于像素级预测。 兴趣区域对齐层的输出包含了所有与兴趣区域的形状相同的特征图image.png

单发多框检测(SSD) one-stage

接近顶部的多尺度特征图较小,但具有较大的感受野,它们适合检测较少但较大的物体。 简而言之,通过多尺度特征块,单发多框检测生成不同大小的锚框,并通过预测边界框的类别和偏移量来检测大小不同的目标,因此这是一个多尺度目标检测模型image.png

  • 用一个基础网络提取特征,再利用多个卷积层块来减半高宽
  • 在每段都生成锚框
    • 底部拟合小物体
    • 顶部拟合大物体
  • 对每个锚框预测类别和边缘框

YOLO

  • SSD中锚框大量重叠了,浪费很多计算量
  • YOLO将图片均匀分成S×S个锚框
  • 每个锚框预测B个边缘框(GT)
  • 通过聚类,结合先验知识进行优化
  • 每一代都有不同程度的优化 YOLOV3-论文比较随性,可以看看~