我们的官方 iOS 应用已在 App Store 上线免费下载

图片地理定位api:能告诉你什么,又有哪些局限

· 阅读约 1 分钟

简要回答

图片地理定位api接收一张图片,返回其拍摄地点的估计,包括国家、地区或城市、大致坐标和置信度分数。估计依据的是建筑、标识和植被等可见证据,并非 GPS 读数,单靠像素无法得出具体的街道地址。

这个名称在写任何代码之前就会引起混淆。浏览器的Geolocation API报告的是设备当前所在的位置,而且只有在用户授予权限之后才会如此。图片地理定位 API 回答的是另一个问题,针对另一种输入:这张照片是在哪里拍的?照片可能是十年前拍的,也可能来自地球上的任何地方。

还有三种相邻技术也被称为“定位照片”:读取 GPS 元数据、以图搜图和地标识别。它们返回的结果不同,失效方式也不同,因此在选择方案之前,最好先弄清你的产品真正要问的是哪个问题。

图片地理定位api实际上做什么?

它从像素中推断位置。模型会读取道路标线、建筑、植物、标识上的文字和光线质量等证据,然后报告大多数证据一致指向的地点,并给出证据一致程度的分数。

许多研究系统把它当作分类问题来处理。PlaNet是谷歌研究人员于 2016 年提出的模型,它把地球表面划分为数千个单元格,并用数百万张带地理标签的照片训练网络,以预测图像属于哪个单元格。输出是覆盖全球的概率分布。一张里斯本有轨电车的照片会把概率集中在一处;一张松树林的照片则把概率分散到好几个大洲。置信度分数实际上就是对这种分布集中程度的概括。

对产品设计来说,最重要的细节是:照片不必已经存在于网上。该 API 可以处理从未发布过的照片,并且即使证据很弱,它也会给出答案,这就是为什么分数与地点同样重要。模型如何理解一个场景另有介绍;本指南关注的是如何处理其输出结果。

精度的分布本身也是不均匀的。PlaNet 给拍摄密集的地区划分了更小的单元格,而给稀疏的地区划分了大得多的单元格,因此在一些城市地区它能达到街道级别的精度,而农村地区则落在大得多的单元格里。多数模型在训练照片密集的地方也会更精确。

它与 EXIF GPS、以图搜图和地标识别有什么不同?

EXIF GPS 是存储在文件中的测量值。以图搜图是在网上查找图片的副本。地标识别用来辨认著名建筑。图片地理定位 API 则从场景本身推断区域,这是既没有元数据、网上也没有副本的普通街景照片唯一可行的方式。

方法读取什么返回什么失效情况
EXIF GPS设备写入文件的坐标一个测得的点,通常在空旷天空下精确到 5 米以内元数据被去除(大多数平台在上传时都会去除)
以图搜图网上已有的图片副本匹配的图片及其所在的页面场景从未被发布过
地标识别知名的自然和人造建筑结构地标名称、分数以及地标的坐标画面中没有著名的建筑结构
照片定位整个场景中的视觉证据城市、地区或国家的估计,附带置信度分数画面中没有任何地理证据
从图片获取位置的四种方式

EXIF GPS 是测量值,而非估计

手机记录位置时,坐标会写入 EXIF 数据中专门的 GPS 部分,标签包括 GPSLatitude 和 GPSLongitude。GPS.gov 给出的智能手机在空旷天空下的典型精度为 4.9 米。没有任何视觉方法能接近这个精度,因此一个可靠的流程会先读取元数据,只有在缺失时才进行推断。对于已经经过社交平台的图片,元数据通常已经不在了,因为上传时的重新编码会去掉它。

以图搜图是一种查找

Google Cloud Vision 的网页检测展示了这一类方法的基本形态。它返回的字段包括 fullMatchingImages、partialMatchingImages 和 pagesWithMatchingImages。当存在匹配时,匹配图片所在的页面往往会直接说明地点,这比任何估计都更可靠。如果照片是私人的或原始的,就没有可以匹配的内容。引擎对比讲的是同一思路的消费级版本。

地标识别能认出著名地点

Cloud Vision 的地标检测“检测图像中知名的自然和人造建筑结构”。每个结果都包含 description 字段(即地标名称)、score、标示其在画面中位置的 boundingPoly,以及坐标列表 locations。Google 自己的示例返回的是圣瓦西里大教堂,分数为 0.78。

有两个细节会让团队出错。一是普通街道根本不会返回任何地标,因此覆盖范围很窄。二是坐标可能描述的是地标,而不是相机的位置:Google 的参考资料指出,一个位置可能描述图片中的场景,另一个位置则可能描述照片的拍摄位置。在塞纳河对岸拍摄埃菲尔铁塔的人,可能站在离铁塔本身坐标几百米远的地方。

照片定位能为任何室外场景估计区域

在这四种方法中,视觉推断是唯一能对一条从未上过网的普通街道有所说明的方法。代价是精度:结果是城市或地区加上置信度分数,而不是测得的精确点,而且没有任何地理证据的画面只会得到很弱的答案,甚至没有答案。

图片地理定位api会返回什么?

通常是一个或多个层级的地点估计,例如国家、地区和城市,外加代表该估计的大致坐标和置信度分数。设计良好的响应还会在文件仍然保存有 GPS 元数据时单独报告它,从而确保测量值不会被误认为是猜测。

字段含义使用方法
国家、地区、城市证据所指向的地点,分为几个层级显示置信度所支持的最具体层级
大致坐标代表估计区域的一个点,而不是相机的位置只显示城市标签或区域,绝不显示街道级别的图钉
置信度分数视觉证据的一致程度根据你自己标注的测试照片设定阈值
EXIF GPS(如果存在)设备测得并存储在文件中的坐标将其保留在单独的字段中;它的优先级高于任何估计
典型的响应字段,以及如何处理它们

一个要避免的设计错误,是把估计坐标和 EXIF GPS 合并到同一个位置字段中。这样一来,下游代码以及阅读其输出的人,就会用对待卫星定位的信心来对待一个城市级的猜测。在界面中展示时,应把测得的位置和推断的位置分开保存,并分别标注。

估计坐标同样需要小心。为波尔图返回的一个点,代表的是数平方公里的区域。如果在街道级缩放比例下把它标成图钉,用户就会读出一种根本不存在的精度。

GeoSpy AI API 将返回什么?

GeoSpy AI API 尚未开放。它的设计目标是返回网站分析今天返回的相同字段:城市、地区和国家的估计,置信度分数,估计的大致坐标,以及在上传文件仍包含 EXIF GPS 坐标时返回这些坐标。

这份清单与上表直接对应。它不包含街道地址,因为视觉证据无法支持地址;并且它把元数据读取与视觉估计并列列出,而不是用前者取代后者。

端点、定价、速率限制和上线日期均尚未公布,本页内容不应被理解为对这些事项的承诺。如果你正计划集成,请通过联系页面申请抢先体验,并描述你的使用场景。

在此之前,网站是对真实照片输出结果的最接近的预览。网站分析属于 GeoSpy Premium,订阅价格为每周 7.99 美元或每年 29.99 美元,到期自动续订,直到你取消;上传的照片不会被存储。

图片地理定位api有什么用途?

主要用于一致性检查和分流:标记那些可能位置与某种说法不符的照片,以便由人工复核。市场平台、新闻编辑部、旅行和照片应用、保险公司以及研究人员都有类似的需求。它关注的始终是地点,而不是个人。

  • 房源核查。一套在巴塞罗那挂牌的度假租房,如果照片明显指向另一个国家,就值得再看一眼。应把不一致的情况交给审核人员,而不是自动拒绝房源;同时请记住,室内照片占了房源照片的大部分,但模型从中能读取的信息很少。
  • 新闻编辑部核实。某张被称为展示某座城市的热门图片,在任何人发布之前,都可以用画面中的证据来检验。地理定位只能回答“在哪里”,因此要配合搜索更早的副本,正如如何核实照片中所述。
  • 旅行和照片应用。扫描的照片和导出的图片往往没有 GPS 信息。估计结果可以提示相册中的地点,或把照片归入某次旅行,前提是界面把它呈现为由用户确认的建议。
  • 保险理赔审核。当一份理赔把损失放在某个城镇,而照片却明显指向别处时,理赔人员就有理由提出疑问。仅凭估计结果,不足以拒绝任何理赔。
  • 研究。绘制大型图像档案的地理分布,或审计训练集中的地域偏差,需要大规模的粗粒度标签,而这正是这种方法擅长生成的东西。

这五种情形遵循同一模式:估计用于标记,由人来决定。如果让城市级猜测自动触发结果,那么模型的每个错误都会被大规模地放大。结构化的 OSINT 工作流程展示了估计结果在其他检查中的位置。

视觉地理定位做不到什么?

它无法从普通场景中给出街道地址,也无法可靠地处理室内和近景特写,无法判断照片的拍摄时间,无法识别其中的任何人,也无法确认图片是真实的。当某种景观或建筑风格在许多国家都存在时,它还可能自信地犯错。

其中一些限制来自证据本身,而不是模型。PlaNet 论文开篇就指出,构造一个无法推断出位置的情境是轻而易举的。一面白墙、一间酒店浴室或一盘食物都不携带任何地理信息,而无论模型变得多大,这一点都不会改变。

研究结果可以作为一个有用的现实检验。在 230 万张 Flickr 照片上,PlaNet 把 10.1% 的照片定位在 25 公里以内,这是其基准所认定的城市级精度。PIGEON发表于 CVPR 2024,它基于从 GeoGuessr 获取的街景影像训练,把超过 40% 的猜测放在了 25 公里以内。这一差距一部分来自更新的方法,另一部分来自照片本身。街景画面里充满了道路标线和标识,而一般的照片集合中,有许多画面根本没有任何地理信息。

地理定位也无法为一张图片作担保。一张由 AI 生成的街景图片,仍然会被估计为与它最相似的地点。API 回答的是“这看起来像哪个地方”,而不是“这是真的吗”。

集成之前,应如何测试这个 API?

使用你自己的、已去除 GPS 元数据的照片,并在固定距离上为结果打分,例如城市级的 25 公里和国家级的 750 公里。有意加入没有特征的照片,并检查高置信度的答案是否确实比低置信度的答案更常正确。

  1. Step 1用真实流量建立测试集演示图片都是经过挑选、必然成功的。请收集几百张与你的用户可能发送的照片相似、且真实位置已知的照片,并保持该数据集固定,以便公平地比较不同供应商和版本。个别案例同样会误导人:一个在网上流传的 1100 词的 ChatGPT 提示词给许多尝试者留下了深刻印象,但在固定的 200 张照片上,它的表现并不比一个简短的提示词更好。
  2. Step 2基准测试前先去除 GPS如果 API 还会读取元数据,带有地理标签的测试照片衡量的就是元数据读取器,而不是模型。请先从测试副本中去除 EXIF 信息,否则你记录的满分会在生产环境中消失。
  3. Step 3按固定距离打分研究基准把猜测在 1 公里(街道)、25 公里(城市)、200 公里(地区)、750 公里(国家)或 2500 公里(大洲)范围内视为正确。没有附带距离的准确率说法,无法与任何其他结果比较。
  4. Step 4兼顾城市和乡村精度往往取决于训练照片的密度,因此一个在首都很精确的模型,在农田里可能就很模糊。如果你的用户两种照片都会发送,就两种都要测试。
  5. Step 5包含没有可识别内容的照片室内、近景特写和空白天空应该返回低置信度。如果一个工具能从一间酒店房间里高置信度地认出某座城市,那么它对你的用户也会这样做。
  6. Step 6检查分数是否经过校准按置信度对结果分组,并测量每组中有多少是正确的。如果分数高于 0.8 的答案,并不明显比接近 0.4 的答案更准确,那么这个分数就不能用来设定阈值。
  7. Step 7阅读数据条款请确认图片是否会被存储、存储多久,以及是否会被用于训练。照片可能属于个人数据,尤其是当其中出现了人物的时候。

常见问题

图片地理定位api和浏览器的 Geolocation API 是一回事吗?
不是。浏览器 API 报告的是用户自己设备的位置,而且只有在用户授予权限之后才会如此。图片地理定位 API 处理的是一张图片,而这张图片可能是任何人在任何时间、任何地方拍的。
图片地理定位api能给出精确的地址吗?
仅凭视觉证据不能。相隔一公里的两条街道通常看起来很像,所以诚实的结果是城市或地区。只有当文件中的 GPS 元数据保存完好时,才能得到精确坐标。
视觉地理定位对截图有效吗?
截图不会保留原始照片的 GPS 信息,正如截图指南所解释的那样。但如果截图显示的是一个足够清晰的室外场景,视觉推断仍然有效。
GeoSpy AI API 什么时候可以使用?
尚未公布日期。开发者和产品团队现在可以申请抢先体验。在它开放之前,网站分析返回的字段,与该 API 正在设计的字段类型相同。
图片地理定位api能识别人吗?
不能。它估计的是场景所在的地点,而不是画面中出现的是谁,而且绝不应该用来定位或跟踪任何人。

参考资料

  1. Detect landmarks — Google Cloud定义、响应字段,以及得分 0.78 的圣瓦西里大教堂示例。
  2. AnnotateImageResponse — EntityAnnotation — Google Cloud分数范围 0 到 1;一个位置可能描述场景,也可能描述照片的拍摄地点。
  3. PlaNet — Photo Geolocation with Convolutional Neural Networks — Weyand, Kostrikov and Philbin (arXiv)1、25、200、750 和 2500 公里的基准距离;在 230 万张 Flickr 照片上 10.1% 的城市级准确率。
  4. PIGEON: Predicting Image Geolocations — Haas, Skreta, Alberti and Finn (CVPR 2024, arXiv)在街景影像上有超过 40% 的猜测落在 25 公里以内。
  5. GPS Accuracy — GPS.gov智能手机在空旷天空下的典型精度为 4.9 米以内。

继续阅读

Cookie 提示

除登录、语言和安全所必需的 Cookie 外,本网站还使用 Google Analytics 和 Meta Pixel 的 Cookie 来衡量访问量和广告效果。你可以在浏览器设置中屏蔽它们,详情请参阅《Cookie 政策》。