DeepFace适配鲲鹏开源验证任务心得

举报
yd_258481005 发表于 2024/11/23 07:56:42 2024/11/23
【摘要】 DeepFace适配鲲鹏开源验证任务心得 首先看了一下任务计划书:https://bbs.huaweicloud.com/blogs/440178,主要目的是将 DeepFace 项目适配至华为的 Kunpeng(鲲鹏)处理器,确保其在硬件平台上的高效运行,也就是说验证DeepFace能不能在 Kunpeng(鲲鹏)处理器中运行。 


DeepFace适配鲲鹏开源验证任务心得

 

首先看了一下任务计划书:https://bbs.huaweicloud.com/blogs/440178主要目的是将 DeepFace 项目适配至华为的 Kunpeng(鲲鹏)处理器,确保其在硬件平台上的高效运行,也就是说验证DeepFace能不能在 Kunpeng(鲲鹏)处理器中运行。

 

开发过程

明确目的后开始熟悉模型,DeepFacegithub网址:https://github.com/serengil/deepface

把代码库中的代码克隆下来

git clone https://github.com/serengil/deepface.git

在云堡垒机上,创建python虚拟环境

conda create -n deepface python=3.9

conda activate deepface  #激活环境

 

安装deepface

直接命令安装 pip install deepface

也可以通过源码安装(源码安装可能有些的功能特性还未在pip中发布)

cd deepface

pip install -e .

 

安装完deepface库,就可以导入使用了

from deepface import DeepFace

如果验证两张人脸是否是同一个人。调用如下函数接口

result = DeepFace.verify(

img1_path = “img1.jpg”,

img2_path = “img2.jpg”,

)

如果验证,人脸属性分析,调用如下函数接口,获取年龄,性别,种族,表情

Objs = DeepFace.analyze(

  img_path = “img1.jpg”,

  actions = [‘age’,’gender’,’race’,’emotion’],

)

同时,安装好了deepface,也可以在终端,通过命令行交互方式验证,如下:

#人脸验证,需要输入两张图片

deepface verify -img1_path tests/dataset/img1.jpg -img2_path tests/dataset/img2.jpg

#人脸熟悉分析

deepface analyze -img_path tests/dataset/img1.jpg

测试数据文件存放目录为 deepface/tests/dataset/


注意事项

*** 安装过程中,会自动安装环境所需要的依赖包,如tensorflow, kears, numpy,opencv-python等,如果提示缺少某个包,pip安装就可以。

*** numpy版本建议安装1.26左右的,不要安装2.0及以上的,会有兼容问题。

***调用过程中,模型权重文件会自动下载到本地 /root/.deepface/weights/ 目录下,也可以手动下载。模型支持多种格式,如tensorflowonnxpytorchh5等。

*** 下载安装依赖包或者权重文件时,如果国外网络限制的话,可以替换为国内镜像源。

*** 所有的deepface功能,都可以接受人脸检测后端和人脸对齐,通过参数选择,支持的人脸检测器模型有:OpenCVSSD,  DlibMTCNNRetinaFaceMediaPipeYoloYuNet等。

*** deepface是一个混合的人脸识别的包。当前包含了许多先进的识别模型,如:VGG-FaceFaceNetOpenFaceDeepFaceDeepIDArcFaceDlib等。可以通过参数选择。默认是使用VGG-Face model


1 验收材料

1.1  交付件清单

  • DEMO仓库地址: https://gitcode.com/pan123/deepface/blob/main/README.md
  • 博客的地址: https://bbs.huaweicloud.com/blogs/440258

 

验收细则

评分说明

是否为验收必选项

结果(通过/不通过)

功能开发:完成与华为三大根技术生态(鲲鹏云、昇腾云、鸿蒙)适配的功能开发

基于鲲鹏、Euler系统完成验证

 

代码质量:适配华为三大根技术生态的代码质量经过工具检测达标

推送给开源社区的代码符合开源社区关于代码风格、功能、自动化测试等要求。

 

提供相关文档,比如部署文档、使用文档、配置文档等

根据社区要求,完善相关的开发指南和部署指导

 

合入到开源项目主仓:代码推送上游社区

代码合并到当前主干分支。

 

Deomo设计&开发:完成功能演示Demo的开发

提供DEMO仓库地址。

 

Demo部署&验证:完成功能演示DEMO基于华为云鲲鹏环境的部署和功能验证

提供DEMO部署验证结果的关键截图进行举证。提供DEMO运行环境和资源的截图举证。

 

发布博客:发布博客介绍适配心得。

提供博客的地址。

 

制作单机版无高危开源镜像。

上架云商店。

 

单机版镜像上架时支持模板部署。

 

 

制作集群版无高危开源镜像

上架云商店。

 

集群版镜像上架时支持模板部署

 

 

2 资源清单

产品名称

CPU架构

实例类型

公共镜像

镜像版本

备注

弹性云服务器

鲲鹏计算

Kunpeng-920

鲲鹏通用计算增强型kc1

Huawei Cloud EulerOS

Huawei Cloud EulerOS 2.0 Arm 64bit sdi5 for ECS BareMetal With Uniagent(150GiB)

推荐

 

 

 

产品名称

CPU架构

操作系统

云堡垒机

鲲鹏计算

Kunpeng-920

Huawei Cloud EulerOS 2.0 (aarch64)

 

 

3 验证结果

3.1  人脸提取

图片1.jpg


获取人脸所在的坐标位置和检测到人脸的置信度分数。

 

验证结果保存图像

图片2.jpg


3.2  人脸特征向量化

图片3.jpg

人脸特征向量化,得到512维的向量。


3.3  人脸相似性判断(2张人脸是否为同一个人)

图片4.jpg

获取2张人脸向量,然后计算2个向量的相似度,可用余弦公式或欧式距离。


3.4  人脸查找

图片5.jpg

从人脸向量特征数据库中,计算匹配相似度,从而判断出是否找到。

 

3.5  人脸属性分析(表情,性别,年龄,种族)

图片6.jpg

程序会自动下载4个模型(分别对应年龄,性别,种族,表情),模型会根据预测分数判断。

 

3.6  人脸活体识别(真假人脸,静态活体识别)

 图片7.jpg

人脸活体识别,判断真假人脸,静态活体识别,根据活体分数判断。

图片8.jpg

3.7  web端部署

图片9.jpg

由于服务器无固定公网IP,所以本地浏览器无法访问地址。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。