基础知识
传统机器学习目标检测:
区域选择---->提取特征----->分类------>后处理
滑动窗口 SIFT,H0G SVM,Adaboost NMS
两阶段之RCNN:深度学习提取特征
区域选择----->提取特征---->分类
区域选择—>检测(分类+定位)
每个候选框都要提取特征,存在后选矿交叠重复计算,效率不高
特征提取,SVM分类器是分模块独立训练,没有联合起来系统性优化,训练耗时长
Selective Search提取的区域质量不好
Fast-RCNN
-
引入ROI Pooling操作,解决重复特征提取问题
将分类和回归损失统一在一个框架中
在CNN卷积后得到featuremap,再通过SS(Selective-Search)在feature提取候选框,速度慢,不是端到端.
将RCNN中的SVM+regressor替换为softmax+regessor进行联合训练
不足还是再用SS选取候选框
Faster-RCNN
-
通过RPN(Region proposal network)学习候选区域
提高了精度,速度快
Faster R-CNN
Anchor 和 Anchor-Based方法 2018年前比较多
- Anchor(锚框)
在featuremap上,预定设定好比例的一组候选框集合,滑动窗口提取
- Anchor Based Methods
使用Anchor提取候选目标狂
在特征图上的每一个点,对Anchor进行分类和回归
Anchor-Based方法:两阶段
先使用anchor回归候选目标框,划分前景和背景;
使用候选目标框进一步回归和分类,输出最终目标框和对应的类别
Anchor Based方法:一阶段
直接对anchor回归和分类最终目标框和类别,如YOLOv2,YOLOv3,SSD,RetinaNet
Anchor缺点:
手工设计,多少个,多大,长宽比这些如何设置?
数量多,如何解决正负样本不均衡的问题?
超参数比较多,如何对不同数据设置?
Anchor-Free方法 2018年后比较多
通过预设目标的中心点或者角点,对目标进行检测
基于多关键点联合表达的方法: CornerNet/CornerNet-lite,RepPoint,CenterNet:Keypoint triplets for obejct dection
基于中心区域预测的方法:FCOS,CenterNet:Object as Points
P
r
e
c
i
s
i
o
n
=
T
P
(
T
P
+
F
P
=
T
P
所
有
检
测
到
的
框
Precision=\frac{ TP}{(TP+FP}= \frac{TP}{所有检测到的框 }
Precision=(TP+FPTP=所有检测到的框TP
R
e
c
a
l
l
=
T
P
(
T
P
+
F
N
=
T
P
所
有
标
注
框
的
个
数
Recall =\frac{TP}{(TP+FN}=\frac{TP}{所有标注框的个数}
Recall=(TP+FNTP=所有标注框的个数TP
P-R曲线,以Precision,Recall为纵,横轴.点怎么来呢?把所有检测到的框按score或者置信度排序,从高到底,逐一累计计算Precision 和Recall
某一类P-R曲线下的面积的,
所有类别AP的平均称为mAP
目标检测数据集
Object365,OpenImages18,COCO,Pascal VOC2012
论文中很多以COCO为基线进行评测