2012.08.07 16:05

Google 大神,我要找的圖片不是這個!Google以圖找圖背後的AI搜尋原理是什麼?

ADVERTISEMENT

Google 搜尋已經是人們使用電腦生活的一部分,強大的圖片搜尋也帶來了不少便利,想要知道手上美女圖是誰,只要把照片丟上 Google 圖片搜尋就可以知道答案。不過 有位網友,為了要搜尋一隻模型,結果搜到了意外的答案。

延伸閱讀:手機用Google以圖搜圖這樣做,如果找不到另外加送你這兩個方法

 

ADVERTISEMENT

你要的圖片找好了

PTT 板友 a031516462 在一天想要知道手上的模型照片叫什麼名字,所以就把圖片丟到了 Google 圖片搜尋,結果在第一張就找到了神奇的照片,其姿勢和模型居然異常相似,也有推文表示搜尋沒有錯,只不過是 40 年後,不少板友也都表示 Google 大神搜尋非常精確。

▲Google 大神,我想搜尋這模型的相關照片。

ADVERTISEMENT

▲Google 大神:「不好意思沒有你要的圖片,不過下面有看像來相似的。」

ADVERTISEMENT

▲Google 大神:「這是你要的照片嗎?」

Google 圖片搜尋是怎麼做的呢?其實基本原理很簡單,只要把照片先縮小,再把顏色轉化為灰階,之後再去比對兩張圖片的灰階程度是否接近,就可以找到相似的照片。其演算法是「感知雜湊算法」(Perceptual hash algorithm),有五個步驟:

  1. 縮小尺寸:把圖片縮到 8 x 8 的大小。
  2. 簡化顏色:把圖片的色彩轉為 64 級灰階。
  3. 計算平均值:算出 64 像素的平均值。
  4. 比較像素:把每個像素和平均值比較。
  5. 計算雜湊值:根據上一步會得到64位的數字,就是這圖片的指紋,只要比對指紋就能得知是否為同圖片。

對這演算法有興趣的可以搜尋相關資料:Perceptual hash algorithm

ADVERTISEMENT

▲兩張照片縮小之後,其實相似度就已經很高,只有中間衣服的部分比較不同。

但重點是,有人知道那模型是誰嗎?

以圖搜圖技術原理

我們來介紹以圖搜圖技術的通用框架。在介紹以圖搜圖技術之前,我們來看任何一個搜索技術所擁有的基本組件。舉個例子,我們需要到圖書館查找一本書,需要幾個基本的要素:1. 圖書館(海量圖書);2. 圖書的分類、書名或者作者(在圖書館的編碼體系下,這些信息的組合能夠唯一表示這一本書);3. 圖書館的書需要按照一定的規律來布置(科目、難易程度、首字母、作者、年份等);在有了這些基本的要素之外,只要圖書館有這本書,我們就能夠快速找到它;或者即便沒有某一本具體的書,我們也能夠查詢到與這本書有著相近內容的書。

結合上面的例子,我們來看一個典型的以圖搜圖系統所包括3個基本的要素:

01. 檢索圖片庫:這就相當於上一個例子中的圖書,我們需要有一個足夠規模的圖片庫,比如淘寶的所有商品的圖片集合,比如百度圖片搜索中收集到的網際網路圖片數據集合。當然,這裡我們介紹的是一個靜態的圖片庫,在實際項目中,我們需要有能力來處理動態變化的圖片資料庫。

02. 特徵提取:這就相當於上一個例子中圖書的作者、年份、科目等等,我們稱為圖片的特徵。實際上,圖片的任何統計量都可以作為圖片的特徵,甚至圖像的像素值本身通過歸一化之後也可以作為圖片的特徵。在實際中,我們使用圖片的顏色分布、梯度變化統計量、紋理、BOW統計、底層/中層/高層語義特徵等作為圖片的特徵,非常豐富。

03. 檢索結構:檢索結構的唯一目的就是讓查找更快更准。簡單的,一一對比是最簡單的查詢結構,最准,但是最慢;所以所有檢索結構本質上都是效率和精度的平衡。常見的,我們可以對數據集進行聚類,把數據分成一堆一堆的,比對時先選擇相似的堆,然後在堆內部再進行細緻的比對。而分堆的理念又可以通過樹結構、Hash結構、倒排索引、圖結構等等來刻畫。

 

延伸閱讀:

ADVERTISEMENT