其他分享
首页 > 其他分享> > 基础知识 | 对目标检测认识及理解

基础知识 | 对目标检测认识及理解

作者:互联网

摘要:本文就目标检测算法的基础知识进行简要综述,方便大家学习查看。

图片分类任务我们已经熟悉了,就是算法对其中的对象进行分类。而今天我们要了解构建神经网络的另一个问题,即目标检测问题。这意味着,我们不仅要用算法判断图片中是不是一辆汽车,还要在图片中标记出它的位置,用边框或红色方框把汽车圈起来,这就是目标检测问题。本文就目标检测算法的基础知识进行简要综述,方便大家学习查看。

目标检测基础知识

网络的阶段之分

单阶段网络为何不如双阶段的原因

因为训练中的正负例不均衡。

双阶段网络如何解决训练中的不均衡

常见数据集

Pascal VOC数据集

分为2007和2012两个版本,其提供的数据集里包含了20类的物体。

PASCALVOC的主要5个任务:

导入图像对应的.xml文件,在标注文件中的每一幅图像的每一个目标,对应一个体dict

CoCo 数据集

分为2014、2015、2017 三个版本

在annotations文件夹中对数据标注信息进行统一管理。例如,train2014的检测与分割标注文件为instances_train2014.json

objectinstances(目标实例)、objectkeypoints(目标关键点)、imagecaptions(看图说话)三种类型的标注

常见评价指标

Precision = TP/(TP+FP) = TP/所有被模型预测为正例的数据

Recall = TP/(TP+FN) = TP/所有真实类别为正例的数据

PR曲线

我们希望检测的结果P越高越好,R也越高越好,但事实上这两者在某些情况下是矛盾的。

所以我们需要做的是找到一种精确率与召回率之间的平衡。其中一个方法就是画出PR曲线,然后用PR曲线下方的面积AUC(AreaunderCurve)去判断模型的好坏。

IOU指标

IoU是预测框与ground truth的交集和并集的比值。

对于每个类,预测框和ground truth重叠的区域是交集,而横跨的总区域就是并集。

目标检测中的PR

VOC中mAP的计算方法

通过PR曲线,我们可以得到对应的AP值:

在2010年以前,PASCALVOC竞赛中AP是这么定义的:

从2010年之后,PASCALVOC竞赛把这11份recall点换成了PR曲线中的所有recall数据点。

对于某个recall值r,precision值取所有recall>=r中的最大值(这样保证了p-r曲线是单调递减的,避免曲线出现摇摆)这种方法叫做all-points-interpolation。这个AP值也就是PR曲线下的面积值。

具体例子:

Coco中mAP的计算方法

采用的是IOU(用于决定是否为TP)在[0.5:0.05:0.95]计算10次AP,然后求均值的方法计算AP。

非极大值抑制

NMS算法一般是为了去掉模型预测后的多余框,其一般设有一个nms_threshold=0.5,

具体的实现思路如下:

  1. 选取这类box中scores最大的哪一个,记为box_best,并保留它
  2. 计算box_best与其余的box的IOU
  3. 如果其IOU>0.5了,那么就舍弃这个box(由于可能这两个box表示同一目标,所以保
  4. 留分数高的哪一个)
  5. 从最后剩余的boxes中,再找出最大scores的哪一个,如此循环往复

 本文分享自华为云社区《目标检测基础知识》,原文作者:lutianfei 。

点击关注,第一时间了解华为云新鲜技术~

标签:正例,PR,检测,box,TP,基础知识,理解,负例
来源: https://www.cnblogs.com/huaweiyun/p/14675907.html