Python을 사용하여 Tencent Cloud와 인터페이스하여 얼굴 특징점 감지 및 비교 기능 실현
얼굴 기술은 얼굴 인식, 얼굴 비교 등 오늘날 사회에서 널리 사용됩니다. 중국 최고의 클라우드 컴퓨팅 서비스 제공업체인 Tencent Cloud는 풍부한 얼굴 인식 및 분석 API 세트는 물론 Python과 쉽게 연결할 수 있는 Python SDK도 제공합니다. 이 기사에서는 Python을 사용하여 Tencent Cloud와 인터페이스하여 얼굴 핵심 포인트 감지 및 비교 기능을 구현하는 방법을 소개합니다.
먼저 Tencent Cloud 얼굴 인식 및 분석 API 콘솔에서 프로젝트를 생성하고 API 키를 얻어야 합니다. 이 프로젝트에서는 얼굴 감지 및 핵심 포인트 분석을 위한 인터페이스를 구성할 수 있습니다.
다음으로 명령줄에서 pip를 사용하여 설치할 수 있는 Python SDK를 설치해야 합니다.
pip install -U tencentcloud-sdk-python
설치가 완료되면 Python 코드에 Tencent Cloud SDK를 도입하고 클라이언트를 생성할 수 있습니다.
from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.fmu.v20191213 import fmu_client, models # 配置客户端 httpProfile = HttpProfile() httpProfile.endpoint = "fmu.tencentcloudapi.com" # 密钥信息 cred = credential.Credential("your-secret-id", "your-secret-key") clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = fmu_client.FmuClient(cred, "ap-guangzhou", clientProfile)
코드에서는 키, 클라이언트 지역, 클라이언트 구성 정보 등을 설정합니다.
다음으로 얼굴의 핵심 포인트를 감지하고 비교하는 기능을 구현하는 코드를 작성할 수 있습니다. 얼굴 핵심 포인트 감지를 예로 들어 보겠습니다.
def detect_face(image_path): try: # 读取图片 with open(image_path, "rb") as f: image_data = f.read() f.close() # 构建请求 req = models.DetectFaceRequest() params = { "Image": { "ImageBase64": base64.b64encode(image_data).decode("utf-8") }, "Url": "" } req.from_json_string(json.dumps(params)) # 发送请求并解析结果 resp = client.DetectFace(req) face_infos = json.loads(resp.to_json_string())["FaceInfos"] for face_info in face_infos: # 获取关键点坐标 landmarks = face_info["Landmarks"] for landmark in landmarks: x = landmark["X"] y = landmark["Y"] print("关键点坐标:({},{})".format(x, y)) except TencentCloudSDKException as err: print(err)
코드에서는 먼저 이미지를 읽고 이미지 데이터를 Base64 인코딩으로 변환한 다음 요청 개체를 빌드하고 이미지 데이터를 요청에 넣은 다음 마지막으로 요청을 시작하고 결과를 구문 분석합니다. 그 결과를 통해 얼굴의 주요 지점의 좌표를 얻을 수 있습니다.
Tencent Cloud 얼굴 비교 API의 사용법은 얼굴 핵심 포인트 감지와 유사하며 요청 매개변수만 변경하면 됩니다. 다음은 얼굴 비교를 위한 코드 예입니다.
def face_match(image_path1, image_path2): try: # 读取图片1 with open(image_path1, "rb") as f1: image_data1 = f1.read() f1.close() # 读取图片2 with open(image_path2, "rb") as f2: image_data2 = f2.read() f2.close() # 构建请求 req = models.CompareFaceRequest() params = { "ImageA": base64.b64encode(image_data1).decode("utf-8"), "ImageB": base64.b64encode(image_data2).decode("utf-8") } req.from_json_string(json.dumps(params)) # 发送请求并解析结果 resp = client.CompareFace(req) similarity = json.loads(resp.to_json_string())["Score"] print("人脸相似度为:{}%".format(similarity)) except TencentCloudSDKException as err: print(err)
코드에서는 먼저 두 사진의 데이터를 읽고 데이터를 Base64 인코딩으로 변환한 다음 요청 개체를 빌드하고 사진 데이터를 요청에 넣은 다음 마지막으로 요청하고 결과를 분석합니다. 그 결과를 통해 두 얼굴의 유사성을 얻을 수 있다.
위의 코드 예제를 통해 Python을 사용하여 Tencent Cloud 인터페이스에 쉽게 연결하여 얼굴 핵심 포인트 감지 및 비교를 실현할 수 있습니다. 이는 얼굴 관련 애플리케이션을 개발하는 데 편의성을 제공합니다. 물론 위의 코드는 단순한 예시일 뿐이며 독자들은 각자의 필요에 따라 확장하고 최적화할 수 있습니다.
위 내용은 Python을 사용하여 Tencent Cloud와 인터페이스하여 얼굴 핵심 포인트 감지 및 비교 기능 실현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!