FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection
Paper name
FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection
Paper Reading Note
URL: https://arxiv.org/pdf/2104.10956.pdf
TL;DR
- 基于 Fcos 改进的 3d 检测方案,在 NeurIPS 2020 的 nuScenes 3d 检测比赛上取得了第一名成绩
Introduction
- Fcos3d 方案
- 将 7-DoF 3D 目标解耦为 2D 和 3D 的属性
- 考虑对象的二维比例,将对象分布到不同的特征级别,并仅根据训练过程的投影三维中心进行分配
- center-ness 根据三维中心重新定义为二维高斯分布,以适应三维目标公式
Dataset/Algorithm/Model/Experiment Detail
实现方式
- Backbone: 使用 resnet101,固定第一层的卷积参数从而减少显存消耗
- FPN: 生成特征层 P3-P7,每个特征层用于检测不同尺度的目标
- Detection Head:包含4个共享参数的卷积层和 small heads 用于不同的 targets 预测;回归分支需要较高的解耦程度,即每个子 targets 都设置一个 heads,所有回归的目标如上图所示
fcos3d 设计了一种新的旋转编码方案,即将360°角度回归解耦为方向的二分类和180°角度回归,在角度正确性上超过了 CenterNet
loss 设计
- 分类使用 focal loss
- 回归基本上使用 smoothL1 loss,方向分类和 center-ness 使用 binary cross entropy 损失
- 总损失
- 分类使用 focal loss
center-ness loss 设计
- 因为这里回归的是 3d 中心点,所以如下所示使用以 3D 中心投影点为远点的 2D 高斯分布作为 center-ness 的目标,然后再以此为真值计算 BCE loss
- 因为这里回归的是 3d 中心点,所以如下所示使用以 3D 中心投影点为远点的 2D 高斯分布作为 center-ness 的目标,然后再以此为真值计算 BCE loss
测试阶段
- class score 和 center-ness 相乘作为预测的置信度,然后在 bird view 中进行 rotated NMS 得到最终的的结果
训练的样本分配问题
- gt 的分配基本和 fcos 一样,将 3D 的gt框投影到2D平面上,取最大外接矩形作为 2D gt 框
- 之前 fcos 使用 area-based 方法解决正样本分配的歧义性问题,即当两个样本都符合要求时选尺寸小的样本;作为认为这种方式对大目标不友好,提出了一种新的 dist-based 方案提升了精度,即挑选与中心更近的样本
- 除了上面的样本分配方法,还提出了一种基于 3d-center 来确定正样本的方法,即只有和中心点距离小于 1.5xstride 的样本算作正样本
- 对每个回归分支的结果增加一个 scale 变换能涨点,该 scale 参数设置为网络可学习
实验结果
评测指标
- 使用在地平面上的 2D center 与 gt 的距离作为 threshold,避免使用 IoU 作为 threshold 对物体size 和朝向敏感的问题
其中 C 代表所有类别,D代表4个距离阈值: 0.5m,1m,2m,4m - True Positive metrics
- Average Translation Error (ATE): 2d 下的中心距离差距 (m)
- Average Scale Error (ASE): 1-IoU,IoU为对齐 translation 和 orientation 后计算的值
- Average Orientation Error (AOE):smallest yaw angle difference(radians)
- Average Velocity Error (AVE): 速度差异的 L2-Norm (m/s)
- Average Attribute Error (AAE):1−acc,其中 acc 指代属性分类准确度
- NuScenes Detection Score(NDS)
- NuScenes 官方提供的更全面的指标
- NuScenes 官方提供的更全面的指标
对比精度
消融实验
- 看一看出depth loss、dist-based target assign,Stronger backbone,DCN,Finetune w/ depth weight=1.0 是涨点程度较大的技巧
可视化
Thoughts
- 部分比赛用的涨点 trick 还是很实用的,一些 fcos 的结构也对 3d 检测任务进行了适配,思想值得借鉴
FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection相关推荐
- 【论文翻译】FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection
文章目录 PaperInfo Abstract 1 Introduction 2 Related Work 2D Object Detection Monocular 3D Object Detect ...
- 论文精读《OFT: Orthographic Feature Transform for Monocular 3D Object Detection》
OFT: Orthographic Feature Transform for Monocular 3D Object Detection 文章目录 OFT: Orthographic Feature ...
- 【论文翻译】Orthographic Feature Transform for Monocular 3D Object Detection
标题:<Orthographic Feature Transform for Monocular 3D Object Detection> 作者:Thomas Roddick, Alex ...
- 复现 MonoEF:Monocular 3D Object Detection: An Extrinsic Parameter Free Approach
复现 MonoEF:Monocular 3D Object Detection: An Extrinsic Parameter Free Approach 时间:2022年7月13日 代码连接: ht ...
- 论文阅读笔记:(2021.06, cvpr) Monocular 3D Object Detection: An Extrinsic Parameter Free Approach
这是一篇发表在了cvpr 2021上,能够在线估计外参的单目3D目标检测算法,借鉴了visual odometry和style transfer的方法,效果好, 速度快(~30ms), 意料之外,情理 ...
- Delving into Localization Errors for Monocular 3D Object Detection 论文学习
论文地址:Delving into Localization Errors for Monocular 3D Object Detection Github地址:Delving into Locali ...
- 论文精读 《CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection》
CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection 文章目录 CaDNN: Categori ...
- 【3D目标检测】SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation
目录 前提 概述 细节 网络结构 特征提取网络 检测头1:关键点检测 检测头2:3D参数回归 损失函数 前提 需要先了解下CenterNet [目标检测]Objects as Points 概述 本文 ...
- MONODISTILL: LEARNING SPATIAL FEATURES FOR MONOCULAR 3D OBJECT DETECTION
Paper name MONODISTILL: LEARNING SPATIAL FEATURES FOR MONOCULAR 3D OBJECT DETECTION Paper Reading No ...
最新文章
- 常用python工具类代码总结
- samba srver on centos-7
- python 报ImportError: Install xlrd = 1.0.0 for Excel support错误
- android关键应用程序,Android应用程序的四个关键点
- Page Cache引起的业务问题处理
- 2019ASC世界大学生超算竞赛预赛结果出炉:20校晋级,北航第一
- ThickBox在ASP.NET中的应用
- 高德地图根据经纬度获取具体城市信息
- SDRAM控制器——添加读写FIFO
- 2020.04.07 Windows 10 一次系统蓝屏的修复过程
- Deecamp20 项目提交【如何用pcdet(second)跑自己的数据】
- Python 获取Windows关机消息
- Part 1 ——ActiveMQ 概述
- 嵌入式linux音频播放器设计,基于嵌入式Linux下Madplay音频播放器设计论文.docx
- 多任务多目标CTR预估技术
- centos 系统软件包管理 yum 本地yum配置 扩展源epel rpm 清除yum缓存 yum provides */vim 第十节课...
- 信息论的应用例子:数据压缩与信息熵、为什么K线这种技术指标没用了?
- 愿你历经千帆,得偿所愿
- uwp 能否运行于Linux,UWP,实现跨平台的关键
- 微信支付现金红包接口应用实例代码说明和DEMO详解,适合用来做微信红包营销活动、吸粉利器...
热门文章
- POJ 3414 Pots【BFS】+ Python
- 报童问题求解最大利润_数据分析案例:用数学建模和仿真模拟解决供求矛盾问题...
- 人世温情:100个程序员的十年故事(下)
- linux如何按行拆分与合并
- 在服务器密钥交换握手信息,TLS的握手流程-密钥协商与身份认证过程 | 程序小兵...
- Kivy快速安装教程
- 【Android】ViewModel KTX对Coroutine的支持
- 小小盲盒成就千亿港元市值,背后包含哪些产品思维
- 如何看待字节跳动取消大小周普遍降薪?平均每日入账6.5亿,11万员工怎么办
- oracle审计AUD$过大导致的数据库登录异常