机器学习 / A LEAF IN THE GARDEN
目标检测算法
机器学习 · 动手深度学习。来自 Daily Learning 的学习笔记。
R-CNN
简介
区域卷积神经网络(Regions with CNN features),将目标检测问题分为两个阶段:候选区域生成、区域分类
- 使用启发式搜索选择锚框
- 预训练模型对锚框抽取特征
- 训练 SVM 对特征分类
- 训练线性回归模型预测边缘框偏移
RoI Pooling
兴趣区域(Region of Interest, RoI)池化层将不同大小的锚框映射为固定大小的特征图,便于分类。
- 给定锚框均匀切成 小块
- 每个小块取最大值
- 总得到 的特征图
进化
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,单阶段检测器,直接预测锚框和类别
- 将图像划分为 网格
- 解决了锚框大量重叠的问题
- 每个网格预测 个锚框和类别
- 适应一个网格对应多个目标的情况
特点
- 速度很快
- 精度也不错