你把一張截圖丟進 Google 圖片,回來的是一堆毫不相干的圖庫照片。問題不在你的圖太糊,而在你拿錯了一種問題去問錯了一種搜尋引擎。

Google 以圖搜圖找的是那整張圖的副本與近似副本,找的範圍是它爬公開網路建起來的索引。有兩件事讓這個模型在成人影片的畫格上失效:Google 沒有爬多數這類站台,而一張影片畫格在任何地方都不是已發布的圖片,所以根本沒有副本可找。

Google 以圖搜圖實際上在比對什麼?

它比對的是整張圖 —— 構圖、色彩配置,以及已知的重複圖。它是一個近似重複偵測器,不是一套人臉辨識系統。

這個區別就是全部的答案。如果你上傳一張某人在臥室裡的畫格,Google 會去找其他共享那個整體視覺指紋的圖片。它問的不是「這張臉是誰?」它根本沒有理由把臉單獨切出來。

要找一個人,有用的比較不是圖對圖,而是臉對臉:偵測人臉、把它正規化到標準姿態、轉成一個數值向量,再拿那個向量跟你已經索引過的每一張臉比。

Google 為什麼沒把這些頁面放進索引?

有好幾層過濾疊在一起,每一層都削掉型錄的一塊:

阻礙 對以圖搜圖的影響
SafeSearch 過濾 成人影像即使被索引了,也會在結果呈現層被壓下去
robots.txt 排除 許多成人站台在相簿與縮圖路徑上擋掉爬蟲
登入牆與年齡牆 擋在後面的內容,爬蟲根本抓不到
播放器產生的畫格 你截下來的那一格,從來就沒有以檔案的形式發布過

最後一列是大家最低估的一項。當你把影片暫停下來截圖,你創造出來的是一張從來沒有以檔案形式存在於網路上的圖片。世界上沒有任何爬蟲手上有它的副本。近似重複比對根本沒有東西可以拿來比。

為什麼裁出一張臉反而更差,而不是更好?

因為裁切拿掉的,正好就是 Google 在用的那個訊號。

整圖比對倚賴的是背景、版面配置與色彩分布。裁到只剩臉,你就刪掉了其中大部分,只留下一小塊在像素層級上跟幾百萬張其他臉都很像的區域。你把這張圖變得更不有辨識度了,而那個系統本來就從來沒在看身分這件事。

這是一個很好的診斷方法:如果一個工具在你裁到只剩臉之後變差了,那個工具做的就不是人臉搜尋。

真正有用的做法:臉部向量

人臉搜尋把操作順序反了過來。它比較的不是圖片,而是臉的數學描述

  1. 偵測人臉與它的特徵點 —— 眼睛、鼻尖、嘴角
  2. 對齊,用那些特徵點把歪著的頭和正面的頭校到可以比較
  3. 編碼,把對齊後的臉轉成一個向量 —— 我們這裡是 512 個數字(ArcFace)
  4. 比對,用餘弦相似度把那個向量跟每一張已索引的臉比一遍

因為第 3 步把姿態、光線與背景都丟掉了,同一個人相隔好幾年、在不同房間裡拍的兩張照片,在向量空間裡還是會落在很近的地方。這是整圖比對在結構上做不到的事。

索引本身也必須是用對的素材建起來的。我們的索引收有 241,792 張臉,取自 106 個站台上的成人影片封面與畫格(我們的索引,2026-08 快照)。通用型的圖片索引裡根本沒有這些素材,這就是為什麼一個通用型的工具無論演算法多好,都回傳不出這種結果。

有一條界線值得說清楚: 我們的涵蓋範圍分布並不平均。代表圖有很大一部分來自少數幾個來源,所以一部只存在於我們沒有索引的站台上的作品,是找不到的。沒有哪一份臉部索引涵蓋一切,任何宣稱自己做得到的工具都是在誇大。

多像才算「夠像」?

兩個臉部向量之間的餘弦相似度值域是 0 到 1。在我們的資料上,針對影片劇照校準出來的門檻是 0.40 —— 高過它,兩張臉就被當成很可能是同一個人。

這對誠實地讀結果很重要。稠密向量搜尋永遠會回傳點什麼,就算正確答案根本不存在。一筆 0.42 的結果跟一筆 0.85 的結果,在清單上看起來一模一樣,意思卻天差地遠。任何給你看比對結果卻不給你看分數的工具,藏起來的正是你需要的那部分。

相關問題


你可以直接測試這個差別:把同一張截圖分別丟給這裡和 Google 圖片。偵測在你的瀏覽器裡執行 —— 原圖不會離開你的裝置,只有裁切下來的臉部區域會被送出比對。