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] 的插值所得
发表评论