你把一张截图丢进谷歌图片,回来的是一堆不相干的图库照片。问题不在你的图糊,而在于你拿错了搜索引擎,问了错的问题。

谷歌以图搜图找的是整张图片的副本和近似副本,在它抓取公开网页建起来的索引里找。有两件事让这套模型在成人影片画面上失效:谷歌并不抓取大多数这类站点,而一帧视频画面在任何地方都不是一张已发布的图片,所以根本没有副本可找。

谷歌以图搜图实际上在比对什么?

它比对的是整张图——构图、色彩布局,以及已知的重复图。它是一个近似重复检测器,不是一套人脸识别系统。

这个区别就是全部关键。如果你上传的是一个人在卧室里的一帧画面,谷歌找的是其他共享这份整体视觉指纹的图片。它问的不是「这张脸是谁?」它根本没有理由把脸单独拎出来。

要找一个人,有用的比较不是图对图,而是脸对脸:检测出人脸,把它归一化到一个标准姿态,转换成一个数值向量,再拿这个向量去和你已经索引过的每一张脸比对。

谷歌的索引里为什么没有这些页面?

好几层过滤叠在一起,每一层都削掉片库的一块:

障碍 对以图搜图的影响
安全搜索过滤 就算被索引了,成人图像在结果页上也会被压制
robots.txt 排除规则 很多成人站点在图库和缩略图路径上屏蔽爬虫
登录墙与年龄墙 挡在后面的内容,爬虫从来抓不到
播放器生成的画面 你截下的那一帧,从来没有作为文件被发布过

最后一行是大家最容易低估的。当你把视频暂停、截下屏幕,你造出来的是一张在网上从未以文件形式存在过的图片。世界上没有任何爬虫有它的副本。近似重复比对根本没有可比对的对象。

为什么裁出人脸反而更差,而不是更好?

因为裁切恰好把谷歌正在用的那个信号剥掉了。

整图比对依赖的是背景、布局和色彩分布。裁到只剩脸,你就删掉了其中大部分,留下一小块在像素层面跟几百万张别的脸都很像的区域。你把这张图变得更不独特了,而这套系统一开始就不是在看身份。

这是个很好的诊断方法:如果一个工具在你裁出人脸之后变得更差,那它做的就不是人脸搜索。

真正有用的是什么:人脸向量

人脸搜索把操作顺序倒了过来。它比较的不是图片,而是人脸的数学描述

  1. 检测出人脸和它的关键点——眼睛、鼻尖、嘴角
  2. 对齐,用这些关键点把歪着的头和正对镜头的头变得可比
  3. 编码,把对齐后的人脸变成一个向量——在我们这里是 512 个数字(ArcFace)
  4. 比对,用余弦相似度把这个向量和每一张已索引的脸做对比

因为第 3 步扔掉了姿态、光线和背景,同一个人相隔多年、在不同房间拍的两张照片,在向量空间里仍然会落得很近。这是整图比对在结构上做不到的事。

索引也必须用对的素材来建。我们的索引包含 241,792 张人脸,取自 106 个站点上的成人影片封面和画面(我们的索引,2026-08 快照)。一个通用图片索引里根本没有这些素材,所以不管算法多好,通用工具都返回不了它们。

**有一条界线值得说清楚:**我们的覆盖并不均匀。我们的代表图有很大一部分来自少数几个来源,所以一部只存在于我们没有索引的站点上的作品,是找不到的。没有哪个人脸索引能覆盖一切,任何声称做得到的工具都在夸大其词。

多像才算「够像」?

两个人脸向量之间的余弦相似度取值从 0 到 1。在我们的数据上,针对视频截图校准出来的阈值是 0.40——高过它,两张脸就被当作很可能是同一个人。

这一点对诚实地读结果很要紧。稠密向量检索永远会返回点什么,哪怕正确答案根本不在里面。0.42 的结果和 0.85 的结果,在列表里看上去一模一样,含义却天差地别。任何给你看匹配却不给你看分数的工具,藏起来的正是你需要的那部分。

相关问题


你可以直接测一下这个差别:把同一张截图分别传到这里和谷歌图片。检测在你的浏览器里完成——原图永远不会离开你的设备,只有裁切出来的人脸区域会被送去比对。