讀古今文學網 > 刷臉背後:人臉檢測 人臉識別 人臉檢索 > 7.2 計算人臉相似度的方法 >

7.2 計算人臉相似度的方法

本章中,我們主要使用歐氏距離和餘弦相似度的度量方法作為計算圖像間相似性的依據。歐氏距離和餘弦相似度的最大區別是:前者強調點的思想,後者注重線的思想。下面我們來詳細瞭解一下它們的定義及公式。

7.2.1 歐氏距離

歐氏距離(Euclidean Distance)是一種常用的距離定義,指n維空間中兩個點之間的實際距離,也就是說,我們將高維空間向量都視為一個高維空間上的點,用歐氏距離即可求得兩點間的距離。文獻[1]給出了n維空間中的歐氏距離公式。

n維歐氏空間是一個點集,它的每個點X或向量x可以表示為(x[1],x[2],…,x[n]),其中x[i](i = 1,2,…,n)是實數,稱為X的第i個坐標。

兩個點A= (a[1],a[2],…,a[n]) 和B= (b[1],b[2],…,b[n])之間的距離ρ(A,B)定義為下面的公式:

向量x= (x[1],x[2],…,x[n]) 的自然長度|x|定義為下面的公式:

計算歐氏距離的代碼如下:

7.2.2 餘弦相似度

餘弦相似度是利用求兩個向量之間的餘弦相似度來衡量兩個向量之間的夾角。餘弦相似值越接近1,夾角越小,它們的方向就越吻合,則認為它們越相似;反之,則越不相似。文獻[2]給出了n維空間上的餘弦相似度公式。

對於n維空間,設向量A = (A1,A2,…,An),B = (B1,B2,…,Bn)。其中分子是兩個向量的內積或稱點積,分母是兩個向量的歐幾里得長度的乘積。

本章算法中我們計算餘弦相似度的代碼如下:

除歐氏距離和餘弦相似度外,漢明距離(Hamming Distance)也是一種常用的計算兩個向量之間相似度的方法。漢明距離的思想是,一一比較每個位(屬性)上,兩個向量的值是否相同,如果不相同,則漢明距離加 1。最後得到的漢明距離越小,表明兩個向量之間的相似度越高。