关于 find-the-original-image
面向调查人员和核查者的反向图像搜索技能,目标是找到最早发布页面,而不只是相似图片。它结合多种搜索引擎、裁剪重搜和页面核验,并说明人脸搜索的法律与误判风险。
主要功能
- 01按图像内容选择搜索引擎
- 02裁剪、翻转并重新搜索
- 03提取视频关键帧进行检索
- 04核对发布页面、日期与署名
- 05说明人脸搜索的风险与限制
适用场景
- 01确认新闻照片是否早于当前事件
- 02追查图片的摄影者、说明和首次发布页
- 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 中找不到某张图片并不能证明什么。它的独特之处在于:能够匹配精确副本和近似重复图片,并按发布时间从早到晚排序;还能检测出经过裁剪、颜色偏移或添加水印的副本,并将它们与输入图片并排展示。
方法
- 修复输入文件。 尽可能获取最高分辨率的副本——要文件本身,
而不是截图。截图会经过缩放和重新压缩,导致匹配结果减少。暂时不要删除任何内容;开始编辑副本前,先对原文件运行
secrets-in-file-metadata。 - 完整画面,使用所有引擎。 成本低,有时可以瞬间完成。
- 裁剪并重新搜索。 这是整个技能中效果最好的一步。完整画面的指纹主要由背景决定;紧贴人脸、标牌、徽标、车辆、纹身、建筑转角等区域裁剪,然后分别搜索每个裁剪图。转载内容会被裁剪并重新取景,因此完整画面匹配不上时,裁剪图往往能匹配。
- 水平翻转。 镜像是规避自动匹配的常见手段,也是屏幕录制和视频转载中的常见情况。翻转后,用相同的引擎重新搜索。
- 对低质量输入进行预处理并重试——放大、降噪、校正色阶。请参阅 reference/preprocessing.md。
- **处理视频时,**提取关键帧并将其作为静态图像搜索。搜索开头、中间和结尾的帧,以及任何包含标牌或人脸的帧。命中关键帧通常能破解视频来源之谜。
- 按时间从早到晚排序。 在 TinEye 上按最早时间排序。然后将该日期视为一个上限,而非结论,并继续执行第 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。