Tech Builds
首发于Tech Builds
如何在五分钟内搭建人脸检测/关键点识别等服务?

如何在五分钟内搭建人脸检测/关键点识别等服务?

在写了一段时间的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

这样,一个非常简单的人脸检测服务就搭建完成了。该仓库中还包含了人脸关键点的代码及预训练模型,欢迎各位尝试。


备注:

该项目还处于十分早期的状态,可能遇到未知的bug或问题。欢迎在GitHub 提出,同时,不建议用于生产环境。

文章被以下专栏收录