人臉識別專案openface簡介
阿新 • • 發佈:2020-10-12
人臉識別專案openface簡介
人工智慧迷途小書童10個月前 (12-10)0評論軟硬體環境
- openface
- ubuntu 16.04 64bit
- python2
openface專案
openface
是一個在github
上開源的基於深度神經網路(Deep Neural Networks
)的人臉識別專案,目前star
數已經接近9.5k,fork
數也有2k,可見非常受歡迎,openface
基於python2
.
安裝依賴
安裝lua
,不知從哪個版本開始,ubuntu
安裝軟體的apt-get
可以只寫apt
了,挺好
sudo apt install lua5.3
安裝dlib
,pandas
sudo pip2 install dlib sudo pip2 install pandas
安裝torch
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch
bash install-deps
sudo ./install.sh
安裝程式會在~/.bashrc
中新增語句
. /home/xugaoxiang/torch/install/bin/torch-activate
執行使之生效
source ~/.bashrc
安裝luarocks
及相關模組
sudo apt-get install luarocks sudo chown -R xugaoxiang:xugaoxiang ~/.cache luarocks install csvigo luarocks install dpnn luarocks install image luarocks install torchx luarocks install graphicsmagick luarocks install nn
運轉openface
下載原始碼
git clone https://github.com/cmusatyalab/openface.git
cd openface
python setup.py install
準備自己的樣本圖片
在ubuntu
系統下用cheese
(sudo apt install cheese
)攝像頭工具錄製一段15秒左右的視訊,然後利用ffmpeg
(同樣利用apt
安裝)工具將視訊轉化成圖片,將生成的圖片集合存放在openface/training-images/xugaoxiang
下,大概就有了400左右的樣本數量了,據openface
的官方說法是樣本數量越大,準確度是越高的,經過簡單的測試,發現的確是這樣.
ffmpeg -i 2018-03-16-170319.webm -r 25 -f image2 xugaoxiang/%05d.png
預處理
對每張照片進行alignment
操作,就是把跟人臉無關的元素去掉,以便解決一些如不一致和弱光線的問題,形成一張張96×96的圖片
./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96
生成Representations
cd models
./get-models.sh
cd ..
./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/
建立分類模型
./demos/classifier.py train ./generated-embeddings/
到此, 各項準備工作都已經OK
了,接下來看看效果吧.
照片中人臉的識別
./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg
我從training-images
中找了張照片測試,結果非常好,相似度90%
2張照片的對比
./demos/compare.py training-images/xugaoxiang/00100.png training-images/xugaoxiang/00200.png
從webcam中識別
./demos/classifier_webcam.py ./generated-embeddings/classifier.pkl
線上交流gitter
https://gitter.im/cmusatyalab/openface, 這點非常的不錯,比提issue
要更快速有效,參與的人也多,但也不是你提問就有人來幫你,畢竟大家都很忙.
ubuntu 18.04適配
在18.04 LTS
上做trainging
時發現會報libreadline.so.6
找不到的錯誤,按下面方法修正
sudo ln -s /lib/x86_64-linux-gnu/libreadline.so.7 /usr/lib/x86_64-linux-gnu/libreadline.so.6