docker安裝openface進行人臉識別

GooglePicasaApple照片軟件早都已經實現基本的人臉識別功能了,你只要反覆不斷地告訴它們哪一個是你本身,哪一個是你家人,很快這兩款軟件能夠學會識別,並幫你自動把你的全部含有人臉的照片分類。目前這種技術已經開源,Openfacegithub上有7000多顆星星。html

這裏有一篇中文介紹如何安裝使用,個人操做步驟略簡單,我是按照官方教程來的,用docker安裝,因此省掉一些步驟,但也遇到一些麻煩,在此一併說明。git

  1. 安裝docker並啓動,這個就不用多說了。在Mac上能夠還安裝一個Kitematic,能夠可視化的方式管理你的dockergithub

  2. docker pull bamos/openface,按官方教程來,沒什麼可說的。docker

  3. 運行container,按官方教程是這樣的:docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash,但實際上,由於咱們還須要把圖片拷進去,因此最好加一個-v參數,以便後續操做:docker run -p 9000:9000 -p 8000:8000 -v /local_directory:/remote_directory -t -i bamos/openface /bin/bashbash

  4. 準備30張圖片,必定要2個不一樣的人的,圖片大小無所謂,可是最好只包含人臉,每人各15張,分別放在2個不一樣的目錄下。好比你的本地文件夾是/local_directory,那你必定要在這個文件夾下創建一個training-images的子文件夾,而後再在training-images這個子文件夾下用兩我的的名字再創建2個不一樣的文件夾,而後把照片放進去。我一開始沒有創建這個training-images子文件夾,繞了很多彎路。這一步操做是在本地環境下完成的,從下一步開始,咱們進入docker環境操做。測試

  5. 開始自動剪裁:/root/openface/util/align-dlib.py ./training-images align outerEyesAndNose ./aligned-images/ --size 96,這一步的目的是讓機器自動把這30張照片修整成96x96png文件,以便於後續處理。因此你前面那些照片大小無所謂就是這個意思。處理的結果就放在aligned-images目錄下,它下面會有2個文件夾,就是你放進去的那2我的的名字。lua

  6. 對圖片進行批量處理:/root/openface/batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/,這一步會在generated-embeddings目錄下生成2csv文件,labels.csvreps.csvlabels.csv相對簡單,它只是說明了哪一張照片對應的是哪個人,reps.csv則是一大堆人類看不懂的數字。code

  7. 接下來開始訓練:/root/openface/demos/classifier.py train ./generated-embeddings,訓練的結果會在generated-embeddings目錄下生成一個classifier.pkl文件,這個是咱們最終想要的結果。htm

  8. 而後你就能夠開始測試了,再拷一張不在訓練集中的照片進去,這張照片就不拘泥於只包括人臉了,能夠包括背景或者整個身體都無所謂,但最好不要放好幾我的的合影,否則機器不知道你要識別哪個人。假設照片文件名爲1.jpg,則執行/root/openface/demos/classifier.py infer ./generated-embeddings/classifier.pkl 1.jpg,若是照片中人是剛纔識別的2人之一,則通常識別準確度會在90%以上,若是不是的話,會低於80%。這裏能夠作一個頗有趣的實驗:測試你和某明星的臉部類似度,也許你能夠在此基礎上開發一個App?blog

相關文章
相關標籤/搜索