云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港服务器_招聘网站建设_12月免费

小七 141 0

目标检测深度学习算法的基本原理

你刚买了一架新的无人机,你希望它超级聪明!也许它应该检测工人是否正确戴头盔,或者工厂屋顶的裂缝有多大。在这篇博文中,我们将介绍目标检测的基本方法(穷举搜索、R-CNN、Fast-R-CNN和Faster-R-CNN),并尝试了解每个模型的技术细节。最好的部分?我们将在没有任何公式的情况下完成所有这些,让具有不同经验水平的读者都能跟上!最后,我们将跟随这篇文章的第二篇文章,在这里我们将深入研究单发探测器(SSD)网络,看看如何在无人机上部署。作者:克里斯·耶茨,未删减我们进入目标探测的第一步它是一只鸟吗?是飞机吗?-图像分类目标检测(或识别)建立在图像分类的基础上。像上面的一个分类任务一样,将图像分类为一个类别。关于图像分类的复习,我们建议读者参考这篇文章。对象识别是识别和分类图像中的对象的过程,如下所示:为了使模型能够学习类和对象在图像中的位置,目标必须是一个五维标签(class,x,y,width,length)。目标检测方法的内部工作原理一种计算代价昂贵的方法:穷举搜索最简单的目标检测方法是在图像的各个子部分上使用图像分类器。你可能会问哪个?让我们分别考虑一下:1首先,获取要对其执行对象检测的图像。2然后,将此图像分成不同的部分或"区域",如下所示:三。将每个区域视为一个单独的图像。4使用经典的图像分类器对每个图像进行分类。5最后,将所有图像与每个检测到目标的区域的预测标签相结合。这种方法的一个问题是对象可能具有不同的纵横比和空间位置,这会导致对大量区域进行不必要的昂贵计算。在计算时间方面,它给实际问题带来了太大的瓶颈。区域建议方法与选择性搜索最近的一种方法是将问题分解为两个任务:首先检测感兴趣的区域,然后执行图像分类以确定每个对象的类别。第一步通常包括应用区域建议方法。这些方法输出可能包含感兴趣对象的边界框。如果对象在某个区域建议中被正确地检测到,那么分类器也应该检测到它。这就是为什么这些方法不仅要快,而且要有很高的召回率。这些方法还使用了一个聪明的体系结构,其中部分图像预处理对于对象检测和分类任务是相同的,这使得它们比简单地链接两个算法更快。最常用的区域建议方法之一是选择性搜索:它的第一步是应用图像分割,如下所示:从图像分割输出,选择性搜索将依次:从分段零件创建边界框,并将它们添加到区域建议列表中。根据四种相似性:颜色、纹理、大小和形状,将几个相邻的小片段组合到较大的片段中。返回到第一步,直到该部分涵盖整个图像。层次结构分组既然我们了解了选择性搜索是如何工作的,那么让我们介绍一些利用它的最流行的对象检测算法。CNN-R-First目标检测算法Ross Girshick等人。建议区域CNN(R-CNN),允许选择性搜索和CNN相结合。实际上,对于每一个区域提案(论文中是2000年),一个前向传播通过CNN生成一个输出向量。该向量将被输入一个一对所有分类器(即每个类一个分类器,例如一个分类器,如果图像是狗,标签=1,如果不是狗,则为0;如果图像是猫,则标签=1;如果不是猫,则为0,等等),SVM是R-CNN使用的分类算法。但你如何给这些地区提案贴上标签呢?当然,如果它完全符合我们的基本事实,我们可以将其标记为1,如果给定的对象根本不存在,则可以将其标记为0。如果一个物体的一部分出现在图像中呢?我们应该将区域标记为0还是1?为了确保我们在预测图像时实际拥有的区域(不仅是完全匹配的区域)上训练分类器,我们将查看通过选择性搜索预测的框的相交于并集(IoU)和基本事实:IoU是一个度量,用预测和地面真值盒之间的重叠面积除以它们的结合面积来表示。它奖励成功的像素检测和惩罚误报,以防止算法选择整个图像。回到我们的R-CNN方法,如果IoU低于给定的阈值(0.3),那么相关的标签将是0。在对所有区域建议运行分类器之后,R-CNN建议使用类特定的bbox回归器来细化边界框(bbox)。bbox回归器可以微调边界框边界的位置。例如,如果选择性搜索检测到一只狗,但只选择了它的一半,那么知道狗有四条腿的bbox回归器将确保选中整个身体。另外,由于新的bbox回归预测,我们可以使用非最大抑制(NMS)来丢弃重叠的建议。这里的想法是识别和删除同一对象的重叠框。NMS对每个类别的每个分类得分对提案进行排序,并计算概率得分最高的预测框与所有其他预测框(属于同一类别)的IoU。如果IoU高于给定的阈值(例如0.5),则它将丢弃这些建议。然后对下一个最佳概率重复此步骤。综上所述,R-CNN遵循以下步骤:通过选择性搜索创建区域建议(即,预测图像中可能包含对象的部分)。通过预先训练的模型对这些区域进行训练,然后用支持向量机对子图像进行分类。通过边界框预测运行正预测,这样可以获得更好的框精度。在预测时应用NMS以消除重叠的建议。不过,R-CNN也有一些问题:这种方法仍然需要对所有可能导致计算瓶颈的区域建议进行分类-它不可能用于实时用例。在选择性搜索阶段没有学习,这可能会导致对某些类型的数据集的不良区域建议。边际改进:快速R-CNN快速的R-CNN-正如它的名字所表明的那样-比R-CNN快。它基于R-CNN,有两个不同点:不是给每个区域的CNN提供建议,而是通过获取整个图像来生成卷积特征映射(取一个像素向量并使用一个过滤器将其转换为另一个向量,该过滤器将为您提供一个卷积特征图-您可以在这里找到更多信息)来为CNN提供一次。接下来,通过选择性搜索来识别提案区域,然后使用兴趣区域池(RoI pooling)层将其重塑为固定大小,以便能够用作完全连接层的输入。快速RCNN采用softmax层代替支持向量机进行区域建议分类,速度快,精度高。以下是网络架构:如下图所示,快速R-CNN在训练和测试方面比R-CNN快得多。然而,由于选择性搜索方法的限制,仍然存在一个瓶颈。R-CNN能有多快?-更快的R-CNN虽然快速的R-CNN比R-CNN快得多,但瓶颈仍然在于选择性搜索,因为它非常耗时。因此,任少卿等人。提出了更快的R-CNN来解决这一问题,并提出用一种称为区域建议网络(RPN)的非常小的卷积网络来代替选择性搜索来寻找感兴趣的区域。简而言之,RPN是一个小型网络,可以直接查找地区提案。对此,一种天真的方法是创建一个深度学习模型,该模型输出x_min、y_min、x_max和x_max,以获得一个区域建议的边界框(如果我们需要2000个区域,则输出8000个输出)。然而,有两个基本问题:图像的大小和比率可能会有很大的不同,因此要创建一个模型来正确预测原始坐标可能会很棘手。在我们的预测中存在一些坐标排序约束(x_min