insightface 的学习与使用

六眼飞鱼酱① 提交于 2020-08-15 10:34:39

网址:deepinsight/insightface

环境准备:

 (1)GPU,由于要用到GPU,所以GPU的环境比较重要。先要安装GPU的驱动,相应的教程,我在前几篇博客里写到,这里不再说明。 需要说明的是,如果你换过内核版本了,有些内核源码没有,CUDA10,9之间的区别,你需要重新安装内核DEV版本,这样在安装GPU驱动的时候,就会源码可以被驱动使用,这样才可以成功安装GPU的驱动。

(2)使用anaconda . 一般情况下,我们安装2.7. 需要其它环境,再安装。 在很多机器学习的教程里,我们看到了它使用2.7. 比如这个insightface的工程,其实可能是最初始的时候,他使用了2.7,但后来,很多优秀的模块构建在新的版本之上 ,其它很多依赖的环境都变化了; 但也不能最新3.7,因为很多要用的模块都还来不及构建。 所以比较合适的选择是3.6. 

  conda install 在无法找到要安装的模块时,anaconda search -t conda 去寻找;注意选择与你环境相符合的版本。 当然如果你选择了3.6,一般情况下都是有的。 

环境非常重要,足可以让你浪费很长的时间,做到如上两点,应该可以清晰搞定环境 。

工程理解

https://github.com/deepinsight/insightface.git

对于工程的理解,应该是重点改进点在recognition上面。 这里需要知道人脸识别的几个模块。detection, alignment, verification ,identification/recognition .  所以,本工程的重点算法的改进在于recognition。而其它的模块,比如detection,可能就直接使用MTCNN。 

对于工程的使用,主要是按照要求,组建好环境后,./recognition里 config.py里更改 dataset  ,数据集, batchsize与gpu个数相关,然后去dataset-zoo下载了数据集后,开始训练,这样就生成了model ,model的生成位置也是在config.py里配置。在训练的过程中,也看到了verification. 

如果你懒得去训练,直接使用pre-train model 。可以去文中讲的model-zoo里去下载; 认真点的,可以再使用verification.py

src/eval/verification.py验证其精度,不认真的,直接拿去使用吧。

需要做的事

(1)训练模型与验证

        如果你对精度不满意,需要改进算法,寻找 数据集,训练与验证;这应该是最累且有技术含量的活。累在数据集太大,技术含量在于算法的改进。

(2)使用模型

      这块应该只是使用,没难度

(3)封装接口

    基本的test完成,后如何封装成可用的服务。 

src/api/app.py里看到了相应的源码。 但封装的太少。 使用了flake简单提供了下API接口。 里面的test也可以使用。

有个好的工程

https://github.com/SthPhoenix/InsightFace-REST 通过源码  docker两种 方式 进行了封装的展现。可以借鉴。 要看看flake的生产环境的使用。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!