泰安集团网站建设价格,个人做网站模版是否有人买,有域名如何做网站,游戏介绍网站模板1.是什么#xff1f;
目标检测是计算机视觉领域的核心问题之一#xff0c;其任务就是找出图像中所有感兴趣的目标#xff0c;确定他们的类别和位置。由于各类不同物体有不同的外观#xff0c;姿态#xff0c;以及不同程度的遮挡#xff0c;加上成像是光照等因素的干扰
目标检测是计算机视觉领域的核心问题之一其任务就是找出图像中所有感兴趣的目标确定他们的类别和位置。由于各类不同物体有不同的外观姿态以及不同程度的遮挡加上成像是光照等因素的干扰目标检测一直以来是一个很有挑战性的问题。
目标检测任务主要可以分为四个小任务
1分类classification给定一张图像要知道里面包含什么类别的目标。
2定位location给定这个目标在图像中的位置。
3检测detection定位出目标的位置并判断这个目标的类别。
4分割segmentation确定每个像素属于哪个目标或者场景。
综上所述目标检测是一个分类、回归问题的叠加。
2.发展历程 目标检测的发展可以划分为两个周期
1传统目标检测算法1998-2014传统目标检测算法主要基于手工提取特征具体步骤可概括为选取感兴趣区域-对可能包含物体的区域进行特征分类-对提取的特征进行检测。虽然传统目标检测算法经过了十余年的发展但是其识别效果并没有较大改善且运算量大此处不再详细介绍。
2基于深度学习的目标检测算法2014-该方法主要分为Anchor-based的Two Stage和One Stage和Anchor-free两种思路
aTwo Stage先预设一个区域该区域称为Region Proposal即一个可能包含待检测物体的预选框简称RP再通过卷积神经网络进行样本分类计算。该算法的流程是特征提取 - 生成RP - 分类/回归定位。常见的Two Stage算法有R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN等其特点是检测精度高但是检测速度不如One Stage方法高。
bOne Stage直接在网络中提取特征值来分类目标和定位。该算法的流程是特征提取 - 分类/回归定位。常见的One Stage算法有OverFeat、YOLOv1、YOLOv2、YOLOv3、YOLOv5、SSD、RetinaNet等其特点是检测速度快但是精度没有Two Stage方法高。
cAnchor-free该方法通过确定关键点的方式来完成检测大大减少了网络超参数的数量。
3.基础知识
3.1概述 无论使用传统方法还是深度学习的方法来完成目标检测任务一定要遵循三个步骤检测窗口的选择图像特征提取分类器设计
3.1.1 候选框提取 候选区域Region proposal就是预先找出图中目标可能出现的位置通过利用图像中的纹理、边缘、颜色等信息保证在选取较少窗口的情况下保持较高的召回率。
Region Proposal方法比传统的滑动窗口方法获取的质量要更高。比较常用的Region Proposal方法有SelectiveSearch(SS选择性搜索)、Edge BoxesEB
边框回归Bounding Box Regression是对Region Proposal进行纠正的线性回归算法目的是为了让Region Proposal提取到的窗口与目标窗口Ground Truth更加吻合。
候选框如何产生 其实物体候选框获取当前主要使用图像分割与区域生长技术。区域生长(合并)主要由于检测图像中存在的物体具有局部区域相似性(颜色、纹理等)。目标识别与图像分割技术的发展进一步推动有效提取图像中信息。滑窗法作为一种经典的物体检测方法不同大小的窗口在图像上进行滑动时候进行卷积运算后的结果与已经训练好的分类器判别存在物体的概率。选择性搜索(Selective Search)是主要运用图像分割技术来进行物体检测。
滑窗法
首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后会得到不同窗口检测到的物体标记这些窗口大小会存在重复较高的部分最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。最终经过NMS筛选后获得检测到的物体。
滑窗法简单易于理解但是不同窗口大小进行图像全局搜索导致效率低下而且设计窗口大小时候还需要考虑物体的长宽比。所以对于实时性要求较高的分类器不推荐使用滑窗法。
选择搜索
滑窗法类似于穷举进行图像子区域搜索但是一般情况下图像中大部分子区域是没有物体的这样搜索的效率就很低。
选择搜索算法观点图像中物体可能存在的区域应该是有某些相似性或者连续性的因此选择搜索采用子区域合并的方法进行提取边界框bounding box。
首先对输入图像进行分割并产生许多子区域其次根据这些子区域之间的相似性颜色、纹理、大小等进行区域合并由小变大不断迭代并合并每次迭代过程中对这些合并的子区域做外切矩形这些子区域的外切矩形就是通常说的候选框。
自下而上也就是从像素级开始检测慢慢融合到比较大的位置。scale1 就是最小尺度上分割成很多小的区域super pixel超像素把特征距离近的如颜色比较像的都融合到一起产生比较大的区域。scale2 就是中间尺度上的分割和融合能得到更大的区域scale3同理。最后就产生了目标框。
选择性搜索的优点
计算效率高于滑窗法 由于采用子区域合并策略故可以包含各自大小的疑似物体框 合并区域相似的指标多样性提高了检测物体的概率 3.1..2 特征提取 在选定候选区域之后我们需要提取图像的特征来进行表达传统的有监督的方法和以CNN为代表的无监督特征学习方法都可以派上用场。常见的传统特征有Haar特征、LBP、HOG等。这些特征都是研究人员通过长时间的学术研究和实际项目验证得来的虽然在比较简单的任务中可以取得很好的结果但是设计成本很高而且面对复杂任务时鲁棒性远远不够。
3.1.3 分类器 常常被使用的分类器包含AdaboostSVMDecision Tree等。在很多时候单一的分类器可能并不能满足我们的要求如今使用深度学习来完成各项任务尤其是参加各类比赛的时候一定会使用不同的模型不同的输入进行Ensemble。比如我们常见的使用不同的裁剪子区域进行预测或者使用不同的基准模型进行预测最后取平均概率等。 3.2 目标检测性能评估参数 3.2.1 Ground Truth
对于任何算法度量总是需要与数据的真实值ground truth进行比较对于物体检测问题GT 包括图像图像的目标类别及 图像中每个目标的边界框。对于下图3组数字定义的GT表示了其真实值包括起始点左上角的坐标(X,Y)、宽度、高度、类别。 3.2.2 IoU交并比
实际中如何判定预测框的正确性呢首先需要知道每个检测的正确性测定一个给定的边框的正确性的度量标准是IoU交并比也称检测评价函数。 我们使用IoU来确定检测是否正确需要一个阈值最常用的是0.5即如果IoU0.5则认为是真实的检测true detection否则认为是错误的检测false detection。
Precision准确率/查准率P和Recall召回率/查全率R
一般来说P和R是不可兼得的召回率越高准确率越低。
TP实际为正且被预测为正的实例 FP实际为负但被预测为正的实例 TN实际为负且被预测为负的实例 FN实际为正但被预测为负的实例
3.2.3 PR曲线 一般来说我们希望这两个P和R都是越高越好然而没有这么好的事情两者是矛盾体要根据不同的情况来选取好的平衡点才可以。根据学习器的预测结果对样本进行排序排在前面的就被认为是最可能为正例的样本然后按此顺序依次吧样本喂给学习器我们把每次的准确率和召回率描出来就会得到一个P-R曲线称为P-R图。
如何评价P-R曲线
1如果一个曲线被另一个曲线包围那么被包围的曲线更差些 2两者有重叠那就是判断曲线下面积的大小但不太容易估算 3找平衡点就是找到准确率召回率的点 4F1度量F 1 2 P R / ( P R ) F12PR/(PR)F12PR/(PR)
APAverage Precision平均精度
AP通常用于计算平均的检测精度用于衡量检测器在每个类别上的性能好坏。
3.2.4 mAPmean Average Precision平均精度的均值
mAP更多用于评价多目标的检测器性能衡量检测器在所有类别上的性能好坏即得到每个类别的AP值后再取所有类别的平均值。假设N个样本中有M个positive的正例那么我们就会得到M个recall值(1/M,2/M,3/M…M/M)对于每个recall值r我们可以计算出对应r’r的最大的precision值然后对这M个precision 值取平均即得到最后的AP值。计算过程如下表所示
计算过程
1计算所有测试样本的confidence score每一类的confidence score保存到一个文件中假设有20个测试样本每个的id和score及真值GT如下 mAP(mean Average Precision)表示平均精度均值该参数是PASCAL VOC 比赛中所明确的衡量标准其含义是输出的结果是一个ranked list 其中元素包含了类别、框的信息以及置信度confidence置信度用来进行排序比方说我给出一个框说我有99%的信心这里有一个猫结果这里没有相比我给出一个框说我有10%的信心这里有一个猫结果也没有这两个框的惩罚penalty和奖励reward不能一样的。因为99%信心说有结果没有那就说明这个系统很有问题。反之假如我给出一个框99%的信心说有一个猫然后真有猫相比10%信心说有猫结果也是有猫这两个框也不一样。也就是越“靠谱”reward越大。所以我们根据confidence进行排序之后就应该给排名靠前的结果也就是confidence比较大的一些更大的权重。
3.2.5. NMS非极大值抑制
其目的是为了清除多余的框找到最佳的物体检测的位置。 红色框是可能的检测结果如何从红色的框中选择最好的最接近的框就使用NMS来确定最准确的位置。
每个红色的框都会有一个得分保留得分最大的框。 一般都会使用NMS对生成的大量候选框进行后处理去除冗余的候选框得到最佳检测上图中每个b-box都会有4个坐标值和1个前景/背景得分如果是100类的目标检测模型输出向量为5100105。
NMS算法过程根据候选框的类别分类概率做排序假设有4个b-box其置信度ABCD 先标记最大概率框A是算法要保留的b-box 从A 开始分别计算与其他框的交并比和阈值t做比较如果大于阈值则舍弃假设D被舍弃 从BC中选择概率最大的B标记为保留然后判读C和B的重叠度如果超过则舍弃 一直重复进行标记完所有要保留的框 NMS是保证每个目标只保留一个预测的b-box一般的NMS对于某个类别c将所有预测的b-box根据得分做一个降序排列从最大的框开始计算该框与其他框的IoU,若IoU大于阈值t则舍弃说明重合度太高重复进行最终保留一个。
缺点
NMS算法中的最大问题就是它将相邻检测框的分数均强制归零(既将重叠部分大于重叠阈值Nt的检测框移除)。在这种情况下如果一个真实物体在重叠区域出现则将导致对该物体的检测失败并降低了算法的平均检测率average precision, AP。 NMS的阈值也不太容易确定设置过小会出现误删设置过高又容易增大误检。 NMS一般只能使用CPU计算无法使用GPU计算。 NMS保留-得分最高的预测框并将与当前框重叠大于阈值的候选框看做冗余
hard mining在一个mini-batch里边容易让分类器混淆的实例就会标记成hard mining难以区分的用到下一轮训练中。
参考
【目标检测】1、基础内容
目标检测的基本概念与原理