樹(shù)莓派一鍵部署系列之二:openface人臉識(shí)別程序

openface圖像識(shí)別

自從大神們發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像識(shí)別的特殊功能以后,人臉識(shí)別技術(shù)發(fā)展非常迅速,各種新算法層出不窮。在有效訓(xùn)練的情況下,基于openface的人臉識(shí)別已經(jīng)非常精準(zhǔn)。我嘗試用openface識(shí)別家里的家庭成員,基本沒(méi)有出錯(cuò)的。本文教你如何在樹(shù)莓派上,部署人臉識(shí)別程序。

為了讓大家很方便的使用到這個(gè)程序,筆者將將所有準(zhǔn)備工作都編譯到docker鏡像中去了,這樣大家可以跳過(guò)繁雜的安裝過(guò)程。

首先您要先確定您的樹(shù)莓派操作系統(tǒng)(raspbian)的版本要至少為jessie,如果還沒(méi)有升級(jí)到這個(gè)版本,請(qǐng)先刷到這個(gè)版本。樹(shù)莓派板卡最好為pi 3,前面幾代應(yīng)該也能運(yùn)行(筆者沒(méi)有測(cè)試過(guò)),但CPU速度比較慢,運(yùn)行時(shí)間會(huì)比較長(zhǎng)。

數(shù)據(jù)準(zhǔn)備

首先你要確定你要識(shí)別哪些人,每個(gè)人拍攝3-5張照片,最好是這個(gè)人正臉和側(cè)臉不同角度拍攝的照片,光線可以有明暗區(qū)別。這些照片,作為訓(xùn)練數(shù)據(jù)使用。另外,每個(gè)人再另外準(zhǔn)備1-2張照片,作為待識(shí)別的照片。這些照片,請(qǐng)按照以下方式存儲(chǔ):

準(zhǔn)備的數(shù)據(jù)目錄結(jié)構(gòu)

以上以一個(gè)家庭父親、母親、小孩三個(gè)對(duì)象為示意,說(shuō)明目錄樹(shù)的結(jié)構(gòu)該怎么設(shè)置。

部署程序

部署的過(guò)程其實(shí)只有一行代碼,在你的當(dāng)前位置下,運(yùn)行:

curl -s https://raw.githubusercontent.com/flyingtimes/face-recognizer/master/install.sh|bash

這是一個(gè)腳本,會(huì)自動(dòng)幫你把源代碼下載下來(lái),如果沒(méi)有安裝docker,會(huì)自動(dòng)安裝docker,并下載相關(guān)的docker鏡像。openface所需的所有組件都已經(jīng)在docker中預(yù)先準(zhǔn)備好了,您只要運(yùn)行程序就行了。整個(gè)過(guò)程需要下載1.5G左右的數(shù)據(jù),請(qǐng)耐心等待。同時(shí),程序還會(huì)下載run_train.sh 和 run_test.sh腳本。

訓(xùn)練數(shù)據(jù)

在你的當(dāng)前位置下,運(yùn)行(其中 $PWD代表當(dāng)前路徑):

bash run_train.sh $PWD

開(kāi)始人臉識(shí)別

在你的當(dāng)前位置下,運(yùn)行:

bash run_detect.sh $PWD father_test.jpg

其中father_test.jpg是你要識(shí)別的文件名稱,可以是任意名稱,必須放在detect目錄下。

輸出的結(jié)果應(yīng)該類似如下內(nèi)容:

=== /detect/father_test.jpg ===

Predict father with 0.67 confidence.


注意事項(xiàng)

* 訓(xùn)練數(shù)據(jù)如果有變化,需要重新進(jìn)行訓(xùn)練

* 如果只是利用已經(jīng)生成的模型來(lái)檢測(cè),則直接運(yùn)行run_detect.sh就行

* 對(duì)于沒(méi)有訓(xùn)練過(guò)的照片的識(shí)別率是比較低的,必須先“學(xué)習(xí)”,然后識(shí)別率才會(huì)比較高

* 照片越多,訓(xùn)練時(shí)間越長(zhǎng),考慮樹(shù)莓派的運(yùn)行速度較慢,建議一開(kāi)始玩每個(gè)人的照片在3-5張比較合適,當(dāng)然如果你愿意等,照片越多準(zhǔn)確率越高。


Enjoy it,在此基礎(chǔ)上,嘗試用你的樹(shù)莓派攝像頭,來(lái)做一個(gè)人臉識(shí)別的們鎖吧!

PS:

近期由于“網(wǎng)絡(luò)安全原因”,部分讀者反映有幾種異常情況,統(tǒng)一回復(fù)如下:

1)在git clone的時(shí)候等待很久,實(shí)際是因?yàn)榫W(wǎng)絡(luò)原因無(wú)法在github上抓取代碼,我把項(xiàng)目代碼共享到百度網(wǎng)盤 https://pan.baidu.com/s/1eRJsuJK ,大家可以隨意下載。下載后進(jìn)入face-recognition-master 運(yùn)行 bash install.sh 即可。

2)有部分用戶在執(zhí)行過(guò)程中,顯示“docker未安裝”,然后長(zhǎng)時(shí)間等待。這種情況也是因?yàn)榫W(wǎng)絡(luò)不良導(dǎo)致無(wú)法安裝docker。建議在樹(shù)莓派上反復(fù)執(zhí)行:

curl -sSL https://get.docker.com | sh? ? ?直到成功為止。

3)鏡像下載是一個(gè)比較長(zhǎng)的過(guò)程,建議耐心等待。鏡像文件托管到dockerhub上,如果不成功,建議在網(wǎng)絡(luò)良好的時(shí)候執(zhí)行 docker pull clarkchan/rpi-tensorflow-imagenet

4) 部分用戶在執(zhí)行的時(shí)候反映“memory”問(wèn)題,主要是前幾代樹(shù)莓派內(nèi)存不足,無(wú)法運(yùn)行程序?qū)е碌?,?qǐng)確認(rèn)你的硬件升級(jí)到樹(shù)莓派3

PS(2018-06-03):

今天重新運(yùn)行了一次,發(fā)現(xiàn)由于網(wǎng)絡(luò)原因,原來(lái)的安裝腳本有些步驟我也不能用了。順便修改了一下。改了幾個(gè)地方:

1) docker的安裝。由于官網(wǎng)經(jīng)常失聯(lián),安裝改為apt-get install docker-ce,不從官網(wǎng)直接下載了。

2)鏡像獲取的時(shí)候,改使用root權(quán)限,避免permission denied 問(wèn)題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容