文档

自定义人脸检索

本文介绍了如何使用Python SDK自定义人脸检索接口,对指定的人脸图片进行自定义人脸检索。

功能描述

图片审核支持同步检测和异步检测两种方式。

  • 同步检测实时返回检测结果。关于参数的详细信息,请参见同步检测

  • 异步检测需要您轮询结果或者通过callback回调通知获取检测结果。关于参数的详细信息,请参见异步检测

前提条件

人脸图片检索(URL)代码示例

# coding=utf-8
# 以下代码用于调用人脸图片(URL)检索接口并返回检测结果。

from aliyunsdkcore import client
from aliyunsdkcore.profile import region_provider
from aliyunsdkgreen.request.v20180509 import ImageSyncScanRequest
import json
import uuid

# 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
clt = client.AcsClient("建议从环境变量中获取RAM用户AccessKey ID", "建议从环境变量中获取RAM用户AccessKey Secret", "cn-shanghai")
region_provider.modify_point('Green', 'cn-shanghai', 'green.cn-shanghai.aliyuncs.com')
request = ImageSyncScanRequest.ImageSyncScanRequest()
request.set_accept_format('JSON')

# 同步调用支持单张图片的检索,即在指定的group中检索相似人脸。
task1 = {"dataId": str(uuid.uuid1()),
         "url": "https://example.com/tfs/xxx.jpg",
         "extras": {"groupId": "python_groupId_1"}
         }

request.set_content(bytearray(json.dumps({"tasks": [task1], "scenes": ["sface-n"]}), "utf-8"))

response = clt.do_action_with_exception(request)
print response
result = json.loads(response)
if 200 == result["code"]:
    taskResults = result["data"]
    for taskResult in taskResults:
        if (200 == taskResult["code"]):
            sceneResults = taskResult["results"]

            for sceneResult in sceneResults:
                scene = sceneResult["scene"]
                suggestion = sceneResult["suggestion"]
                print suggestion
                print scene
                # 根据scene和suggestion做相关的处理。

人脸图片检索(本地文件)代码示例

# coding=utf-8
# 以下代码用于调用人脸图片(本地文件)检索接口并返回检测结果。

from aliyunsdkcore import client
from aliyunsdkcore.profile import region_provider
from aliyunsdkgreen.request.v20180509 import ImageSyncScanRequest
from aliyunsdkgreenextension.request.extension import ClientUploader
import json
import uuid

# 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
# 常见获取环境变量方式:
# 获取RAM用户AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# 获取RAM用户AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
clt = client.AcsClient("建议从环境变量中获取RAM用户AccessKey ID", "建议从环境变量中获取RAM用户AccessKey Secret", "cn-shanghai")
region_provider.modify_point('Green', 'cn-shanghai', 'green.cn-shanghai.aliyuncs.com')
request = ImageSyncScanRequest.ImageSyncScanRequest()
request.set_accept_format('JSON')

# 上传本地文件到服务端。
uploader = ClientUploader.getImageClientUploader(clt)
url = uploader.uploadFile('d:/test/test.jpg')

# 同步调用支持单张图片的检索,即在指定的group中检索相似人脸。
task1 = {"dataId": str(uuid.uuid1()),
         "url": url,
         "extras": {"groupId": "python_groupId_1"}
         }

request.set_content(bytearray(json.dumps({"tasks": [task1], "scenes": ["sface-n"]}), "utf-8"))

response = clt.do_action_with_exception(request)
print response
result = json.loads(response)
if 200 == result["code"]:
    taskResults = result["data"]
    for taskResult in taskResults:
        if (200 == taskResult["code"]):
            sceneResults = taskResult["results"]

            for sceneResult in sceneResults:
                scene = sceneResult["scene"]
                suggestion = sceneResult["suggestion"]
                print suggestion
                print scene
                # 根据scene和suggestion做相关的处理。
  • 本页导读 (0)
文档反馈