热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

anchorbox

参考:吴恩达卷积神经网络anchorbox是目标检测中十分重要的概念,虽然最近很多论文都提出anchorfree,但是深入理解anchorbox对我们理解目前主流的fasterrc

参考:吴恩达 卷积神经网络

anchor box 是目标检测中十分重要的概念,虽然最近很多论文都提出anchor free,但是深入理解anchor box对我们理解目前主流的faster rcnn,ssd,yolov2v3等算法很有帮助。



传统方法:

1.滑动窗口:顾名思义,采用一个固定大小的窗口在图上不断滑动截取固定大小的图片,从左到右,从上到下,遍历整个图片。依次判断截取下的框包不包含目标。然后改变框的尺寸继续搜索,类似一种暴力穷举的方法,的确可行,但是但图片尺寸较大的时候,该方法特别浪费时间。(滑动操作可用卷积来实现

2.Regional Proposal(RPN):建议框,即在滑动窗口的思想上,提取出所有可能包含识別目标的一些候迭区域,相比于传统的候选区域而言,Regional Proposal数量上会更少(通常1K~2K个) ,质量更高。



为什么需要anchor box?

如上图,基于滑动窗口的方法,还有yolov1里的方法,每个网格的框只能预测一个类别,不能进行多类预测。提出anchor box可以很好的解决这个问题。

如图,车和人的中心点正好重合在一点,如果仍然采用原来的输出y,那么将无法结果。必须从两个中选一个。

采用anchor box的思路是,预先定义两个(一般为很多个)不同形状的anchor box,我们需要做的就是将预测结果与这两个anchor box关联起来,

也就是定义输出为右边这个向量y的形式。

对于行人而言,其形状更类似于anchor box1,所以将其分配到y的上半部分,其中行人的类别为为1,即c1=1,c2=c3=0。同理,把车分配到y的下半部分。

和之前相同的是,每个对象都根据中点位置分配到中点所在的网格里,与之间不同的是,每个对象还分配到一个和ground truth iou最高的anchor box ,也就是所,这个对象分配到一对(网格,anchor box),如下图:

如果该网格里只有人,没有车,那么此时输出y中 anchor box2分量还是不变,anchor box1置信度为0,其他的do not care,如下图:

  还有一种情况,两个对象都在同一个网格中,且两个对象的anchor box 形状也一样。这是算法处理不好的另一种情况,你需要引入一些打破僵局的默认手段,专门处理这种情况,希望你的数据集里不会出现这种情况,其实出现的情况不多,所以对性能的影响应该不会很大。

  建立anchor box的原因是为了处理两个对象出现在同一个格子的情况,实际中这种情况很少发生,特别是如果你用的是19×19网格而不是3×3的网格,两个对象中点处于361个格子中同一个格子的概率很低,确实会出现,但出现频率不高。



怎么选择anchor box?

  人们一般手工指定anchor box形状,你可以选择5到10个anchor box形状,覆盖到多种不同的形状,可以涵盖你想要检测的对象的各种形状。还有一个更好的方法,在yolov2中使用的kmeans算法,可以将两类对象形状聚类,如果我们用它来选择一组anchor box,选择最具有代表性的一组anchor box,可以代表你试图检测的十几个对象类别,但这其实是自动选择anchor box的高级方法。如果你就人工选择一些形状,合理的考虑到所有对象的形状,你预计会检测的很高很瘦或者很宽很胖的对象,这应该也不难做。



推荐阅读
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • LeetCode 实战:寻找三数之和为零的组合
    给定一个包含 n 个整数的数组,判断该数组中是否存在三个元素 a、b、c,使得 a + b + c = 0。找出所有满足条件且不重复的三元组。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本周三大青年学术分享会即将开启
    由雷锋网旗下的AI研习社主办,旨在促进AI领域的知识共享和技术交流。通过邀请来自学术界和工业界的专家进行在线分享,活动致力于搭建一个连接理论与实践的平台。 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 本文源自Coursera平台吴恩达教授的深度学习课程,重点探讨了卷积神经网络(ConvNets)从二维图像处理向一维信号及三维数据处理的拓展应用。 ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 探讨低代码行业发展现状,分析其未能催生大型企业的原因,包括市场需求、技术局限及商业模型等方面。 ... [详细]
  • 解决Pytesser模块在Windows环境下出现的错误
    本文详细探讨了如何解决在Windows环境中使用Pytesser模块进行OCR(光学字符识别)时遇到的WindowsError错误,提供了具体的解决方案。 ... [详细]
  • 本题要求实现一个高效的算法,在一个 m x n 的矩阵中搜索目标值 target。该矩阵具有以下特性:每行的元素从左到右按升序排列,每列的元素从上到下按升序排列。 ... [详细]
author-avatar
sdfsadfwforever
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有