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

NO IMAGE

在寫了一段時間的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 [email protected] 127.0.0.1:8080/infer
如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?

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

相關文章

第一次來到

ES寫入性能優化

分佈式熔斷降級平臺aegis

開源Go,Py項目找隊友、顧問、貢獻者、贊助等等