谷歌开源深度学习街景文字识别模型:让地图随世界实时更新

选自Google Blog

作者:Julian Ibarz

机器之心编译

参与:李泽南、晏奇

谷歌地图的街景功能拥有 800 亿张高分辨率图片,而且这个数字还在以每天百万的速度不断增加。街景图片是获取准确地理信息的绝佳渠道,而利用深度学习从图片中获取信息,并实时更新地图地址内容正是谷歌研究团队努力的目标。

每一天,谷歌地图都会为数百万人指路,并提供相应的实时路况信息和商店推荐。为了向用户提供最好的体验,这些信息必须随着不断变化的世界实时更新。谷歌街景车每天都会收集数百万张图片,而人工分析这超过 800 亿张高分辨率图片中的信息,试图找出其中的新变化是一个不可能完成的任务。谷歌 Ground Truth 团队正在研究如何让计算机自动将图片中的内容转变为谷歌地图需要的信息。

在最近的一篇论文《Attention-based Extraction of Structured Information from Street View Imagery》中,谷歌的研究者讨论了使用深度神经网络在多个国家收集到的街景图中读取街道名的任务。谷歌的算法在「French Street Name Signs(FSNS)」数据集中达到了 84.2% 的准确率,表现大大超过了此前表现最好的系统。更重要的是,新系统除了可以读取街道名称,还可以自动读取图片中的商户名,以及其他信息。谷歌近日已将这一模型开源。

Github 地址:https://github.com/tensorflow/models/tree/master/attention_ocr

谷歌开源深度学习街景文字识别模型:让地图随世界实时更新

在 FSNS 数据集中的街道名被谷歌的系统成功转录,这个路标提供了四张不同图片。

在自然环境中识别文字对于计算机视觉和机器学习而言是一个非常具有挑战性的任务。传统的光学字符识别(OCR)系统主要适用于从文件中扫描信息,而从自然视角中获取文字则面临更多麻烦,失真、遮蔽、方向模糊、复杂背景和不同视角都会对识别产生影响。谷歌应对这一挑战的研究从 2008 年就开始了,他们曾使用神经网络来模糊结晶图片中的人脸与车牌以保护隐私。在先前阶段的研究中,研究人员逐渐意识到经过足够已标记数据的训练后,机器学习不仅可以用来保护用户隐私,还可以自动为谷歌地图进行实时信息的更新。

在 2014 年,谷歌 Ground Truth 团队发布了当时最好的读取街景门牌(SVHN)数据集中门牌号的方法。这一应用是由 Ian Goodfellow 等人提出的,它不仅引起了学界的关注,也切实改变了谷歌地图的面貌。今天,全球大约 1/3 的地址都是由这一系统提供的。在一些国家如巴西,Goodfellow 等人的算法为谷歌地图提供了超过 90% 的地址,极大地增强了地图的可用性。

在门牌号之后,最合情理的下一步就是将这些技术延展到街道名称上了。为了解决这一问题,谷歌团队首先发布了法国街道路标数据集(French Street Name Signs,FSNS),一个拥有超过一百万街道名称的训练数据集。FSNS 数据集是多年努力的成果,旨在帮助所有开发者提升自己的 OCR 模型在实际应用中的性能。FSNS 数据集比 SVHN 数据集更大,也更具挑战性,准确识别一张街道标识可能需要对于同一个标识不同角度的图片进行合并处理。

SVHN 数据集:http://ufldl.stanford.edu/housenumbers/

FSNS 数据集:https://github.com/tensorflow/models/blob/master/street/README.md

谷歌开源深度学习街景文字识别模型:让地图随世界实时更新

这是一些具有挑战性的标识,它们由谷歌的系统通过选择或结合对图像的理解而恰当地进行了转录。第二个例子就更具挑战性了,但是由于模型提前学习了一个语言模型,这使得它能够去除模糊而正确的认读街道的名字。

2016 年,使用这个训练集,谷歌实习生 Zbigniew Wojna 用整个夏天开发出了一个深度学习模型架构,该架构可以自动对街景图像进行标记。新模型的其中一个有趣的功能是它可以将文本规范成与我们日常命名习惯一致的方式。

谷歌开源深度学习街景文字识别模型:让地图随世界实时更新

例:从来自巴西的数据中习得的文本规范化。在这里,系统将「AV.」改成了「Avenida」,并且将「Pres.」改成了「Presidente」,这正是我们想要的。

谷歌开源深度学习街景文字识别模型:让地图随世界实时更新

在本例中,模型并没有因为图中有两个街道名而晕头转向,它很好的将「Av」转换成了「Avenue」,同时它也正确地忽略了数字「1600」。

尽管该模型很精确,但是它也还是存在一系列达 15.8% 的错误率。然而,通过分析错误的例子,研究者发现其中 48% 是由于现实场景就是错的。这突显出新模型与标记质量平分秋色(对错误率完整的分析可参见论文)。

与提取街道数字的系统结合后,这个新系统让我们可以从图像中直接创造出新的地址,要知道这些街道名字或是地址的位置在事先是不知道的。现在,只要一台街景车开到任何一条新修的街道上,谷歌的深度学习系统就可以分析被捕获的成千上万张图像,提取街道名字和数字,并且适当的在谷歌地图上自动创造和定位新的地址。

但是,自动创造地址对于谷歌地图来说还不够——研究人员在未来希望能够依据名字来提供对商户的导航。2015 年,谷歌发表了「从街景图像中发现大规模商户(论文地址:https://arxiv.org/abs/1512.05430)」的论文,它为人们提供了一个可以在街景图像中精确探测商户标牌的方法。

通过使用不同的训练集,谷歌用于读取街道名字的模型架构也同样可被用于从商户外墙上精确提取商户名字。在这个例子中,深度学习系统可以仅提取这样的商户名字:它们让开发者可以验证自己是否已从谷歌地图中知道了这家商户。这种提取商户名的功能让开发者们可以更精确地持续更新商户变化的情况。

谷歌开源深度学习街景文字识别模型:让地图随世界实时更新

尽管没有从图片名称中获取任何有关真实地址的信息,系统还是识别出了商户名「Zelina Pneus」。模型也没有被商户名旁边的轮胎品牌(普利司通)所迷惑。

将超过 800 亿张街景图使用这一模型处理是一个十分耗费计算能力的任务。对此,谷歌 Ground Truth 团队使用了新研发的 TPU,极大地解决了计算机资源的耗费。

人们依赖于谷歌地图的协助,而让地图随着城市、道路与商业区域的成长而同步更新仍然是一个非常有挑战性的任务。谷歌 Ground Truth 团队将会继续努力,将更多机器学习技术带给谷歌地图的用户。

论文:Attention-based Extraction of Structured Information from Street View Imagery

论文链接:https://arxiv.org/abs/1704.03549

谷歌开源深度学习街景文字识别模型:让地图随世界实时更新

我们提供了一个神经网络模型——基于 CNN、RNN 和一种全新的注意机制,它在 FSNS 数据集挑战中达到了 84.2% 的准确率,大大超过了此前最好的模型(Smith, 2016;准确率 72.46%)此外,新的模型比旧模型更加简单,也更具通用性。为了展示新模型的能力,我们让它在更具挑战性的谷歌街景图数据集中读取商户名。最后,我们研究了在不同 CNN 深度的情况下速度/准确性的变化趋势,我们发现更深并不一定意味着更好(在准确性和速度上都是这样)。我们的最终模型简单、快速而且准确,可以在具有挑战性的真实世界环境中应用于多种不同任务。

相关推荐