基于华为云的人脸识别实验

基于华为云服务的人脸识别实验

环境配置等操作请查看华为云人脸识别服务-入门指导
此处使用的v2版本,需下载相应的SDK

实际效果

测试效果

代码附上

大致思路:
1. 将图像通过人脸识别服务进行检测,返回检测信息
2. 再在图片上绘制矩形,展示

from frsclient import AuthInfo
from frsclient import FrsClient
import cv2 as cv

# 配置相关参数
ak = "{-- 自己的ak --}"  # 配置自己的ak
sk = "{-- 自己的sk --}"  # 配置自己的sk
project_id = "{-- 自己的project_id --}"  # 配置自己的project_id
region = "cn-north-4"  # 默认使用北京-四
end_point = "https://face.cn-north-4.myhuaweicloud.com"

# 个人身份信息
auth_info = AuthInfo(ak=ak, sk=sk, end_point=end_point)
frs_client = FrsClient(auth_info=auth_info, project_id=project_id)

# 检测人脸,最后的"2"必须加,不然会报错,原因暂时不懂
result = frs_client.get_v2().get_detect_service().detect_face_by_file("需要检测的图像地址", "2")

try:
    resultStr = result.get_eval_result()
    # 通过返回结果获取人脸的位置
    x_point = resultStr['faces'][0]['bounding_box']['top_left_x']
    y_point = resultStr['faces'][0]['bounding_box']['top_left_y']
    width = resultStr['faces'][0]['bounding_box']['width']
    height = resultStr['faces'][0]['bounding_box']['height']
except IndexError:
    print("当前区域不存在人脸")
    exit(1)  # 有错误退出

img = cv.imread("图像地址同上")
rect = cv.rectangle(img, (x_point, y_point), (x_point + width, y_point + height), (255, 255, 255), 1)
cv.imshow("rect", rect)
k = cv.waitKey(0)

猜你喜欢

转载自blog.csdn.net/Calenber/article/details/121605114