Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》

摘要

之前的相关工作分为两类:①实时非刚体的跟踪算法,但不适于动态场景或无模板的运动场景;②离线动态场景的跟踪和重建,但做不到实时的重建与跟踪。而DynamicFusion方法构建了第一个能够实时重建非刚性变形动态场景的系统。与KinectFusion一样,随着新一帧数据融合进模型中,得到的重建模型的细节更加完整和精确。

整体思路

①输入第一帧深度图
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
由输入的第一帧深度图构建一个静态的固定的canonical model(关键模型)。

②输入后续帧深度图
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
由于场景是动态非刚性的,输入后续帧的深度图中物体的动作状态发生了非刚性变化。

在当前时刻t输入一帧深度图,通过几何变换undo(撤销)物体的动作,然后与上一时刻t-1的canonical model进行fusion(融合),得到更新后更加完善的当前时刻t 的canonical model,再通过估计得到的几何变换将canonical model warp(扭曲)为当前时刻t输出的live frame(实时帧),最终实现动态非刚性场景的实时跟踪与重建。

预备知识:TSDF & Mesh模型

Canonical space中有两种场景表面的表示方法:TSDF & Mesh模型

TSDF模型

描述物体表面的三维隐式模型,首先建立一个volume(三维体空间),其被划分为网格,一般为256256256或512512512个,每个小格称为一个voxel(体素),每个voxel记录了其到物体表面的sdf值(截断符号距离)v(x)和该sdf距离的权重w(x),求解体素Xc的投影sdf值的公式为:
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》

Mesh 模型

描述物体表面的三维显式模型,记录了每个vertex(顶点)的位置以及其相互之间的联系,通过Marching cube算法可以将TSDF模型转换为Mesh模型,Mesh模型可以通过MeshLab软件打开并显示。
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》

流程框架及各部分原理

Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
该流程分为两种情况:
①输入第一帧深度图的处理过程
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
过程描述如下:
a.Surface Fusion(表面融合):输入第一帧的深度图,然后由此构建并初始化volume,更新物体表面附近的voxel(建立canonical space下的TSDF模型);

b. Extract Surface(表面提取):将canonical space下的TSDF模型转换为canonical space下的Mesh模型,即得到了canonical model;

c. Update nodes graph(更新节点图):将canonical model中的vertexes进行类似的聚类操作,得到nodes,nodes的表示:Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
当前时刻t的每个node记录了其位置,其影响权重,以及其warp变换矩阵。

②输入后续帧深度图的处理过程
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
过程描述如下:
a. Measurement :计算当前时刻t输入的深度图的点云图 Vt 和法向图 Nt ;

b. Tracking(Estimating the warp field):能量方程(由数据项和正则项组成)
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
数据项Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》 含义:通过将上一时刻t-1 的canonical model中的node经过预测的warp变换到预测表面上的点,与对应的深度图实时的表面点进行点到面的ICP处理,即最小化两点间的法向距离;
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
正则项Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》含义:最小化正则项,对node间进行一个约束;
通过最小化能量方程最终得到了当前时刻t的每个node的warp变换,通过对每个voxel附近的k个nodes进行DQB插值得到了每个voxel的warp变换;

c. Surface Fusion:由得到的当前时刻t的每个voxel的warp变换将t-1时刻的Canonical space voxel center xc warp到Live frame的 xt 上,然后计算 xt 的psdf值,与Canonical space voxel center xc 的psdf值进行加权更新,来更新 xc 处的体素,最终通过这种方法更新了TSDF模型,得到了表面融合后的当前时刻t的canonical frame。
Dynamic Fusion 总结(根据论文:《DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time》
d. Extract Surface:将当前时刻t 的canonical space下的TSDF模型转换为canonical space下的Mesh模型,即得到了当前时刻t的canonical model;

e. Update nodes graph:将当前时刻t的canonical model中的vertexes进行类似的聚类操作,得到当前时刻t更新后的nodes,已知前一时刻t-1的nodes,通过对新添加的node附近的k个前一时刻的nodes进行DQB插值得到该新添加的node的warp变换;

f. Generate live frame:通过估算到的当前时刻t的warp变换将canonical model warp为当前时刻t输出的live frame。

通过以上的各个过程,最终实现了动态非刚性场景的实时跟踪与重建。

相关文章: