Google 图片搜索的原理是什么?
Google 圖片搜索的原理是什么?
1 條評(píng)論? 分享 按投票排序按時(shí)間排序18 個(gè)回答
389贊同 反對(duì),不會(huì)顯示你的姓名 知乎用戶,安全行業(yè) XsXs、知乎用戶、知乎用戶?等人贊同 針對(duì)這個(gè)問(wèn)題,請(qǐng)教了算法組的同事,他分享了基本的思路:對(duì)于這種圖像搜索的算法,一般是三個(gè)步驟:
1. 將目標(biāo)圖片進(jìn)行特征提取,描述圖像的算法很多,用的比較多的是:SIFT描述子,指紋算法函數(shù),bundling features算法,hash function(散列函數(shù))等。也可以根據(jù)不同的圖像,設(shè)計(jì)不同的算法,比如圖像局部N階矩的方法提取圖像特征。
2. 將圖像特征信息進(jìn)行編碼,并將海量圖像編碼做查找表。對(duì)于目標(biāo)圖像,可以對(duì)分辨率較大的圖像進(jìn)行降采樣,減少運(yùn)算量后在進(jìn)行圖像特征提取和編碼處理。
3. 相似度匹配運(yùn)算:利用目標(biāo)圖像的編碼值,在圖像搜索引擎中的圖像數(shù)據(jù)庫(kù)進(jìn)行全局或是局部的相似度計(jì)算;根據(jù)所需要的魯棒性,設(shè)定閾值,然后將相似度高的圖片預(yù)保留下來(lái);最后應(yīng)該還有一步篩選最佳匹配圖片,這個(gè)應(yīng)該還是用到特征檢測(cè)算法。
其中每個(gè)步驟都有很多算法研究,圍繞數(shù)學(xué),統(tǒng)計(jì)學(xué),圖像編碼,信號(hào)處理等理論進(jìn)行研究。
=======================================================================
下面是阮一峰的一個(gè)最簡(jiǎn)單的實(shí)現(xiàn):
原文鏈接http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html?
這種技術(shù)的原理是什么?計(jì)算機(jī)怎么知道兩張圖片相似呢?
根據(jù)Neal Krawetz博士的解釋,原理非常簡(jiǎn)單易懂。我們可以用一個(gè)快速算法,就達(dá)到基本的效果。
這里的關(guān)鍵技術(shù)叫做"感知哈希算法"(Perceptual hash algorithm),它的作用是對(duì)每張圖片生成一個(gè)"指紋"(fingerprint)字符串,然后比較不同圖片的指紋。結(jié)果越接近,就說(shuō)明圖片越相似。
下面是一個(gè)最簡(jiǎn)單的實(shí)現(xiàn):
第一步,縮小尺寸。
將圖片縮小到8x8的尺寸,總共64個(gè)像素。這一步的作用是去除圖片的細(xì)節(jié),只保留結(jié)構(gòu)、明暗等基本信息,摒棄不同尺寸、比例帶來(lái)的圖片差異。 第二步,簡(jiǎn)化色彩。
將縮小后的圖片,轉(zhuǎn)為64級(jí)灰度。也就是說(shuō),所有像素點(diǎn)總共只有64種顏色。
第三步,計(jì)算平均值。
計(jì)算所有64個(gè)像素的灰度平均值。
第四步,比較像素的灰度。
將每個(gè)像素的灰度,與平均值進(jìn)行比較。大于或等于平均值,記為1;小于平均值,記為0。
第五步,計(jì)算哈希值。
將上一步的比較結(jié)果,組合在一起,就構(gòu)成了一個(gè)64位的整數(shù),這就是這張圖片的指紋。組合的次序并不重要,只要保證所有圖片都采用同樣次序就行了。 得到指紋以后,就可以對(duì)比不同的圖片,看看64位中有多少位是不一樣的。在理論上,這等同于計(jì)算"漢明距離"(Hamming distance)。如果不相同的數(shù)據(jù)位不超過(guò)5,就說(shuō)明兩張圖片很相似;如果大于10,就說(shuō)明這是兩張不同的圖片。
具體的代碼實(shí)現(xiàn),可以參見Wote用python語(yǔ)言寫的imgHash.py。代碼很短,只有53行。使用的時(shí)候,第一個(gè)參數(shù)是基準(zhǔn)圖片,第二個(gè)參數(shù)是用來(lái)比較的其他圖片所在的目錄,返回結(jié)果是兩張圖片之間不相同的數(shù)據(jù)位數(shù)量(漢明距離)。
這種算法的優(yōu)點(diǎn)是簡(jiǎn)單快速,不受圖片大小縮放的影響,缺點(diǎn)是圖片的內(nèi)容不能變更。如果在圖片上加幾個(gè)文字,它就認(rèn)不出來(lái)了。所以,它的最佳用途是根據(jù)縮略圖,找出原圖。
實(shí)際應(yīng)用中,往往采用更強(qiáng)大的pHash算法和SIFT算法,它們能夠識(shí)別圖片的變形。只要變形程度不超過(guò)25%,它們就能匹配原圖。這些算法雖然更復(fù)雜,但是原理與上面的簡(jiǎn)便算法是一樣的,就是先將圖片轉(zhuǎn)化成Hash字符串,然后再進(jìn)行比較。
感謝@喜饅頭找到了源頭 。 編輯于 2012-05-17?26 條評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 102贊同 反對(duì),不會(huì)顯示你的姓名 名稱不重要,OE2DL@THU@EE 4 Ph.D 江智彬、境界的彼方mph、黃中展?等人贊同
【多圖、多圖】
正好剛剛完成相關(guān)必修課的一個(gè)課下環(huán)節(jié)作業(yè),作業(yè)題目就是通過(guò)實(shí)際進(jìn)行圖像搜索,推測(cè)百度圖像搜索用了什么原理。
在對(duì)百度圖像檢索原理調(diào)研的過(guò)程中,發(fā)現(xiàn)目前百度可能采用的原理有:(1)基于“信息指紋”;(2)基于顏色特征;(3)取閾值分割圖像;(4)深度學(xué)習(xí);(5)跨媒體檢索。下面對(duì)各個(gè)原理進(jìn)行簡(jiǎn)要的介紹、測(cè)試以及分析總結(jié)。
1、基于“信息指紋”
1.1 原理介紹
這種檢索方法可以分為如下幾個(gè)步驟進(jìn)行:
① 縮小尺寸。
將圖片縮小到8×8的尺寸,總共64個(gè)像素。這一步的作用是去除圖片的細(xì)節(jié),只保留結(jié)構(gòu)、明暗等基本信息,摒棄不同尺寸、比例帶來(lái)的圖片差異。
②簡(jiǎn)化色彩。
將縮小后的圖片,轉(zhuǎn)為64級(jí)灰度。也就是說(shuō),所有像素點(diǎn)總共只有64種顏色。
③計(jì)算平均值。
計(jì)算所有64個(gè)像素的灰度平均值。
④比較像素的灰度。
將每個(gè)像素的灰度,與平均值進(jìn)行比較。大于或等于平均值,記為1;小于平均值,記為0。
⑤計(jì)算哈希值。
將上一步的比較結(jié)果,組合在一起,就構(gòu)成了一個(gè)64位的整數(shù),這就是這張圖片的指紋。組合的次序并不重要,只要保證所有圖片都采用同樣次序就行了。
得到指紋以后,就可以對(duì)比不同的圖片,看看64位中有多少位是不一樣的。在理論上,這等同于計(jì)算“漢明距離”(Hamming distance)。如果不相同的數(shù)據(jù)位不超過(guò)5,就說(shuō)明兩張圖片很相似;如果大于10,就說(shuō)明這是兩張不同的圖片。
1.2 分析
通過(guò)對(duì)“信息指紋”的原理介紹,我們發(fā)現(xiàn)這種方法比較看重檢索圖像的結(jié)構(gòu)以及灰度值的分布情況,不能得到RGB值的分布情況,在檢索時(shí)也不具有旋轉(zhuǎn)、平移不變性。
1.3 測(cè)試
經(jīng)過(guò)上述分析,我用MATLAB生成了幾幅圖像,然后利用百度識(shí)圖進(jìn)行檢索測(cè)試,下面是測(cè)試的結(jié)果。圖1 原圖a
圖2 圖a的檢索結(jié)果
圖3 原圖b
圖4 圖b的檢索結(jié)果
圖5 原圖c
圖6 圖c的檢索結(jié)果
經(jīng)過(guò)上面三次檢索測(cè)試,我們可以得到如下結(jié)論:
(1) 圖a和圖b之間只是旋轉(zhuǎn)了90度,結(jié)果發(fā)現(xiàn)檢索的結(jié)果也旋轉(zhuǎn)了90度,說(shuō)明百度圖片檢索對(duì)圖片的結(jié)構(gòu)的確很敏感,檢索圖像時(shí)不具有旋轉(zhuǎn)不變性;
(2) 圖c是在圖b的基礎(chǔ)上加上了一個(gè)RGB顏色分布,比較b和c的檢索結(jié)果,發(fā)現(xiàn)檢索出來(lái)圖片的結(jié)構(gòu)都比較相似,但是,后者明顯比前者多了顏色信息,這說(shuō)明百度在進(jìn)行圖片檢索時(shí),RGB顏色的分布也是檢索的依據(jù)之一;
(3) 仔細(xì)觀察圖b的檢索結(jié)果,發(fā)現(xiàn)排名第二的圖片和檢索出的其他圖片差別其實(shí)是很大的,他們?cè)谡w結(jié)構(gòu)上完全不一樣,只是局部結(jié)構(gòu)上有一些線條信息,這也是一個(gè)值得思考的地方。
2、基于顏色特征
2.1 原理介紹
基于顏色特征的圖像檢索原理的大致思想是:每張圖像都可以轉(zhuǎn)化成顏色分布直方圖(color histogram),如果兩張圖片的直方圖很接近,就可以認(rèn)為它們很相似,如圖:
任何一種顏色都是由紅綠藍(lán)三原色(RGB)構(gòu)成的,所以上圖共有4張直方圖(三原色直方圖 + 最后合成的直方圖)。將0~255分成四個(gè)區(qū):0~63為第0區(qū),64~127為第1區(qū),128~191為第2區(qū),192~255為第3區(qū)。這意味著紅、綠、藍(lán)分別有4個(gè)區(qū),總共可以構(gòu)成64種組合(4的3次方)。任何一種顏色必然屬于這64種組合中的一種,這樣就可以統(tǒng)計(jì)每一種組合包含的像素?cái)?shù)量。
上圖是某張圖片的顏色分布表,將表中最后一欄提取出來(lái),組成一個(gè)64維向量(7414, 230, 0, 0, 8, ..., 109, 0, 0, 3415, 53929)。這個(gè)向量就是這張圖片的特征值。于是,尋找相似圖片就變成了找出與其最相似的向量。這可以用皮爾遜相關(guān)系數(shù)或者余弦相似度算出。
2.2 分析
通過(guò)上述原理描述,我們發(fā)現(xiàn)基于這種原理的圖像檢索只關(guān)注圖像在統(tǒng)計(jì)意義下的RGB顏色分布信息,并不關(guān)心圖像本身的空間分布信息。
2.2 測(cè)試
圖7 原圖d
圖8 圖d的檢索結(jié)果
圖9 原圖e
圖10 圖e的檢索結(jié)果
觀察上訴測(cè)試結(jié)果,我們可以得到如下幾個(gè)結(jié)論:
(1) 還是驗(yàn)證了百度圖像檢索對(duì)結(jié)構(gòu)比較看重,檢索出來(lái)的圖像和原圖在整體結(jié)構(gòu)上保持一致;
(2) 原圖d和原圖e只是改變了一下色塊的位置,所以如果做它們的顏色分布直方圖應(yīng)該是完全一致的,但是這兩張圖片的檢索結(jié)果很相似但是并不完全相同,因此基本可以判斷百度圖像檢索肯定不可能只采用顏色分布直方圖來(lái)進(jìn)行檢索;
(3) 原圖d和原圖e唯一的差別就是色塊的位置改變了,但是檢索出來(lái)的結(jié)果并不相同,說(shuō)明百度進(jìn)行圖像檢索時(shí)應(yīng)該也是考慮了顏色在空間位置上的分布信息的。
3、取閾值分割圖像
3.1 原理介紹
首先,將原圖轉(zhuǎn)成一張較小的灰度圖片,假定為50×50像素。然后,確定一個(gè)閾值,將灰度圖片轉(zhuǎn)成黑白圖片。如果兩張圖片很相似,它們的黑白輪廓應(yīng)該是相近的。確定閾值可以采用“窮舉法”,將閾值從灰度的最低值到最高值,依次取一遍,使得“類內(nèi)差異最小”或“類間差異最大”的那個(gè)值,就是最終的閾值。
有了50×50像素的黑白縮略圖,就等于有了一個(gè)50×50的0-1矩陣。矩陣的每個(gè)值對(duì)應(yīng)原圖的一個(gè)像素,0表示黑色,1表示白色。這個(gè)矩陣就是一張圖片的特征矩陣。
兩個(gè)特征矩陣的不同之處越少,就代表兩張圖片越相似。這可以用“異或運(yùn)算”實(shí)現(xiàn)(即兩個(gè)值之中只有一個(gè)為1,則運(yùn)算結(jié)果為1,否則運(yùn)算結(jié)果為0)。對(duì)不同圖片的特征矩陣進(jìn)行“異或運(yùn)算”,結(jié)果中的1越少,就是越相似的圖片。
3.2 分析
可以看出這種方法和第一種“信息指紋”的原理是很相似的,因此也具有相似的特點(diǎn),就是都對(duì)圖像的結(jié)構(gòu)比較看重,忽視RGB顏色的分布,并且檢索圖像不具有旋轉(zhuǎn)、平移不變性。
3.3 測(cè)試
圖11 原圖f
圖12 圖f的檢索結(jié)果
圖13 原圖g
圖14 圖g的檢索結(jié)果
圖15 原圖h
圖16 圖h的檢索結(jié)果
通過(guò)上述檢索測(cè)試,我們可以得到如下結(jié)論:
(1) 圖f和圖h唯一的區(qū)別是f是彩色圖像,h是它的二值圖像,但是我們發(fā)現(xiàn)他們的檢索結(jié)果有很大的差別,彩色圖像檢索出來(lái)依然是彩色圖像,二值圖像檢索出來(lái)也都是二值圖像,至少可以說(shuō)明百度圖片檢索不可能只靠取閾值分割圖像來(lái)作為檢索依據(jù);
(2) 圖g是在圖f 的基礎(chǔ)上進(jìn)行了一個(gè)90度的旋轉(zhuǎn),發(fā)現(xiàn)兩者的檢索結(jié)果差別還是挺大的,再一次驗(yàn)證了百度圖片檢索不具有旋轉(zhuǎn)不變性;
(3) 當(dāng)用彩色人臉進(jìn)行檢索時(shí)得到的幾乎都是人臉,但是二值化后進(jìn)行檢索,發(fā)現(xiàn)檢索結(jié)果并不完全是人臉,有動(dòng)物甚至毛筆字,還是說(shuō)明原圖像RGB的分布在做檢索時(shí)還是比較重要的;
4、深度學(xué)習(xí)(Deep Learning)
4.1 原理介紹
自從Hinton在2012年將深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)帶入到圖像分類領(lǐng)域后,深度學(xué)習(xí)在圖像處理相關(guān)領(lǐng)域的研究一下子變得異常火熱起來(lái)。從2012年開始,每年ILSVRC比賽的最好成績(jī)都有比較大的進(jìn)步,特別是最近2015年百度剛宣布他們已經(jīng)將ImageNet圖像分類的top-5錯(cuò)誤率降低到5.98%,達(dá)到了目前公開的最好成績(jī),基于百度對(duì)將深度學(xué)習(xí)應(yīng)用在圖像處理領(lǐng)域的如此強(qiáng)烈的興趣和技術(shù)能力,百度很有可能已經(jīng)將深度學(xué)習(xí)的技術(shù)應(yīng)用在了圖像搜索方面。
由于現(xiàn)在關(guān)于深度卷積神經(jīng)網(wǎng)絡(luò)的資料挺多的,并且基本都還沒脫離Hinton在2012年提出的結(jié)構(gòu),所以這里不準(zhǔn)備詳細(xì)展開CNN的原理介紹。簡(jiǎn)單概括就是:利用多個(gè)隱藏層、每層多個(gè)卷積核對(duì)輸入圖像進(jìn)行卷積,每層的輸出作為下一層的輸入,最后連接一個(gè)分類器進(jìn)行分類,通過(guò)不斷的訓(xùn)練修改各層的參數(shù),最后在每個(gè)隱藏層訓(xùn)練得到一些抽象的特征圖譜,網(wǎng)絡(luò)訓(xùn)練好后就可以對(duì)輸入圖像進(jìn)行分類了。
4.2 分析
基于深度學(xué)習(xí)原理的圖像檢索,更多的是從一種圖像理解的角度來(lái)進(jìn)行的,得到的是一種更加抽象的描述,也可以理解為“語(yǔ)義”,它更多的是在解釋這個(gè)圖像描繪的是什么物體或者什么場(chǎng)景之類的。
4.3 測(cè)試
圖17 原圖i
圖18 圖i的檢索結(jié)果
圖19 原圖j
圖20 圖j的檢索結(jié)果
圖21 原圖k
圖22 圖k的檢索結(jié)果
圖23 原圖l
圖24 圖l的檢索結(jié)果
上述用于檢索的原圖都是我手機(jī)里面自己平時(shí)拍的,網(wǎng)絡(luò)上沒有的,完全的無(wú)標(biāo)注數(shù)據(jù)。我們發(fā)現(xiàn)檢索的結(jié)果在語(yǔ)義上還是比較非常相近的,背景也非常相近,百度應(yīng)該是對(duì)圖像做了一定程度的語(yǔ)義理解的。
5、利用種子圖片
5.1 原理
在2013年的時(shí)候有人將深度學(xué)習(xí)應(yīng)用在圖像檢索領(lǐng)域,大致做法是這樣的:首先它利用深度卷積神經(jīng)網(wǎng)絡(luò)和深度自動(dòng)編碼器提取圖片的多層特征,并據(jù)此提取圖片的visual word,建立倒排索引,產(chǎn)生一種有效而準(zhǔn)確的圖片搜索方法,再充分利用大量的互聯(lián)網(wǎng)資源,預(yù)先對(duì)大量種子圖片做語(yǔ)義分析,然后利用相似圖片搜索,根據(jù)相似種子圖片的語(yǔ)義推導(dǎo)出新圖片的語(yǔ)義。
5.2 分析
但如果按照上面原理的描述,似乎重點(diǎn)在于對(duì)種子圖片的判斷上,如果種子圖片判斷對(duì)了,那么檢索結(jié)果自然會(huì)很靠譜;反之,若種子圖片判斷錯(cuò)了,那么檢索結(jié)果會(huì)很糟糕。其實(shí)這更像是一種利用互聯(lián)網(wǎng)多年文本檢索的積累,進(jìn)行的一種文本與圖像之間的跨媒體檢索。
5.3 測(cè)試
圖25 圖m的檢索結(jié)果
圖26 圖m的判斷
圖27 圖m的檢索結(jié)果
上面用來(lái)測(cè)試的原圖是在網(wǎng)上找的,檢索給出的描述表明對(duì)該圖像的文本判斷是正確的,但是檢索到的結(jié)果卻并不理想,只有前兩張圖像是描述的鱷魚,其他都不是,只是背景相似。因此應(yīng)該可以得出結(jié)論,百度圖像檢索沒有利用其文本檢索的信息,純粹依靠的是輸入圖像本身的性質(zhì)。
總結(jié)
通過(guò)上述分析,對(duì)于百度的圖像檢索可以得到的判斷是:
(1) 不可能只采用“信息指紋”、顏色直方圖、取閾值分割法其中的某一種來(lái)做為判斷依據(jù);
(2) 應(yīng)該是對(duì)圖像做了語(yǔ)義理解的;
(3) 檢索的結(jié)果跟輸入圖像的結(jié)構(gòu)、RGB顏色的空間分布等信息有關(guān)系,并且檢索不具有旋轉(zhuǎn)不變性;
(4) 沒有利用文本檢索,即沒有建立文本-圖像的跨媒體檢索;【哈哈哈,好開心,因?yàn)楝F(xiàn)在老板給我定的博士方向就是跨媒體檢索~~】
對(duì)此,對(duì)百度圖像檢索所采用的原理的一個(gè)猜測(cè)是,它利用深度學(xué)習(xí)的方法進(jìn)行了圖像語(yǔ)義的理解,也有可能在某些情況下利用圖像結(jié)構(gòu)、RGB分布等信息作為輔助判斷依據(jù),并且對(duì)輸入圖像的方向性有要求。
參考資料
1、相似圖片搜索的原理;
2、Ren Wu, Shengen Yan, Yi Shan, Qingqing Dang, Gang Sun,Deep Image: Scaling up Image Recognition
編輯于 2015-10-23?18 條評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???禁止轉(zhuǎn)載 16贊同 反對(duì),不會(huì)顯示你的姓名 姚旭 雨滴點(diǎn)點(diǎn)、忍人之所不能忍、陳丟丟?等人贊同 本次google圖片搜索的升級(jí), 除了@張穎峰 提到的"相似圖片" 外還包括了一個(gè)很好玩的功能, 就是"圖片"- > "關(guān)鍵詞"的搜索功能, 和語(yǔ)音輸入一樣, 都是手機(jī)功能回歸pc的一部分, 屬于google goggles的擴(kuò)展版本. 舉例: 用圖片作為輸入, 得到結(jié)果:?http://goo.gl/1K1nH 基本原理上就是將搜索引擎的中間數(shù)據(jù)----正向索引, 進(jìn)行功能擴(kuò)展和提供服務(wù)
原先我們只能通過(guò)反向索引從"關(guān)鍵詞"- > "圖片", 現(xiàn)在可以利用正向索引從"圖片"- > "關(guān)鍵詞"
goggles原先只集中在商品上, 索引庫(kù)以amazon這類網(wǎng)站為主要的索引源, 本次升級(jí)以后, 可以看到圖片正向索引的范圍擴(kuò)大到了所有網(wǎng)頁(yè).?
算法的細(xì)節(jié)層面, 之前沒在這個(gè)方向上關(guān)注過(guò), 在擴(kuò)大索引規(guī)模和加入非商品特型頁(yè)面, 同時(shí)只能展示一個(gè)"關(guān)鍵詞"結(jié)果情況下, 對(duì)準(zhǔn)確率要求非常高, 推測(cè)google利用相似圖片進(jìn)行聚類, 在聚類后的文本關(guān)鍵詞簇中, 再次進(jìn)行簇相關(guān)性的識(shí)別, 相對(duì)于單網(wǎng)頁(yè), 明顯提高圖片的文本描述準(zhǔn)確性.?
在應(yīng)用層面, 除了單純的好玩以外, 也看到了google的野心
目前除文本外的聲音和圖片, 都可以作為輸入數(shù)據(jù)源轉(zhuǎn)化為文本進(jìn)行搜索, 可搜索的范圍在逐步擴(kuò)大, 雖然目前圖片的覆蓋范圍還很有限.
如果覺得這個(gè)功能有愛的話, 大家可以在搜圖片但google沒能給出一個(gè)關(guān)鍵詞進(jìn)行描述的時(shí)候, 花一分鐘幫google標(biāo)一個(gè)靠譜的詞出來(lái). 發(fā)布于 2011-06-21?7 條評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 1贊同 反對(duì),不會(huì)顯示你的姓名 賈永磊,圖像處理算法工程師 南美美?贊同 你在多次使用一個(gè)搜索引擎時(shí),會(huì)發(fā)現(xiàn)一些規(guī)律的,關(guān)鍵詞搜索,這個(gè)在文本搜索中是比較常規(guī)的,也是基礎(chǔ)的,你可能更關(guān)心的是它的以圖搜圖,即基于內(nèi)容的圖像檢索CBIR,在我看來(lái),google中一個(gè)應(yīng)用最為明顯的是顏色信息,這個(gè)也是最容易實(shí)現(xiàn)的特征,個(gè)人認(rèn)為特征是其一,難在特大數(shù)據(jù)庫(kù)的檢索,這個(gè)是需要技術(shù)的,當(dāng)數(shù)據(jù)量很小的時(shí)候,任何特征幾乎都可以實(shí)現(xiàn)檢索,但當(dāng)數(shù)據(jù)量很大的時(shí)候,應(yīng)運(yùn)而來(lái)的卻是很復(fù)雜的,那是一個(gè)工程性的東西。就像鐵道部售票系統(tǒng)一夜崩潰,高的并發(fā)量,高的數(shù)據(jù)量才是第一要解決的。 發(fā)布于 2012-01-12?3 條評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 2贊同 反對(duì),不會(huì)顯示你的姓名 王曉龍,There is no reason not to follow your … 趙天宇、Carl Ho?贊同 不巧的是,@阮一峰 前天更新的博客里面寫到了這個(gè)問(wèn)題
http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html 發(fā)布于 2011-07-23?1 條評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 2贊同 反對(duì),不會(huì)顯示你的姓名 Henry Li,IT/互聯(lián)網(wǎng)老兵 周joe、Max羅德里格斯?贊同 有一篇新的谷歌博客包括視頻,可以看一看:
http://insidesearch.blogspot.com/2011/07/teaching-computers-to-see-image.html
Teaching computers to "see" an image
7/20/11 | 1:15:00 PM
Last month, we announced Search by Image, which allows you to search using a picture instead of typing in words. Today, we’re giving you a look under the hood at how Search by Image uses computer vision technology to analyze your image, determine what it is, and return relevant results to you.
Computer vision technology is an active area of computer science research because it’s difficult for a computer to match a person’s ability to see and understand. Search by Image uses computer vision techniques to “see” what is in the image. Computer vision technology doesn’t look at the image filename or where the image came from -- rather, it looks at the content of the image itself to determine what that image is.
When you upload an image to Search by Image, the algorithms analyze the content of the image and break it down into smaller pieces called “features”. These features try to capture specific, distinct characteristics of the image - like textures, colors, and shapes. Features and their geometric configuration represent the computer’s understanding of what the image looks like.
These features are then sent to our backend servers and compared against the billions of images in our index to see if a good match exists. When the algorithm is very confident that it’s found a matching image, you’ll see a “best guess” of what your image is on the results page. Whether or not we have a best guess, you’ll also see results for images that are visually similar -- though they may not be related to your original image.
Check out this video below for an animated look at how Search by Image works.
Because our algorithm sees the world through the “features” that are extracted from images, those define what it can “see” well and what it can’t. We’re more likely to find a good match if your image query has a unique appearance, so landmarks like the Eiffel Tower work really well. Other things that lack distinctive features or a consistent shape, like a crumpled blanket or a puppy, don’t result in confident matches, but will return images which are visually similar in appearance. You can refine your results in those cases by giving the algorithm a hint. Add a word or two into the search box that describes the image, and the results may display better “Similar Images” results.
The results page summarizes a variety of information that we can match for your query image, including our best guess for the image, related web results, and images that are visually similar to the one you’ve uploaded.
To try out Search by Image go to?http://images.google.com?and click the camera icon, or download the extension for Chrome or Firefox.
Posted by Jingbin Wang, Software Engineer for Image Search 發(fā)布于 2011-07-22?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 4贊同 反對(duì),不會(huì)顯示你的姓名 謝祎,程序員,設(shè)計(jì)愛好者,半愈強(qiáng)迫癥患者 Carl Ho、zack Lu、匿名用戶?等人贊同 從我使用Google以圖搜圖的經(jīng)驗(yàn)來(lái)看,Google的圖像搜索應(yīng)該采用了多種不同的技術(shù)。
Google搜圖能夠找到原圖的原理應(yīng)該類似于下面的技術(shù):將圖片縮放成多個(gè)尺度的圖像,然后在不同的尺度層面提取圖像特征,建立索引,然后進(jìn)行索引后特征的比對(duì)。這種方法在找原圖上十分有效,如果圖像數(shù)據(jù)庫(kù)十分大的話。
如果找不到原圖的話,Google會(huì)提供一些相似圖像。根據(jù)我的經(jīng)驗(yàn),這些相似圖像一般與原圖像有相似的輪廓和色彩。因此,在查找原圖失敗后,應(yīng)該會(huì)查找與原圖像的輪廓和色彩比較相近的圖像。做法是將圖像分成小塊,比如8*8的子塊,然后在子塊上進(jìn)行邊緣提取或者計(jì)算色彩的均值,在檢索時(shí)將查詢圖像也進(jìn)行這樣的處理,然后按子塊進(jìn)行比較。
發(fā)布于 2012-01-03?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 0贊同 反對(duì),不會(huì)顯示你的姓名 宋健,藝術(shù)守望者創(chuàng)始人 這個(gè)問(wèn)題我不是很了解專業(yè)知識(shí),但是因?yàn)橐苍?jīng)很感興趣地研究過(guò),提供一些參考:
我最早了解“用圖搜圖”的功能是通過(guò)?http://tineye.com?,這家搜索的功能很有特色也很強(qiáng)大,只不過(guò)是服務(wù)器不很給力,有段時(shí)間慢得不行。模糊記得其介紹說(shuō)主要是通過(guò)對(duì)圖片的信息進(jìn)行“采樣”來(lái)對(duì)比圖片,通過(guò)特征采樣,它就可以只對(duì)采樣后的信息進(jìn)行對(duì)比,也不用擔(dān)心圖片大小被改變或者被編輯過(guò)的問(wèn)題。這個(gè)方法的缺點(diǎn)是需要一張一張對(duì)互聯(lián)網(wǎng)上的圖去采樣入庫(kù),所以有時(shí)特別新鮮的圖會(huì)搜不到(因?yàn)檫€沒來(lái)得及采樣)。
Google的功能應(yīng)該是類似的,但是更別致。加上它原本就十分強(qiáng)悍的服務(wù)器支持,基本上已經(jīng)可以干掉Tineye了。不過(guò)對(duì)Tineye也沒關(guān)系,它似乎主要是出售圖像處理引擎技術(shù)給Adobe這樣的大型廠商的,所以自己是不是搜索主流引擎倒是也沒什么問(wèn)題。
另,不知Google和Tineye在幕后是否有技術(shù)合作。因?yàn)楹茉缇吐犝f(shuō)Google對(duì)Tineye的圖搜圖技術(shù)很有興趣。 發(fā)布于 2011-06-28?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 3贊同 反對(duì),不會(huì)顯示你的姓名 吳思揚(yáng),本人答案遵循 WTFPL。 田興發(fā)、張瑞、知乎用戶?贊同 內(nèi)部開發(fā)過(guò)一個(gè)類似工具,場(chǎng)景不同,在此寫出僅為整理思路,順便拋磚,大牛請(qǐng)輕拍
用于圖標(biāo)比對(duì),16*16、32*32
初始需求是公司要求圖標(biāo)盡量重用,因已有的圖標(biāo)過(guò)于繁多,一套產(chǎn)品上千枚圖標(biāo),如果做出來(lái)的設(shè)計(jì)有類似的就盡量用以前的資源
因圖標(biāo)使用的是統(tǒng)一色板,所以顏色有規(guī)律
按色板對(duì)每種顏色編號(hào),二進(jìn)制
分析當(dāng)前圖標(biāo)像素,將幾百上千個(gè)點(diǎn)的16進(jìn)制色值串聯(lián)存為字符串
結(jié)合圖標(biāo)規(guī)格,每個(gè)字符串實(shí)際上都獨(dú)一無(wú)二,除非完全重復(fù)
轉(zhuǎn)換為32進(jìn)制數(shù),便于傳參比較
這個(gè)32進(jìn)制的數(shù)就是圖標(biāo)指紋,與唯一ID掛鉤
32進(jìn)制按數(shù)字段的重復(fù)率計(jì)算是否有相同圖像區(qū)域
原理類似下面的例子
12345與234,234是重復(fù)的
0987654321與098365351765中,098和765是重復(fù)的
按最少用4個(gè)像素組成一個(gè)可見有意義的圖像元素來(lái)區(qū)分
可以得出一個(gè)重復(fù)率
比如兩個(gè)16*16圖標(biāo)
相似率100%的為8*5的區(qū)域,共1處,分別位于A圖的(x1,y1)和B圖的(x2,y2)
相似率90%的為2*2的區(qū)域,共2處,分別位于A圖的(x1,y1)(x2,y2)和B圖的(x3,y3)
最后整合這些輸入,按權(quán)重的關(guān)系給出一個(gè)整體的百分比,用于人為分析
期間探索過(guò)程比較艱辛,主要是性能和溢出的問(wèn)題,PHP的GD庫(kù)處理這個(gè)問(wèn)題時(shí)效率低下
曾打算直接用OpenCV,不過(guò)因?yàn)闆]有合適的庫(kù)函數(shù),學(xué)習(xí)時(shí)間有限,作罷
倒是看到了幾個(gè)比較合適的圖像識(shí)別函數(shù),打算今后有機(jī)會(huì)試試
每有設(shè)計(jì)師新建圖標(biāo),都需要做比對(duì),根據(jù)比對(duì)值判斷是否有雷同或相似度極高的設(shè)計(jì)
如果相似度高于90%就重用,否則再商量是否新增
但是工具做完后,領(lǐng)導(dǎo)要求變了,說(shuō)只要保證能提供就行,圖標(biāo)量多一些也OK,不費(fèi)力折騰了
所以v0.1后夭折,現(xiàn)在已轉(zhuǎn)型為一個(gè)css sprite拼接工具,按所輸入的圖標(biāo)拼接為雪碧圖,并生成樣式代碼
不過(guò)期間的探索很值得懷念,尤其是以一個(gè)交互的身份為整體工作做點(diǎn)改進(jìn),這一點(diǎn)我比較自豪 編輯于 2012-05-17?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 2贊同 反對(duì),不會(huì)顯示你的姓名 祁育,forever 2 匿名用戶、知乎用戶?贊同 應(yīng)該說(shuō)的是圖像搜索吧,就是通過(guò)圖找圖的,Google是從牛津花3億美元挖了三個(gè)博士來(lái)做這個(gè)的,Google的實(shí)現(xiàn)不太了解,淘寶的圖片搜索做的也相當(dāng)牛,單從圖片搜索的匹配度來(lái)說(shuō)并不比Google差,但是還沒對(duì)外開放這個(gè)功能,聽淘寶的負(fù)責(zé)人講過(guò),他們是先提取圖片的特征,然后用高維數(shù)組記錄,建立索引,然后去匹配,難點(diǎn)在于好多相似的圖片就是加了水印,背景不一樣,但是主體是一樣的,有些是主體上有些細(xì)節(jié)是不一樣的,這個(gè)要區(qū)分開,技術(shù)細(xì)節(jié)他沒有講,畢竟涉及到專利相關(guān)的東西 發(fā)布于 2012-05-17?2 條評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 1贊同 反對(duì),不會(huì)顯示你的姓名 李陶冶,51Nod全新改版,要做最好用的OJ 小逸?贊同 Google怎么做的不太清楚,以前我自己試著做過(guò)一個(gè)簡(jiǎn)單的。當(dāng)時(shí)用的是sift來(lái)提取每張圖片的特征。sift可以將一幅圖的特征轉(zhuǎn)為一個(gè)高維向量(比如128維),之后用KDTree建立查找樹,可以比較快的進(jìn)行索引和查找。不過(guò)說(shuō)實(shí)話在找相似上使用sift有些牛刀殺雞的感覺,并且運(yùn)算效率低。sift找出的不僅僅是相似,甚至同一本書不同角度的拍攝都能找出來(lái)。當(dāng)時(shí)還有surf可以干這事兒,據(jù)說(shuō)效率和效果都要比sift好一些,不過(guò)我沒試過(guò)。
如果LZ真心想推測(cè)一下Google的方法,可以把一張圖旋轉(zhuǎn)30度,看看能否找出相似。 編輯于 2012-05-17?1 條評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 0贊同 反對(duì),不會(huì)顯示你的姓名 馬克思到了,通信專業(yè),擅長(zhǎng)無(wú)線電通信、光通信等。 我認(rèn)為是應(yīng)用了圖形信息匹配的概念,這個(gè)技術(shù)其實(shí)很早就在其它領(lǐng)域應(yīng)用了,在上世紀(jì)海灣戰(zhàn)爭(zhēng)的時(shí)候,美國(guó)就擁有了地理信息匹配的技術(shù),那是用既有圖像和現(xiàn)地圖像進(jìn)行信息匹配。相比來(lái)講,網(wǎng)上的圖像搜索要比這個(gè)技術(shù)簡(jiǎn)單容易多了。但基本原理應(yīng)該是一樣,即對(duì)圖像進(jìn)行信息取樣,主要使用特征匹配技術(shù),因?yàn)槿绻褂没叶绕ヅ浼夹g(shù),存在數(shù)據(jù)量大,而且對(duì)相似圖像的識(shí)別會(huì)產(chǎn)生誤判,而特征匹配可以很好的減少數(shù)據(jù)量,并且很好的完成同一圖像的不同格式和版本的識(shí)別。這可能是Google將軍事技術(shù)民用化的另一個(gè)事例。
另外,在網(wǎng)絡(luò)圖像的搜索技術(shù)中,還可以增加關(guān)鍵詞的輔助算法,提高準(zhǔn)確性。也就是說(shuō)將與已知圖像的關(guān)聯(lián)關(guān)鍵詞做為輔助搜索手段。 發(fā)布于 2011-07-02?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 0贊同 反對(duì),不會(huì)顯示你的姓名 prfans海海,我思故我在 圖像檢索。 發(fā)布于 2014-02-15?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 0贊同 反對(duì),不會(huì)顯示你的姓名 Diego ddwrt 應(yīng)該是像樓主說(shuō)的這樣,不知道什么時(shí)候能夠搜索視頻 發(fā)布于 2014-08-16?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 0贊同 反對(duì),不會(huì)顯示你的姓名 劉一帆,來(lái)無(wú)影,去無(wú)蹤~~·· 這個(gè)問(wèn)題太專業(yè)了,我也來(lái)學(xué)習(xí)一下。 發(fā)布于 2014-10-12?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 0贊同 反對(duì),不會(huì)顯示你的姓名 梁念,莫忘來(lái)時(shí)路,不負(fù)少年心 還是把圖像給轉(zhuǎn)化成無(wú)數(shù)個(gè)點(diǎn)陣,然后再進(jìn)行比較之后吧 發(fā)布于 2015-02-09?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 1贊同 反對(duì),不會(huì)顯示你的姓名 蘇霧,讀萬(wàn)卷書,行萬(wàn)里路 知乎用戶?贊同 404 not found 發(fā)布于 2015-10-30?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利 0贊同 反對(duì),不會(huì)顯示你的姓名 王尼美,一本假正經(jīng),IT 人工標(biāo)注若干圖像的label, (multiple labels), 之后訓(xùn)練分類器。依賴于圖像特征的提取以及相似度的計(jì)算。 發(fā)布于 2012-05-28?添加評(píng)論?感謝? 分享 ?收藏???沒有幫助??? 舉報(bào) ???作者保留權(quán)利
總結(jié)
以上是生活随笔為你收集整理的Google 图片搜索的原理是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 指纹、虹膜和人脸之后,身份认证领域的新热
- 下一篇: [caffe] 数据制作和训练