CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状

ROI-10D: Monocular Lifting of 2D Detection to 6D Pose and Metric
Shape

论文链接地址:https://arxiv.org/pdf/1812.02781.pdf

摘要内容:

本文提供了基于端到端单目3D目标检测和度量形状检索的深度学习方法。为了在3D中提升2D检测,定位,以及缩放,提出了一种新的loss函数。不同于各自独立的优化这些数量,3D示例允许适当的度量boxes的不一致性。实验结果显示,10维稀疏2D兴趣域Regions of Interests (RoIs)提升在6D姿态和示例纹理几何测量中都取得很好的效果。这也能够通过直接在2D场景上修复恢复的网格来增强数据。对照在KITTI 3D数据上别的单目方案,本文的方案基于官方正规的数据集上,在3D姿态测试结果达到双倍的AP。

1.introduction

文章提出了一种度量精确的单目3D目标检测端对端方法。

主要贡献有三点:

一种度量精确的单目3D目标检测端对端方法,包括一种可微分的2D ROI到3D ROI 提升映射,并提供了用于回归3D box 实例的所有组件;

一种用于在度量空间对其3D box的损失函数,直接优化其关于真值的误差;

扩展模型,将其用于预测度量纹理面片,保证了进一步的3D 推理,包括3D 一致性仿真数据增强。

称该模型为"ROI-10D",将2D ROI提升到3D ROI需要6自由度的位姿参数,3个自由度的空间体积,和一个形状自由度。

  1. 用于位姿和形状估计的单目10D提升

分三个部分介绍了方法:

模型结构

用于3D的损失函数

学习得到的度量形状空间,以及如何使用估计的形状参数进行3D重建

2.1 端到端的单目结构

类似于Faster RCNN,首先检测2D区域的proposals,然后为每个proposal region执行分支预测。2D proposals使用了FPN-ResNet34,并使用了focal loss加权。对每个检测到的proposal region使用ROIAlign 提取用于预测分支的特征。

由于信息缺失和重投影模糊,从单目图像中直接回归3D信息是病态、不稳定的。该文献使用了state-of-the-art的SuperDepth 网络预测输入图像中逐像素的深度值。然后将FPN网络输出的特征与深度特征堆积在一起,使用带有Group Normalization 的两个卷积层处理得到融合特征,最后使用检测到的2D bbox和ROI Align在ROI Lifting中提取对应的特征,回归3D旋转、平移、目标的绝对尺度以及目标形状。

2.2 由单目2D实例到6D位姿

该问题其实是一个可微分的提升映射,,即从一个2D的到一个3D的bounding box 。将旋转编码为4D的四元数,将平移编码为2D物体中心的相对深度。此外,使用到数据集平均体积的偏差描述物体三维体积。

给定一个2D ROI ,使用ROI Align提取指定区域特征,分别预测出旋转量q,相对于ROI的2D中心(x, y),深度值z和物体的绝对尺度(w, h, l),提升映射为:

其中K为相机内参矩阵

损失函数

当仅从单目图像中估计位姿参数时,像素空间中的微小误差可以导致位姿参数的剧烈变化。将问题提升到了3D,并使用了6D自由度的代理损失函数。因此,没有同时对所有预测项进行优化,而是让网络在训练期间自己调整。给定一个3D bbox 和对应的2D检测框 ,其到3D的提升映射为,在度量空间关于八个3D角点的损失函数为:


在训练过程中,需要一个warm up过程以得到稳定的数值流形。因此训练单个的预测项,直到得到稳定的3D box实例。

Allocentric 回归 and Egocentric 提升

相机光轴是否对准目标中心,Egocentric 以相机为中心,相机光轴不一定对准目标中心,allocentric是以目标为中心。两者的区别在于当发生与相机之间的位移时,Allocentric中相机光轴随着目标位移而移动,目标的形状变化不大,而Egocentric中相机光轴不变,目标的形状变化较大。

大视场条件下,Allocentric pose estimation很重要。

由于ROI缺少全局的信息,在回归时认为四元数是Allocentric的,然后结合推理出来的平移量矫正为Egocentric,然后提升到3D boxes。

2.3 目标形状学习与检索

介绍了如何将端到端的单目3D目标检测模型扩展到预测三角面片,并用于数据增强。

学习一个光滑的形状

给定了50种商用模型,创建了一个映射受限的带符号的距离场,大小为128×128×256。首先使用PCA学习低维的形状,实验中发现形状空间很快地偏离了均值。使用PCA生成形状要求评价每一维度的标准差。因此,使用一个3D自编码/解码器
E和D,对输出的TSDF强制不同的约束。E和D都使用了1,8, 16, 32四种卷基层。此外使用核为6的全卷积层作为隐藏层。在训练过程中将所有的隐藏层映射到半球上,以保证连续性。对输出层的跳跃通过总方差进行惩罚,损失函数为:

形状真值的标注

对于3D 提升器的形状分支,预测形状s和形状真值s*间的相似度由两点在半球上的角度决定:

在推理时,预测了低维的隐藏层向量,并将其传递给解码器以得到TSDF表示。

简单面片纹理

模型可以得到目标的尺度与形状,可以投影检索得到的3D面片。将朝向相机的定点映射到图像平面,并赋予相应的值。

2.4 消融分析

评估新的算法怎样优化极小化loss。另外,证实在KITTI 3D数据集上在哪里和为何如此难以准确评估。最后,分析由于不同的输入以及怎样更好让loss影响姿态的质量。

2.5 仿真3D 数据增强

KITTI3D数据集较小,且3D真值获取耗时耗力,采用仿真数据是一种常用方法。文章使用提取得到的面片以生成真实的渲染,而不是写固定的CAD模型。此外,仿真目标的摆放没有太多限制。使用allocentric pose移动目标,不改变视角。

  1. 实验

CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状相关推荐

  1. 【0514 更新中】CVPR2019 论文解读汇总

    CVPR2019 论文解读汇总(0514 更新中) 原文 http://bbs.cvmart.net/topics/287/cvpr2019 计算机视觉顶会CVPR 2019 接收结果已经出来啦,相关 ...

  2. CVPR2020 论文解读:少点目标检测

    CVPR2020 论文解读:具有注意RPN和多关系检测器的少点目标检测 Few-Shot Object Detection with Attention-RPN and Multi-Relation ...

  3. CVPR2020最全整理:分方向论文下载,Github源码、论文解读等[计算机视觉][目标检测]

    CVPR2020在2月24日公布了所有接受论文ID,相关报道:1470篇!CVPR2020结果出炉,你中了吗?(附部分论文链接/开源代码/解读).自论文ID公布以来,许多开发者都分享了自己的优秀工作. ...

  4. 【CV】PAA论文解读:在物体检测中利用概率分布来将anchor分配为正负样本

    本文转自|AI公园 导读 又一篇anchor匹配策略的文章,不过确实是简单有效,在ATSS上只需要很小的修改就可以提升性能.GFL2在框的预测上用上了概率分布,这里又在anchor匹配上用上了概率分布 ...

  5. 直播 | ACL 2021论文解读:提升预训练语言模型实体与关系理解的统一框架

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  6. 【经典论文解读】YOLOv4 目标检测

    前言 YOLO是一种目标检测方法,它的输入是整张图片,输出是n个物体的检测信息,可以识别出图中的物体的类别和位置.YOLOv4是在YOLOv3的基础上增加了很多实用的技巧,使得速度与精度都有较大提升. ...

  7. 【经典论文解读】YOLO 目标检测

    前言 YOLO是一种目标检测方法,它的输入是整张图片,当检测到目标物体时用边界框圈起来,同时给该目标物体一个类别:边界框由中心位置.宽.高等来表示的:它的输出是n个物体的检测信息,每个物体的信息包括: ...

  8. 论文解读:GAN与检测网络多任务/SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

    1.瓶颈问题: 小尺度目标,受限于缺乏足够的目标特征信息,使之很难从背景中区分出来,且小尺度目标一般都是低分辨率.模糊不清的,因此检测性能一般 CNN-based目标检测算法都需要使用到下采样操作,导 ...

  9. Face++ 论文解读:一种新的行人重识别度量学习方法 | PaperDaily #20

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

最新文章

  1. python __builtins__ set类 (60)
  2. 基于长短读长和参考基因组的组装错误检测算法的研究
  3. Java单例设计模式(实现Java的一个类只有一个对象)
  4. 路由器 和 交换机 傻傻分不清楚
  5. 王荣刚:建立中国自主视频技术生态
  6. h5是什么 www.php.cn,html meta标签的作用是什么?
  7. 天龙八部网单服务器技能修改,天龙八部3门派技能修改介绍
  8. ​如何让技术想法更容易被理解?
  9. html 经常会用到的英语名词
  10. 使用Vscode进行Python开发环境配置
  11. 【Python3网络爬虫开发实战】 1.2.2-Selenium的安装
  12. mysql搜索_查询mysql的搜索引擎
  13. makefile phony
  14. JavaScript中解决Microsoft.XMLHTTP乱码的最简单方法
  15. pycharm git使用_通过Pycharm中的版本控制工具VCS使用Git
  16. flash编译器错误查询表
  17. gh-ost封装脚本
  18. SPI总线时钟的极性(CPOL)与相位(CPHA)
  19. ORB-SLAM3的Euroc数据集测试
  20. 微信小程序—查询快递

热门文章

  1. java基本类型转换,随记
  2. 2022-2028年中国ITO薄膜行业市场全景调查及投资前景趋势报告
  3. MySQL中锁详解(行锁、表锁、页锁、悲观锁、乐观锁等)
  4. Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
  5. CPU架构的llvm后端
  6. 如何在框架外部自定义C++ OP
  7. MAML-Tracker: 目标跟踪分析:CVPR 2020(Oral)
  8. 多款激光雷达性能评估
  9. 内存缓存LruCache的简单使用
  10. hook情况下,解决内联没有:hover的方案