雷锋网(公众号:雷锋网) AI 科技评论按:随着计算机视觉技术逐年火热,利用计算机图像处理技术对目标进行实时跟踪的研究越来越热门。那么如何提高目标检测的质量?Anders Christiansen 认为,正确地调整 Anchor Boxes 可以大大提高模型检测某些未知大小和形状的对象的能力。下面是他的观点, 雷锋网 AI 科技评论编译整理。

在学习用于目标检测的卷积神经网络时,Anchor Boxes 是最难掌握的概念之一。它还是你在提高数据集的性能的时候,能够调优的最重要的参数之一。事实上,如果 Anchor Boxes 没有正确地调整,你的神经网络将永远不会知道某些小的、大的或不规则对象的存在,并且永远不会有机会检测它们。幸运的是,你可以采取一些简单的步骤来确保你不会掉进这个陷阱。

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

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

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

其中,(X,Y,高度,宽度) 被称为「bounding box」。该框和对象类由人类注释人员手动标记。

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

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

预测 1:梨

预测 2:苹果

或者是:

预测 1:苹果

预测 2:梨

如果网络预测为:

预测 1:苹果

预测 2:苹果

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

预测 1:梨

预测 2:苹果

目前最先进的物体检测系统如下:

为每个预测器创建数千个「bounding box」或「prior boxes」,它们表示它专门用于预测对象的理想位置、形状和大小。

对于每个 bounding boxes,计算哪个对象的 bounding boxes 具有最高的重叠除以非重叠。这被称为交叉或联合。

如果最高 IOU 大于 50%,则告诉 anchor box 它应该检测出最高 IOU 的对象。

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

如果最高 IOU 小于 40%,那么 anchor box 应该预测为没有对象。

这个方法在实践中表现得很好,并且数千个预测器在判断它们的对象类型是否出现在图像中这方面做得非常好。看一下 RetinaNet 的开源实现,它是一个最先进的对象检测器,我们可以可视化 anchor box。有太多对象时不能同时可视化,但是这里只有 1% 个:

使用默认 anchor box 配置可以创建过于专用的预测器,并且图像中出现的对象可能无法使用任何 anchor box 获得 50% 的 IOU。在这种情况下,神经网络将永远不会知道这些对象的存在,也永远不会学习预测它们。我们可以调整我们的 anchor box 使它变得小得多,比如这 1% 个样本:

在视网膜网配置中,最小锚盒大小为 32×32。这意味着许多比这个小的物体都不会被检测到。这里是来自 WiderFace 数据集的一个示例,我们在其中将边界框匹配到它们各自的锚定框,但有些则陷入了裂缝中。数据集的网址为:

http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/

在这种情况下,只有四个地面真值边界框与任何 anchor boxs 重叠。神经网络永远也学不会预测其他人脸。我们可以通过更改默认的 anchor box 配置来修复这个问题。

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

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

我想检测的最小尺寸的 box 是什么?

我想要检测的最大尺寸的 box 是什么?

box 和检测区域之间的比例应该是多少?即,每个 bounding box 在预测时有多少依赖于它周围的数据?

这个 box 能做什么形状?例如,汽车检测器可能具有短而宽的 anchor boxes,只要汽车或照相机没有机会侧转。

您可以通过实际计算数据集中最极端的大小和长宽比来粗略估计这些参数。另一个对象检测器 YOLO v3 使用 K-means 来估计理想的 bounding boxes。另一个选择是学习 anchor box 配置。然而,重要的是要记住,您不仅希望优化对象到 anchor boxs 的映射。您还必须考虑需要多少来自周围像素的信息才能正确检测对象。例如,检测一个小小的脸部,你需要依赖于对整个人体的检测。

一旦你仔细考虑过这些问题,你就可以开始设计你的 anchor boxs 了。一定要通过编码你的实际参考标准来测试它们,然后解码,它们太多了。你应该能够恢复 bounding boxes。

此外,请记住,如果 bounding boxes 和 anchor boxs 的中心不同,这将降低 IOU。即使你有小 anchor boxs,如果 anchor boxs 之间的距离很大,你可能会错过一些符合标准的检测对象。改善这一点的一种方法是将 IOU 阈值从 50% 降低到 40%。

要了解为什么 anchor boxs 如此重要,请参阅 David Pacassi Torrico 的文章,比较当前人脸检测的 API 实现方法和效果。你可以看到,除了检测小脸部,这些算法效果不错。下面是一些照片,其中没有检测到一张脸。David Pacassi Torrico 的文章地址为:

https://www.liip.ch/en/blog/face-detection-an-overview-and-comparison-of-different-solutions-part1

这是我们新模型对相同图片的检测效果:

更多关于 anchor boxs 的知识,您可以参考 Andrew Ng 的 Deep Learning Specialization。

雷锋网

雷锋网版权文章,未经授权禁止转载。详情见转载须知。

Anchor Boxes——目标检测质量的关键相关推荐

  1. anchor free 目标检测_《目标检测》系列之二:目标检测中的Anchor机制回顾

    前段时间,YOLOv4&v5大火,很多人忽视了yolov5在anchor上的一些细节变化,因此,本文从Faster RCNN着手,逐步分析SSD.YOLOv4&v5的anchor机制. ...

  2. anchor free 目标检测_【目标检测】anchor-free—CenterNet总结

    [文前]本文所讲述的 CenterNet 为 [Objects as Points] (http://arxiv.org/abs/1904.07850)) 有两篇 paper 都为 centernet ...

  3. anchor free 目标检测_CVPR 2020 | 商汤提出 Anchor-free 目标检测新网络

    2 动机 1.现有的基于关键点的目标检测网络(如CornerNet.CenterNet.ExtremeNet等)通过使用关联嵌入向量进行物体关键点的匹配,然而关联嵌入向量具有训练难度大且容易混淆同类物 ...

  4. 【算法】anchor free 和 anchor based 目标检测模型

    参考资料:https://www.zhihu.com/question/356551927 猜你喜欢:

  5. 【计算机视觉 | 目标检测】CORA: Adapting CLIP for Open-Vocabulary Detection with Region Prompting and Anchor

    基于区域提示和锚点预匹配的开放词汇检测. CORA 在目标检测任务中提出了一种新的 CLIP 预训练模型适配方法,主要包括 Region Prompting 和 Anchor Pre-Matching ...

  6. FoveaBox:目标检测新纪元,无Anchor时代来临 | 技术头条

    作者 | CV君 转载自我爱计算机视觉(ID:aicvml) 目标检测的任务是"分类"并从图像中"定位"出物体,但长久以来,该领域的工作大多是这样:生成可能包含 ...

  7. FoveaBox:目标检测新纪元,无Anchor时代来临!

    点击我爱计算机视觉标星,更快获取CVML新技术 目标检测的任务是"分类"并从图像中"定位"出物体,但长久以来,该领域的工作大多是这样:生成可能包含目标的区域,然 ...

  8. 目标检测中的Anchor

    前言: 在计算机视觉四大基本任务(检测.分类.定位.分割)中,图像的目标检测受到的了研究者们越来越多的关注.今天我们就来聊一聊在目标检测中一项重要的机制--Anchor.Anchor机制在凯明大神提出 ...

  9. 科普:目标检测Anchor是什么?怎么科学设置?[附代码]

    文章来源于AIZOO,作者元峰 在基于anchor的目标检测网络(Faster RCNN.SSD.YOLO v2&v3等)中,一个至关重要的步骤就是科学的设置anchor,可以说,Anchor ...

最新文章

  1. tensorflow兼容处理 tensorflow.compat.v1 tf.contrib
  2. 关于scrollTop为0以及解决方法
  3. JDK内置工具--jconsole
  4. Linux监控平台搭建( zabbix监控)
  5. 如何确定coordinator
  6. 【图文详解】第一个Java程序HelloWorld详解,写Java程序需要注意什么
  7. C#线程使用(二)全面总结
  8. 【Pytorch神经网络实战案例】19 神经网络实现估计互信息的功能
  9. 再想想-----***
  10. openvas 配置遇到的问题
  11. socket编程-客户端向服务器发送字符串,传文件
  12. 解决word、excel、ppt文件图标是空白的问题
  13. 未能加载nStuff.ScriptSharp.Web.dll
  14. Windows phone8 基础篇(二) xaml介绍 一
  15. MongoDB安装配置(Windows)
  16. 算法java人工智能_人工智能用的编程语言是哪些?
  17. java 获取汉字拼音_java springboot中获取汉字拼音
  18. 给wordpess博客的数据库减肥提速
  19. 产品经理十七章:结构化发散思维
  20. arcgis路网密度计算、提取中心线、面积计算

热门文章

  1. 二手车电商很热?其实都是平台在自嗨!
  2. oracle备份恢复之rman恢复到异机
  3. [正能量系列]赋闲的程序员(三)
  4. 传统软件的云计算之路
  5. 【字符串】manacher算法
  6. IBM 3650 M3阵列卡配置
  7. Linux网络基础1
  8. 【Splay】洛谷3372 【模板】线段树 1
  9. Easy Problem 7 求反数字字符串
  10. Spring中ClassPathXmlApplicationContext类的简单使用