LFW介绍整理
本篇博客主要介紹了,使用LFW數(shù)據(jù)集測(cè)是dlib模型準(zhǔn)確率的過程。是一個(gè)小白入門的介紹,大神可自行繞過。
LFW概述
1. 人臉檢測(cè)測(cè)試數(shù)據(jù)庫:
fddb:http://vis-www.cs.umass.edu/fddb/
2. 人臉識(shí)別測(cè)試數(shù)據(jù)庫:
lfw:http://vis-www.cs.umass.edu/lfw/#views
3. LFW(人臉比對(duì)數(shù)據(jù)集)
無約束自然場(chǎng)景人臉識(shí)別數(shù)據(jù)集,該數(shù)據(jù)集由13000多張全世界知名人士互聯(lián)網(wǎng)自然場(chǎng)景不同朝向、表情和光照環(huán)境人臉圖片組成,共有5000多人,其中有1680人有2張或2張以上人臉圖片。每張人臉圖片都有其唯一的姓名ID和序號(hào)加以區(qū)分。LFW數(shù)據(jù)集主要測(cè)試人臉識(shí)別的準(zhǔn)確率,該數(shù)據(jù)庫從中隨機(jī)選擇了6000對(duì)人臉組成了人臉辨識(shí)圖片對(duì),其中3000對(duì)屬于同一個(gè)人2張人臉照片,3000對(duì)屬于不同的人每人1張人臉照片。測(cè)試過程LFW給出一對(duì)照片,詢問測(cè)試中的系統(tǒng)兩張照片是不是同一個(gè)人,系統(tǒng)給出“是”或“否”的答案。通過6000對(duì)人臉測(cè)試結(jié)果的系統(tǒng)答案與真實(shí)答案的比值可以得到人臉識(shí)別準(zhǔn)確率。
這個(gè)集合被廣泛應(yīng)用于評(píng)價(jià) face verification算法的性能。
4. 技術(shù)報(bào)告(lfw technical report):
http://vis-www.cs.umass.edu/lfw/lfw_update.pdf
5. 測(cè)試過程概述
通過dlib進(jìn)行人臉識(shí)別網(wǎng)絡(luò)訓(xùn)練后,得到dlib_face_recognition_resnet_model_v1.dat。通常大家在LFW人臉數(shù)據(jù)集上對(duì)該模型進(jìn)行精度驗(yàn)證。以下梳理驗(yàn)證過程:
(1) 在原始LFW數(shù)據(jù)集中,截取人臉圖像并保存。(例如:可以使用開源人臉檢測(cè)對(duì)齊seetaface將人臉crop出來,并 保存,建議以原圖像名稱加一個(gè)后綴命名人臉圖像)
(2) 通過python,matlab,或者C++,構(gòu)建訓(xùn)練時(shí)的網(wǎng)絡(luò)結(jié)構(gòu)并加載dlib_face_recognition_resnet_model_v1.dat。
(3) 將截取的人臉?biāo)腿刖W(wǎng)絡(luò),每個(gè)人臉都可以得到網(wǎng)絡(luò)前向運(yùn)算的最終結(jié)果,一般為一個(gè)N維向量,并保存,建議以原圖像名稱加一個(gè)后綴命名。
(4) LFW提供了6000對(duì)人臉驗(yàn)證txt文件,lfw_pairs.txt,其中第1個(gè)300人是同一個(gè)人的兩幅人臉圖像;第2個(gè)300人是兩個(gè)不同人的人臉圖像。按照該list,在(3)保存的數(shù)據(jù)中,找到對(duì)比人臉對(duì)應(yīng)的N維特征向量。
(5) 通過cosine距離/歐式距離計(jì)算兩張人臉的相似度。同臉和異臉分別保存到各自對(duì)應(yīng)的得分向量中。
(6) 同臉得分向量按照從小到大排序,異臉向量按照從大到小排序。
(7) FAR(錯(cuò)誤接受率)從0~1,按照萬分之一的單位,利用排序后的向量,求FRR(錯(cuò)誤拒絕率)或者TPR(ture positive ratio)。
(8) 根據(jù)7可繪制ROC曲線。
6. 閾值確定
(1) 將測(cè)試人臉對(duì)分為10組,用來確定閾值并驗(yàn)證精讀。
(2) 自己擬定一個(gè)人臉識(shí)別相似度閾值范圍,在這個(gè)范圍內(nèi)逐個(gè)確認(rèn)在某一閾值下,選取其中1組數(shù)據(jù)統(tǒng)計(jì)同臉判斷錯(cuò)誤和異臉判定錯(cuò)誤的個(gè)數(shù)。
(3) 選擇錯(cuò)誤個(gè)數(shù)最少的那個(gè)閾值,用剩余9組,判斷識(shí)別精度。
(4) 步驟(2)和(3)執(zhí)行10次,將每次(3)獲取的精度進(jìn)行累加并求平均,得到最終判定精度。
其中也可以用下述方式替換
自己擬定一個(gè)人臉識(shí)別相似度閾值范圍,在這個(gè)范圍內(nèi)逐個(gè)確認(rèn)在某一閾值下,針對(duì)所有人臉對(duì)統(tǒng)計(jì)同臉判斷錯(cuò)誤和異臉判定錯(cuò)誤的個(gè)數(shù),從而計(jì)算得出判定精度。
LFW中的 pairs.txt
pairs.txt 官方介紹
第一行:300表示的是300個(gè)匹配圖片(相同的人),10表示的是重復(fù)十次
Abel_Pacheco 1 4 表示這個(gè)文件夾的Abel_Pacheco_0001.jpg 和Abel_Pacheco_0004.jpg
300行以后 開始不匹配圖片
一共重復(fù)10次構(gòu)成完整的pairs.txt,因此一共3000 mached, 3000個(gè)no_mached
得出準(zhǔn)確率的思路就是:(正確判斷出 matche的次數(shù)+正確判斷 no_mached的次數(shù)) / 6000
代碼
鑒于有很多網(wǎng)友私信問我,pairs.txt 怎么生成,我將最初自己的代碼,上傳到了 github,希望能給初學(xué)者以參考和幫助。因?yàn)橐策^去幾年了,已經(jīng)從上家公司離職,完整的代碼是沒有的,存在只是自己原來的一點(diǎn)思路和草稿,經(jīng)過今天的一番整理,還能用,就先傳上去了。需要改進(jìn)的小伙伴,自行優(yōu)化吧。哈哈。
項(xiàng)目地址: https://github.com/jobbofhe/lfw_generate_pairs.git
總結(jié)
- 上一篇: vivo4.0以上系统怎么样不用root
- 下一篇: C语言中auto,register,ex