解析来了!Occupancy Networks: 基于CNN的占据栅格估计网络

作者 | 方川  编辑 | 汽车人

原文链接:https://zhuanlan.zhihu.com/p/570951257

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心技术交流群

后台回复【模型部署工程】获取基于TensorRT的分类、检测任务的部署源码!

标题:Convolutional Occupancy networks

作者:Peng, Songyou, Niemeyer, Michael, Mescheder, Lars, Pollefeys, Marc, Geiger, Andreasy

今天给大家介绍ETHZ和德国蒂宾根研究所的一个隐式神经表达网络: Convolutional Occupancy networks. 传统的3D结构表达方法有depth map, pointcloud, mesh, volume field, 前三种方法都一种离散的结构表达形式, 隐式神经表达的方法是指用一种隐式(无法明确写出公式)连续函数来建模空间中某一点和3D结构的关系. 这篇工作和上一篇Occupancy Network是目前基于隐式神经表达方法的3D重建工作的先驱, 本文分析了隐式神经表达方法在复杂结构上表现不好的主要原因, 并提出了卷积神经网络对这个问题上的帮助, 为高精度和大场景的3D重建提供了有效的方法.

摘要:

基于学习的3D重建方法中, 隐式神经表达方法取得了惊人的效果, 但是大多数的隐式方法都只能建模简单的小物体, 大场景的重建往往表现的非常糟糕. 这个问题的根本原因是简单的全连接网路不能很好的整合局部信息, 也不能引入归纳性偏差比如平移不变性. 本文提出了convolutional occupancy network, 一种适用于复杂结构和大场景的灵活的隐式神经表达方法. 通过结合卷积编码器和占用栅格解码器, 我们的方法在效率和精度上大大超越以往的隐式神经表达方法, 并且能够很好的泛化到真实数据上.

主要贡献:

  • 分析了目前主流隐式神经表达方法的局限性;

  • 提出了具有平移不变形的神经网络结构, 可以让隐式神经表达方法在复杂结构和大场景的重建任务上取得更好的效果;

  • 实验证明本文提出的方法可以从合成数据泛化到真实数据, 并且可以重建未见过的物体和场景;

算法流程:

本文的目标是使得3D隐式表达具有更强的表达能力. 本文方法的概述如下图所示:

0ab7c1a0fdde3f76bb298e5e6e49641d.png
Fig.2

输入可以是点云/体素, 首先经过编码器把输入转换成2D/3D特征, 然后, 这些特征经过池化层投影到feature plane或者feature volume.接下来, 不同的解码器提取空间位置p处的特征向量,最后全连接网络预测p处的占用栅格概率occupancy probability.

编码器Encoder:

对于输入的每一个point或者voxel, 我们为不同的任务设计了不同的神经网络来编码特征, 如使用一层3D CNN来编码voxel, 使用PointNet来编码pointcloud. 然后这些特征被构建成平面/体积 (planar/volumetric)的形式.

Plane Encoder:如图Fig2a所示, 每一个输入的点经过PointNet后, 特征向量被正交投影到一个与坐标系平行的平面上, 比如z平面(ground plane), 这个平面被离散成H×W个''像素''单元, 每个''像素''存储的是维度为d的特征向量, 因此最终编码器输出的特征张量大小H×W×d. 本文采用了两种Planar Encoder, 一种输出z平面的特征张量, 另一种输出三个坐标轴平面的特征张量. 实验表明, 前者的计算效率更高, 后者在编码z方向上的几何信息上有更好的效果.

Volume Encoder:虽然planar feature 可以编码更大尺度的空间信息(实验中采用128^2的plane resolution), 但是这样的特征张量还是二维的, volumetric的特征张量似乎能够更好的编码3D信息, 但是随之而来的是volume的分辨率收到限制(实验中采用32^3). 与plane encoder类似, 我们这里也使用average pooling, 但是所有的特征向量被投影到同一个voxel grid中, 所以最终形成的feature volume的维度H×W×D×d.

解码器Decoder

得到feature planes或者feature volume之后, 我们需要将这些特征张量解码, 在这里我们使用不同的U-Net网络, 如图Fig.2c,2d,2e, 因为卷机操作具有平移不变性, 可以保证整个编码器能够很好的处理有重复几何结构的场景.

占有栅格预测Occupancy Prediction

输入空间中一个点p, 我们的目的是估计p的占有栅格概率[0,1]. 对于single-plane decoder, 我们使用双线性插值来查询p在ground plane上对应的特征向量. 对于multi-plane decoder, 我们直接把三个平面特征张量的值相加, 用作p对应的特征向量. 在volume decoder中, 使用三线性插值来计算对应的特征向量.

记输入为x,为x在p处的特征向量, 占有栅格预测网络估计当前点p的occupancy probability:

5b84b54befeca096f7c1984ad466f817.png

预测网络的损失函数使用交叉熵, 是预测值, 是真值:

e583fa3ba03c96963ed8f84352d85acf.png

在后面的实验中, 大场景重建任务中我们把整个网络改成全卷积网络, 可以很容易的借助卷积核滑动来完成大场景的重建.

实验:

本文设计来三组实验: 一组是在ShapeNet上的 物体级重建实验; 一组是在用ShapeNet中的物体自己合成的场景级重建实验; 一组是将模型泛化到真实场景数据ScanNet/MatterPort3D上的重建.

指标:

Volumetric IOU: 是两个mesh的交集除以两个mesh的并集, 通过在当前物体volume中均匀采样100K个点, 计算这些点是否落在预测mesh内并且在真值mesh外来计算Volumetric IOU.

Chamfer distance: 真值mesh与预测mesh上每个点的最近邻距离. 这里我们采用在预测mesh表面均匀采样100K个点, 计算它们在真值mesh上的最近邻距离, 用以衡量精度; 该指标还有一个completeness指标, 计算真值mesh上每一个点到预测mesh上最近邻距离;

Normal consistency: 预测mesh与真值mesh的每个面片的法向量之间的点积. 这项指标是为了体现重建方法对物体几何高阶信息的捕获能力.

F-Score: 因为Chamfer distance对外点非常敏感, 有时候结果不能说明精度, 因此又引入了F-score, 计算精度precision和完整度/召回率recall. 两项指标计算方法与chamfer distance类似, 只是多了一个阈值来判断当前点是否算落在真值mesh表面.

c49b9000c1197c17e0fdd97e01d2a405.png 4eb6082f9370df827085a8e2d5071fde.png 35f412a96aeb00c499ffc005c9358690.png c986012b909144981c9d1f54f066db21.png 95b0df9c1eb2d9635fc0de05c88c124e.png b9375593ba26944bba8bada49fcb8951.png

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、多传感器融合、SLAM、光流估计、轨迹预测、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

423dd32515844d2274a0a3dbdfaedd84.jpeg

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值