当前位置: 首页 > article >正文

调用华为云API实现口罩识别

1.作者介绍

范小雨,女,西安工程大学电子信息学院,2024级研究生
研究方向:机器视觉与人工智能
电子邮件:1019044907@qq.com

高金年,男,西安工程大学电子信息学院,2024级研究生,张宏伟人工智能课题组
研究方向:机器人与智能装备控制技术
电子邮件:2432529790@qq.com

2.华为人脸检测API

2.1 API介绍

应用程序编程接口(英语:Application Programming Interface,简称:API),是一些预先定义的函数。
目的:让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。

2.2 人脸检测与口罩检测

人脸检测是对输入图片进行人脸检测和分析,输出人脸在图像中的位置、人脸关键点位置和人脸关键属性。华为云口罩检测属于人脸检测的扩展功能,通过深度学习算法分析图像中的人脸区域,判断是否佩戴口罩。

2.3 主要特性

检测内容:人脸位置、口罩佩戴状态(是/否)、置信度。
适用场景:公共场所安防、疫情防控、智能门禁等。

2.4 约束限制

1、 只支持识别JPG、PNG、JPEG、BMP格式的图片。
2、 为保证识别效果,人脸图片建议要求如下:
a) 光照大于200lux、无反光强光阴影现象。
b) 人脸无遮挡、整体清晰无拖尾抖动等运动模糊。
c) 侧脸不超过30°、俯仰角小于15°、偏转角小于15°、图片中人脸保持竖置正脸。
3、由于过大图片对识别算法精度无明显提升,同时会导致时延较长,建议传入图片小于1MB,一般500KB左右足够。图片中人脸像素建议120*120以上。

3.实验过程

3.1 获取API

1.注册华为云账号,进行实名认证,开通服务。
在这里插入图片描述

3.2登录人脸识别管理控制台:

单击页面右上角的用户名,并选择“我的凭证”。进入“我的凭证”页面。
在这里插入图片描述

3.3单击“访问秘钥”页签下的“新增访问密钥”。弹出“新增访问密钥”对话框。

在这里插入图片描述

3.4 AK/SK认证,下载文件credentials.csv

在这里插入图片描述

3.5调试接口

显示“调试成功”即可。
在这里插入图片描述
在这里插入图片描述
注:本次实验使用base64的图片格式,python实现代码后附。
image_base64:图像数据,base64编码后图像大小不得超过8MB,图片为JPG/JPEG/BMP
/PNG格式。
attributes (人脸关键属性):
本案例中使用base64的图片格式,python实现代码后附。attributes (人脸关键属性,比如头部姿态):2:年龄 4:装束(帽子、眼镜) 6:口罩 7:发型 8:胡须 11:图片类型 12:质量 13:表情 21:人脸图片旋转角(顺时针偏转角度),支持0°、90°、180°和270°图片旋转。

4.实验结果

4.1代码实现

#############下载需要的库
import base64
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkfrs.v2.region.frs_region import FrsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkfrs.v2 import *
###############导入AK和SK
if __name__ == "__main__":
    ak = "输入获得的AK"
    sk = "输入获得的SK"  # ak和sk读取
    credentials = BasicCredentials(ak, sk) \

    client = FrsClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(FrsRegion.value_of("cn-north-4"))  \   
        .build()

    f = open('C:\\图片路径\\图片名称.png', 'rb')   # 图片路径读取
    img = base64.b64encode(f.read())   # 图片转换为base64格式

    try:
        request = DetectFaceByBase64Request()  # 人脸在图像中的位置
        request.body = FaceDetectBase64Req(
          attributes="6",   # 人脸关键属性,这里的6代表口罩。
          image_base64="asdfghjkl")     # 图片的base64编码
        response = client.detect_face_by_base64(request)
        print(response)      # 输出结果
    except exceptions.ClientRequestException as e:  # 有误情况的输出
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

注:本次实验使用base64的图片格式,图片的base64编码导出方法如下:
在这里插入图片描述
访问在线 Base64 转换网站(如 base64.guru)。
上传图片文件,网站会自动生成 Base64 编码。
复制结果(格式为data:image/png;base64,iVBORw0KGgo…)。

4.2运行结果

1.输入一张佩戴了口罩的图片:

在这里插入图片描述
输出结果包括以下2个部分:
在这里插入图片描述
1、 人脸在图片中的位置。(红线所示)
2、 人脸的特征:是否佩戴口罩mask,是(输出:yes);否(输出:none)。(方框所示)

2.输入一张未佩戴口罩的图片:

在这里插入图片描述
输出结果包括以下2个部分:
在这里插入图片描述
1.人脸在图片中的位置。(红线所示)
2.人脸的特征:是否佩戴口罩mask,是(输出:yes);否(输出:none)。(方框所示)

3 输入多人佩戴口罩的图片

在这里插入图片描述
输出结果:
在这里插入图片描述
输出三个结果,说明该人脸口罩检测可以识别多人面部特点。


http://www.kler.cn/a/590385.html

相关文章:

  • 从以太网 II 到 VLAN 和 Jumbo Frame:数据帧格式解读
  • 前端面试:如何减少项目里面 if-else?
  • 基于Python实现的结合U - Net与Transformer的神经网络用于视网膜血管分割的示例代码
  • 10 道面向 Java 开发者的 Linux 面试题及答案
  • SpringMVC响应页面及不同类型的数据,
  • Redis--补充类型
  • The Rust Programming Language 学习 (六)
  • 多元时间序列预测的范式革命:从数据异质性到基准重构
  • Elasticsearch 向量检索详解
  • 用maven生成springboot多模块项目
  • 【优化】系统性能优化步骤
  • UDP协议栈之整体架构处理
  • AI学习第二天--大模型压缩(量化、剪枝、蒸馏、低秩分解)
  • 上线后出现Bug测试该如何处理
  • Grafana 备份配置文件、数据库数据 和 仪表盘定义
  • 日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(23):たら ても
  • 3.16学习总结 java
  • Spring 框架中常用注解和使用方法
  • 【一文读懂】RTSP与RTMP的异同点
  • MyBatis (一)持久层框架-基础入门