43.6% mAP! 阿里巴巴提出:用于一阶段目标检测的半锚式检测器
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
摘要
标准的一阶段检测器包括两个任务:分类和回归。为特征图中的每个位置引入了不同形状的锚(anchor),以减轻多尺度目标回归的挑战。但是,由于anchor中高度的类不平衡问题,分类的性能可能会降低。最近,提出了许多anchor-free算法来直接对位置进行分类。anchor-free策略有利于分类任务,但由于缺少先验的边界框,可能导致回归不到最优值。在这项工作中,我们提出了一个半锚式(semi-anchored)框架。具体而言,我们在分类中确定正位置,并将多个anchors与回归中的正位置关联。以ResNet-101为骨干,提出中的semi-anchored检测器在COCO数据集上达到了43.6%的mAP,这证明了一阶段检测器的最新性能。
本文思想
本文提出了一种用于单级目标检测的半锚定检测器。具体来说,我们在没有锚的情况下对feature map中的位置进行分类。在分类中,我们可以将锚点的正候选点与负候选点的比率从1:1400提高到位置的1:200。对于回归,我们为每个位置关联多个锚点,并从锚点学习前景位置的边界框。主要的挑战之一是计算以前景位置为中心的锚点的前景/背景概率,因为锚点没有用于分类。这些锚具具有相同的定位性能,但由于锚具的形状不同,性能可能不尽人意。因此,我们附加一个锚分类头来识别每个位置的前景锚。图1说明了所提出的半锚定检测器的过程。
显然,所提出的检测器在没有锚的情况下处理了平衡分类问题,并且在有锚的情况下获得了更好的回归性能。此外,我们还根据回归后的并集相交(IoU)定义了正锚。与传统回归前用IoU标记锚点的算法相比,该策略更符合目标。简化了分类头,提高了分类效率。在COCO数据集上的大量实验(Lin et al. 2014)验证了所提框架的有效性和效率。我们的算法可以超过目前最先进的无锚检测器FCOS (Tian et al. 2019),以ResNet-101为骨干实现mAP 43.6%。此外,当我们为每个位置分配更多的锚时,该方法的推理时间甚至小于RetinaNet。
具体实现
3.1 Location Classification
在分类任务中,我们在没有锚的情况下从特征图中识别前景位置。一个位置是指feature map中的一个像素。设{x i, y i}表示位置集,其中xi为特征,yi表示第i个位置的标号。对于C个前景对象的问题,我们让y i∈{0,…, C}其中y i = 0表示背景位置。注意,xi可以直接从feature map中提取,唯一的问题是为位置分配适当的标签。标记每个位置最直接的方法是使用ground truth边界盒,即一个ground truth边界盒内的每个位置都可以用相应的前景标签进行标记。但是,每个位置都可以与多个前景对象相关联。用较小对象的标签标记重叠位置的启发式方法可能与使用锚的回归任务不一致。因此,我们建议在半锚定检测器中为每个锚定位置定义标签。
对于每个位置,我们与基于锚的方法中一样,将K个锚与不同的比例和纵横比关联起来。在传统算法的基础上,利用GT边界盒计算loss,得到锚点的标号。设one-hot向量y i,k∈{0,1}C+1表示第i个位置上第k个锚点的标号。通过对一个位置锚的标签,我们可以得到该位置的置信分数为:
考虑到锚点中背景大量存在,我们将0≤γ≤1的分数重新标为背景(即c = 0,其中sci为si中第c个元素)
这相当于阈值移动来解决类不平衡问题。给定置信分数,第i个位置的标签可以定义为:
需要注意的是,锚只用于在分类任务中获取位置标签。所提出的标记策略如图2所示。可以看到,在真值边界盒中,许多非必要的位置被标记为背景。为了进一步演示我们的标记策略,我们在图3中展示了一些正位置的例子。
有了标记的位置,我们就可以像在其他工作中一样,用常见的focal损失来训练分类器:
3.2 Anchor Classification
现在有了位置分类器和锚点回归器,在推理过程中,位置分类器可以告诉我们对象c的第i个位置的概率Pr{yi = c|xi},回归器提供锚点{zi, K} K =1,…,K,其中zi,K表示第K个锚点在第i个位置的特征。这里是主要的gap,也就是K个锚中的哪个应该是输出。因此,我们的目标是估计每个锚点的概率为Pr{yi,k = c|xi, zi,k},而只有对应位置Pr{yi = c|x i}的概率。
考虑到锚点的标签应该与其位置一致,我们计算条件概率为:
这个公式暗示了一个二元分类问题,识别锚与相同的标签作为位置。因此,我们可以将训练集收集为{zi,k, yi,k},其中:
在传统的锚基方法中,锚的标签{yi,k}是根据锚的先验形状计算的。回归后,细化后的形状可能会与初始形状不一样,这实际上导致了很大的差异。我们的建议是通过计算回归后改进锚点的loss来消除这种差异。有了合适的标签,我们可以通过优化focal损失来学习锚分类器。
令μi,k表示锚点z i,k的IoU。首先,我们将每个位置的IoU分数归一化为:
我们采用分数作为软标签,并引入平滑的focal损失:
与标准focal损失相比,我们有μ̂,k的平滑标签正锚,而不是1,可以捕获不同的锚更好的分布和提高性能。在提出的平滑focal损失的情况下,锚分类器是通过最小化所有前景位置的损失来学习的:
总之,半锚定探测器的目标是最小化:
实验结果
4.1 Ablation Study
Number of Anchors
Location Classification
Anchor Classification
Inference Strategy
4.2 Comparison with State-of-the-Art
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
43.6% mAP! 阿里巴巴提出:用于一阶段目标检测的半锚式检测器相关推荐
- 单阶段目标检测重要论文总结
文章目录 一.Yolov1 1.论文简介 2.检测原理 3.结构设计 4.疑难问题 5.论文总结 二.Yolov2 1.论文简介 2.更好.更快.更强 1)为什么更好? 2)为什么更快? 3)为什么更 ...
- 两阶段目标检测重要论文总结
文章目录 Selective Search方法 1.论文简介 2.算法原理 EdgeBoxes方法 1.论文简介 2.算法原理 一.R-CNN 1.论文简介 2.结构设计 3.论文总结及改进点 二.S ...
- Focal Loss升级!EFL:用于密集长尾目标检测的均衡Focal Loss
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:集智书童 Equalized Focal Loss for Dense Long-Tailed Ob ...
- 计算机视觉:单阶段目标检测模型YOLO-V3
计算机视觉:单阶段目标检测模型YOLO-V3 单阶段目标检测模型YOLO-V3 YOLO-V3 模型设计思想 产生候选区域 生成锚框 生成预测框 对候选区域进行标注 标注锚框是否包含物体 标注预测框的 ...
- 深度学习中的两阶段目标检测
博主简介 博主是一名大二学生,主攻人工智能研究.感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享. 如果有需要的小伙伴可以关注博主,博主会继续更新 ...
- 单阶段目标检测算法之YOLOv1详解
官方网站C语言版本:https://pjreddie.com/darknet/yolov1/ tensorflow版本的代码下载: https://github.com/hizhangp/yolo_t ...
- 单阶段目标检测方法SSD介绍与分析
SSD目标检测算法,完整详细讲解 SSD(single shot multi-box detector) 1. 简介 2. 模型结构 backbone neck head SSD(single sho ...
- 【ICLR2022】DECOUPLED ADAPTATION FOR CROSS-DOMAIN OBJECT DETECTION 解耦自适应用于跨域目标检测
摘要 解决的问题(动机): 跨域⽬标检测⽐⽬标分类更具挑战性,因为图像中存在多个对象,并且每个⽬标在未标记的⽬标域中的位置是未知的.因此,当我们调整不同物体的特征以增强探测器的可迁移性时,前景和背景的 ...
- AAAI 2021 | 用于旋转目标检测的动态锚框学习策略
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:AI科技评论 AI博士笔记系列推荐 周志华<机器学习& ...
最新文章
- 2021年春季学期-信号与系统-第五次作业参考答案-第八小题
- 【Kafka】Kafka为什么要加入分区的概念
- 160921、React入门教程第一课--从零开始构建项目
- 已经到了快元旦,可是总是不自在
- Unity -----一些可能存在的错误
- 【汇编语言】8086、x86-32和C语言【赋值语句 和 数组】的对比学习(王爽学习笔记:5.8段前缀的使用)
- prim算法_历时两月,终拿字节跳动offer,算法面试题分享「带答案」
- 26个适用于VMware管理员的强大工具,收藏了!
- java 获取季度第一天_Java获取当天、本周、本月、本季度、本年等 开始及结束时间...
- phpstudy快速搭建网站_小白快速上手搭建属于自己的网站
- Harmony OS — TextField输入框
- SPSS问卷中的人口学变量是否要用?以及如何选用?【SPSS 065期】
- 深入浅出Word2Vec原理解析
- H7N9?生活还得继续~~适合边玩边学的HTML5五彩连珠游戏
- 数字签名的生成和验证
- 利用SQL查询扶贫对象医保报销比率的审计方法
- docker wordpress Error establishing a database connection 方法之一
- 【易通慧谷】盘点供应链金融的主要模式和对商业银行领域的影响
- 安卓系统双屏异显_Android10模拟器上调试双屏异显
- 想要职场安全感?那就请你别停止成长