『壹』 搜索引擎如何實現用戶圖片檢索的需求
針對輸入有兩種:
一、以文字搜圖片
在採集圖片的時候,如果是來自網頁HTML中的img標簽,通常會有alt屬性,作為圖片的註解,這可以作為圖片的標簽,還可能有頁面的標題。如果是普通的圖片,沒有alt,那通過圖片分類器,對圖片打上標簽。
有了圖片對應的標簽之後,文字搜圖片的過程就變成了文字匹配標簽的過程了,按照匹配度高低先後展示出來即可。
二、以圖片搜圖片
這個一般指的是識圖功能,即找到相似的圖片,需要計算圖片之間的相似度。
首先需要縮小圖片,灰化,然後取圖片的hash,也就是圖片的指紋。圖片都是由像素組成,每個像素點都是由紅綠藍三原色(RGB)構成的,其中每種顏色取值為0~255,因此每個像素點的取值有16777216個(256^3),像素的大小信息會在文件格式中描述出來,假如說兩張圖片的所有像素點都一樣,那肯定是同樣的圖片。但是這樣的計算量太大了,而且也容不得一點、一像素的差異,而我們想要的其實是看起來一樣的圖片。因此需要提取出圖片的hash,作為圖片的特徵。
這類演算法比較多,也是關鍵點,比如說:pHash(感知哈希演算法),大致是縮小圖片至8X8大小,去掉了圖片尺寸明暗上的差異,灰化去掉顏色,然後計算平均灰度,將每個像素與平均灰度比較,大於等於計1,小於計0,這樣的差值序列就是hash,作為圖片的特徵。
pHash有對應的開源實現,然後還有SIFT、DCT等等演算法。復雜的演算法對抗圖片的變形效果也會比較好。
在得到hash之後,通過計算兩者的漢明距離,取漢明距離小的作為相似圖片,大概是要低於5,而高於某個閾值就認為不相似。
『貳』 如何用圖片進行搜索
1、准備好需要進行檢索的圖片,比如下圖章子怡的圖片,對其進行檢索,了解是這張圖片的出處等信息;