網址:deepinsight/insightfacegit
環境準備:
(1)GPU,因爲要用到GPU,因此GPU的環境比較重要。先要安裝GPU的驅動,相應的教程,我在前幾篇博客裏寫到,這裏再也不說明。 須要說明的是,若是你換過內核版本了,有些內核源碼沒有,CUDA10,9之間的區別,你須要從新安裝內核DEV版本,這樣在安裝GPU驅動的時候,就會源碼能夠被驅動使用,這樣才能夠成功安裝GPU的驅動。github
(2)使用anaconda . 通常狀況下,咱們安裝2.7. 須要其它環境,再安裝。 在不少機器學習的教程裏,咱們看到了它使用2.7. 好比這個insightface的工程,其實多是最初始的時候,他使用了2.7,但後來,不少優秀的模塊構建在新的版本之上 ,其它不少依賴的環境都變化了; 但也不能最新3.7,由於不少要用的模塊都還來不及構建。 因此比較合適的選擇是3.6. 算法
conda install 在沒法找到要安裝的模塊時,anaconda search -t conda 去尋找;注意選擇與你環境相符合的版本。 固然若是你選擇了3.6,通常狀況下都是有的。 docker
環境很是重要,足可讓你浪費很長的時間,作到如上兩點,應該能夠清晰搞定環境 。api
工程理解
https://github.com/deepinsight/insightface.gitapp
對於工程的理解,應該是重點改進點在recognition上面。 這裏須要知道人臉識別的幾個模塊。detection, alignment, verification ,identification/recognition . 因此,本工程的重點算法的改進在於recognition。而其它的模塊,好比detection,可能就直接使用MTCNN。 機器學習
對於工程的使用,主要是按照要求,組建好環境後,./recognition裏 config.py裏更改 dataset ,數據集, batchsize與gpu個數相關,而後去dataset-zoo下載了數據集後,開始訓練,這樣就生成了model ,model的生成位置也是在config.py裏配置。在訓練的過程當中,也看到了verification. ide
若是你懶得去訓練,直接使用pre-train model 。能夠去文中講的model-zoo裏去下載; 認真點的,能夠再使用verification.py學習
src/eval/verification.py驗證其精度,不認真的,直接拿去使用吧。spa
須要作的事
(1)訓練模型與驗證
若是你對精度不滿意,須要改進算法,尋找 數據集,訓練與驗證;這應該是最累且有技術含量的活。累在數據集太大,技術含量在於算法的改進。
(2)使用模型
這塊應該只是使用,沒難度
(3)封裝接口
基本的test完成,後如何封裝成可用的服務。
src/api/app.py裏看到了相應的源碼。 但封裝的太少。 使用了flake簡單提供了下API接口。 裏面的test也可使用。
有個好的工程
https://github.com/SthPhoenix/InsightFace-REST 經過源碼 docker兩種 方式 進行了封裝的展示。能夠借鑑。 要看看flake的生產環境的使用。