OpenFace适配鲲鹏开源验证任务心得
OpenFace适配鲲鹏开源验证任务心得
一、任务需求
首先看了一下任务计划书:https://bbs.huaweicloud.cn/blogs/442276 ,
让OpenFace能够在Kunpeng CPU上高效运行,确保项目在平台上具备良好的兼容性和性能,旨在为研究人员和开发者提供一个高效、准确且容易使用的工具,用于构建和评估人脸识别系统。
二、开发过程
明确任务目的和demo要求后,先获取源码,OpenFace的github网址: https://github.com/cmusatyalab/openface。首先创建一个进行开发过程的虚拟环境,conda activate -n openface python=3.9,然后使用git clone https://github.com/cmusatyalab/openface.git 获取开源代码,这个任务所需要的权重文件不需要去下载,只需要在开源代码openface目录下,运行./models/get-models.sh即可获得权重。
1.鲲鹏CPU、OpenEuler 验证推理
(1)安装依赖
首先安装opencv包,pip install opencv-python,还需要openface包,在openface目录下面运行python setup.py install,即可完成openface包的安装,然后就是安装dlib包,这安装时需要注意,要指定特定的版本,因为最新的版本会报错,所以使用pip install dlib==19.17.0,这个步骤完成之后并不是成功安装了,还需要 conda install -c anaconda blas lapack
conda install -c conda-forge dlib才能完全安装好dlib,不进行这一步,会报错dlib缺少特殊符号。
(2)运行推理代码
运行代码之前,需要先确定好源码中所用到的模型的具体路径,有三个模型文件,如下:
使用find // -name xxx来查找到具体路径。然后运行命令:
python compare_new.py /dev/shm/dbc/openface/openface/images/examples/lennon-1.jpg /dev/shm/dbc/openface/openface/images/examples/lennon-2.jpg
或者运行
python compare_new.py /dev/shm/dbc/openface/openface-master/images/examples/{lennon*,clapton*}
第一个命令是对指定的两张人脸照片进行比对,会获得欧式距离,第二个命令是对指定路径下的所有图片都进行两两比对,来获得相似数值,当距离值大于1时,说明两个图片不是同一个人,当值小于1时,说明是同一个人。
需要注意的是,openface的开源代码原来是基于Lua的torch版本进行的,所以进行推理时直接使用.t7权重进行推理是不适用于pytorch框架的,所以需要使用的权重是.pt文件。
三、结果
1验证截图
OpenFace是一个开源的、基于深度学习的人脸识别和分析工具,本次进行的推理是对数据下的一些图片进行欧式距离计算,来判断是否为同一个人,最后会输出具体数值。
1.1 CPU推理
测试数据下的图片是这样的
在之前的基础上,所有环境和参数都修改好之后,运行推理命令就会获得如下结果:
从图中可以看出,所获得的欧式距离判断基本上都是正确的。
- 点赞
- 收藏
- 关注作者
评论(0)