一、摘要
This paper presents a quantitative comparison of several multi-view stereo reconstruction algorithms. Until now, the lack of suitable calibrated multi-view image datasets with known ground truth (3D shape models) has prevented such direct comparisons. In this paper, we first survey multi-view stereo algorithms and compare them qualitatively using a taxonomy that differentiates their key properties. We then describe our process for acquiring and calibrating multi view image datasets with high-accuracy ground truth and introduce our evaluation methodology. Finally, we present the results of our quantitative comparison of state-of-the-art multi-view stereo reconstruction algorithms on six bench mark datasets. The datasets, evaluation details, and in structions for submitting new models are available online at vision.middlebury.edu/mview
本文对若干多视图立体重建算法进行了定量比较。此前,由于缺少合适的、带有已知真实值(即 3D 形状模型)的标定多视图图像数据集,研究者难以对这些算法做直接对比。本文首先对多视图立体重建算法进行综述,并基于一套分类体系从定性角度比较它们的关键特性。随后,作者介绍了如何采集并标定多视图图像数据,以及如何获取高精度的真实 3D 模型,并给出评测方法。最后,论文报告了若干当时先进算法在六个基准数据集上的定量评测结果。相关数据集、评测细节以及提交新结果的方法可在线获取:vision.middlebury.edu/mview。
文章链接如下:ieeexplore.ieee.org/abstract/do…
二、MVS算法分类体系
作者从六个方面对MVS算法进行分类
- Scene representation 场景表示
- Photo-consistency measure 光度一致性度量
- Visibility model 可见性建模
- Shape prior 形状先验
- Reconstruction algorithm 重建算法
- Initialization requirements 初始化要求
场景表示
多数多视图算法将物体或场景表示为voxels体素,level-sets水平集,polygon meshes多边形网格,depth maps深度图。
体素是像素在三维空间下的拓展。将空间划分为一系列方形的网格,如果某网格单元里有物体则记为1,否则记为0。
灰度图:我将以三维形态出击
水平集表示物体的原理在于:定义一个标量场,当点在物体外时 ,当点在物体内时,当点在物体表面时 。因此用函数值等于0的所有点构成的曲面就是物体表面。
笔者经常会想到等高面,三维物体可以用四维函数表示(水平集),也可以用一堆二维曲线表示(等高线)
多边形网格方法将物体理解为面,将面理解为多边形的集合,每个多边形由多个顶点定义,并通过边连接这些顶点。面通常是三角形或四边形,并可用于表示曲面或其他复杂形状。
深度图是一种灰度图像,其中每个像素记录点到相机的距离信息。可以利用双目或多目相机的视差信息计算深度并转换成深度图,或利用先验知识或模型对图像进行分析并推测深度图。
除了上述外,常见的表示方式还有point cloud点云,Signed Distance Function(SDF)符号距离函数
光度一致性度量
重建结果如果正确,那么它在不同图像中的投影应当“看起来一致”。这种一致性通常通过比较像素间的相似性来衡量,因此称为光度一致性。可以分为:场景空间度量和图像空间度量。
场景空间度量取一个三维点、三维小面片或局部体元,将它投影到多个输入图像中,再比较这些投影区域是否一致。
图像空间度量从某个几何估计出发,把一幅图像变换到另一视角,用预测图像与真实图像之间的误差来度量一致性。
场景空间误差是在表面上积分,因此往往偏好较小的表面;图像空间误差是在图像区域上积分,因此更看重那些在更多图像中可见、或在图像中占据更大面积的区域。
可见性模型
可见性模型决定在计算光度一致性时,哪些视图应该被纳入比较。可分为三类:几何方法,准几何方法和基于离群点的方法。
几何方法显式模拟成像过程和场景形状,从而判断每个三维点在哪些图像中可见。利用当前的几何估计来预测每个表面点的可见相机;如果表面演化是从一个包围整个场景的大体积开始,并不断“雕刻”掉不一致区域,那么这种可见性估计可证明是保守的:即预测可见的视图集合一定是真实可见集合的子集。
准几何方法使用近似的几何推理来估计可见性。只在相邻相机簇内做光度一致性分析,利用粗略几何来猜测邻近点的可见性。
基于离群点的方法不显式推理几何遮挡,而是把遮挡看作离群点。如果一个场景点在大多数视图中可见,只在少数视图中被遮挡,那么通过离群点剔除可以选择“好视图”。
形状先验
仅凭光度一致性,有时无法恢复精确几何,尤其是在低纹理区域。因此,很多方法会加入某种形状先验,让重建结果更符合预期。
最小表面偏好:一些基于场景空间光度一致性的技术,天然倾向于寻找面积较小的表面。
最大表面偏好:很多基于体素着色和空间雕刻的方法则偏向最大光度一致表面。
局部平滑先验:不对整体表面积施加强先验,而是在局部鼓励平滑。
重建算法思路
先构造三维代价体,再提取表面:例如voxel coloring 及其变体
迭代演化表面来最小化代价函数:例如体素、水平集、网格
计算深度图
先匹配特征点,再拟合表面:先提取并匹配特征点,恢复一组三维点,然后在这些点上拟合表面
初始化要求
除了已标定图像外,所有多视图立体算法都还需要一些关于场景几何范围的额外信息。
常见初始化要求包括:粗略包围盒或包围体积,前景/背景分割或轮廓,深度或视差范围
三、数据集
图像采集装置
图像由 Stanford 的球形龙门架采集。该机械臂可沿半径 1 米的球面移动,定位精度大约为 0.01 度。 使用的 CCD 相机分辨率为640×480。在该采集设置下,图像中一个像素大约对应物体表面上的0.25 mm。
相机标定
系统通过从 68 个半球视角拍摄平面标定板来完成标定,进而计算相机内参与外参。在此基础上,作者计算出相机相对机械臂末端的位置和姿态偏移,这样就能根据机械臂姿态准确推算相机位姿。
光照
物体被放在球形龙门中心附近的平台上,由三个外部聚光灯照明。由于机械臂在某些视角下会对物体产生阴影,所以作者使用了两种不同机械臂配置来覆盖整个半球,总共采集790 张图像。去掉人工判定为有阴影影响的图像后,得到大约80% 的球面覆盖率。
数据集
完整半球视图集,单圈视图集和稀疏单圈视图集三种子数据集
真实模型采集
参考模型使用 Cyberware Model 15 激光条纹扫描仪获取,每个物体大约采集200 次独立扫描,同时还会得到每个顶点的置信度。
真实模型与图像的对齐
作者使用了一种迭代优化方法,使参考网格与图像之间的光度一致性最大化。 每个网格顶点的目标函数由以下几项构成:
- 所有投射到该顶点的图像射线颜色方差
- 该顶点在多少张图像中可见
- 顶点本身的置信度
所有顶点的该项相加,形成总目标函数,并用坐标下降 + 牛顿线搜索进行最小化。初始对齐由 ICP 给出。作者发现,不同样本重建结果作为 ICP 初始输入时,最终优化结果几乎不变,说明对齐过程比较稳定。最后通过人工检查整幅图像的重投影,发现最大重投影误差大约在1像素左右,通常还更小。
四、评测方法
真实模型为 G,待评测重建结果为 R
精度评测
对 R 上的点找 G 上最近的点,并计算距离。严格地说,由于 R 是曲面,理论上应该在整个表面上积分;但实际实现中,作者使用 R 的顶点采样来近似。
真实模型 G 本身可能也有局部缺失,作者构造了一个补洞版本的真实模型,记为 G' 。 然后先把 R 上每个点匹配到 G' 的最近点;如果该最近点落在“补洞区域”,则不把这个 R 点用于精度统计。 此外,由于真实网格每个顶点还有扫描置信度,若某点落到 G 的低置信度区域,也会被忽略。
完整性评测
统计 G 上有多少点,到 R 的距离不超过某个可接受阈值 d
五、结论与展望
文章提出了一套多视图立体算法分类体系;一组与激光扫描模型配准的多视图数据集;一种同时衡量精度与完整性的评测方法;对若干当时性能较强的多视图立体算法进行定量比较。
作者表示,后续会进一步准备更具挑战性的数据集,例如:带镜面反射的场景和无轮廓信息的场景。 他们也计划:提高图像分辨率;使用更高精度的真实值获取技术,例如工业 CT 扫描;向更多研究者开放评测平台,让社区可以持续比较算法性能。
六、笔者思考
论文发表于2006年6月,论文的范围限定在:输入是已标定视图;输出是稠密物体模型。
其余暂无。