来源:创事记
为了研究和娱乐目的创造一个有益的「时间旅行」体验,谷歌AI研究院推出了一个基于浏览器的工具集名为「r」(发音为re)。
这是一个运行在GoogleCloud和Kubernetes上的开源、可扩展的系统,可以根据历史地图和照片重建城市,这是谷歌今年早些时候推出的开源工具套件的一个实现。
「r」这个前缀的意思是「againoranew」,它代表了这项众包研究工作背后的四个主题:
重建(reconstruction)
研究(research)
娱乐(recreation)
记忆(remembering)
「r」由三个部分组成:
1.一个众包平台,允许用户上传城市的历史地图和地理校正(例如,将它们与真实世界的坐标相匹配),并对其进行矢量化。
2.一个时态地图服务器,显示城市地图是如何随时间变化的。
3.一个3D体验平台,通过深度学习,利用有限的历史图像和地图数据重建三维建筑,创建三维体验。
谷歌的目标是使得「r」可以让历史爱好者虚拟地体验世界各地的历史城市,帮助研究人员、政策制定者和教育工作者的某些工作,并为日常使用者提供一种新的怀旧方式。
「r」使用来自众包的历史地图数据重建街道
重建过去城市的是一个真正的挑战,历史图像数据比现代的图像数据更难处理,因为可用的图像要少得多,从图像中捕获的元数据也要少得多。
为了解决这个问题,「r」模块提供一套开源工具,它们协同工作,创建一个带有时间维度的地图服务器,允许用户使用滑块在时间段之间来回跳转。
这些工具允许用户上传历史印刷地图的扫描版本,地理上校正它们以匹配真实世界的坐标,然后通过追踪它们的地理特征将它们转换为矢量格式。这些向量化的地图随后被提供给一个服务器,并呈现为滑动地图,用户可以放大和平移这些地图。
上面的架构图中,「r」地图模块的入口点是「Warper」,这是一个网络应用程序,用户可以上传地图的历史图像,并通过在历史地图上找到控制点和基础地图上的相应点来对图像进行地理校正。
下一个模块是「Editor」,允许用户加载地理纠正的历史地图作为背景,然后跟踪他们的地理特征(例如道路等)。这些跟踪数据以开放式街道地图(OSM)矢量格式存储。
然后,它们被转换成矢量块,并从矢量块服务器Server应用程序中提供服务。
最后,我们的地图渲染器「Kartta」可以可视化时空矢量,允许用户在历史地图上按照空间和时间来导航。
这些工具建立在包括OpenStreetMap在内的众多开源资源之上,所以谷歌希望它们的工具和数据也完全开源。
3D重构「由粗到细」,楼梯的位置也不放过
3D模型模块旨在利用相关的图像和地图数据重建历史建筑详细的全部3D结构,将这些3D模型合理地组织在一个存储库中,并在历史地图上以时间维度呈现它们。
在许多情况下,建筑物只有一个历史图像,这使得三维重建成为一个极具挑战性的问题。为了应对这一挑战,谷歌开发了一个由粗到精的识别重建算法。
从地图上的「Footprint」和历史图像中的立面区域开始(两者都由众包注释或自动算法检测),一个输入建筑物的「Footprint」被向上挤压以生成其粗糙的3D结构。这个挤压的高度被设置为从地图数据库中相应的元数据的地上层数。
与此同时,3D重建的pipeline不是直接将每个立面的详细3D结构推断为一个实体,而是识别所有单独的组成部分(例如,窗口、入口、楼梯等),并根据它们的类别分别重建它们的3D结构。
然后将这些细节化的三维结构与粗糙结构合并,得到最终的三维网格,并将结果存储在一个三维数据库中,可以进行三维渲染。
而支持这一特性的关键技术是一系列最先进的深度学习模型:
1.更快的RCNN,使用每个目标语义类(例如窗口、楼梯等)的外观组件注释进行训练,这些注释用于在历史图像中定位bounding-boxlevel的实例。
2.提出了一种语义分割模型,训练该模型为每个语义类提供像素级标签。
3.训练一个专门设计的神经网络来在同一语义类中执行某些高级规则。这确保了立面上生成的窗户间距相等且形状相互一致。这也促进了不同语义类之间的一致性,比如楼梯,以确保它们被放置在合理的位置,并且相对于相关的输入方式具有一致的维度。
图:3D重建的曼哈顿街景
通过「r」平台,谷歌开发了便于众包的工具来解决重建虚拟城市的时候历史数据不足的主要问题。
这种3D街景的体验仍在进一步完善中,未来会持续更新。谷歌希望「r」作为一个活跃的爱好者和普通用户社区的纽带,不仅利用历史数据集和开源代码,而且积极地为这两者做出贡献。
参考链接: