中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

相似圖片搜索的原理

2018-07-20    來(lái)源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

上個(gè)月,Google把”相似圖片搜索”正式放上了首頁(yè)。

你可以用一張圖片,搜索互聯(lián)網(wǎng)上所有與它相似的圖片。點(diǎn)擊搜索框中照相機(jī)的圖標(biāo)。

一個(gè)對(duì)話(huà)框會(huì)出現(xiàn)。

你輸入網(wǎng)片的網(wǎng)址,或者直接上傳圖片,Google就會(huì)找出與其相似的圖片。下面這張圖片是美國(guó)女演員Alyson Hannigan。

上傳后,Google返回如下結(jié)果

類(lèi)似的”相似圖片搜索引擎”還有不少,TinEye甚至可以找出照片的拍攝背景。

這種技術(shù)的原理是什么?計(jì)算機(jī)怎么知道兩張圖片相似呢?

根據(jù)Neal Krawetz博士的解釋?zhuān)矸浅:?jiǎn)單易懂。我們可以用一個(gè)快速算法,就達(dá)到基本的效果。

這里的關(guān)鍵技術(shù)叫做”感知哈希算法”(Perceptual hash algorithm),它的作用是對(duì)每張圖片生成一個(gè)”指紋”(fingerprint)字符串,然后比較不同圖片的指紋。結(jié)果越接近,就說(shuō)明圖片越相似。

下面是一個(gè)最簡(jiǎn)單的實(shí)現(xià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ù),這就是這張圖片的指紋。組合的次序并不重要,只要保證所有圖片都采用同樣次序就行了。

= = 8f373714acfcf4d0

得到指紋以后,就可以對(duì)比不同的圖片,看看64位中有多少位是不一樣的。在理論上,這等同于計(jì)算”漢明距離”(Hamming distance)。如果不相同的數(shù)據(jù)位不超過(guò)5,就說(shuō)明兩張圖片很相似;如果大于10,就說(shuō)明這是兩張不同的圖片。

具體的代碼實(shí)現(xiàn),可以參見(jiàn)Wote用python語(yǔ)言寫(xiě)的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)行比較。

這篇文章還有續(xù)集,請(qǐng)看這里。

標(biāo)簽: Google 代碼 互聯(lián)網(wǎng) 搜索 搜索引擎 圖片搜索引擎

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀(guān)點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:相似圖片搜索的原理(二)

下一篇:.NET邏輯分層架構(gòu)總結(jié)