文章目录

  • 开始之前
  • 什么是One-Stage和Two-Stage算法
  • 指标分析
  • IOU
  • MAP
  • 写在最后


开始之前

今天是我更新目标检测文章的第一天,在此,我将以小白的视角来讲述目标检测,致力于将网络结构讲明白。
千里之行,始于足下。今天我们不涉及高深的知识,而将目标检测的一些概念讲清楚。好了,废话不多说了,下面我们来开始第一个知识点吧。

什么是One-Stage和Two-Stage算法

首先我们来看下面的对比图。

实现二阶段目标检测python 一阶段二阶段目标检测_实现二阶段目标检测python


这下我们可以看到,所谓的One-Stage,就是直接一个网络就可以出结果了。,比如YOLO系列,通常,YOLO系列算法有如下优缺点:

  • 优点:速度快,适合做实时检测任务
  • 缺点:效果通常情况下检测效果要低于Two Stage

而Two-Stage阶段,需要经历两个阶段,第一个阶段,需要产生proposal,第二个阶段,进行目标预测。,比如Faster-RCNN / MASK RCNN
正好相反,Two-Stage任务的优缺点是:

  • 速度慢,但是检测效果好

指标分析

IOU

接下来我们需要知道什么是IOU,这是目标检测中最常用的指标了。

实现二阶段目标检测python 一阶段二阶段目标检测_并集_02


看到上面的图,IOU值得就是目标检测中ground truthprecious box框的交/并比,如上图所示,黑色的框框就是ground truth , 而蓝色的框框就是预测框,IOU就是两者交集比上并集

MAP

首先要了解这个概念,那么我们要首先了解两个前置知识:

  1. 准确率:描述的是我这个框,到底框住了物体没有。表述为:
    实现二阶段目标检测python 一阶段二阶段目标检测_计算机视觉_03
  2. 查全率:描述的是我这个图片中,几个框被标出来了,表述为:
    实现二阶段目标检测python 一阶段二阶段目标检测_计算机视觉_04那么上面的TP,FP,FN到底是什么意思呢?为了更加形象的比喻,我举一个例子吧。

已知:现在一个黑色箱子里有80个黑球,20个白球
目的:把所有的白球给挑出来
结果:我从箱子里随机摸出来了50个球,其中有20个白球之外,还错误的摸了30个黑球
因此:TP(True Positive) = 我摸的球里,符合我目标的球有多少个?答:20个 FP(False Positive)= 我摸的球里,挑错了几个? 答:30个 FN(False Negative)= 我摸出的球里,白球判断成了黑球的有几个? 答:0个 TN(True Negative)= 我摸的球里面,黑球有多少个判断正确了?答:30个

之后我们再来举一个例子吧。

实现二阶段目标检测python 一阶段二阶段目标检测_深度学习_05


如上图所示,conf描述的是我能有多大把握确定predict box框住了对象,另一种含义就是,predict box是和ground truth的IOU值。

在目标检测中,如果我们设置conf threshold,那么模型就会把低于threshold的框给去掉(之后我们再说,现在只需要了解有这个事情),那么我们有如下:

conf=0.9 那么A的框保留,B,C的框去除,那么
实现二阶段目标检测python 一阶段二阶段目标检测_实现二阶段目标检测python_06
conf=0.8,那么A,B的框保留,C的框去除,那么
实现二阶段目标检测python 一阶段二阶段目标检测_深度学习_07

之后,我们通过确定阈值,得到相应的P-R曲线,如图所示:

实现二阶段目标检测python 一阶段二阶段目标检测_并集_08


也就是precious-recall曲线,那么AP的值就是蓝色线和坐标围成的面积map就是红色线和坐标围成的面积

写在最后

目标检测篇是我第一次真正的将自己的新的体会写出来的博客,我尽量用小白的角度来阐述目标检测,希望能够喜欢。