关于目标检测:基础知识-对目标检测认识及理解

11次阅读

共计 2284 个字符,预计需要花费 6 分钟才能阅读完成。

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

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

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

指标检测基础知识

网络的阶段之分

  • 双阶段 (two-stage): 第一级网络用于候选区域提取; 第二级网络对提取的候选区域进行分类和准确坐标回归,例如 RCNN 系列。
  • 单阶段 (one-stage): 掘弃了候选区域提取这一步骤,只用一级网络就实现了分类和回归两个工作,例如 YOLO 和 SSD 等。

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

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

  • 负例过多,正例过少,负例产生的损失齐全吞没了正例;
  • 大多数负例非常容易辨别,网络无奈学习到有用信息。如果训练数据中存在大量这样的样本,将导致网络难以收敛。

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

  • 在 RPN 网络中,依据前景置信度抉择最有可能的候选区域,从而防止大量容易辨别的负例。
  • 训练过程中依据交并比进行采样,将正负样本比例设为 1:3,避免过多负例呈现。

常见数据集

Pascal VOC 数据集

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

PASCALVOC 的次要 5 个工作:

  • ①分类:对于每一个分类,判断该分类是否在测试照片上存在(共 20 类);
  • ②检测:检测指标对象在待测试图片中的地位并给出矩形框坐标(boundingbox);
  • ③宰割: 对于待测照片中的任何一个像素,判断哪一个分类蕴含该像素(如果 20 个分类没有一个蕴含该像素,那么该像素属于背景);
  • ④人体动作辨认(在给定矩形框地位的状况下)
  • ⑤LargeScaleRecognition(由 ImageNet 主办)

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

  • 属性 ’boxes’
  • 属性 ’gt_classes’
  • 属性 ’gt_overlaps’
  • 属性 ’flipped’
  • 属性 ’seg_areas’

CoCo 数据集

分为 2014、2015、2017 三个版本

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

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

常见评估指标

  • True positives(TP):被正确的划分到正例的个数,即理论为正例且被划分为正例的实例数。
  • False positives(FP):被谬误地划分为正例的个数,即理论为负例但被划分为正例的实例数。
  • False negatives(FN):被谬误的划分为负例的个数,即理论为正例但被划分为负例的实例数。
  • True negatives(TN):被正确的划分为负例的个数,理论为负例且被划分为负例的实例数。

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 是这么定义的:

  • 首先要对模型预测后果进行排序(即照各个预测值置信度降序排列)。
  • 咱们把 recall 的值从 0 到 1 划分为 11 份:0、1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0。
  • 在每个 recall 区间(0-0.1,0.1-0.2,2-0.3,…,0.9-1.0)上咱们计算准确率的最大值,而后再计算这些准确率最大值的总和并均匀,就是 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 的哪一个,如此周而复始

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0