谷歌照片识别系统能识别任何照片拍摄地点

中国IDC圈3月2日报道:如果随便给你一张照片,仅凭这张照片本身让你辨别照片是在什么地方拍摄的,即使对于一个经验丰富的旅行达人而言,这都是非常困难的。如果这张照片是著名的地标性建筑,例如埃菲尔铁塔、埃及金字塔或是尼亚加拉大瀑布等地方,你可以一眼就能猜出照片是在哪里拍的。如果照片里面没有任何能说明地方和位置的线索,或是照片是在室内拍的,或照片里是一种宠物或食物,这时要再想猜出照片是在什么地方拍的,这就变得困难得多了。

不过人类还是能想尽各种办法来完成这项任务的。他们可以借助照片里的各种信息来猜出拍照的地点,比如照片里可能出现的语言,植被类型、建筑风格、服装风格、车辆靠左行驶还是靠右行驶,等等。这些都是人们的经验积累。如果让机器来完成同样的猜拍照地点的任务,很多人可能会觉得机器比人类更难完成这项任务。

然而Google的计算机视觉专家Tobias Weyand和James Philbin与Ilya Kostrikov等工程师却开发和训练了一个深度学习机器,它可以通过分析照片上的像素确定照片的拍摄地点。在辨别照片的拍摄地点方面,这个新的机器的表现竟然超过了人类,更让人不可思议的是,对于那些没有地理物质线索的宠物、食物等照片,它竟然也能辨别出照片的拍摄地点。

这个机器究竟是怎么做到的呢?其实方法也不难,至少在机器学习世界是不难的。Weyand和他的团队成员将全世界划分成一个网格,这个网格由超过26000个不同大小的方块组成,每个方块的大小由在该地点拍摄的照片的数量决定的,而其中每一个方块都代表着一个具体的地理区域。所以在拍摄的照片多的大城市,方块的密度和大小要多余那些偏远的地区。Google的团队忽略掉了海洋和两极地区,因为那些地方很少有人拍照。

4

接下来,Google的这个开发团队利用从互联网上的搜集到的各个地方的照片建立了一个数据库,再利用地理位置数据将不同的照片归入相应的网格方块中。整个数据集是非常大的,它一共包含了1.26亿张照片和所对应的拍摄地理位置数据。

Weyand和他的团队利用9100万张照片来打造一个强大的神经网络,通过照片本身就能知道照片的拍摄地点。他们的想法是这样的:你将一张照片输入这个神经网络后,就可以立刻知道照片的拍摄地点,或是最有可能的拍摄地点的一个列表。

他们然后会利用数据库中剩余的3400万张照片来验证这个神经网络的功能,他们这些将照片与这个核心网络中的照片进行比对,得到识别结果。他们将这个神经网络命名为PlaNet。

为了进一步测试PlaNet识别的准确度,Google的这个研发团队从Flickr中选取了230万张带有地理标记的照片,看PlaNet能否对这些照片的拍摄地点进行准确识别。Weyand表示,PlaNet能够以街道级精度确定3.6%的照片的拍摄地点;如果从城市级精确度来说,识别率提高为10.1%;如果从国家级精度来说,识别的准确率为28.4%;如果从大洲级的精确度来说,识别的准确率为48%。

这个识别结果看似不理想,但其实已经非常了不起了,PlaNet的表现已经略好于人工。为了说明这一点,Weyand和他的团队将PlaNet的识别结果和10名见多识广的旅行家判断结果进行了一次比赛。PlaNet判断的拍摄地点与照片的实际拍摄地点的平均差距在1131.7公里以内,而10名见多识广的旅行家判断的结果与实际地点之间的平均差距在2320.75公里以内。

“总体而言,PlaNet在50轮人机比试中胜出了28轮,平均误差为1131.7公里;人的平均误差为2320.75公里。这场人机比赛表面,PlaNet在识别照片拍摄地点方面的表现已经超过了常人。”Weyand团队这样说道。

PlaNet在识别照片拍摄地点方面为什么能表现如此优异呢?Weyand表示:“我们认为PlaNet比人有优势,因为它见过的地方比任何常人去过的地方都要多得多,此外,它还能识别出不同地方景色的细微差别,即便是那些最喜欢旅游、去过非常多的地方的旅游达人也很难看出那些细微差别。”

此外,Weyand的团队还利用PlaNet来定位那些没有任何地理位置线索的照片,比如室内拍摄的照片或是一些物体的照片,比如猫啊,狗啊。当这些照片是在同一个地方拍的照片的影集的一部分时,这个机器可以通过辨别影集中其它照片的位置的方式来辨别这些照片的拍摄地点。