利用自己的人臉資料集對人臉識別模型進行精度評測

2021-08-03 23:59:14 字數 1278 閱讀 8484

本博記錄為滷煮學習過程中的理解,作為備忘demo。其中有錯誤疏漏之處,還請大家幫忙指正。

滷煮:非文藝小燕兒

一般人臉識別模型的精度驗證都是用lfw,但是lfw的資料分布於我們實用階段有些差距,因此最好還是在我們自己實用環境下的人臉影象進行測試評估。

lfw精度評測:

利用lfw對人臉識別模型進行精度評測

以下使用的都是crop後的人臉彩色影象,人臉的命名都是以name_****.jpg的格式存放(***的長度和內容隨意)。以便區分同人(name相同)和異人*(name不同)。

(1)自己的分兩組,一組為ref_faces(m張),一組為test_faces(n張)。

(2)利用你的人臉識別模型和網路,計算所有faces的特徵。

(3)將ref_faces中每乙個face,與test_faces中的所有face一一匹配計算相似度。

將相似度存放在similarity_file.txt中,每匹配完一張ref_face,進行一次回車。最終會得到m行資料,每行n個相似度。也就是m*n的矩陣。

同時將真實匹配結果(同人為1,異人為0),以相同的方式存放在ref_file.txt中,也相當也得到乙個m*n的矩陣。

(4)ref_file矩陣的和,就是同人匹配對的個數s_n,則異人匹配對的個數d_n=m*n-s_n。

(5)以ref_file為參照,將similarity_file中的所有同人匹配概率存放到same_p向量中,所有異人匹配概率存放到diff_p向量中。

(6)由(5)的結果已經可以通過matlab繪製出概率密度figure,和累積分布figure。如下圖:

(7)對same_p進行從小到大排序,diff_p進行從大到小排序。指定乙個錯誤接受率(far),根據異人匹配總數d_n,可以計算出容錯個數miss_n,在排序後diff_p中第miss_n+1個數值,便是判定閾值。

(8)在排序後的same_p中,從頭開始查詢比判定閾值大的數,找到第乙個大於閾值的數為止。由於找到這個數之前所排查的數都是小於閾值的,因此這些就是同臉匹配失敗的結果,用其總數除以s_n就可以得到錯誤拒絕率(frr)。

備註:

far:false accept rate,錯誤接受率,指將身份不同的兩張**,判別為相同身份,越低越好

frr:false reject rate,錯誤拒絕率,指將身份相同的兩張**,判別為不同身份,越低越好

這兩個指標有明確的物理意義,far決定了系統的安全性,frr決定了系統的易用程度。

人臉識別 人臉資料集大全

資料庫描述 用途獲取方法 webface 10k 人,約500k張 非限制場景 鏈結facescrub 530人,約100k張 非限制場景 鏈結youtube face 鏈結lfw 5k 人臉,超過10k張 標準的人臉識別資料集 鏈結multipie 337個人的不同姿態 表情 光照的人臉影象,共7...

matlab 簡單的人臉識別

如下 clc clear all close all 載入影象 endbw im2bw i,graythresh i 二值化 figure subplot 2,3,1 imshow img title 原影象 fontweight bold subplot 2,3,2 imshow i title ...

android opencv 簡單的人臉識別

很簡單的人臉識別功能,識別人臉後用矩形圈出來 實現人臉識別需要模型檔案,opencv再帶的模型檔案在opencv android sdk sdk etc內 我使用haarcascade frontalface alt.xml來做人臉識別 把haarcascade frontalface alt.xm...