相关推荐
目标检测总结(仅作为个人笔记)
2024-11-10 22:47

一、目标检测基础: 任务定义 基本检测流程

目标检测总结(仅作为个人笔记)

二、深度目标检测: 两阶段检测器:R-CNN系列,后续相关工作 单阶段监测器:YOLO,SSD,RetinaNet

三、目标检测评价: 评价方式 数据集和比较方法

1、任务定义 目标检测

  • 输入:图像或者图像序列

  • 对于类型的检测任务可以细分为(1)单类目标跟踪,多类/同用目标检测 (2)静态图像目标检测,视频目标检测

  • 分类任务: 判断给定的候选区域中是否包含待检测类别的物体 (1)、生成候选区域:确定搜索范围 (2)、提取区域特征:将候选区域表示为定长向量(由于分类器需要相同大小相同长度的向量作为输入(3)、对区域进行分类:确定是否包含物体及其所属的类别 (4)、后处理:对重叠较多的框进行合并(希望同一个物体上只有一个检测框

1、两阶段检测器 (1)生成可能包含物体的候选区域Region Proposal (2)对候选区域做进一步分类校准,得到最终的检测结果

下边详解讲述R-CNN系列

R-CNN—>(SPP-net)---->Fast R-CNN—>Faster R-CNN

  • 后续工作: OHEM(2016):训练过程中引入难例挖掘策略 R-FCN(2016):针对ResNet优化检测器结构进一步加速 FPN(2016):构造特征金字塔提升尺度鲁棒性 DCN(2017):设计可变形卷积和RolPooling提升形变鲁棒性 Mask R-CNN(2017):引入实例分割进行多任务协同 …

第三步:对区域进行分类+边框校准

对区域进行分类可以选择SVM或者Softmax: 1、线性SVM分类器(默认是使用SVM

  • 针对每个类别单独训练
  • 两类分类:one-vs-all
  • R-CNN和SPP-net的训练都包含多个单独的步骤 (1)对网络进行微调: R-CNN对整个CNN进行微调 SPP-net只对SPP之后的(全连接)层进行微调 (2) 训练SVM (3)训练边框回归模型

    但是缺点很明显(1)时间长:需要用CNN提取所有训练样本的特征 (2)占用存储空间大:所有样本的特征需要存储到磁盘 (3)检测速度慢,尤其是R-CNN, R-CNN+VGG16:检测一张图需要47s

接下来就引出了Fast R-CNN

问题

  • 交替式4步法训练 (1)基于预训练模型训练RPN (2)基于预训练模型,以及上一步得到的RPN,训练Fast R-CNN (3)固定共享的卷积层,训练RPN (4)固定共享的卷积层,基于上一步得到的RPN,训练Fast R-CNN
  • 端到端训练(基本选择端到端(1)同时学习RPN和分类网络 (2)分类网络的梯度不向RPN回传

Faster R-CNN训练结果

下边对R-CNN—>(SPP-net)---->Fast R-CNN—>Faster R-CNN进行一个总结

后续相关工作

  • 更快:R-FCN(2016
  • 更准:FPN(2016
  • 更多任务:Mask R-CNN(2017

接下来对上述几种方法进行一个总结

单阶段检测器特点

(1)直接给出最终的检测结果 (2)没有显示的生成候选区域的步骤

概述(1)YOLO

  • 网格式的检测方式
  • 综合整张图的信息预测各个位置的物体
  • YOLO(2015,YOLO9000(2016

(2)SSD

  • 吸纳两阶段检测器的优秀设计,并进行改良
  • SSD(2015,DSSD(2017

(3)RetinaNet

  • 大幅度提升单阶段检测器的精度

下边进行简单介绍

(1)YOLO:

YOLO的核心思想就是利用整张图作为网络的输入,直接在输出层回归bounding box的位置和bounding box所属的类别。faster RCNN中也直接用整张图作为输入,但是faster-RCNN整体还是采用了RCNN那种 proposal+classifier的思想,只不过是将提取proposal的步骤放在CNN中实现了。

2.YOLO的实现方法

  • 每个bounding box要预测(x, y, w, h)和confidence共5个值,每个网格还要预测一个类别信息,记为C类。则SxS个网格,每个网格要预测B个bounding box还要预测C个categories。输出就是S x S x (5*B+C)的一个tensor。

注意:class信息是针对每个网格的,confidence信息是针对每个bounding box的。

举例说明:

  • 等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。

  • 得到每个box的class-specific confidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS处理,就得到最终的检测结果。

  • 难例挖掘:选择较难的反例,反例数量不超过正例数量的3倍
  • 数据增广:对原图进行随机Crop,在物体周围Crop,随机翻转

下边是引用https://blog.csdn.net/zhangjunp3/article/details/80597312中的论文,讲解的更加详细。

  • 1.采用多尺度特征图用于检测
  • 2.用卷积进行检测

与Yolo最后采用全连接层不同,SSD直接采用卷积对不同的特征图来进行提取检测结果。对于形状为 m x n x p 的特征图,只需要采用 3 x 3 x p 这样比较小的卷积核得到检测值。

  • 3.设置先验框

实验 1、实现细节的影响

下边引出DSSD::Deconvolutional Single-Shot Detector

三、目标检测评价

  • 评价方式
  • 数据集和比较方法

1、评价方式

检测框匹配

  • 匹配策略 1、贪心算法 按照得分从高到低顺序遍历,搜索满足交并比阈值的检测框 大部分数据集采用这种方式进行评测 2、匈牙利算法(用得很少) 将匹配建模成一个分配问题:最大化总的交并比 FDDB人脸检测数据集采用这种方式对检测框进行匹配

  • 按条件匹配/忽略框 例如:评测某个尺度范围的检测精度,检测到了不算对,漏检了也不算错

  • 准确率 Accuracy:Acc=(TP+TN)/S
  • 误检率 False Positive Rate/False Alarm Rate: FPR=FP/NF 平均每图误检数目 False Positive per Image:FPPI = FP / {Image} 宗误检数目 : FP
  • 召回率 :Recall = TP/NT
  • 漏检率 :MR = 1- Recall
  • 精确率: Prec = TP / MT
  • ROC曲线 横轴:总误检数目,平均每图误检数目 纵轴:召回率,漏检率
  • PR曲线 横轴:召回率 纵轴:精确率
  • 平均精确率 AP:不同召回率下的平均 均匀地选择11个不同的召回率:Recall—>{0,0.1,0.2…,0.9} 计算PR曲线下的面积 mAP:不同类别下的平均 mmAP:不同IOU阈值下的平均(很少使用

数据集 & 方法比较

多类/通用目标检测

  • MS COCO(难度最大,截至2017只能达到52.6%的精确度) 类别数量:80,规模:100000图/1000000物体 目前难度最大的目标检测数据集

  • 单类目标检测 1、人脸检测:FDDB,Wider Face 2、行人检测:Caltech Pedestrian,CityPersons(2017发布) 3、车辆检测:UA-DETRAC

三部分内容

  • 任务定义,基本流程
  • 两类基于深度学习的目标检测器 两阶段,单阶段
  • 评价方式,数据集
    以上就是本篇文章【目标检测总结(仅作为个人笔记)】的全部内容了,欢迎阅览 ! 文章地址:http://ktsh.xhstdz.com/quote/70089.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://ktsh.xhstdz.com/mobile/ , 查看更多   
发表评论
0评