目标检测中anchor box(先验框)的理解

2023-10-27

近来心血来潮,把CV领域关于目标检测的主流方法YOLOv3和Faster RCNN看了一下,对其中的先验框(anchor box)一直不太理解,在广泛地阅读了一些相关讲解后,有了一定的理解,在此记录一下。

先验框的个人理解

  • 先验框最早提出于Faster RCNN,初衷是为了代替selective search算法。
  • 先验框是根据特征图生成的,即,特征图上每个位置都有一定数目不同比例的先验框。而大小是相对于原图的,也就是特征图上每个点可以映射到原图中某个特定区域(感受野大小)。
  • 在训练的时候往往是把先验框缩放到相对于特征图的大小,在推理时会把特征图上调整后的先验框,即预测框,放大到原图大小。
  • 每个先验框为一个训练样本。在YOLOv3中,通过计算每个先验框与真实框的IOU来确定其是否为正样本,即,是否含有物体的置信度设为1。先验框含有物体置信度为0的为负样本,负样本只计算置信度损失,不做回归。
  • 在推理时,通过非极大抑制方法筛选掉重合的多余的先验框,在YOLOv3中首先根据置信度阈值筛除大部分预测框,剩下的预测框按照置信度乘以类别最大分数进行排序,选排名第一的框,找到同类别的预测框,根据iou阈值来筛除重合度高的预测框,重复进行以上步骤直到所有的预测框都被对比或筛除。

Faster RCNN与YOLOv3先验框以及其他方面的区别

在Faster RCNN中,先验框的大小是人为设定的。在YOLOv3中,先验框的大小是通过kmeans聚类算法得到的,对训练样本的groundtruth box的宽高分别进行聚类。

Faster RCNN属于两阶段算法,先利用RPN(Region Proposal Network)对先验框做回归,在这里会对每个先验框进行一个其为前景或背景的二分类任务以及左上右下坐标的预测,生成感兴趣区域(初步预测框,对应于原图中的部分区域),再把生成的感兴趣区域输入到一个网络中预测类别同时再次修正框的大小位置。

YOLOv3属于一阶段算法,预测的结果同时包含框的位置大小和类别概率分布以及是否含有物体的置信度值。需要注意的是YOLOv3的类别预测损失计算是为每个类别进行二元交叉熵损失,因为作者认为同一个物体可以属于多个类别。YOLOv3输出的结果是[batch_size, feature_map_w, feature_map_h, n_anchor * (n_class+1+4)]

其他目标检测算法

其他目标检测算法,SSD与YOLOv1较像,与其区别在于YOLOv1没使用anchor box,SSD使用了。同时SSD引入了多尺度预测。

Anchor free的算法,即不需要先验框的目标检测算法,CenterNet,FCOS, DETR等待看。。。

YOLOX和YOLOF是什么鬼???

DETR为CNN提取特征,transformer作为head进行后处理,即确定目标框和类别。

NeurIPS2021一篇论文提出YOLOS,是一个完全基于transformer的目标检测算法。看到知乎上某大佬说好像没什么太大的卵用,不是sota,只是蹭transformer的热度。。。

害,感觉CenterNet和FCOS有点像,都是在特征图上进行操作,不一样的是FCOS只要物体落入特征图上某个区域,这个区域内所有点都要预测,导致多余的预测框,为此提出centerness来作为nms的一个参考。CenterNet是通过物体的中心落入特征图的位置来预测,没有多余的框,不需要nms,同时也可能存在多个物体中心落在一个位置只能预测一个,导致“漏检”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测中anchor box(先验框)的理解 的相关文章

随机推荐

  • PTA L1-016 查验身份证(详解)

    前言 本期是关于查验身份证的详解 内容包括四大模块 题目 代码实现 大致思路 代码解读 今天你c了吗 题目 一个合法的身份证号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下 首先对前17位数字加权求和 权重分配为
  • 计算机网络(第七版)谢希仁编著(转载请注明出处---https://www.cnblogs.com/qingl)...

    计算机网络复习 第七版 谢希仁编著 转载请注明出处 https www cnblogs com qingl 第一章 P39 1 15 假定网络的利用率达到了90 试估算一下现在的网络时延是它的最小值的多少倍 解 设网络利用率为U 网络时延为
  • 网络规划设计与综合布线技术详解

    一 网络工程概述 1 计算机网络及其组成 计算机网络是现代通信技术与计算机技术相结合的产物 随着计算机网络本身的发展 人们认为 计算机网络是把地理位置不同 功能独立自治的计算机系统及数据设备通过通信设备和线路连接起来 在功能完善的网络软件运
  • jQuery 绑定3种表单事件 change(value值改变),focus(获到焦点),blur(失去焦点)

    1 change 说明 元素的value值改变时 触发change事件 change事件只适用于文本框 text 文本域 textarea 下拉框 select 元素 语法 selector change function1 实例 文本框
  • 编译原理——词法分析器

    1 概述 设计 编制并调试一个简单的C语言词法分析程序 掌握利用状态转换图设计词法分析器的基本方法 利用该词法分析器完成对源程序字符串的词法分析 通过对该词法分析器的设计 加深对词法分析原理 状态转换图等编译原理知识的理解 2 使用的基本概
  • 最新bilibili怎么下载视频

    bilibili作为最火的二次元网站 很多人想下载下来 却不知道怎么下手 今天小编就来818怎么下载bilibili的视频 1 我们拿这案例来参考 https www bilibili com video av40672186 from s
  • d3碰撞源码分析

    技术 d3 d3 force d3 geom quadtree d3 geom quadtree 四叉树的应用 图像处理 空间数据索引 2D中的快速碰撞检测 存储稀疏数据等 游戏编程 上图中的数据就是普通的点 点与点之间没有关系 此函数在构
  • TOJ--3100:Getting Gold (DFS)

    1 题目源地址 http acm tju edu cn toj showp3100 html 2 源代码 TOJ 3100 Getting Gold include
  • httprunner接口自动化测试框架使用说明【保姆级教程】

    背景介绍 httprunner是国内开源的一个接口自动化框架 已经有部分公司开始使用这种框架来完成自己公司的接口自动化编写 本文主要是从简单的流程上去讲解咋使用的 PS 开发者本尊的官网教程写的是真的烂 一点也不友好 里面各种坑 本文基于h
  • Java基础——封装、继承、多态

    今天我们来了解一下面向对象的三大特性 封装 继承和多态 封装 把属性和实现细节隐藏起来 不让外界直接访问 提供公共的方法访问方式 private A 只能修饰成员 B 被private修饰的成员只能在本类中访问 外界不可以直接访问 C pr
  • cocos2d-x 地图随英雄移动

    本人刚开始学习cocos2d x游戏引擎 学到瓦片地图这块 网上有一个很经典的例子 见链接 基于Cocos2D X的砖块地图教程 一 在看到其中的地图跟随角色移动 一般情况下保持角色在屏幕中央附近 到地图边缘时移动角色 的问题时看的不大明白
  • reference to ‘ max‘ is ambiguous

    今天写C 算法的时候 声明了一个全局遍历max 来记录最短路径 编译发现遇到一个以前没遇到过的错误 reference to max is ambiguous 翻译过来就是对 max 的引用有歧义 通过查询百度发现 原因是我引用了iostr
  • c++中如何实现十进制(Dec)与十六进制(Hex)之间的相互转换

    c 中如何实现十进制 Dec 与十六进制 Hex 之间的相互转换 1 十进制 gt 十六进制 include stdafx h include iostream include string using namespace std stri
  • 富集分析(GO、KEGG、GSEA)

    library clusterProfiler library org Hs eg db GO分析与KEGG分析 GO分析需要一个基因 symbol列表 列表中为差异表达基因 一 读入数据 result lt read csv file R
  • 凡科网JS逆向后跳出的滑块验证(base64图片解码之后的破解滑块验证)

    目录 1 前提和大概思路概述 2 转换思路selenium和验证滑块图片的获取处理 3 总结 1 前提和大概思路概述 只是学习的途中有一些新的发现 分享给大家 希望对你们有帮助 凡科网的JS逆向的闭包技巧应该是典型的闭包案例 很多人都有讲解
  • STM32 USB学习笔记

    STM32 USB学习笔记 一 USB FS Device firmware library 使用固件库开发程序 需要包含几个文件 从图中可见 应用程序接口部分 有 usb pwr usb conf usb desc usb istr us
  • 中台建设&架构设计

    什么是中台 中台即企业级能力复用平台 企业级 企业级定义了中台的范围 它更多代表的是中台处理的问题在企业级别 即至少包含多条业务线或服务多个前台产品 团队 如果一个中台只为了支持一条业务线或产品线 那就不是中台 即使它用了服务化或是大数据等
  • 谷歌禁止访问测试环境

    谷歌访问测试环境接口报错 主要原因 谷歌阻止了对不安全接口的请求 解决方法 进入谷歌设置 chrome flags block insecure private network requests 将Block insecure privat
  • c++ 定时器_STM32实例定时器中断实验

    上一章我们介绍了 STM32F1的外部中断 这一章我们来学习下定时器中断 STM32F1 的定时器功能非常强大 其包含 2 个基本定时器 TIM6 TIM7 4 个通用定时器 TIM2 TIM5 和 2 个高级定时器 TIM1 TIM8 共
  • 目标检测中anchor box(先验框)的理解

    近来心血来潮 把CV领域关于目标检测的主流方法YOLOv3和Faster RCNN看了一下 对其中的先验框 anchor box 一直不太理解 在广泛地阅读了一些相关讲解后 有了一定的理解 在此记录一下 先验框的个人理解 先验框最早提出于F