机器学习实战图像处理

物体检测 笔记

2019-03-10  本文已影响2人  音符纸飞机

一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD

模块:

R-CNN

论文翻译
R → Region (2014 AlexNet)
区域建议:Selective Search 也用的是DNN方法
Bounding Box Regression:细化SS给出的外接矩形

训练第一阶段:训练CNN

一般拿ImageNet上训练好的CNN模型参数作为pre-train(尤其是conv层,特征提取基本成型)
然后用SS生成的区域做 fine tune

AlexNet最后一个Softmax层是1000D,要改成实际数据集物体分类数量 + 1 (一个是背景类)

正样本 : IoU>0.5 BB与ground truth的重合度
负样本:IoU<0.5

训练第二阶段:训练分类器

在FC7的基础上训练SVM分类器 (之后会用其他分类器,所以不用详细展开了)
Hinge loss
正样本: 所有 ground truth区域
负样本 IoU < 0.3

训练第三阶段: Bounding Box Regression

conv5的输出作为输入
对框进行微调,来提升bounding-box的IoU


bbr

其中P是原始proposal,G是Ground Truth,G拔是找到映射之后矫正得到的窗口。因此更加直接地说,我们就是要找到一种映射关系,来出一个G拔。

测试阶段

性能评价

每个分类计算AP,然后取均值
AP是准确-召回曲线下的面积

速度很慢,测试时间几十秒,训练时间84小时

问题:卷积特征重复计算量太大,每张图片的2000+区域都会计算CNN特征

SPP-Net

SPPNet详解
共享卷积计算,直接输入整图

conv5之后引入空间金字塔池化 Spatial Pyramid Pooling ,为不同尺寸的区域隐射到尺寸固定的FC层上。
总结而言,当网络输入的是一张任意大小的图片,这个时候我们可以一直进行卷积、池化,直到网络的倒数几层的时候,也就是我们即将与全连接层连接的时候,就要使用金字塔池化,使得任意大小的特征图都能够转换成固定大小的特征向量,这就是空间金字塔池化的意义(多尺度特征提取出固定大小的特征向量)。

SPP, 特征图可以是不同尺寸的

image → conv → spp → fc → output

训练阶段

conv不参与fine-tune, 只fine tune FC层

新问题

卷积层不参与fine-tune

Fast R-CNN

论文详解
论文详解2

Faster R-CNN

推荐博文
RPN解析
集成区域建议网络 RPN region proposal network

anchors

一些预设大小的框,三种尺寸,三种比例,一共9种anchor
假设CNN得到的feature map大小为w∗h,那总的anchors个数为9∗w∗h


faster RCNN Faster RCNN
RPN其实是个attention机制

R-FCN

Fully Convolutional Network
推荐博文
全卷积趋势,只留下一个全连接层 2048 → 1000
之前检测网络的局限性:卷积层越深,不变性越强,也就是说对变换不敏感

Mobilenet

论文解读

上一篇下一篇

猜你喜欢

热点阅读