two-stage(两阶段):Faster-rcnn、Mask-Rcnn系列。先确定一些候选,再进一步确定。
优点:效果通常比较好。
缺点:速度通常较慢(5FPS)。
FPS:用来评估目标检测的速度。
one-stage(单阶段):YOLO系列。一步到位,没有预选。
优点:速度非常快,适合做实时检测任务。
缺点:效果通常不太好。
I O U = A r e a o f O v e r l a p A r e a o f U n i o n = 交集 并集 IOU = \frac{Area of Overlap}{Area of Union}= \frac{交集 }{并集} IOU=AreaofUnionAreaofOverlap=并集交集
下面是某次检测的情况:
蓝框是物体实际存在的位置,即真实值。
红框是物体被检测到的位置,即预测值。
上式中的交集和并集就是蓝框和红框区域的交集和并集。
所以,IOU 越高说明蓝框和红框重合度越高,预测值越接近真实值,检测效果越好。
精度(precision):预测为正的样本中有多少是真正的正样本(找得对)。
召回率(recall):样本中的正例有多少被预测正确了(找得全)。
精度和召回率的计算公式如下:
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision=\frac{TP}{TP + FP}
Precision=TP+FPTP
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Recall=\frac{TP}{TP + FN}
Recall=TP+FNTP
TP(true positive)正确地判断成正例。即本来是正例,判断成正例。
FP(false positive)错误地判断成正例。即本来是负例,判断成正例。
FN(false negative)错误地判断成负例。即本来是正例,判断成负例。
TN(true negative)正确地判断成负例。即本来是负例,判断成负例。
【例】已知班级总人数100人,其中男生80人,女生20人。目标是找出所有的女生。
结果:从班级中选择了50人,其中20人是女生,还错误的把30名男生挑选出来了。
请计算TP 、FP 、FN、TN。
TP = 20; FP = 30; FN = 0; TN = 50
map 指标:综合精度和召回率两者来衡量目标检测效果。
这里有个问题:单看精度或召回率(recall)来衡量目标检测效果不行吗?
答案是不行,因为精度和召回率在很多问题上会呈现 “一个变高了,另一个就变低” 的现象。
置信度:用于描述 “检测的框中是某个给定物体的可能性有多大”。
下面展示求解 map 指标的过程:
首先基于置信度阈值来计算精度和召回率(绿框为预测值,旁边的数字是置信度),以置信度阈值 0.9 为例:
因为置信度阈值为 0.9,所以图2、图3不满足要求,直接过滤掉。
所以 TP = 1,FP = 0,FN = 2,精度和召回率分别为:
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
=
1
1
+
0
=
1
Precision=\frac{TP}{TP + FP} = \frac{1}{1 + 0} = 1
Precision=TP+FPTP=1+01=1
R
e
c
a
l
l
=
T
P
T
P
+
F
N
=
1
1
+
2
=
1
3
Recall=\frac{TP}{TP + FN}=\frac{1}{1 + 2} = \frac{1}{3}
Recall=TP+FNTP=1+21=31
如何计算 MAP 呢?需要把所有阈值下的精度和召回率都计算出来。反映到下图中,就是连线以下的面积(注意:两个点之间取最大值,最终面积如第二幅图所示)。