mcpField
F
find-the-original-image

find-the-original-image

github.com/useosint安全5756.5k 次安装12 周前更新
代码仓库

关于 find-the-original-image

面向调查人员和核查者的反向图像搜索技能,目标是找到最早发布页面,而不只是相似图片。它结合多种搜索引擎、裁剪重搜和页面核验,并说明人脸搜索的法律与误判风险。

主要功能

  1. 01按图像内容选择搜索引擎
  2. 02裁剪、翻转并重新搜索
  3. 03提取视频关键帧进行检索
  4. 04核对发布页面、日期与署名
  5. 05说明人脸搜索的风险与限制

适用场景

  1. 01确认新闻照片是否早于当前事件
  2. 02追查图片的摄影者、说明和首次发布页
  3. 03通过标牌或局部画面定位旧图来源

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/useosint/skills --skill find-the-original-image

安装后在 Claude Code 中输入/find-the-original-image确认已加载。

附带文件reference/engine-matrix.mdreference/preprocessing.md

详细介绍

查找图片的原始出处

目标几乎从来都不是“找到匹配项”,而是找到最早发布这张图片的页面并阅读其内容。匹配项只能告诉你这张图片还出现在别处;最早发布的页面则能告诉你摄影师、日期、说明文字和姓名——而这些才是你真正要据此继续查找的信息。

初学者常犯的错误:把整张图片上传到一个引擎,什么也没找到,就认定这张图片没有被索引。裁剪出一个独特物体再重新搜索,往往能找到整图搜索找不到的内容。

根据手头的图片选择引擎

你手头的图片首选原因
一张人脸Yandex它的索引围绕人脸相似度构建,因此会返回长相相似的不同人物,以及同一个人在其他照片中的影像。其他通用引擎都做不到这一点。
一张人脸,但 Yandex 搜索失败专用人脸搜索引擎(见下文)只有在确认法律和同意方面的问题后再使用。
北美/西欧以外的街景Yandex它深入索引了 Google 爬取不足的俄罗斯、中亚、东欧、土耳其和中国网络内容。
商品、书籍封面、艺术品、植物、动物Google Lens它具备物体和实体识别能力,并与 Shopping 和 Knowledge Graph 关联。
图片中的文字Google Lens它会对整张图片进行 OCR,让你搜索提取出的字符串。文字往往就是答案,图片搜索反而无关紧要。
地标或知名建筑Google Lens地标分类是它最突出的单项功能。
杂乱照片中的特定区域Bing Visual Search在上传的图片上框选一个区域,它就会只针对该区域重新搜索——这是所有引擎中最快的裁剪后重试方式。
新闻照片、梗图,或任何你怀疑年代久远的图片TinEye它是唯一能按发布时间从早到晚排序、并且能可靠找出经过修改的副本的主流引擎。
中文内容或托管在中国的内容Baidu 图片搜索其他引擎根本不具备这样的覆盖范围。

至少使用三个引擎。它们经常给出不同结果,而这种差异本身就是信息:TinEye 找到多年前的精确副本,而 Lens 只找到近期转发内容,这正是媒体被反复转载的典型特征。

各引擎的实际工作方式

Yandex 根据视觉相似度进行匹配,并且对人脸有很强的识别能力。它的结果页会将“包含此图片的网站”与“相似图片”分开列出——只有前一类才是证据。与其他引擎相比,它更能处理裁剪、旋转和严重重新压缩的图片。

Google Lens 已从整图重复匹配转向“这是什么,我能卖给你什么”。查找图片出处时,请使用列出包含该图片页面的选项,而不要使用视觉匹配轮播;还要预料到它可能会把视觉相似但毫不相关的照片当作匹配项返回。

Bing Visual Search 介于两者之间。使用它的理由是区域选择工具:无需下载、裁剪再重新上传。

TinEye 基于爬取内容构建索引,规模相对较小——很多图片搜索结果为零,但在 TinEye 中找不到某张图片并不能证明什么。它的独特之处在于:能够匹配精确副本和近似重复图片,并按发布时间从早到晚排序;还能检测出经过裁剪、颜色偏移或添加水印的副本,并将它们与输入图片并排展示。

方法

  1. 修复输入文件。 尽可能获取最高分辨率的副本——要文件本身, 而不是截图。截图会经过缩放和重新压缩,导致匹配结果减少。暂时不要删除任何内容;开始编辑副本前,先对原文件运行 secrets-in-file-metadata。
  2. 完整画面,使用所有引擎。 成本低,有时可以瞬间完成。
  3. 裁剪并重新搜索。 这是整个技能中效果最好的一步。完整画面的指纹主要由背景决定;紧贴人脸、标牌、徽标、车辆、纹身、建筑转角等区域裁剪,然后分别搜索每个裁剪图。转载内容会被裁剪并重新取景,因此完整画面匹配不上时,裁剪图往往能匹配。
  4. 水平翻转。 镜像是规避自动匹配的常见手段,也是屏幕录制和视频转载中的常见情况。翻转后,用相同的引擎重新搜索。
  5. 对低质量输入进行预处理并重试——放大、降噪、校正色阶。请参阅 reference/preprocessing.md。
  6. **处理视频时,**提取关键帧并将其作为静态图像搜索。搜索开头、中间和结尾的帧,以及任何包含标牌或人脸的帧。命中关键帧通常能破解视频来源之谜。
  7. 按时间从早到晚排序。 在 TinEye 上按最早时间排序。然后将该日期视为一个上限,而非结论,并继续执行第 8 步。
  8. 阅读匹配页面。 打开这些页面,收集:摄影师署名、图片代理机构、说明文字、人物姓名、页面上的日期、图片 URL 中的文件名(通常形如 2019-04-city-event-03.jpg),以及周边文章文字。线索就在这里。

确认首次发布,而不只是找到匹配项

已知最早副本的日期,说的是你的搜索覆盖范围,而不是整个世界。要提高结论的可信度:

  • 将匹配页面自身的日期与 read-deleted-pages 对照——存档对该 URL 的首次抓取时间可以界定页面实际存在的时间,而页面显示的日期可能被其 CMS 回填或推后。
  • 通过 google-like-a-spy 使用日期限定搜索运算符,查找对同一事件或说明文字的更早文字提及。
  • 查找同一图片的更高分辨率版本。分辨率最大的版本通常最接近源文件;通讯社的图片会比 Twitter 上的转载大。TinEye 的最大图片排序在这里很有用。
  • 检查显而易见的图库。如果一张照片被署名为来自三个国家的三场不同新闻事件,那它就是图库图片,而“原图”是授权页面。
  • 画面中的水印和通讯社标识比任何索引都可靠。裁剪水印并单独搜索。

人脸专用引擎及不应使用它们的情形

PimEyes 和 FaceCheck.ID 会抓取开放网络中的人脸,并根据生物特征相似度进行匹配。它们能找到通用引擎找不到的人。不过,它们也会带来实际风险:

  • 根据 GDPR 第 9 条,面部模板属于生物特征数据——这是一种特殊类别的数据,需要明确的合法依据,而不仅仅是合法利益。伊利诺伊州 BIPA 和德克萨斯州 CUBI 规定,未经书面同意收集生物特征标识符,可引发私人诉讼权和法定赔偿。
  • PimEyes 自己的条款将其定位为搜索本人面孔的工具,并提供退出选项。无论你的意图如何,使用它搜索第三方的面孔都违反其条款。
  • Search4Faces 会索引俄罗斯社交平台上的人脸;当目标人物在 VK 或 Odnoklassniki 上留有足迹时,它是实用的选择。

只有在获得书面授权或出于正当的保护目的时,才使用人脸搜索——例如在欺诈案件中核实交易对象、征得目标人物同意后进行身份验证、寻找失踪人员,或检查你自己的信息暴露情况。不要用它根据照片识别陌生人、给抗议人群中的面孔附上姓名,或定位某位私人个体。在案件档案中注明你使用了该工具以及使用原因。单独来看,人脸引擎的命中结果应视为未经确认——相貌相似导致的误报很常见,而且引擎不会提供可供审查的推理依据。

容易出错的地方

  • 相似不代表相同。 每个引擎都会把“包含这张图片的网页”和“看起来像这张图片的图片”混在同一个视觉网格中。只有前者是证据。打开候选结果并比较像素级细节来确认,例如手的位置、衣物褶皱或反光。
  • 默认没有结果,不代表有结论。 未被索引、刚发布、需要登录才能访问以及仅限应用内查看的图片,都可能搜不到。“四个引擎都没有结果”只表示该图片不在这些索引中;这只能作为原创性的弱证据,完全不能证明其真实性。
  • 图库照片会干扰归属判断。 一张出现在四十个互不相关网站上的“CEO”头像,很可能是图库模特照,而使用该头像的实体可能是假的——这本身就是一项调查发现,而且是很有价值的发现。
  • AI 生成的图片没有可追溯的源头。 零匹配加上生成式特征,是一种独立的调查结果;应将其交给 is-this-photo-real,而不是据此断定该照片是尚未发布的原创作品。
  • 引擎会改写历史。 搜索结果无法复现:索引会移除网页,结果顺序会改变,你上周找到的命中项可能已经消失。找到结果后,立即截取结果页面并存档匹配网址。
  • 反向裁剪也会误导。 裁剪草地或天空会返回成千上万条看似确定、实则毫无意义的匹配结果。应裁剪出不寻常的部分,而不只是图片中存在的部分。
  • 你可能会泄露信息。 将客户的图片上传到商业引擎,会把图片披露给该服务商,还可能暴露你正在调查的对象。对于敏感材料,应搜索省略身份识别细节的裁剪图,或者不要搜索。参见 investigate-without-getting-made。

置信度分级

  • 已确认的原始来源——你找到的网页早于其他所有副本,由可信的原始发布者(摄影师、机构或目标人物自己的账号)托管;网页上的日期得到独立存档记录的佐证,且不存在尺寸更大或发布时间更早的版本。
  • 较可能——各引擎检索到的最早副本一致,托管方也可信,但日期仅依据网页自身的说法,或者存档没有该时期的记录。
  • 仅确认匹配——你只能证明该图片在某个日期之前出现在某个网址上。只能如实说明这一点,不要将其升级为“原始来源”。
  • 未经确认——未经像素级验证的视觉相似、人脸引擎的命中结果,或无法复现的单一引擎搜索结果。

实例

一个账号发布了一张照片,配文为“今早警方突袭,[城市]”。

在 Lens 中查看整张图片:只有通用的防暴警察素材图。Yandex:找到十几张类似的警察照片,但都不匹配。TinEye:没有结果——我会将此视为没有参考价值,因为 TinEye 的索引规模较小。

裁剪肩章,在 Bing 中使用区域选择重新搜索。结果显示,这是一支来自其他国家的市政警察队伍,与配文所称的国家不同。

裁剪背景中的店铺招牌,在 Lens 中进行 OCR,然后将店名作为文本搜索。找到两个结果,都是那个其他国家的一条街道。图像搜索本身没有进展——但通过文本切入找到了线索。

回到 Yandex,用店面裁剪图搜索:找到一组三年前的新闻图片集,街道、商店遮阳篷和路障布局都相同。图片注明了摄影师。Archive 显示,该图片集页面在标注日期两天后被存档,进一步佐证了这一点。

结论:已确认,这张图片早在所称事件发生前几年就已在另一个国家发布。图片被重新置于不同背景,而非伪造。将地点交给 geolocate-from-pixels,将摄影师署名交给 find-anyone。

线索转接

你找到的内容转交给
地点、街景、店面geolocate-from-pixels
有名有姓的人物、摄影师署名find-anyone
发布网站或机构域名who-owns-this-domain
已失效或被修改的匹配页面read-deleted-pages
配文、店名、文件名中的标识google-like-a-spy
疑似篡改或生成的内容is-this-photo-real
发布账号、在其他地方重复使用的头像hunt-a-handle、pattern-of-life-from-socials
完整的照片/视频地理定位案例where-was-this-taken

各搜索引擎的选择详情: reference/engine-matrix.md。

评论

支持 Markdown