每天,Google 地图都为成千上百万的人们提供方位指示、即时路况资讯以及商业资讯。为了提供最佳的用户体验,地图资讯需要不断根据现实世界的变化调整。街景车每天收集数百万张图片,如果用人工分析每天超过 800 亿张高清晰图片,找出其中的新变化或更新地图资讯,显然不可能。因此,Google 地面实况团队(Ground Truth team)的目标之一,就是从地理位置图像自动提取资讯来升级 Google 地图。
在“从街景图像中提取基于注意机制的结构化资讯”(Attention-based Extraction of Structured Information from Street View Imagery)一文中,Google 描述了采用的方法──怎样在街景视图中使用深度神经网络自动且准确无误地读出街道名称。算法系统在挑战“法国街道名称识别数据集”(French Street Name Signs(FSNS)dataset)中达到 84.2% 的正确率,明显优于之前的最优系统。重要的是,Google 的系统在提取其他类型资讯也很容易扩展。比如现在帮助 Google 自动提取商店前面的商户名称。目前该模型已经开源。
▲ 法国街道名称标识数据集中的一个例子,被 Google 的系统正确辨识。上图为同一标识的 4 种不同视角。
自然环境中的文本辨识在电脑视觉和机器学习上是一个非常具有挑战性的问题。传统的光学字符辨识(OCR)系统,主要侧重于从扫描的文档中提取文本。在自然场景中由于视觉伪影,如失真、闭塞、定向模糊、杂乱的背景或不同的角度给提取文本提升了难度。Google 从 2008 年开始致力于解决这一问题,使用神经网络模糊了街景图像中的脸和车牌,以保护 Google 用户的隐私。从最初的研究中,团队意识到经过足够的标记数据训练后,机器学习不仅能保护用户的隐私,而且还可以自动升级 Google 地图相关的最新资讯。
2014 年 Google 地面实况团队在街景门牌号数据集(SVHN)上公布了读取街道号码的方法,随后暑期实习生 Ian Goodfellow(现为 Google 员工)进行了运用。这个工作不仅是出于对学术的兴趣,而且也是使 Google 地图更为精确的关键。如今得益于这个系统,超过三分之一的全球地址已经在 Google 地图上有了自己的位置。在一些国家,如巴西,这个算法增加了超过 90% 的 Google 地图地址,大大提高了 Google 地图的可用性。
下一步是将这些技术扩展到街道名称。为了解决这个问题,Google 创建和发布了法国街道名称标志(French Street Name Signs,FSNS),有超过 100 万的街道名称训练数据集,旨在提高人们对 OCR 模型在实际使用情况下的认识。FSNS 是 Google 经过多年努力而构建的,它比 SVHN 数据集更加庞大,也更具挑战性,因为如果要准确辨识某个街道标识,可能需要对各个角度所拍摄的图片进行整合处理。
▲ 上图是辨识起来很有难度的一些标识,也被 Google 系统透过对图像的理解而正确判断了。尤其是第二个,不过这个模型在之前学习了语言模型,使其能够消除歧义,并正确识别出街道名。值得一提的是,在 FSNS 数据集中,同一路标在少于 4 个独立视图的情况下会增加随机噪声。
Google 实习生 Zbigniew Wojnazai 在 2016 年夏天用这个数据集开发了一个深度学习模型,它能够自动标注新的街景视图。这个新模型的一个优点是,它可以根据日常的命名习惯进行文本规范。
▲ 上图的例子中,可以将“AV.”转化为“Avenida”,“PRES.”转化为“Presidente”这是我们期望看到的结果。
▲ 在这个图中,模型没有被图中的两个街道名称迷惑,将“AV.”正确转化为“Avenue”,同时也辨识出数字“1600”。
尽管这个模型非常精确,它依然有 15.8% 的序列错误率。不过,在分析错误样本后,团队发现,其中 48% 是由于地面实况错误,也就是说,模型与标记质量呈现的准确度基本一致。
这个新系统结合了提取街道号码技术,能够直接从图像创建新的地址。现在,每当一辆街景车在新建的道路上行驶时,系统可以捕捉上千万张图像,提取街道名称和数字,并自动在 Google 地图上创建和定位新地址。
但自动为 Google 地图创建地址是不够的。此外,还希望能够为商业提供导航。2015 年,Google 发表了“从街景图像中进行大规模的商业发现”(Large Scale Business Discovery from Street View Imagery)一文,文中提出一种方法可以准确地检测商店外墙的标志。然而,检测到商店外墙,仍然需要准确地提取它的有用名称。模型必须找出哪个文本是商户名称,哪些文本是不相关的。Google 称这种提取为“结构化文本”信息的提取。它不只是文字,而是具有语义意义的文本。
使用不同的训练数据,用来读取街道名称的模型结构也可以用来准确地提取商业名称。在这种特殊情况下,如果已经知道这个商户在 Google 地图的位置,可以只提取商业名称来进行验证,使之能够更准确地更新商业列表。
▲ 如上图所示,虽然没有从图片中获得任何有关真实地址的资讯,但系统还是正确辨识出了商户的名字 Zelina Pneus,而且没有被旁边的轮胎品牌所骗。
模型需要处理 800 多亿个街景图像,需要强大的计算能力。这就是为什么 Google 地面实况团队采用 TPU,可以大幅减少推理计算成本。
人们依赖于 Google 地图的精准性来协助他们工作和生活。同时,在景观、道路和商业不断变化的情况下,Google 地图的更新所面临的技术挑战,远远还没有解决。为超过十亿的 Google 地图用户创造更好的用户体验,一直是 Google 地面实况团队追求的目标。
- Updating Google Maps with Deep Learning and Street View
(本文由 雷锋网 授权转载;首图来源:Flickr/J K THORNE (J K THORNE) CC BY 2.0)