百度識圖是什麼工作原理?

阿裏雲問答 2022-01-08 04:00:08 阅读数:697

百度 工作 原理

百度識圖是什麼工作原理?




采納答案1:

這種技術的原理是什麼?計算機怎麼知道兩張圖片相似呢?根據Neal Krawetz博士的解釋,原理非常簡單易懂。我們可以用一個快速算法,就達到基本的效果。這裏的關鍵技術叫做”感知哈希算法”(Perceptual hash algorithm),它的作用是對每張圖片生成一個”指紋”(fingerprint)字符串,然後比較不同圖片的指紋。結果越接近,就說明圖片越相似。下面是一個最簡單的實現:

第一步,縮小尺寸。

將圖片縮小到8×8的尺寸,總共64個像素。這一步的作用是去除圖片的細節,只保留結構、明暗等基本信息,摒弃不同尺寸、比例帶來的圖片差异。

第二步,簡化色彩。

將縮小後的圖片,轉為64級灰度。也就是說,所有像素點總共只有64種顏色。

第三步,計算平均值。

計算所有64個像素的灰度平均值。

第四步,比較像素的灰度。

將每個像素的灰度,與平均值進行比較。大於或等於平均值,記為1;小於平均值,記為0。

第五步,計算哈希值。

將上一步的比較結果,組合在一起,就構成了一個64比特的整數,這就是這張圖片的指紋。組合的次序並不重要,只要保證所有圖片都采用同樣次序就行了。得到指紋以後,就可以對比不同的圖片,看看64比特中有多少比特是不一樣的。在理論上,這等同於計算”漢明距離”(Hamming distance)。如果不相同的數據比特不超過5,就說明兩張圖片很相似;如果大於10,就說明這是兩張不同的圖片。具體的代碼實現,可以參見Wote用python語言寫的imgHash.py。代碼很短,只有53行。使用的時候,第一個參數是基准圖片,第二個參數是用來比較的其他圖片所在的目錄,返回結果是兩張圖片之間不相同的數據比特數量(漢明距離)。這種算法的優點是簡單快速,不受圖片大小縮放的影響,缺點是圖片的內容不能變更。如果在圖片上加幾個文字,它就認不出來了。所以,它的最佳用途是根據縮略圖,找出原圖。實際應用中,往往采用更强大的pHash算法和SIFT算法,它們能够識別圖片的變形。只要變形程度不超過25%,它們就能匹配原圖。這些算法雖然更複雜,但是原理與上面的簡便算法是一樣的,就是先將圖片轉化成Hash字符串,然後再進行比較。


版权声明:本文为[阿裏雲問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201080400084727.html