1.通用目标检测Generic Object Detection定义
目标检测旨在从图像、视频或者类似高维数据中定位大量预定义类别的物体实例,原始的图像、视频或类似数据经过数据预处理后,进入目标检测模型进行前向预测,最终得到数据中每个实例的位置以及该实例的对应类别。
2.目标检测实际效果案例
3.通用目标检测常用公开数据集
3.1 Pascal VOC
- 20 classes
- 11,530 images
- 27,450 ROI annotated objects
- 6,929 segmentations
3.2 MS-COCO
- Object segmentation
- Recognition in context
- Superpixel stuff segmentation
- 330K images (>200K labeled)
- 1.5 million object instances
- 80 object categories
- 91 stuff categories
- 5 captions per image
- 250,000 people with keypoints
4.目标检测算法归纳
4.1 基于深度学习的目标检测算法总结(2014-2019部分)
- 更多相关paper可以参考Object Detection in 20 Years: A Survey
4.2 目标检测算法的常用分类方式
4.2.1 基于anchor使用分类
- anchor based
- anchor free
4.2.2 基于bbox refine的次数分类
- 单阶段 one stage
- 两阶段 two stage
- 多阶段 multi stage
4.3 目标检测算法的通用结构
- backbone
- ResNet
- ResNext
- SENet
- HRNet
- DCN
- EfficientNet
- ResNest
- Res2Net
- CBNET
- Nolocal
- $...$
- neck
- FPN
- PANET
- NAS-fpn
- Bifpn
- $...$
- head
- rcnn head
- cascade head
- double head
- $...$
- post-process
- nms
- soft-nms
- $...$
- loss
- cls
- cross entropy
- regression
- l1
- iou
- giou
- diou
- ciou
- $...$
- cls
4.4 目标检测算法的常用评估指标 mean Average Precision(mAP)
-
mAP定义及相关概念:
-
mAP指的是各类别AP的平均值. AP指的是PR曲线下面积,下面会详细讲解
-
PR曲线Precision-Recall曲线
-
Precision: TP / (TP + FP)
-
Recall: TP / (TP + FN)
-
IoU (交并比 - Intersection Over Union (IOU)):
交并比(IOU)是度量两个检测框(对于目标检测来说)的交叠程度,使用两个框相交的面积除上并集的面积公式如下:
IoU=aera(Bp⋂Bgt)aera(Bp⋃Bgt)IoU=aera(Bp⋂Bgt)aera(Bp⋃Bgt)
-
TP: IoU>指定阈值的检测框数量(同一Ground Truth只计算一次)
-
FP: IoU<=指定阈值的检测框,或者是检测到同一个GT的多余检测框的数量
-
FN: 没有检测到的GT的数量
-
-
mAP的具体计算 计算mAP必须先绘出各个类别的PR曲线,计算出AP。一般有两种方式来采样PR曲线:(i)在VOC2010以前,只需要选取当Recall >= 0, 0.1, 0.2, ..., 1共11个点时的Precision最大值,然后AP就是这11个Precision的平均值;(ii)在VOC2010及以后,需要针对每一个不同的Recall值(包括0和1),选取其大于等于这些Recall值时的Precision最大值,然后计算PR曲线下面积作为AP值. 来看一个简单的例子:
假设我们有 7 张图片(Images1-Image7),这些图片有 15 个目标(绿色的框,GT 的数量)以及 24 个预测边框(红色的框,A-Y 编号表示,并且有一个置信度值)
根据上图以及说明,我们可以列出以下表格,其中 Images 代表图片的编号,Detections 代表预测边框的编号,Confidences 代表预测边框的置信度,TP or FP 代表预测的边框是标记为 TP 还是 FP(认为预测边框与 GT 的 IOU 值大于等于 0.3 就标记为 TP;若一个 GT 有多个预测边框,则认为 IOU 最大且大于等于 0.3 的预测框标记为 TP,其他的标记为 FP,即一个 GT 只能有一个预测框标记为 TP),这里的 0.3 是按照实际评估需求取的阈值,实际应用中要结合业务需求来合理设置。
通过上表,我们可以绘制出 P-R 曲线(因为 AP 就是 P-R 曲线下面的面积。我们需要根据置信度从大到小排序所有的预测框计算出 P-R 曲线上各个点的坐标,然后就可以计算 Precision 和 Recall,见下表:
上图的计算方式可以这么理解:
-
标号为 1 的 Precision 和 Recall 的计算方式:
Precision=TP/(TP+FP)=1/(1+0)=1
Recall=TP/(TP+FN)=TP/(all ground truths)=1/15=0.0666
-
标号 2:
Precision=TP/(TP+FP)=1/(1+1)=0.5
Recall=TP/(TP+FN)=TP/(all ground truths)=1/15=0.0666
-
标号 3:
Precision=TP/(TP+FP)=2/(2+1)=0.6666
Recall=TP/(TP+FN)=TP/(all ground truths)=2/15=0.1333
其他的依此类推。有了上面所有的成对的Precision和Recall的值,就可以用这些P-R成对值来绘制PR曲线:
得到 PR 曲线就可以使用计算 AP(PR 曲线下的面积),这里介绍11点插值法:
- 11点插值法:令recall的值分别为 [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] 的插值所得