SUN3D: A Database of Big Spaces Reconstructed using SfM and Object Labels
数据集介绍
数据集和对应工具地址:http://sun3d.cs.princeton.edu SUN3D数据集包含有对于完整房间的RGBD图像,相机位姿,语义分割和三维点云。
语义分割和三维重建任务是可以相互促进的,在一帧上的正确语义分割通过三维重建结果传递到其他帧。如果每个帧都进行了语义分割,三维重建中就获得了较强的数据关联。
数据驱动的SfM算法
传统SfM算法的闭环算法经常失败,本文为闭环设计了较保守的阈值。来确保闭环的准确率,同时通过设计轨迹让相机经过同一地点多次来爆炸回环能被顺利检测到。
相邻帧匹配
计算SIFT特征描述子,对拥有有效深度的点通过RANSAC算法计算位姿变换矩阵。
回环
通过使用k-means算法计算词袋模型,如果候选SIFT特征匹配有超过25对,合并轨迹。
2D-3D联合BA
累乘之前得到的位姿变换矩阵作为BA优化的初值,再代价函数中考虑特征的2D和3D坐标:
深度图优化
从附近的帧中,根据TSDF补全深度图中的噪声。
多视角物体标注
上一章得到的重建结果,往往因为累计误差而不够精确。但是往往子序列的重建结果精度较高。对于每一帧,程序允许用户用多边形对于物体进行标注,标注完成后,可以和三维重建中已有的其他同类物体进行关联。
每一帧操作 当用户开始操作未标记的一帧时,之前帧的语义信息会投影到当前帧。用户可以对每一帧的结果做增加和修改。
多边形重建
通过将多边形角点附近的点进行平面拟合,平面和相机射线的交点就是角点的3D位置。
标注传播
对于未标注的帧,将临近帧的多边形投影到当前帧。通过比较深度图判断多边形的可见性,融合临近帧的多边形得到最终的结果。
冲突列表
用户纠结错误之后,所有拥有错误的标签的帧都不会参与标注传播,降低了错误标注的影响。
物体命名
用户可以对每个物体进行命名,如果相同的物体太多无法辨别,也进行标注,在之后的BA的不考虑这些约束。
广义BA
可以通过上节的标注来进一步优化相机位姿,本文认为属于同一标注的特征点匹配不再有价值,因为这些点大部分已经在跟踪和回环时匹配。
对于每个物体建模成中心点,旋转和尺度来进行匹配。对于墙,床等特殊的语义加以额外的约束。