• FCGF-基于稀疏全卷积网络的点云特征描述子提取(ICCV2019)


    作者:千百度

    点击上方“3D视觉工坊”,选择“星标”

    干货第一时间送达

    概要

    论文: Fully Convolutional Geometric Features

    标签: ICCV 2019; feature, match, registration

    作者: Christopher Choy,Jaesik Park, Vladlen Koltun

    机构: Stanford University, POSTECH, Intel Labs

    论文、代码地址:在公众号「3D视觉工坊」,后台回复「ICCV2019」,即可直接下载。

    从点云中提取几何特征是配准、重建、跟踪等应用的第一步。SOTA的方法往往需要计算底层特征作为输入或者提取基于patch的有限感受野的特征。在本论文中,作者提出了FCGF(Fully-Convolutional Geometric Features),它通过全卷积网络一次计算得到点云特征;作者还提出了新的度量学习损失,可以显著提升性能。FCGF是紧凑的,同时捕获了广泛的空间上下文,并可扩展到大型场景。论文中在室内数据集和室外数据集均进行了验证,FCGF在不需要预处理时达到了SOTA精度,同时比其它精确的办法快600倍,而且结构是紧凑的(32维)。

    一、论文的出发点和贡献

    在许多点云配准、跟踪和场景流估计(scene flow estimation)任务中,寻找几何点对应(geometric correspondences)关系是一个关键的步骤。因此,大量的工作集中在设计具有区分性的3D特征,进而建立对应关系。

    早期的3D特征描述主要依赖于人工设计的特征描述子,如SHOT、FPH和FPFH等,这些局部描述子可以区分局部几何特征。最近,注意力逐渐转向了基于深度学习的三维特征,比如PPF-FoldNet(ECCV 2018),PPFNet(CVPR 2018)和3DFeat-Net(ECCV 2018)等。之前的这些工作中存在一些问题:

    • 提取小的3D patch,将其映射到低维空间。这不仅限制了感受野,而且计算效率也很低,因为即使对于重叠的三维区域,网络的中间表示也都是单独计算的。
    • 使用昂贵的底层几何特征作为输入降低了特征计算的速度。
    • 只对一些interest points提取特征,导致分辨率(点的数量)下降,因此降低了后续的配准精度。

    全卷积网络是高效的,因为它们在具有重叠感受野的神经元之间共享中间激活(intermediate activations)。此外,全卷积网络中不是直接操作小的patch,因此神经元具有更大的感受野。而且,全卷积网络产生密集的输出,这非常适用于详细描述场景的任务。

    尽管全卷积网络具有这些优点,但由于三维数据的特点,全卷积网络并没有广泛应用到三维几何特征的提取。卷积网络用于3D数据时,标准输入是一个四维的数据(x, y, z, f): 三个空间维度(x, y, z)和一个特征维度f。但大多数三维体素都是空的,导致这种表示占用内存较大。

    在论文中,作者采用一种稀疏tensor来表示3D数据,采用Minkowski卷积代替传统卷积,提出了ResUNet用于提取输入点云中每个点的特征,另外提出了新的loss用于全卷积度量学习。该网络不需要数据预处理(提取简单特征),也不需要patch的输入,而且能够产生具有SOTA区分性的高分辨率特征。作者在3DMatch数据集和KITTI数据集中验证了FCGF(Fully Convolutional Geometric Features)的表示能力和提取特征的速度,实验结果如Figure 1。

    二、论文的方法

    论文中的数据表示和卷积操作主要基于MinkowskiEngine,这里不详细介绍,更多信息请查看MinkowskiEngine主页。

    2.1 点云数据的稀疏表示

    MinkowskiEngine把点云表示成两部分: 坐标矩阵和特征矩阵F。

    2.2 稀疏点云数据的卷积

    2.3 网络模型的架构

    论文中的模型架构ResUNet是一种U-Net类的网络架构,在编码和解码部分均包括残差结构,在解码和编码之间通过skip连接来增强特征的表达能力,如Figure 2所示。

    • 残差结构: Res = [(Conv + Bn + ReLU) + (Conv + Bn)], Output = ReLU(input + Res(input)),其中的Conv, Bn, ReLU操作均为稀疏数据的卷积,即Minkowski下的卷积操作。
    • 编码: 包括N(Figure2中N=3)个(Conv + Bn + Res)结构,kernel size一般设置为3,第一个Conv中的stride=1,其他Conv的stride一般设置为2。
    • 解码: 包括N(数量同编码部分)个(transposed Conv + Bn + Res)结构,除了第一个transposed Conv结构外,其他transposed Conv结构的输入均是encoder和decoder进行concat后的tensor。同时,最后一个transposed Conv中的kernel size为1,stride为1,其它的transposed Conv中的kernel size均为3,stride均为2。
    • 特征提取层: Conv(kernel size=1, stride=1),其后无Bn和ReLU结构。
    • 官方代码: https://github.com/chrischoy/FCGF/blob/master/model/resunet.py

    ResUNet架构中的MinkowskiEngine下的Conv, Bn, ReLU, transposed Conv换成常规的2D图像下面的对应操作,就是一个很普通的网络架构,关于MinkowskiEngine的一些基础知识和代码实践欢迎参https://zhuanlan.zhihu.com/p/304117161。

    2.4 损失函数

    ·Loss实现和采样策略的源码: https://github.com/chrischoy/FCGF/blob/master/lib/trainer.py

    2.5 训练

    优化器是SGD,初始学习率0.1,指数衰减学习率(γ=0.99)。Batch size设置为4,训练100个epoches。在训练时对数据采用随机scale(0.8 - 1.2)和随机旋转(0-360°)的增强。

    三、论文的实验

    3.1 数据集

    • 3DMatch(内容较多,请查阅https://github.com/zhulf0804/3D-PointCloud/tree/master/3DMatch)
    • KITTI

    3.2 评估指标

    3.3 实验结果

    主要介绍3DMatch数据集上的实验结果。

    • 精度和速度

    作者在3DMatch测试集中比较了FCGF与传统方法和深度学习方法的性能,如Table 1所示,第1列是方法名称,第2列是FMR值(及其标准差),第3列是在旋转的3DMatch数据集中的FMR值(及其标准差),第4列表示特征描述子的维度和提取特征的时间。从表中可以看到,FCGF提取特征的速度快,特征简洁(只有32维),在3DMatch数据集和旋转增强的3DMatch数据集均有最高的FMR。

    在3DMatch测试集中Registration recall的比较如Table 5所示,FCGF在7个场景和平均情况下均达到了最高的Registration recall。

    • Ablation Study

    作者测试了不同loss下的性能,实验结果如Table3所示。由表格可以看到,对于contrastive Loss,normalized feature比非normalized feature要好,hardest-contrastive loss比常规(随机的)contrastive loss结果要好,同时可以观察到hardest-contrastive loss是所有loss中结果是最好的。对于triplet loss,normalized feature比非normalized feature要差,这个结论和contrastive loss中是相反的;hardest-triplet loss要比常规(随机的)triplet-loss结果要好,但其容易导致collapse。综合对比,hardest-contrastive loss在3DMatch数据集中是最好的。

    • 可视化

    FCGF特征的t-SNE显示如Figure 5所示。

    四、总结

    1.论文基于MinkowskiEngine实现了点云的全卷积网络,点云和卷积等采用稀疏表示,优化了显存。

    2.作者提出了hardest-contrastive loss和hardest-triplet loss,利用点云数据中的correspondences实现了特征的有效学习,并通过哈希的方式加快了生成二元组和三元组的速度。

    3.不足: 基于MinkowskiEngine的神经网络在量化点云时会丢掉部分点云信息。

    本文仅做学术分享,如有侵权,请联系删文。

    下载1

    在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

    下载2

    在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

    下载3

    在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。

    重磅!3DCVer-学术论文写作投稿 交流群已成立扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
    同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。▲长按加微信群或投稿▲长按关注公众号

    3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

    学习3D视觉核心技术,扫描查看介绍,3天内无条件退款 圈里有高质量教程资料、可答疑解惑、助你高效解决问题觉得有用,麻烦给个赞和在看~  

  • 相关阅读:
    数据结构:数组、链表、栈、队列的理解
    JVM学习记录-JVM的内存结构管理和运行时数据区理解
    线程池ThreadPoolExecutor的一种扩展办法
    四级地址插件升级改造(京东商城地址选择插件)city-picker
    java8在Collection中新增加的方法removeIf
    使用lambda编程之延迟执行
    JSP的内置对象以及作用域。
    Netty 异步的、事件驱动的网络应用程序框架和工具
    Zookeeper 服务注册和发现
    Jetty 发布web服务
  • 原文地址:https://www.cnblogs.com/YongQiVisionIMAX/p/14054940.html
Copyright © 2020-2023  润新知