牛骨文教育服务平台(让学习变的简单)
博文笔记

qianyi-zhou offline RGB-D 三维重建(2)

创建时间:2016-10-27 投稿人: 浏览次数:1820

接着上篇博客讨论,上篇博客:
http://blog.csdn.net/fuxingyin/article/details/52926154

这篇博客先介绍“Elastic Fragments for Dense Scene Reconstruction”,后续再介绍比较相关的一篇文章。

先上图:
这里写图片描述

上图中第一列显示的是没有经过矫正重建的结果,第二列显示的是通过矫正后重建的结果,也可以看出,矫正可以降低 low-frequency distortion。

(a)列是 Extended KinectFusion 重建的结果,(b)列是“Dense Scene Reconstruction with Points of Interest”重建的结果,(c)列是“Elastic Fragments for Dense Scene Reconstruction”重建的结果。作者文章也提到,对于使用消费级深度相机像 Kinect 扫描,因为相机自身的 low-frequency distortion error,即使估计出来的相机的位姿再精确,也没法把场景重建得很好,也就说刚体变换没法把 fragments 融合好,这篇文章提出的方法是基于非刚体变换,融合 fragments。

这篇文章的思路也是先重建的 fragments,然后再融合 fragments 重建完整的场景,对于 fragments 重建,fragments 间配准和上篇博客介绍的思路相同,这里不再介绍。

Elastic 配准
算法输入的是一堆重建的局部的 fragments,目的是要找到一个映射,将 fragments 中所有的点,映射到同一个坐标系,并且对齐融合成一个场景。

优化的损失函数如下:
E(T)=Ea(T)+Er(T)

这里每个 fragment 中的每个点都会有一个独立的待优化参数 T,可想而知这里优化的参数有很多,作者后续给出了加速算法。

其中 Ea(T) 是匹配点的对齐误差, 表达式如下:
这里写图片描述
(2)式中,p′q′ 是两个 fragments 间匹配的点 pq 通过 T 变换后的点,Nipp′ 处的法向量,上式优化的实际是 ICP 算法常用的点到平面的距离。

Er(T) 的表达式如下:
这里写图片描述
上式中,R′p 是变换 T 中的旋转项,Er(T)是优化时候的正则项,为什么要加正则项,举个简单的例子,如果变换 T 把点 p 变换到同一个点,Ea(T) 损失函数的值为 0 达到最优。这里正则项和 deformation graph 的正则项相同。上式含义是,变换后邻域点之间的距离不能拉伸或者收缩太大。

可以看出待优化的参数个数和重建的点的个数成正比,实际操作的时候是不可行的,作者又给出了如下算法减少优化参数的个数。

作者对于在每个 fragment 中抽取控制点,fragment 中的其它点可以通过控制点插值得到,这时待优化的参数的个数就只和控制点的个数有关。但是,还有个问题是,这时优化的参数的个数和 fragment 的个数成正比关系,这在轨迹比较长的时候优化也是比较耗时的,下面介绍的 zhou 的另一篇文章可以解决这个问题。

这篇文章的思路和上篇文章有些类似,所以放在一起讲。前面说到 “Elastic Fragments for Dense Scene Reconstruction”中用优化抽取的控制点的变换来代替优化全部点变换,控制点比较稀疏,从而可以减少待优化的个数,但是“Elastic Fragments for Dense Scene Reconstruction”优化的参数个数还是和 fragments 的个数成正比关系。这篇文章的思路是在消畸变,因为每个相机的畸变是固定的,我在相机视场内抽样控制点,其它点的参数通过控制点的参数插值得到,移动相机重建的时候,每个点用控制点的参数做变换去畸变,这样待优化的参数个数不再和 fragments 的个数成正比关系,只和在相机视场内选取的控制点的个数相关。

待优化的损失函数
E(T,C)=Ea(T,C)+λEr(C)

Ea(T,C) 同上几篇文章也是 fragments 间匹配点的误差,表达式如下:
这里写图片描述
不同的是 p′q′ 是畸变矫正过后的点,经过点所在的 fragment 的位姿变换得到的,表达式如下:
p′=TiC(p)
q′=TjC(q)
其中 C 表示相机畸变矫正。

畸变矫正的表达式是通过相机视场内的点均匀抽样得到的,畸变矫正函数是一个 displacement field over the camera’s measuring volume,示意图如下:

这里写图片描述

因为损失函数 E(T,C) 中的 Ea(T,C) 和序列图像帧数成正比,后面 λ 值为序列图像的帧数。

矫正函数正则项 Er(C) 的表达式为:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。