热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

谷歌照片识别系统可确定照片拍摄地点

谷歌的两名工程师开发出一款名为PlaNet的照片识别系统,这个系统可以通过分析照片上的像素确定照片的拍摄地点。人们通常很难仅凭肉眼观察照片上的景物判断出照片的拍摄地点。例如,这张

  谷歌的两名工程师开发出一款名为PlaNet的照片识别系统,这个系统可以通过分析照片上的像素确定照片的拍摄地点。

  人们通常很难仅凭肉眼观察照片上的景物判断出照片的拍摄地点。例如,这张照片上有着白色的沙滩,人们可能会以为这是在加勒比海的岸边拍摄的,但实际上这张照片是在马尔代夫拍摄的。

  很多人需要通过地标性景物比如自由女神像或者马丘比丘才能判断照片的拍摄地点,但是谷歌的PlaNet系统就不存在这个问题。虽然它还处于早期开发阶段,但是它的识别能力已经相当强了。

  托比亚斯·韦安德(Tobias Weyand)和詹姆斯·菲尔宾(James Philbin)是谷歌的两名软件工程师,他们与开发员伊利娅·科斯特里科夫(Ilya Kostrikov)一同建立了PlaNet系统。韦安德对《麻省理工科技评论》说:“我们认为PlaNet比人有优势,因为它见过的地方比任何人去过的地方都要多,而且还能识别出不同地方的景色的细微差别,即便是最喜欢旅游、去过很多地方的人也很难看出那些细微差别。”

  韦安德领导的开发团队将全世界划分成一个网格,这个网格由26000个不同大小的方块组成,各个方块的大小由该地点拍摄的照片的数量决定。每一个方块都代表着一个具体的地理区域。

  然后开发团队利用从互联网上的搜集到的各地区的照片建立了一个数据库,然后整理和归入对应的网格方块中。整个系统一共使用了1.26亿张照片。

  开发团队以人脑为模型建立了一个强大计算机系统,并从数据库中提取了9100万张照片来建立核心网络。他们希望最终能够达到这样一种效果:将一张照片输入这个核心网络,马上就能得到照片的拍摄地点或者至少得到最有可能的拍摄地点的列表。

  这个计算机系统会将照片与这个核心网络中的照片进行比对,然后得出初步的识别结果,之后再利用数据库中剩余的3400万张照片对识别结果进行验证,得到最终的识别结果。

  为了测试PlaNet,谷歌开发团队从网络照片库Flickr中提取了230万张带有地理标记的照片,然后让PlaNet对它们进行识别。

  韦安德领导的研发团队在学术报告中写道:“PlaNet能够以街道级精度确定3.6%的照片的拍摄地点,如果从城市级精度来说,识别率为10.1%。”

  这样的结果并不理想,但是PlaNet的表现还是超过了常人。

  平均而言,PlaNet判断的拍摄地点与照片实际拍摄地点的平均差距在1131.7公里以内,而10名见多识广的旅行家判断的结果与实际结果之间的平均差距在2320.75公里以内。

  韦安德的团队写道:“总的来说,PlaNet在50轮人机比试中赢了28轮,平均误差为1131.7公里;人的平均误差为2320.75公里。这场小规模的测试表明,PlaNet在识别街景照片拍摄地点的能力上面已经超过了常人。”


推荐阅读
  • 本文探讨了哪些数据库支持队列式的写入操作(即一个键对应一个队列,数据可以连续入队),并且具备良好的持久化特性。这类需求通常出现在需要高效处理和存储大量有序数据的场景中。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 深入理解Lucene搜索机制
    本文旨在帮助读者全面掌握Lucene搜索的编写步骤、核心API及其应用。通过详细解析Lucene的基本查询和查询解析器的使用方法,结合架构图和代码示例,带领读者深入了解Lucene搜索的工作流程。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 探讨如何优化MongoDB数据库在长时间未访问后首次查询时的性能问题,提供多种解决方案和最佳实践。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文详细介绍了如何在 MySQL 中授予和撤销用户权限。包括创建用户、赋予不同级别的权限(如表级、数据库级、服务器级)、使权限生效、查看用户权限以及撤销权限的方法。此外,还提供了常见错误及其解决方法。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • MySQL InnoDB Double Write机制详解
    本文深入探讨了MySQL InnoDB存储引擎的Double Write技术,该技术通过在内存和磁盘上创建数据页的副本,确保了部分写失效(Partial Page Write)情况下的数据完整性和可靠性。同时,文章介绍了InnoDB以页为单位进行读取和更新的机制,并详细解析了Double Write的工作原理。 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
author-avatar
手机用户2502917943
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有