Scan2CAD: Learning CAD Model Alignment in RGB-D Scans的学习总结

概述:团队研究人员研究的内容是通过训练后的新颖3D卷积神经网络去接受一个半虚拟半真实组合成的对象作为输入,并且生成相对应的热图,最后通过一个9DoF位姿优化算法去将这个热图最终重建成一个对应的CAD模型并且根据输入场景进行对齐。

数据集设计:
他们设计了自己的数据集Scan2CAD作为训练神经网络的数据。Scan2CAD数据集的设计都是基于ShapeNet中的CAD模型以及ScanNet中的扫描图片。研究人员通过手动标注扫描图片和CAD模型的对应关键点对来完成图片和模型的对齐工作(关键点对需要保持在6个及以上)。这些标注后的数据就作为训练神经网络的数据集。

Benchmark:
他们设计了一个Benchmark来判定他们的Scan2CAD方法是否成功对齐。他们通过9DoF的数据来定量误差阈值(三维度位移,三维度旋转,三维度scale)。如果位移的误差阈值≤20cm, 旋转的误差阈值≤20°,scale的误差阈值≤20%则是成功的对齐。

神经网络:
对于输入数据的表达式Scan data和CAD data都采用了不同的表达方式。Scan data通过有向距离场(SDF)来表达在一个volumetric grid中。CAD data则是通过github中的工具直接转换成距离场(DF)表达。
个人认为以下的博客对于SDF和DF有十分清晰的定义:
https://www.jianshu.com/p/c466e8b2c854?utm_campaign=haruki(SDF)
https://www.zhihu.com/question/314433176(DF)

个人认为研究人员使用SDF表达Scan data是为了保证在扫描数据在经过卷积神经网络的加密之后,加密后的信息依然保持较高的准确性。(平面数据)
在CAD data的表达中是一个三维立体数据,所以可以通过距离场去表示。

他们同时将Scan data和CAD data作为输入,然后经由不同的卷积结构加密,将最终结果链接在一起并且作为输入值传输到解码区,解码区会对热图,兼容性和比例分别进行预测。如下图所示:


注:图中的(K,S,C)结构代表(卷积核大小,步长,数字通道)。
ConvBlock是由Conv3-BatchNorm-ReLu结构组成的一个卷积块,ResBlock本质上是用来跳过连接层。BigBlock则包含着两个连续的ResBlock。

BatchNorm详解:https://blog.csdn.net/wzy_zju/article/details/81262453

每个热图的的最终大小都为32×32×32,初始的输出是H:Ω→[0,1](映射),这代表图像中每个voxel(体素)在定义域为Ω∈N×N×N(N在这里指代自然数集)匹配到扫描SDF中心点的匹配概率值。每个体素都在[0,1]区间内的概率值表达模型匹配的概率。后续将二元交叉熵(BCE)和负对数似然(NLL)结合使用去训练神经网络。在最后一层的解码层会得到一个原始的输出S:Ω→R(R在这里指代实数集),最终通过这个输出去生成热图:

可以通过公式看出最终的损失函数L是通过将BCE和NLL相加得出。if x > 0.0, ω(x)=64.0, else ω(x)=1.0。v=64是加权因子用来提高体素网格中稀疏体素的信号。HGT在这里指代的是ground truth数据。sigmoid和softmax分别是两个激励函数。

关于误差函数和激励函数个人找了一篇比较直观的博客:
(https://www.cnblogs.com/woodyh5/p/12067215.html)误差函数
(https://blog.csdn.net/yizhen_acmer/article/details/55652187?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.channel_param)激励函数

兼容性概率的取值范围在[0,1]之间,如果概率的值越大则越说明scan data和CAD data之间的相似性很高,对于兼容性的误差计算先使用了sigmoid函数,后使用了BCE:

对于Scale的预测则是使用了最普遍的均方差方法(MSE):


最后用一个加权组合误差去训练网络:

对齐优化:
对齐优化的输入值是从场景S中的模型M中获取到的一个Harris keypoints的集合K。他们会从K中筛选出需要的值进行优化。他们采用了Otsu阈值分割算法去筛选数据。

接着他们设计了一个变量优化方法。根据Harris keypoints pjp_jpj​和热图HjH_jHj​给每个模型mjm_jmj​构建了point-heatmap pair (pjp_jpj​, HjH_jHj​)。

其中 p1∈R3p_1∈R^3p1​∈R3, HjH_jHj​ : Ω → [0,1]。
他们为了找到最优化的位姿构建了一个最小化问题:

cvoxc_{vox}cvox​是体素坐标,Tworld→voxT_{world→vox}Tworld→vox​代表一个用来将世界点映射到体素网格进行查找的转换,α代表李代数的坐标(旋转和位移),s定义了scale,λsλ_sλs​定义了scale的正则化强度,α和s组成了一个转换矩阵TmiT_{m_i}Tmi​​=ψ(ami,smia_{m_i},s_{m_i}ami​​,smi​​):

Γ代表热图,expm是矩阵指数。

作者使用Levenberg-Marquardt (LM)算法解决了公式(1)。在使用不同的参数组合后获得了一个CAD模型的多种对齐结果。最后通过将输入场景中的已知空余空间全部裁剪掉后获取最终匹配的唯一一个模型对象:

Tm−1T_{m}^{-1}Tm−1​表示CAD到扫描的转换矩阵,Ω代表体素网格空间⊂N3\subset N^3⊂N3。τ\tauτ是volumetric fusion中的切面距离为15cm,O是对scan中的有向距离函数或者CAD中的距离函数的查找。

本文未对作者的实验结果进行分析,主要针对于这篇文章中采用的方法以及实验思路进行分析以达到学习的目的。

Scan2CAD: Learning CAD Model Alignment in RGB-D Scans学习总结相关推荐

  1. 图像三维重建第六期-Scan2CAD: Learning CAD Model Alignment in RGB-D Scans

    论文地址 项目地址 摘要 我们展示Scan2CAD,一个新颖数据驱动方法学习一个对准的3D CAD模型从一个基础数据对噪声和不完整几何的RGB-D扫描.对于一个3D重建一个室内场景,我们的输入一系列的 ...

  2. 【代码注释】Scan2CAD:Learning CAD Model Alignment in RGB-DScans 论文代码注释

    这里写目录标题 前言 代码运行顺序 可视化 编译 转换网络输入量 网络预测输出heatmap 依据heatmap对齐 前言 https://github.com/skanti/Scan2CAD 文章项 ...

  3. CAD颜色索转RGB(方法一)

    查找CAD颜色索引对应RGB数据,建立对应数据表.需要将颜色索引转换为RGB格式时,查表即可.以下为解决此问题建立的数据表: typedef struct _RGBC{     int     Ind ...

  4. READ-2203 FLDetector: Defending Federated Learning Against Model Poisoning Attacks via Detecting Mal

    READ-2203 FLDetector: Defending Federated Learning Against Model Poisoning Attacks via Detecting Mal ...

  5. 【论文笔记】Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized

    论文 论文题目:Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personaliz ...

  6. 【DiMP】Learning Discriminative Model Prediction for Tracking论文阅读

    Learning Discriminative Model Prediction for Tracking 论文地址 写在前面 又是MD大神的一个作品,发现MD大神也把Siamese的框架用起来了,而 ...

  7. 模型预测控制与强化学习-论文阅读(一)Integration of reinforcement learning and model predictive

    模型预测控制与强化学习-论文阅读(一)Integration of reinforcement learning and model predictive 最近才把初步的研究方向定下来,导师放养,实验 ...

  8. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(一)

    <Neural Machine Translation by Jointly Learning to Align and Translate>--基于联合学习对齐和翻译的神经机器翻译 作者 ...

  9. 【Machine Learning】监督学习、非监督学习及强化学习对比

    Supervised Learning Unsupervised Learning Reinforced Learning Goal: How to apply these methods How t ...

最新文章

  1. webpack源码阅读——npm脚本运行webpack与命令行输入webpack的区别
  2. Java中的异常处理:何时抛出异常,何时捕获异常?
  3. Windows注册表修改实例完全手册(上)
  4. 区块链BaaS云服务(33)印度国家支付 Vajra Platform“特性”
  5. ITK:手动遍历具有成形邻域的图像区域
  6. 灵动标签调用友情链接
  7. scala的list源码解密
  8. nodejs爬虫实战_实战nodejs写网络爬虫
  9. 360全景地图 android,Android-谷歌VR展示360度全景图
  10. H3C光模块专题笔记
  11. SparkRDD算子(三)键值对聚合操作(reduceByKey,foldByKey,sortByKey, join)
  12. 迅为IMX6ULL教程更新至2060+页,裸机开发,Linux系统移植,驱动开发,构建文明系统,QT开发,系统编程
  13. Springboot + vue 实现导出word
  14. linux安装无线网卡,ubuntu20.04.5安装无线网卡 WDN6200
  15. 1066 Last non-zero Digit in N!
  16. C语言 吃鱼还是吃肉
  17. 控制系统分析常用命令
  18. rtx2060什么水平_rtx2060性能(rtx2060显卡什么水平)
  19. base64,base32bit加密解密
  20. 2017新浪微整形年度大数据报告

热门文章

  1. ATFX国际:瑞士信贷被曝出现流动性危机,欧元受惊大跌
  2. 阿里员工内部常用免费工具包 (转)
  3. 手绘地图 html5,景区手绘地图定制小程序h5智慧语音导览水上乐园社区
  4. java版mc多少钱_我的世界Java版20w48a版本
  5. 分享一个免费网页模板下载
  6. 【蓝桥软件学院】Android中五大Manager详解及使用技巧
  7. LeetCode题解(1846):减小和重新排列数组后的最大元素(Python)
  8. 多地部署高考安防措施 严防在校大学生替考
  9. 关于ADAS系统小记
  10. 怎么查询手机是否有维修记录