机器学习 / A LEAF IN THE GARDEN

目标检测算法

机器学习 · 动手深度学习。来自 Daily Learning 的学习笔记。

R-CNN

简介

区域卷积神经网络(Regions with CNN features),将目标检测问题分为两个阶段:候选区域生成、区域分类

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

RoI Pooling

兴趣区域(Region of Interest, RoI)池化层将不同大小的锚框映射为固定大小的特征图,便于分类。

  • 给定锚框均匀切成 n×mn \times m 小块
  • 每个小块取最大值
  • 总得到 n×mn \times m 的特征图

进化

Fast R-CNN

  • 使用 CNN 提取整张图特征
  • 按比例把锚框映射到特征图上
  • 在特征图上对每个锚框进行 RoI Pooling
  • 总得到固定大小特征

Faster R-CNN

使用区域建议网络(Region Proposal Network, RPN),这是一个全卷积网络

  • RPN 输入 CNN 提取后的特征图,输出锚框选择
  • 训练二分类模型,判断锚框对目标的适合度
  • 训练回归模型,预测锚框的偏移量
  • NMS 去重选出边缘框

Mask R-CNN

在 Faster R-CNN 基础上增加分支,也能实现语义分割

  • RoI Align 不直接切分,而是双线性插值
  • 全卷积网络输出每个锚框的像素级分割掩码

特点

  • 精度较高
  • 速度慢,尤其是 R-CNN

所以在对精度很敏感,而对速度要求不高的场景下,R-CNN 系列算法是不错的选择。

SSD

简介

单阶段检测器(Single Shot MultiBox Detector),将目标检测问题分为一个阶段:直接预测锚框和类别

  • 基础网络提取特征,然后多个卷积层减半高宽
  • 每一段都生成锚框
    • 底部拟合小物体
    • 顶部拟合大物体
  • 对每个锚框预测类别和偏移量

特点

  • 精度较低
  • 速度快
  • 对不同大小物体有较好适应性

YOLO

简介

You Only Look Once,单阶段检测器,直接预测锚框和类别

  • 将图像划分为 S×SS \times S 网格
    • 解决了锚框大量重叠的问题
  • 每个网格预测 BB 个锚框和类别
    • 适应一个网格对应多个目标的情况

特点

  • 速度很快
  • 精度也不错