深度学习 + 众包重现历史街景,在线体验“时间旅行”

文 / Raimondas Kiveris,Google Research 软件工程师

城市的老照片,可以让人倍感怀念与感叹……漫步在二十世纪四十年代的曼哈顿街头会是一种怎样的体验?儿时生活的街道经历了怎样的变迁?人们可以通过 Google 街景来查看某一区域的当前场景,但如何才能浏览某地的历史景象呢?

为了打造一种兼具研究和娱乐价值的“时光旅行”体验,我们推出了一款 名为 的基于浏览器的工具集(发音为 re”turn"),它是一款运行在 Google CloudKubernetes 上的开源可扩展系统,可以基于历史地图和照片来重建城市,这是我们今年早些时候推出的开源工具套件的一种实现。 取自英语中常表示再次或重新含义的前缀,表达了在众包研究工作背后的重建、研究、娱乐和纪念意义,它由以下三部分组成:

  • 众包平台:用户可通过该平台上传城市的历史地图,进行地理校正(即将其与现实世界中的坐标相匹配),并对这些数据执行矢量化转换

  • 临时地图服务器:用于展示随时间的变化的城市地图

  • 3D 体验平台:该平台在 地图服务器上运行,使用深度学习技术基于有限的历史图像和地图数据重建 3D 建筑物,从而打造 3D 体验。

我们的目标是使 成为一种综合型工具集,让历史爱好者能够以虚拟的方式体验到世界各地城市的历史,为研究人员、政策制定者和教育工作者的工作提供帮助,以及慰藉普通用户的怀旧之情。

用户可以使用时间滑块鸟瞰曼哈顿切尔西区 1890 年至 1970 年的城市变迁,这些场景基于历史照片和地图并使用 rǝ 的 3D 重建流水线制作,以预设的曼哈顿风格调色板进行了着色

用户可以使用时间滑块鸟瞰曼哈顿切尔西区 1890 年至 1970 年的城市变迁,这些场景基于历史照片和地图并使用 的 3D 重建流水线制作,以预设的曼哈顿风格调色板进行了着色

基于历史地图的众包数据

处理历史图像数据的难度要高于现代数据,因为可用图像要少得多,并且从图像中捕获的元数据也少得多,所以大规模地重建城市往日景象可谓一项挑战。 地图模块可帮助解决这一难题,该模块是一组开源工具套件,共同用于创建具有时间维度的地图服务器,用户可以使用滑块在各个时间段之间来回游走,也可以通过这些工具上传历史印刷地图的扫描版本,进行地理校正以匹配现实世界中的坐标,然后通过追踪地理特征将其转换为矢量格式。最终,这些矢量化地图将被应用到图块服务器中,并渲染为瓦片地图,使用户可以放大和平移地图。

工具套件的子模块

地图模块的入口点为 Warper,它是一款网络应用,支持用户上传历史地图图像并通过找到历史地图上的控制点和基础地图上的对应点来对其进行地理校正。接下来将使用到名为 Editor 的应用,可加载经过地理校正的历史地图作为背景,然后追踪其地理特征(例如,建筑物轮廓、道路等)。追踪数据以 OpenStreetMap (OSM) 矢量格式存储。然后,这些数据将在矢量图块服务中被转换为矢量图块。最后,我们的地图渲染器 Kartta 将对时空矢量图块进行可视化处理,使用户能够在历史地图中浏览不同时间和空间下的场景。这些工具以包括 OpenStreetMap 在内的众多开源资源为基础构建而成,我们也要将我们的工具和数据打造成完全开放源代码的资源。

结合使用 Warper 和 Editor,用户可以上传地图,使用控制点将其锚定到基础地图,以及追踪诸如建筑物轮廓和道路等地理特征

3D 体验

3D Models 模块旨在使用关联的图像和地图数据重建包含细节的完整历史建筑 3D 结构,在一个存储区中正确组织这些 3D 模型,并在具有时间维度的历史地图上对这些模型进行渲染。

在许多情况下,建筑物都只有一幅可用的历史图像,这使 3D 重建成为一项极具挑战性的难题。为了解决这一挑战,我们开发了一种基于识别技术的从粗糙到精细的重建算法。

上图为 的 3D 重建流水线的高级概览,该流水线会获取标注后的图像和地图,并对其进行处理以进行 3D 渲染

首先是从地图中的建筑物轮廓和历史图像中的立面区域开始(均通过众包获得标注或通过自动算法进行检测),将某一输入建筑物的轮廓向上拉伸以生成粗糙的 3D 建筑物结构。高度根据地图数据库中相应元数据所提供的楼层数进行拉伸。

与此同时,3D 重建流水线会识别所有单独的组成部分(例如窗户、入口、楼梯等),并根据这些组成部分的类别来分别重建其 3D 结构,并非直接将每个立面包含细节的 3D 结构作为一个实体进行推断。然后,将这些包含细节的 3D 结构与粗糙的 3D 结构进行融合,从而形成最终的 3D 网格。结果将存储在 3D 仓库中用于后续的 3D 渲染。

多种先进的深度学习模型技术是实现这种功能的关键:

  • 更快的基于区域的卷积神经网络 (RCNN):该神经网络针对对应于每个目标语义类(例如窗户、入口、楼梯等)的立面组件标注进行了训练,这些标注用于定位历史图像中的边界框级实例。

  • DeepLab:它是一种语义分割模型,经训练可为每个语义类提供像素级标签。

  • 经专门设计的神经网络:该神经网络经训练可在同一语义类内部强制执行高级规则。这样,可以确保立面上生成的窗户彼此之间距离相等且形状一致。另外,这也改善了不同语义类(例如楼梯)之间的一致性,从而确保它们放置位置合理且尺寸一致(相对于关联入口)。

关键成果

3D 重建的曼哈顿切尔西区街景

3D 重建的曼哈顿切尔西区街景

结论

借助 ,我们开发了可促进众包的工具,有效解决了重建虚拟城市时历史数据不足这一重大挑战。我们仍在积极开发 3D 体验,并通过未来的更新不断完善。我们希望 成为能够连通爱好者的活跃社区和临时用户的纽带,让用户不仅能够使用我们的历史数据集和开放源代码,同时也能够对这两者做出积极贡献。

致谢

这项成果离不开许多人的辛勤工作,包括但不限于以下人士(按姓氏字母排序):Yale Cong、Feng Han、Amol Kapoor、Raimondas Kiveris、Brandon Mayer、Mark Phillips、Sasan Tavakkol 以及 Tim Waters (Waters Geospatial Ltd)。

原文:Recreating Historical Streetscapes Using Deep Learning and Crowdsourcing
中文:谷歌开发者公众号