这个论文是将当我们手上有一堆数据的时候(如网络数据),先使用image retrieval方法检索出与查询图像相关的图像,即各个大小、方向、角度不同的同一对象的图像,然后就能够使用这些数据作为sfm的输入来实现3D重建了。其实就是将image retrieval与sfm相结合,使效果更好
2. Related work
我们的系统同时利用检索和SfM算法来实现详细场景重建的目标。在本节中,我们将讨论这两个领域中相关的最新技术,然后在接下来的部分中更详细地介绍我们的方法。
在过去的十年中,通过用户定义图像查询来研究大规模无序图像集合——大规模图像检索问题——取得了显著的进展。大多数方法将问题视为描述符空间中的最近邻搜索,如bag-of-words[28,21,25,11],VLAD [12, 2], Fischer vectors[24],或穷举匹配(exhaustive matching)[34,27]。最近,Mikulik等人[18]指出,最近邻图像搜索对于用户来说不是最优的,用户通常是在寻找新的图像信息,而不是接近重复的图像。在[18]和[19]中分别提出了用于规模极端变化和细节图像挖掘的新公式和有效方法。我们将这些想法扩展到识别适合于三维重建的初始图像集,然后利用获得的重建结果提出进一步的图像检索目标。不是针对对人类用户有吸引力的极端规模变化,而是采样整个规模变化谱,这更适合于三维重建。在此基础上,我们提出了一种有效的基于内容的landmark爬行检索方法,挖掘连接landmark多个侧面的视图。
Snavely等人的开创性论文[29,30]介绍了从互联网照片集进行场景重建。这是第一个表明SfM可以用于数千个图像的这种不同的、无序的集合的方法。该重建系统的主要局限性是由于穷举图像对重叠评估,其可扩展性有限(即对图像的数量规模有限制)。
为了克服可扩展性的不足,Li等人[13]引入了基于外观的聚类来对图像进行分组。这使得在一台PC上从成千上万的图像建模成为可能。Agarwal等人[1]引入了一种云计算算法,可以在24小时内在62台计算机上对15万幅图像进行建模。该方法利用基于查询扩展[4]的词汇表树搜索来确定重叠图像,然后进行近似的最近邻特征匹配。虽然提供了可扩展性,但这种方法严重损害了用于配准和重建的细节图像的检索。Lou等人[15]提出了一种改进的基于词汇树的检索方法,增强了检索结果的多样性。提出的重加权方法提高了SfM重建的场景覆盖率,但并没有解决不能提取细节图像的问题。
Frahm等[7,1]将Li等人的[13]方法扩展到可扩展到数百万张图像的重建中。然而,这种方法也受到了识别方法——基于gist-feature[22]的外观分组方法——的影响,这些方法无法获得详细的图像,因此严重限制了生成精细细节重建的能力。
Crandall等人[5]提出了一种基于MRF优化的全局SfM方法。为了正确地初始化这种混合优化,他们的方法需要对图像进行近似的地理位置先验。虽然这种方法可以检索地理定位的细节图像,但互联网上的照片集合中有很大一部分不是地理定位的。因此,这种方法在我们的场景中限制非常大,与我们的方法相比,它只能register一小部分图像。
我们提议的pipeline(图3)处理数百万个无序图像大小的图像采集。一个用户提供的查询图像作为该pipeline的输入。在第一阶段,以查询图像作为图像检索的初始种子(第4节),检索阶段首先查找最邻近的图像,然后进行multiple scale-band crawl,以获得不同zoom级别的附加视图(第4.1节)。此外,我们通过检索查询图像的左边和右边的图像来扩展查询,以获得查询图像周围的附加上下文信息(第4.2节)。作为后续重建阶段的准备,我们提出了一种高效的匹配方法(第5节),利用检索阶段的副产物来智能地避免不重叠的图像对。在重建阶段,我们使用了几种方法来克服细节图像配准的困难(第6节)。最后,我们通过识别模型的低细节部分,并递归地检索额外的图像进行另一轮重建,来进行额外的densification(第7节)。在对数以百万计的图像数据集进行的综合实验(第9节)中,我们证明了该方法可以产生大规模、高质量的模型,并且能够捕捉场景的细节。
从单个查询图像开始检索多个尺度波段的图像,将得到图像尺度的整个频谱,但通常只从单个查看方向进行检索。然而,许多有趣的场景部分往往位于角落或观察地标的旁边。在这种情况下,为了获得更加完整和稳定的模型,在地标周围额外的sideways crawling对重建有显著的好处。crawling是在原始查询图像的左侧或右侧执行的。我们提出了一种新的,有效的检索方法,基于内容在视点的周围crawling。因此,我们成功地挖掘出了连接地标多个侧面的图像(见图5),或者是在室内情况下,得到整个感兴趣区域的视野更广的图像(见图4)。
sideways crawling检索包括两个阶段。第一阶段允许我们在不同的方向(左和右)crawl图像。在第二阶段,最初的检索集合被来自期望方向的附加图像扩展。
第一阶段利用查询图像和结果之间的估计几何变换(在我们的例子中是仿射变换)。例如,在向右移动时,查询图像右侧的特性应该与结果图像左侧足够多的特性匹配。这可以通过对候选结果进行几何重新排序或更有效地使用DAAT方法[31]来实现。附加的几何分析,如通过homography拟合估计水平消失点的位置,这可以在额外的计算工作中执行。
为了检索包含新图像信息的更大一组相关图像,将使用第一阶段中排名最高的图像执行附加查询。在这些扩展的查询中,只考虑原始查询图像中不可见区域的特征。最后,将检索到的图像合并,然后根据视点变化的数量重新排列。
为了从各个方向重建地标,将重复sideways crawling,如图5所示。为了重建地标的各个侧面的细节,每一步都要进行多尺度波段的挖掘。有关sideways crawling的进一步例子,请参阅中国兵马俑地标的室内视图(图4)。在介绍了图像检索系统之后,我们接下来详细介绍利用建议的检索系统的独特特性的SfM系统。
(其实就是使用image retrieval方法先将相似图像检索出来,然后就能够应用这些与查询图像相似的图像到sfm中)
第三,SfM方法面临着场景和/或相机的困难的几何配置的独特挑战。许多场景的几何细节图像是在高变焦水平,即大焦距下拍摄的。在这种情况下,观察光线接近平行,导致沿观察方向的配准不确定度很高。即即使在沿观测方向有较大的位移,在重投影误差上仅导致很小的变化。因此,我们需要在非线性细化开始时有一个良好的焦距的初始估计,以实现收敛到正确的解决方案。为此,我们可以使用从EXIF数据中提取的焦距信息(如果可用的话)。然而,crowd-sourced照片经常因为修改而缺少这些信息,比如调整大小、裁剪等等。对于较大的变焦因子,仅仅假设默认的焦距[10,26]是不够的,从图像尺寸推断,并使用它作为非线性细化的初始估计。相反,在2D-3D pose估计期间,有必要对一个焦距的先验指定空间进行详尽采样。如果EXIF信息是缺失的,我们使用P3P RANSAC为[5◦,130◦]之间的开角均匀采样50个焦距,且使用有着最高inliers数量的解决方案,之后跟着一个pose的非线性细分。
然而,即使经过这些修改,由于低冗余、虚假的EXIF信息,或不幸的配置,相机配准偶尔仍然失败。我们检测这些情况是为了避免由于最初的坏相机的错误三角测量导致的级联配准错误。这些情况可以在SfM管道的不同阶段检测到。首先,在RANSAC pose估计中检测少量的inliers。其次,实现初始配准的非线性细化;错误的配准通常导致高成本的pose非线性细化。因此,我们拒绝显示上述任何属性的相机配准。第三,对于不完善的配准,bundle-adjustment通常收敛到局部最小值。因此,它试图通过使用极端的相机参数来最小化成本。当我们在bundle-adjustment中优化结构和运动时,我们过滤了有异常相机参数的图像(即开角在[5◦,130◦]以外、radial distortion参数的绝对值大于1)。
我们提出的结合SfM和检索系统实现了比最先进的重建系统更详细的重建。然而,场景的某些部分有着很差的细节。这种情况发生在在没有考虑完整的三维场景信息的情况下,通过图像检索得到的初始图像集在结构的某些区域没有提供足够数量的详细图像,甚至根本没有这样的图像。
然而,我们希望在结构的所有部分都能制作出高细节的完整模型。为了克服这一限制,我们引入了一种增量策略,通过显式挖掘原始重构三维模型低分辨率部分的高细节来扩展初始三维模型。为了避免无处不在的冗余的细节挖掘,我们建议在初始三维重建后按需进行细节挖掘。在初始重建后,我们能够确定稀疏模型的密度和识别三维模型的低分辨率部分。然后,我们尝试只对那些部分进行致密化重建。
为了发现覆盖了低分辨率部分的图像,我们首先通过计算在世界坐标系中每个图像观测值的空间范围来确定每个3D点的最高模型分辨率 ,即back-projecting 3D点的图像像素到世界坐标系上。由于来自不同距离和不同缩放级别的多个图像可能看到相同的结构,因此3D点被指定为所有观测值中分辨率最高的点。考虑到整个结构和相机poose的分辨率,我们就可以识别覆盖场景低分辨率部分的图像。每张图片通常只能看到整个场景的一小部分。在一幅图像中观察到的3D点分辨率的中位数为我们提供了一种有意义的测量方法,可以衡量一幅图像对其表面分辨率的整体贡献,而不依赖于对单个结构的距离或缩放级别。在最后一步中,我们按中值分辨率对所有图像进行排序,并迭代地查询顶部图像的更多细节,直到没有进一步的细节被发现,或者得到了足够的分辨率。最后,我们使用第5节中描述的策略,通过只匹配新图像,将新的检索到的图像与现有的重建图像连接起来。
对于检索,每个查询的最大验证次数设置为5000次,表2总结了不同类型查询的平均时间。结合不同的查询类型,我们可以为一个给定的查询图像检索一组图像(以分钟为单位)。检索到的集合是一组简明的图像(少于整个数据库的0.1%),其中不相关的图像数量相对较少,配准的图像(registered images)与检索到的图像(retrieved images)的比率就是证明。请注意,配准的图像都是与查询图像相同的连接组件的一部分。高效匹配(第5节)允许我们在几个小时内构建单个模型,因为我们只需要对检索到的图像对执行匹配,而这些图像对是可能的图像对的一部分。
检索系统的各个组成部分对所获得的结果有不同的影响。sideways crawling有助于增加三维模型的范围,并消除重复/对称结构的歧义。在重建时没有sideways crawling(使用最先进的管道),凯门、圣维图和圣母院都有对称问题,不能完全重建——对于正面图像,前100位图像仍然是正面图像。放大(zoom out)提供了更多的上下文,我们已经观察到,它也有助于消除对称结构的歧义。例如,如果在不放大的情况下执行,巴黎圣母院左塔的两边是交叉匹配的。缩小(zoom in)并不能提高匹配的正确性,但可以显著提高细节的层次。
为了量化细节重建的数量,我们确定每个3D点的空间分辨率,如第7节所述。表面分辨率映射到jet color map进行可视化,其中红色表示最高分辨率,蓝色表示最低分辨率。图2和图8显示了各种场景的分辨率。此外,图7是使用多视图立体声进行密集重建的示例。
另一个实验表明,查询图像的选择并不是关键的。在凯旋门的场景中,从建筑相反侧面得到的两张不同的图像中提取出2640和2721张图像(union的交叉点92%),结果在视觉上几乎是相同的。
为了将我们的系统与完全两两重建方法相比较,我们将包含6036张图像的Dubrovnik6k数据集[14]注入到740万图像数据库中。从单个查询图像开始,我们的管道在前3次检索-sfm迭代重新构建87%(4430张图像),至于完全两两重建方法则是重建在孤立数据集(有着5102张配准图像)上。这两种方法的视觉质量相似,但对于我们的管道来说运行速度更快,尽管它运行在740万张图像上(而两两的方法运行在6K张图像上)。