如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?

SteveFermi發表於2018-09-29

在寫了一段時間的CVTron和CV方面的程式碼後,由於經常遇到一些經典的目標檢測問題,不禁想到,如果可以通過包管理的形式,一鍵下載、安裝,甚至執行一個HTTP的服務,豈不美哉?在CVTron的開發過程中,我們也遇到了需要給使用者提供訓練好的模型檔案,但使用者表示即使有了模型檔案,也要花一些力氣來搭建服務等等。出於興趣和實際問題的要求,我們花了一週多的時間,搞了一套用於計算機視覺的包管理。還設計一個毛線版Logo.

如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?

為了檢驗成果,今天我們就來試試能不能五分鐘內,用這套系統搭建一個人臉檢測、關鍵點識別服務。當然,需要明確,這篇文章裡不會涉及到具體的人臉檢測/關鍵點識別的演算法知識。(另外一點不好明說的是,複製程式碼可能會更好地搭建這樣的服務 :狗頭.jpeg)


  1. 安裝cvpm.

CVPM需要Python 3 和對應的pip. 在繼續之前需要保證Python 3已安裝。

CVPM的CLI部分是Go寫成的,可以簡單地通過下載二進位制檔案來安裝。前往Release下載對應平臺的二進位制檔案。本文我們以Ubuntu 18.04 (x64)為例。

wget https://github.com/unarxiv/CVPM/releases/download/v0.0.2/cvpm_0.0.2_Linux_x86_64.tar.gz
tar zxvf cvpm_0.0.2_Linux_x86_64.tar.gz
sudo mv cvpm /usr/bin/ # 放到/usr/bin中方便使用
cvpm config # 按照說明輸入python和pip對應路徑即可
複製程式碼


2. 安裝守護程式和python依賴

雖然聽上去麻煩,但實際上用之前下載到的cli是很容易安裝的

sudo cvpm daemon install # 請使用管理員許可權
cvpm install cvpm:test # 從test-pypi安裝cvpm的python包, 只因我還沒有上傳到正式的Pypi上
複製程式碼


3. 安裝人臉檢測的package

有了上兩步之後,繼續就十分簡單了。我們可以在Model Hub上搜尋相關的庫。

如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?
如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?

在頁面的左側,我們就可以找到對應的安裝指令:

cvpm install https://github.com/cvmodel/Face_Utility
複製程式碼

這一步可能會花相對比較長的時間,這是由於部分python庫在執行時需要編譯(dlib)。在安裝好之後,會如下圖所示:

如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?

4. 執行對應的Solver

當需要啟動一個檢測服務時,我們可以輸入

cvpm repo run cvmodel/Face_Utility/Face_Detection
複製程式碼

這樣,cvpm就會自動去下載預訓練好的模型,同時在8080埠開啟一個HTTP服務。

5. 測試

在Model Hub上,我們已經看到了相應的測試程式碼。

curl -X POST -F number_of_times_to_upsample=1 -F delete_after_process=true  -F mode=CNN -F file=@lena.png 127.0.0.1:8080/infer
複製程式碼
如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?

這樣,一個非常簡單的人臉檢測服務就搭建完成了。該倉庫中還包含了人臉關鍵點的程式碼及預訓練模型,歡迎各位嘗試。


相關文章