Openface 入門


Openface 簡單入門

 

背景

Openface是一個開源的人臉識別框架,同類軟件產品還有 seetaface ,DeepID等,當然,如果算上商業的產品,那就更多了。

Openface人臉比對結果的准確度可能不是很好,它是有待提升的。如果有能力的話, 可能通過源碼進行優化。 一般來說,置信度小於1 的基本可以接受的,但是這個要看具體的使用場景,我們可以根據具體的業務設置這個置信度閾值。 如果Openface 准確度達不到我們的要求, 我們可以多試幾次,或者提供更加高質量的訓練庫圖片和比對圖片,或者業務上進行控制和優化,比如前端提示圖片無法識別,圖片不清晰等等。

 

安裝

官方推薦用docker來安裝openface,這個參照官方文檔,直接用docker安裝即可。如果自己一步步去安裝的話,估計很花時間,而且不一定能完成。

 

除了安裝,我們至少需要做一些准備工作,這就是人臉訓練; 然后, 我們才可以使用它進行人臉識別/比對等操作

 

1 人臉訓練

上傳基礎圖片,比如客戶經理的圖片:

將同一個人的照片,以其名字命名,然后放入同一個目錄,目錄名字以人名進行命名。然后上傳或掛載到bamos/openface 鏡像容器的圖像訓練目錄:/root/openface/data/mydata/train_img,

 

胡歌的圖片目錄是:/root/openface/data/mydata/train_img/huge/

楊洋的圖片目錄是:/root/openface/data/mydata/train_img/yangyang/

我的圖片目錄是:/root/openface/data/mydata/train_img/lk/

 

照片要求:

盡量清晰,正面照,單人照,有且只有一張完整的人臉,可以有表情,但是盡量簡單,不要太誇張的表情。照片至少8張,20 張以上為佳。 照片數量越多,效果越好。照片背景不限,衣着不限,越豐富越好,但一定要是同一個人的照片。圖像大小以20~500K 為佳。

 

 

圖片預處理:

./util/align-dlib.py data/mydata/train_img/ align outerEyesAndNose data/mydata/aligned_images/ --size 64

 

 

特征提取:

./batch-represent/main.lua -outDir data/mydata/generated_charaters/ -data data/mydata/aligned_images/

 

訓練圖片:

./demos/classifier.py train data/mydata/generated_charaters/ 

 

2 使用它做人臉比對

上傳照片:

先將單張照片放入到容器的/root/openface/data/mydata/others/ 目錄,圖片格式盡量統一,比如都使用jpg格式。

 

調用接口,結果驗證:

./demos/classifier.py infer data/mydata/generated_charaters/classifier.pkl /root/openface/data/mydata/others/{hu,lk }*

 

這里的/root/openface/data/mydata/others/{hu,lk }* 是需要進行和現有圖片庫做分類比對的圖片, 這里 {hu,lk }* 是一個正則表達式, 表示那個目錄下, hu或lk 開頭的所有文件。 我們可以指定一個具體的路徑,比如:

/root/openface/data/mydata/others/zhangsan.jpg

 

 

輸出:

=== /root/openface/data/mydata/others/hg4.jpg ===

Predict huge with 0.91 confidence.

 

=== /root/openface/data/mydata/others/lk (1).jpg ===

Predict lk with 0.93 confidence.

 

=== /root/openface/data/mydata/others/lk (2).jpg ===

Predict lk with 0.91 confidence.

 

如上所見,輸出結果格式是這樣的:

=== 正在進行比對的圖片的全路徑 ===

Predict 人名 with 置信度 confidence。

 

表示的意思是, 如

=== /root/openface/data/mydata/others/hg4.jpg ===

Predict huge with 0.91 confidence.

 

意為: /root/openface/data/mydata/others/hg4.jpg 這張圖片是 huge(胡歌)的可能性是0.91。 一般來說, 置信度越小,說明判斷正確的可能性越大, 結果小於1 表示基本可以相信。 大於1 表示基本不可信。

 

3 常見問題

Q: 人臉圖片無法訓練或無法比對, 出現cant find a face … 報錯

A: 這個很可能是圖片質量問題,圖片要盡量清晰和完整,不能有太大變形,光照不能太暗, 光線要均勻等等。如果圖片沒拍攝好,我們需要刪除重新拍攝,然后上傳。

 

Q: 同一個人的照片,結果顯示置信度大於1是怎么回事?

A: 這種情況是可能發生的,至少有兩個方面原因,1是他的訓練圖片庫的照片質量不高,2是他新上傳的需要進行比對的圖片質量不高。對此我們可以多試幾次,或者提供更加高質量的訓練庫圖片和比對圖片,或者業務上進行控制和優化。

 

Q: 需要比對的圖片是huge怎么被分到了yangyang 這個類別,而且置信度還挺好的,怎么解釋?

A: 這個還是圖片質量問題,有兩個方面原因,同上。

 

 

參考:

http://www.cnblogs.com/minsons/p/7922080.html

http://cmusatyalab.github.io/openface/

http://www.cnblogs.com/pandaroll/p/6590339.html

http://blog.csdn.net/u011531010/article/details/52270023

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM