论文地址:https://arxiv.org/abs/1901.02970
    github链接:https://github.com/hughw19/NOCS_CVPR2019

类别级6D物体位姿和尺寸估计的标准化物体坐标空间

简介

本文的目标是估计RGB-D图像中从未见过的物体实例的6D位姿和尺寸。与“实例级”6D位姿估计任务相反,作者假设在训练或测试期间没有精确的CAD模型可用。为了处理给定类别中不同的和从未见过的物体实例,作者引入了标准化物体坐标空间(简称NOCS),即同一个类别中的所有物体实例使用一个共享的标准模型来表示。然后,通过训练神经网络来推断观察到的像素与共享标准模型的对应关系以及其他信息,例如类别标签和mask。通过将预测图像与深度图相结合,共同估计杂乱场景中多个物体的6D位姿和尺寸。为了训练网络,作者提出了一种新的上下文感知技术来生成大量带注释的混合现实数据。为了进一步改进模型并评估它在真实数据上的性能,作者还提供了一个完全注释的真实场景下的数据集。大量实验表明,该方法能够鲁棒地估计真实场景中从未见过物体的位姿和大小。

问题的提出

位姿估计的现有方法中SSD-6D、latent霍夫投票、BB8、YOLO-6D和poseCNN都预先提供了物体精确的CAD模型及大小,然而从未见过的物体是没有CAD模型的。在三维目标检测的论文中不需要物体的CAD模型就可以估计类别标签和边界框。但是三维目标检测是根据视点估计的,没有编码物体的精确方向。这两种方法都不能对从未见过的物体进行位姿估计。

  1. 第一个挑战:找到特定类别物体位姿和尺寸的表示方法。
  2. 第二个挑战:缺少训练和测试数据集。(现有三维目标检测数据集缺注释,或者不包含桌面级物体类别)

创新点

  1. 作者使用一个共享的标准坐标空间(NOCS)作为参考系来表示同一类别中的所有物体实例。
  2. 提出一个可以同时预测物体类别标签、mask和NOCS图的CNN,将NOCS图与深度图进行对应来估计从未见过物体的位姿和大小。
  3. 使用空间上下文感知的混合现实方法来自动生成大量数据用来训练和测试。

图1 作者的方法进行位姿估计

核心思想

作者定义了一个共享的标准坐标空间,可以为从未见过的物体定义位姿和尺寸。标准物体坐标空间是包含在单位立方体中的三维空间。对于给定的物体类别,作者将物体实例放到NOCS中标准化(相当于所有相机都使用同一个模型,将中心和方向对齐后进行缩放来表示)。作者通过NOCS在RGB图像上的投影训练作者的网络。在测试时,网络回归NOCS图,然后将其与深度图一起用于6D位姿和尺寸估计。

图2 标准物体坐标空间

数据集

因为现有的三维目标检测数据集NYU v2 和SUN RGB-D只关注三维边界框,无法获得6D位姿和大小的ground truth。作者提出空间上下文感知的混合现实方法来自动生成大量数据用来训练和测试。选取31个真实的室内场景共553张图像,从ShapeNetCore数据集中挑选了6种物体:瓶子、碗、相机、罐子、笔记本电脑和杯子。作者还创建了一个干扰物类别,由上面没有列出的类别中的物体类别组成,如显视器、电话和吉他。使场景中存在其他物体,这也提高了对主要类别进行预测的鲁棒性。

上下文感知合成:为了提高真实感,作者以上下文感知的方式合成虚拟物体,将物体放在支撑平面上,使用合理的光照。使用平面检测算法对真实图像进行像素级平面分割。随后,在分割平面上随机采样位置和方向。然后放置几个虚拟光源来模拟真实的室内照明条件。最后,将渲染图像和真实图像结合起来,生成一个具有ground truth NOCS图、mask和类别标签的合成图。作者总共渲染了30万张图片。

图3 合成图像

为了评估在真实世界下的性能,作者提供了真实场景下的数据集,并提出一种自动标注ground truth物体位姿和大小的方法。(但是作者没有说真实场景中的NOCS图的ground truth是怎么得到的)

模型

作者的网络结构是基于Mask R-CNN框架构建的,增加了预测NOCS图的分支。RGB图和深度图作为输入,CNN通过RGB图预测物体的类别标签、mask和NOCS图,之后将NOCS图与深度图进行拟合得到物体的6D位姿和大小(作者在CNN中没有使用深度图,因为作者使用COCO数据集来提高网络的鲁棒性,而COCO不包含深度图)。 

图4 网络结构

作者增加的分支分别预测NOCS图的x、y、z坐标,通过回归每个像素值或者离散化像素值,把它当做一个分类问题。实验表明,图4中B=32的像素分类比直接回归更好。

图5 NOCS分支

损失函数

网络中的类别、边界框和mask使用的损失函数与Mask R-CNN相同,NOCS部分作者使用了两个损失函数:一个标准的softmax用于分类,另一个softL1函数用于回归。 

其中y是ground truth NOCS图像素值,y*是预测的NOCS图像素值,n为感兴趣区域内的mask像素个数。

6D位姿和尺寸估计

作者的目标是通过使用NOCS图和深度图来估计被检测物体的6D位姿和大小。为此,作者使用RGB-D相机内参和外参来将深度图像与彩色图像对齐,使用预测的物体mask来获得物体的3D点云Pm,使用NOCS图来获得预测位姿Pn。然后,估计将Pn转换为Pm的比例、旋转和平移。对于这个7维刚性变换估计问题,作者使用Umeyama算法,而对于离群点去除,作者使用RANSAC。

实验和结果

作者使用IoU来评估三维目标检测和尺寸的估计,使用平均精度来评估平移误差小于m厘米,旋转误差小于n°的物体位姿估计。将目标检测与位姿估计解耦,将检测阈值设为10%来保证大部分物体都包含在评估中。因为不知道其他类别级6D位姿和大小估计的方法,所以作者使用Mask RCNN+ICP建立baseline来帮助比较性能。

在合成数据集(CAMERA*)上测试:对于50%的3D IoU,mAP为83.9%,位姿使用(5cm,5°)度量,mAP为40.9%。 

图6 合成测试集的结果

在真实数据集(REAL)上测试:在COCO的弱监督下,使用CAMERA* 与REAL* 共同训练网络,并在真实世界的测试集中对其进行评估。由于COCO没有ground truth NOCS图,在训练中不使用NOCS损失。为了平衡这些数据集,作者从三个数据源中为每个小批次选择图像,CAMERA* 的概率为60%,COCO 为20%,REAL*为20%。对于50%的3D IoU, mAP为76.4%,位姿使用(5cm,5°),mAP为10.2%,使用(5cm,10°) ,mAP为23.1%。相比之下,baseline在50%的3D IoU时,mAP为43.8%,而(5cm,5°)和(5cm,10°)的mAP为0.8%,明显低于本文的性能。 

图7 真实测试集的结果

作者还创建了一个CAMERA* 的变体,其中图像是以非上下文感知的方式合成的(在表中由B表示)。如表中所示,仅在REAL* 或REAL* 和COCO上进行培训,由于数据集较小,会产生过拟合。CAMERA* 与COCO和REAL* 一起进行训练,可以获得最佳效果。

作者给出了5个不同指标的AP,其中3D25和3D25分别代表25%和50%的3D IoU。

作者还与PoseCNN进行了比较。使用2D重投影误差(测量ground truth和估计目标位姿之间的平均像素距离小于5个像素),作者的方法2D重投影误差的mAP为30.2%。PoseCNN 2D重投影误差的mAP为17.2%。 

图8 与最新的方法效果对比

不足

存在缺失检测、错误分类和预测坐标图不一致。

图9 错误估计

欢迎关注和转载!

[CVPR 2019]Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation的更多相关文章

  1. [CVPR 2019]NOCS代码训练、检测与评估

    Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation 训练.检测与评估 本文 ...

  2. 自动驾驶研究回顾:CVPR 2019摘要

    我们相信开发自动驾驶技术是我们这个时代最大的工程挑战之一,行业和研究团体之间的合作将扮演重要角色.由于这个原因,我们一直在通过参加学术会议,以及最近推出的自动驾驶数据集和基于语义地图的3D对象检测的K ...

  3. Relation-Shape Convolutional Neural Network for Point Cloud Analysis(CVPR 2019)

    代码:https://github.com/Yochengliu/Relation-Shape-CNN 文章:https://arxiv.org/abs/1904.07601 作者直播:https:/ ...

  4. CVPR 2019轨迹预测竞赛冠军方法总结

    背景 CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文. ...

  5. CVPR 2019 行人检测新思路:

    CVPR 2019 行人检测新思路:高级语义特征检测取得精度新突破 原创: CV君 我爱计算机视觉 今天 点击我爱计算机视觉置顶或标星,更快获取CVML新技术 今天跟大家分享一篇昨天新出的CVPR 2 ...

  6. CVPR 2019细粒度图像分类竞赛中国团队DeepBlueAI获冠军 | 技术干货分享

    [导读]CVPR 2019细粒度图像分类workshop的挑战赛公布了最终结果:中国团队DeepBlueAI获得冠军.本文带来冠军团队解决方案的技术分享. 近日,在Kaggle上举办的CVPR 201 ...

  7. CVPR 2019|PoolNet:基于池化技术的显著性检测 论文解读

    作者 | 文永亮 研究方向 | 目标检测.GAN 研究动机 ​ 这是一篇发表于CVPR2019的关于显著性目标检测的paper,在U型结构的特征网络中,高层富含语义特征捕获的位置信息在自底向上的传播过 ...

  8. cvpr 2019 workshop&oral session

    1. Verification and Certification of Neural Networks神经网络的验证与认证 2. Automated Analysis of Marine Video ...

  9. MnasNet:经典轻量级神经网络搜索方法 | CVPR 2019

    论文提出了移动端的神经网络架构搜索方法,该方法主要有两个思路,首先使用多目标优化方法将模型在实际设备上的耗时融入搜索中,然后使用分解的层次搜索空间,来让网络保持层多样性的同时,搜索空间依然很简洁,能够 ...

随机推荐

  1. u-boot的环境变量详解

    u-boot的环境变量      u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的,有一些是u-boot自己定义的,更改这些名字会出现错 ...

  2. install jekyll

    最直接的方法就是运行快速指南中的命令: gem install jekyll 这个时候会提示: Command 'gem' not found, but can be installed with: ...

  3. create view and switch view

    pageView扩展backbone cAbstractApp定义view加载.切换.回退.跳转-webApp/cWebViewApp/hybirdApp为其子类 1.cWebApp扩展了父类的bin ...

  4. 用pyqt5简单实现Mqtt调试助手-初学python

    最近在学习pyqt5,因为我们是做远程物联网设备的,所以就做个mqtt调试助手来练手.第一次做这种程序,没有加异常处理,会有很多不足,欢迎留言拍砖,直接上代码了 这个是程序入口, # 使用前先安装py ...

  5. 关于Newtonsoft.Json引用报错

    自己运行的vs版本是2012,然后同事用了2017的,我把代码发给他后运行发现报以下错误: {未能加载文件或程序集"Newtonsoft.Json, Version=4.5.0.0, Cul ...

  6. 机器学习- RNN以及LSTM的原理分析

    概述 RNN是递归神经网络,它提供了一种解决深度学习的另一个思路,那就是每一步的输出不仅仅跟当前这一步的输入有关,而且还跟前面和后面的输入输出有关,尤其是在一些NLP的应用中,经常会用到,例如在NLP ...

  7. NumPy——统计函数

    引入模块import numpy as np 1.numpy.sum(a, axis=None)/a.sum(axis=None) 根据给定轴axis计算数组a相关元素之和,axis整数或元组,不指定 ...

  8. GO - if判断,for循环,switch语句,数组的使用

    1.if - else if - else的使用 package main import "fmt" func main() { // 1.简单使用 var a=10 if a== ...

  9. 一文看懂js中元素偏移量(offsetLeft,offsetTop,offsetWidth,offsetHeight)

    偏移量(offset dimension) 偏移量:包括元素在屏幕上占用的所有可见空间,元素的可见大小有其高度,宽度决定,包括所有内边距,滚动条和边框大小(注意,不包括外边距). 以下4个属性可以获取 ...

  10. mysql in与exists区别

    1.exists是对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避免(尽量用小表),故内表大的 ...