锚箱:目标检测质量的关键 2019-06-13

    原标题:锚箱-目标检测质量的关键雷锋人工智能技术评论注:使用计算机视觉技术

    原始标题:锚箱-目标检测质量的关键

    雷锋人工智能技术评论注:随着计算机视觉技术的日益普及,利用计算机图像处理技术实时目标跟踪的研究越来越受到人们的关注。那么如何提高目标检测的质量呢?Anders Christiansen认为正确地调整锚箱可以大大提高模型检测未知尺寸和形状的物体的能力。以下是他的观点,对雷锋的《人工智能技术评论》进行了汇编和整理。

    锚箱是学习用于目标检测的卷积神经网络中最困难的概念之一。它还是可以调优以提高数据集性能的最重要的参数之一。事实上,如果锚箱没有正确调整,您的神经网络将永远不会知道一些小、大或不规则物体的存在,并且永远不会有机会检测它们。幸运的是,您可以采取一些简单的步骤来确保不会陷入这种陷阱。

    当您使用YOLO或SDD这样的神经网络来检测图像中的多个对象时,该网络实际上正在执行数千次检测,并且只显示它确定为对象的那些结果。以以下格式输出多个检测:

    预测1:(x,y,高度,宽度),类

    …

    预测(80000):(x,y,高度,宽度),等级

    其中,(X,Y,高度,宽度)被称为“包围盒”。框和对象类由人工注释器手动标记。

    在一个极其简化的示例中,假设我们有一个模型,该模型具有两个预测并接收以下图像:

    我们需要告诉我们的网络是否每个预测都是正确的,以便它能够学习。但是我们应该告诉神经网络什么样的预测呢?预测类别应该是:

    预测1:梨

    预测2:苹果

    或:

    预测1:苹果

    预测2:梨

    如果网络预测:

    预测1:苹果

    预测2:苹果

    我们需要两个网络预测器来区分梨和苹果,这是他们的工作。要做到这一点,有几个工具。预测器可以专门用于特定大小的对象、具有一定纵横比(高度和宽度)的对象,或者具有图像不同部分的对象。大多数网络使用所有三个标准。在我们的pear/apple图像示例中,我们可以使用Prediction 1表示左边的对象,使用Prediction 2表示右边的对象。然后我们可以回答网络应该预测什么:

    预测1:梨

    预测2:苹果

    目前,最先进的目标检测系统如下:

    为每个预测器创建数千个“边界框”或“先前框”,这些框表示它所专用的对象的理想位置、形状和大小。

    对于每个边界框,计算哪些对象边界框具有最高的重叠除以非重叠。这称为交叉或关联。

    如果最高IOU大于50%,则告诉锚框它应该检测最高IOU对象。

    否则,如果IOU大于40%,则告诉神经网络实际检测是模糊的,不要从示例中学习。

    如果最大IOU小于40%,则应预测锚定框没有对象。

    这种方法在实际应用中表现良好,成千上万的预测器非常擅长判断它们的对象类型是否出现在图像中。看一下RetinaNet的开源实现,它是一个最先进的对象检测器,允许我们可视化锚定框。有太多的对象不能同时被可视化,但是只有1%的对象在这里:

    使用默认锚定框配置,可以创建过度专用的预测器,并且图像中出现的对象可能无法使用任何锚定框来获取IOU的50%。在这种情况下,神经网络将永远不知道这些对象的存在,也永远不会学习预测它们。我们可以调整我们的锚箱使其更小,例如1%的样品:

    在视网膜网络配置中,最小锚定盒大小为32*32。这意味着许多较小的对象将不会被检测到。以下是来自WiderFace数据集的示例,我们在其中将边界框匹配到它们各自的锚定框,但有些框陷入了裂缝。数据集的网站是:

    Http://mmlab.ie.cuhk.edu.hk/./WIDERFace/

    在这种情况下,只有四个地面真值边界框与任何锚定框重叠。神经网络永远无法学习预测其他人脸。我们可以通过更改默认锚定框配置来解决这个问题。

    因为我们有非常小的面,其预测依赖于其周围的像素(如果有臂和腿,则更可能是面),所以我们减小了最小锚箱大小,同时保持了用于预测32x32对象的相同的接收字段。通过我们的新配置,所有方面都与至少一个锚箱对齐,并且我们的神经网络可以学习如何检测它们!

    作为一般规则,在开始训练模型之前,您应该问自己关于数据集的下列问题:

    我想测试的最小尺寸的盒子是什么?

    我想测试的最大尺寸的盒子是多少?

    盒子和检测区域的比例应该是多少?也就是说,每个边界框在其预测中多少依赖于它周围的数据?

    这个盒子可以做成什么形状?例如,汽车探测器可以具有短而宽的锚盒,只要汽车或照相机没有机会侧转。

    您可以通过实际计算数据集中最极端的大小和长宽比来粗略估计这些参数。另一个对象检测器YOLO v3使用K-means来估计理想的边界框。另一个选项是学习锚箱配置。但是,重要的是要记住,您不仅要优化对象到锚定框的映射。您还必须考虑需要多少来自周围像素的信息才能正确检测对象。例如,为了检测一张小脸,你需要依靠检测整个人体。

    一旦你仔细考虑了这些问题,你就可以开始设计你的锚定框了。一定要通过编码实际的参考标准来测试它们,然后对其进行解码。它们太多了。您应该能够还原边界框。

    此外,请记住,如果边界框和锚定框具有不同的中心,这将减少IOU。即使您有小的锚定框,如果锚定框之间的距离非常大,您也可能会错过一些合格的测试对象。一种改进方法是将IOU阈值从50%降低到40%。

    要理解为什么锚定框如此重要,请参阅David Pacassi Torrico的文章,比较当前API实现方法和人脸检测的效果。如您所见,除了检测小脸部之外,这些算法还可以很好地工作。这里有一些照片,没有一张检测到一张脸。David Pacassi Torrico的文章地址是:

    Http://www.liip.ch/en/blog/face-.-an-overview-and-.-of-.-.-part1

    这就是我们的新模型如何检测相同的图像。

    有关锚盒的更多信息,可以参考Andrew Ng的深度学习专门化。

    雷锋网

Copyright © 2019 百老汇4001登录网址首页 All Rights Reserved
林晓芸
地址:河南周口省淮阳县陈州路与建设路交叉口150号
全国统一热线:13900739317