目标检测基础知识1.0

1.图像处理三大任务

  1. 物体识别
  2. 目标检测
  3. 图像分割

目标检测:给定一张图像,判断图像中是否存在指定类别的目标,若存在,则输出目标位置、类别及置信度

目标检测属于多任务,一个任务是目标分类,另一个是目标位置的确定,即分类与回归。

2.基于深层神经网络的目标检测

双阶段(two-stage):第一级网络用于候选区域提取;第二级网络对提取的候选区域进行分类和精确坐标回

归,例如RCNN系列。(精确度更高)

单阶段(one-stage):掘弃了候选区域提取这一步骤,只用一级网络就完成了分类和回归两个任务,例如YOLO和SSD等。

单阶段网络的准确度为何不如双阶段网络,训练中的不均衡

  • 负例过多,正例过少
  • 大多数负例十分容易区分

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

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

image-20220404225631086

3.常用数据集-Pascal voc

  • 其提供的数据集里包含了20类的物体。
  • PASCALVOC的主要5个任务是
    1. 分类:对于每一个分类,判断该分类是否在测试照片上存在(共20类);
    2. 检测:检测目标对象在待测试图片中的位置并给出矩形框坐标(bounding box);
    3. 分割:对于待测照片中的任何一个像素,判断哪一个分类包含该像素(如果20个分类没有一个包含该像素,那么该像素属于背景)
    4. (在给定矩形框位置的情况下)人体动作识别;
    5. Large Scale Recognition(由ImageNet主办)。

bounding box 有四个参数[x,y,w,h] 给出图片左上角的坐标(x,y)之后可以自动计算出图片的大小。

4.常见的评价指标(重要)

True positives (TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数;

False positives (FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

False negatives (FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

True negatives (TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

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

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

4.1PR曲线

我们希望检测的结果P越高越好,R也是越高越好,但事实上这两者在某些情况下是矛盾的,即一个变高,另外一个反而变小了。

那么我们就需要找到一种精确率和召回率之间的平衡。可以通过PR曲线来计算两个轴与曲线组成的面积得到去判断模型的好坏,这个面积称为AUC(Area under Curve)。

判断方式:AUC的面积越大代表模型越好。

5.IoU指标

衡量bounding box是否精准呢?

训练好的目标检测模型会给出大量的预测结果,但是其中大多数的预测值都会有非常低的置信度

(confidence score),因 此我们只考虑那些置信度高于某个阈值的预测结果。

将原始图片送入训练好的模型,在经过置信度阈值筛选之后,目标检测算法给出带 有边界框的预测结果。

image-20220405112713960

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

image-20220405112903929

IoU = 交集 / 并集

6.目标检测中的PR

TP: IoU>0.5的检测框数量(同一Ground Truth只计算一次)

FP: IoU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量

FN: 没有检测到的GT的数量

图片中没有预测到物体的每个部分都被视为Negative。

7.数据增强及预处理方法

深层神经网络的训练过程,数据的预处理十分关键 。常用的预处理步骤包括:

  • 图像归一化
  • 图像增强,包括翻转、裁剪、饱合度亮度变换、噪声
  • 图像的纵横比处理

常见的图像操作,一般灰度归一化,即减去均值;保持纵横比,将图像的短边缩放至同一大小 。

8.非极大值抑制Non-Maximum Suppression(NMS)

NMS算法一般是为了去掉模型预测后的多余框,其一般设有一个nms_threshold=0.5,具体的实现思路如下:

  1. 选取这类box中scores最大的哪一个,记为box_best,并保留它

  2. 计算box_best与其余的box的IOU

  3. 如果其IOU>0.5了(表示两个框重叠度非常高了),那么就舍弃这个box(由于可能这两个box表示同一目标,所以保留分数高的哪一个)

  4. 从最后剩余的boxes中,再找出最大scores的哪一个,如此循环往复

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值