最近遇到項目需要分析圖片相似度。
圖像相似度計算主要用於對於兩幅圖像之間內容的相似程度進行打分,根據分數的高低來判斷圖像內容的相近程度。還有一種應用就是基於圖像內容的圖像檢索,也就是通常說的以圖檢圖。
相似度分析之前,需要做一些相關的預處理,一般的有灰度化、縮放等。
主流算法大概分爲以下幾種:
1)直方圖算法:
計算兩張圖像直方圖,歸一化,計算歐式距離,巴式距離,卡方係數等。
優點:速度快
缺點:只考慮顏色概率分佈,對位置沒有考慮。
2)哈希算法(指紋編碼)
計算圖像的“指紋信息”。將圖像歸一化成一定大小,計算 一個序列作爲他的指紋信息,然後比較兩張圖片指紋信息序列相同的位數。
根據比較編碼方式不同,主要分爲均值、差異、感知哈希算法。
3)SSIM(結構相似性度量)
全參考的圖像質量評價指標,分別從亮度、對比度、結構三個方面度量圖像相似性。
4)cosin相似度(餘弦相似度)
把圖片表示成一個向量,通過計算向量之間的餘弦距離來表徵兩張圖片的相似度。
5)均方誤差MSE和峯值信噪比PSNR
均方值誤差:
PSNR本質上與MSE相同,是MSE的對數表示:
PSNR是最普遍和使用最爲廣泛的一種圖像客觀評價指標,然而它是基於對應像素點間的誤差,即基於誤差敏感的圖像質量評價。
暫時寫到這,有空更新代碼和具體分析。