天天看點

facenet 人臉識别(一)

前言

已完成TensorFlow Object Detection API環境搭建,具體搭建過程請參照:

安裝運作谷歌開源的TensorFlow Object Detection API視訊物體識别系統

Ubuntu系統安裝配置tensorflow開發環境

下載下傳Facenet源碼工程

1. 源碼下載下傳位址:https://github.com/davidsandberg/facenet.git

2. 将下載下傳的源碼解壓,如圖所示:

facenet 人臉識别(一)

安裝和配置Facenet環境

1. 在自己電腦對應的Anaconda3\Lib\site-packages目錄下,建立facenet檔案夾,本人的目錄如下:

facenet 人臉識别(一)

2. 然後,将facenet-master\src目錄下的全部檔案複制到上面建立的facenet檔案夾内;

facenet-master\src目錄下的全部檔案資訊如下:

facenet 人臉識别(一)
複制到facenet目錄内,如下:
facenet 人臉識别(一)
3. 最後,在Anaconda Prompt内輸入import facenet,不會報錯即可,如下:
facenet 人臉識别(一)

下載下傳LFW資料集

1. LFW資料集是由美國馬薩諸塞大學阿姆斯特分校計算機視覺實驗室整理的人臉檢測資料集,是評估人臉識别算法效果的公開測試資料集,全稱為帶标簽的自然人臉資料庫(Labeled Faces in the Wild);

2. LFW資料庫内每張圖檔命名方式為“lfw/name/name_xxxx.jpg”,這裡“xxxx”是前面補零的四位圖檔編号。例如,前美國總統喬治•W•布什的第10張圖檔為“lfw/George_W_Bush/George_W_Bush_0010.jpg”。

3. LFW資料庫 總共有 13233 張 JPEG 格式圖檔,屬于 5749 個不同人。每張圖檔尺寸都是 250x250;

4. 資料庫下載下傳位址:http://vis-www.cs.umass.edu/lfw/#download http://vis-www.cs.umass.edu/lfw/lfw.tgz

5. 下載下傳完成後,把資料集解壓到facenet-master\data下面,如下:

facenet 人臉識别(一)

對LFW資料集進行預處理

1. 在data目錄建立一個空檔案夾,命名為“lfw_160”;

原圖像大小為250*250,如下圖:

facenet 人臉識别(一)

2. 我們需要将待檢測所使用的資料集校準為和預訓練模型所使用的資料集大小一緻(160*160),轉換後的資料集存儲在lfw_160檔案夾内;

3.切換目錄至facenet-master下

4.圖檔預處理——運作人臉對齊程式(src\align\align_dataset_mtcnn.py)

指令校準

python src\align\align_dataset_mtcnn.py --help      
facenet 人臉識别(一)

缺少align子產品,進行安裝

pip install align -i http://pypi.douban.com/simple --trusted-host pypi.douban.com      
facenet 人臉識别(一)

再次運作

python src\align\align_dataset_mtcnn.py --help      
facenet 人臉識别(一)

需配置環境變量

facenet 人臉識别(一)

再輸入

python src\align\align_dataset_mtcnn.py --help      
facenet 人臉識别(一)

 執行轉換

python src\align\align_dataset_mtcnn.py data/lfw data/lfw_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25      
facenet 人臉識别(一)
facenet 人臉識别(一)

下載下傳訓練好的網絡模型

1. facenet提供了兩個預訓練模型,分别是基于CASIA-WebFace和MS-Celeb-1M人臉庫訓練的,如下:

facenet 人臉識别(一)

2. 本人使用的是基于資料集CASIA-WebFace采用Inception ResNet v1神經網絡結構訓練好的模型。模型存儲在Google網盤,需要翻牆。推薦大家用Lantern;

3. 把下載下傳的檔案解壓到src\models\目錄下面,如下所示:

facenet 人臉識别(一)

4. 程式也下載下傳了,測試資料集LFW也有了,模型也有了,接下來就是評估模型的準确率;

評估預訓練模型的準确率

1. 在cmd指令行或者Anaconda Propmt下定位到facenet檔案夾下;

cd D:\eclipse-workspace\facenet-master      

2. 輸入以下指令:

python src\validate_on_lfw.py D:\eclipse-workspace\facenet-master\data\lfw_160 D:\eclipse-workspace\facenet-master\models\20180408-102900      

預測中,結果如圖:

facenet 人臉識别(一)

人臉對比

1. Facenet可以直接對比2個人臉經過它的網絡映射之後的歐式距離;

python src\compare.py D:\eclipse-workspace\facenet-master\models\20180408-102900 D:\eclipse-workspace\facenet-master\data\images\Anthony_Hopkins_0001.jpg D:\eclipse-workspace\facenet-master\data\images\Anthony_Hopkins_0002.jpg      

繼續閱讀