文章目录
- 开始之前
- 什么是One-Stage和Two-Stage算法
- 指标分析
- IOU
- MAP
- 写在最后
开始之前
今天是我更新目标检测文章的第一天,在此,我将以小白的视角来讲述目标检测,致力于将网络结构讲明白。
千里之行,始于足下。今天我们不涉及高深的知识,而将目标检测的一些概念讲清楚。好了,废话不多说了,下面我们来开始第一个知识点吧。
什么是One-Stage和Two-Stage算法
首先我们来看下面的对比图。
这下我们可以看到,所谓的One-Stage,就是直接一个网络就可以出结果了。,比如YOLO系列,通常,YOLO系列算法有如下优缺点:
- 优点:速度快,适合做实时检测任务
- 缺点:效果通常情况下检测效果要低于Two Stage
而Two-Stage阶段,需要经历两个阶段,第一个阶段,需要产生proposal,第二个阶段,进行目标预测。,比如Faster-RCNN / MASK RCNN
正好相反,Two-Stage任务的优缺点是:
- 速度慢,但是检测效果好
指标分析
IOU
接下来我们需要知道什么是IOU,这是目标检测中最常用的指标了。
看到上面的图,IOU值得就是目标检测中ground truth
和precious box
框的交/并比,如上图所示,黑色的框框就是ground truth , 而蓝色的框框就是预测框,IOU就是两者交集比上并集
MAP
首先要了解这个概念,那么我们要首先了解两个前置知识:
- 准确率:描述的是我这个框,到底框住了物体没有。表述为:
- 查全率:描述的是我这个图片中,几个框被标出来了,表述为:
那么上面的TP
,FP
,FN
到底是什么意思呢?为了更加形象的比喻,我举一个例子吧。
已知:现在一个黑色箱子里有80个黑球,20个白球
目的:把所有的白球给挑出来
结果:我从箱子里随机摸出来了50个球,其中有20个白球之外,还错误的摸了30个黑球
因此:TP(True Positive) = 我摸的球里,符合我目标的球有多少个?答:20个
FP(False Positive)= 我摸的球里,挑错了几个?答:30个
FN(False Negative)= 我摸出的球里,白球判断成了黑球的有几个?答:0个
TN(True Negative)= 我摸的球里面,黑球有多少个判断正确了?答:30个
之后我们再来举一个例子吧。
如上图所示,conf
描述的是我能有多大把握确定predict box框住了对象,另一种含义就是,predict box是和ground truth的IOU值。
在目标检测中,如果我们设置conf threshold
,那么模型就会把低于threshold
的框给去掉(之后我们再说,现在只需要了解有这个事情),那么我们有如下:
conf=0.9 那么A的框保留,B,C的框去除,那么
conf=0.8,那么A,B的框保留,C的框去除,那么
之后,我们通过确定阈值,得到相应的P-R
曲线,如图所示:
也就是precious-recall曲线,那么AP的值就是蓝色线和坐标围成的面积
map就是红色线和坐标围成的面积
写在最后
目标检测篇是我第一次真正的将自己的新的体会写出来的博客,我尽量用小白的角度来阐述目标检测,希望能够喜欢。