本文介绍利用智能媒体管理(IMM)服务,帮助用户对照片进行分析与识别,实现场景中人脸的智能分组及相关人物照片的检索能力。该技术适用于智能相册、网盘及社群等多种场景。
方案预览
搭建智能人物相册的流程如图所示。
请将待分组的照片上传至OSS数据库,详情请参见上传文件。
通过IndexFileMeta - 文件元信息建立索引接口将照片元信息写入智能媒体管理所创建的数据集。
重要首先,请确保您已创建IMM应用所需的项目(Project)和数据集(Dataset),详情请参见创建数据集,其中数据集的TemplateId应为Official:FaceManagement,以便存储所有照片中的人脸相关信息。此外,我们建议您为每个照片库建立一个数据集,因为自动创建人物相册的接口会对数据集中所有照片进行人脸聚类。
调用CreateFigureClusteringTask - 创建人物人脸聚类任务接口对数据集里的人脸进行聚类,该接口将聚类后的信息写回数据集,并对不同人物的人脸进行分组,生成相应的分组ID。
调用QueryFigureClusters - 查询人物聚类接口,查询数据集中人脸聚类分组的信息,包括分组数量、各分组的图片数量等。
可以调用SimpleQuery - 简单查询接口,通过分组ID查询某个分组中包含的所有图片。
适用场景
前提条件
已通过绑定方式(CreateBinding - 创建绑定任务)或者主动索引方式(IndexFileMeta - 文件元信息建立索引或者BatchIndexFileMeta - 批量文件元信息建立索引)将待分组的图片索引到数据集(CreateDataset - 创建数据集)中。
同一个人物在媒体集中的图片必须大于或等于3张,并且至少有3张符合如下标准的高清人脸图片:
人脸尺寸大于75×75像素。
人脸的偏转角HeadPose的三个子项的绝对值均小于30°。
人脸的质量FaceQuality大于0.8。
说明您可以调用GetFileMeta - 获取文件元数据接口获取人脸的偏转角和质量信息。
分组生成后,数据集中不满足上述高清人脸标准的图片,也有机会被划分为同一组人脸。关于人脸聚类的更多常见问题,请参见图片管理常见问题。
步骤一:上传文件
请使用OSS管理控制台将需要分组的照片上传至已绑定的bucket。您可以使用face_test.zip或上传您自己的文件进行测试。
该文件需在解压后进行上传。
步骤二:向照片集中添加照片
使用智能媒体管理控制台,将您OSS中存储的照片添加到数据集中以构建照片库,包括照片中的人脸位置、性别、年龄等信息,以及用于人脸聚类的其他元数据信息。具体操作过程如下:
也可以使用BatchIndexFileMeta - 批量文件元信息建立索引接口,向数据集中批量写入人脸照片中的信息。写入照片信息的过程为异步进行,您可以使用设置 Notification 消息通知参数来获取任务信息。
代码示例:
# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. import os import sys from typing import List from alibabacloud_imm20200930.client import Client as imm20200930Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_imm20200930 import models as imm_20200930_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_util.client import Client as UtilClient class Sample: def __init__(self): pass @staticmethod def create_client() -> imm20200930Client: """ 使用AK&SK初始化账号Client @return: Client @throws Exception """ # 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 # 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。 config = open_api_models.Config( # 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。, access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], # 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。, access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] ) # Endpoint 请参考 https://api.aliyun.com/product/imm config.endpoint = f'imm.cn-hangzhou.aliyuncs.com' return imm20200930Client(config) @staticmethod def main( args: List[str], ) -> None: client = Sample.create_client() notification_mns = imm_20200930_models.MNS( topic_name='test-mns-topic' ) notification = imm_20200930_models.Notification( mns=notification_mns ) input_file_0 = imm_20200930_models.InputFile( uri='''[ { "URI": "oss://test-bucket/1.jpg" }, { "URI": "oss://test-bucket/2.jpg" }, { "URI": "oss://test-bucket/3.jpg" }, { "URI": "oss://test-bucket/4.jpg" }, { "URI": "oss://test-bucket/5.jpg" }, { "URI": "oss://test-bucket/6.jpg" } ]''' ) batch_index_file_meta_request = imm_20200930_models.BatchIndexFileMetaRequest( project_name='test-project', dataset_name='test-dataset', files=[ input_file_0 ], notification=notification ) runtime = util_models.RuntimeOptions() try: # 复制代码运行请自行打印 API 的返回值 client.batch_index_file_meta_with_options(batch_index_file_meta_request, runtime) except Exception as error: # 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 # 错误 message print(error.message) # 诊断地址 print(error.data.get("Recommend")) UtilClient.assert_as_string(error.message) @staticmethod async def main_async( args: List[str], ) -> None: client = Sample.create_client() notification_mns = imm_20200930_models.MNS( topic_name='test-mns-topic' ) notification = imm_20200930_models.Notification( mns=notification_mns ) input_file_0 = imm_20200930_models.InputFile( uri='''[ { "URI": "oss://test-bucket/1.jpg" }, { "URI": "oss://test-bucket/2.jpg" }, { "URI": "oss://test-bucket/3.jpg" }, { "URI": "oss://test-bucket/4.jpg" }, { "URI": "oss://test-bucket/5.jpg" }, { "URI": "oss://test-bucket/6.jpg" } ]''' ) batch_index_file_meta_request = imm_20200930_models.BatchIndexFileMetaRequest( project_name='test-project', dataset_name='test-dataset', files=[ input_file_0 ], notification=notification ) runtime = util_models.RuntimeOptions() try: # 复制代码运行请自行打印 API 的返回值 await client.batch_index_file_meta_with_options_async(batch_index_file_meta_request, runtime) except Exception as error: # 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 # 错误 message print(error.message) # 诊断地址 print(error.data.get("Recommend")) UtilClient.assert_as_string(error.message) if __name__ == '__main__': Sample.main(sys.argv[1:])
返回示例:
{ 'EventId':'049-1udsgM0nr0leAdDBAOxe4kDLYM5', 'RequestId': 'D4C150A6-D8EF-502B-9F30-645346388E13' }
轻量消息队列(原MNS)消息示例:
{ "TopicOwner": "14133977656xxxxx", "Message": "{\"id\":\"077-1x2s0rqA6ZOENW6gjAiN5Dl796T\",\"source\":\"acs.imm\",\"type\":\"imm:FileMeta:Index\",\"subject\":\"acs:imm:cn-hangzhou:14133977656xxxxx:test-project/imm:FileMeta:Index\",\"time\":\"1729564297965\",\"content\":\"{\\\"ProjectName\\\":\\\"test-project\\\",\\\"DatasetName\\\":\\\"test-dataset\\\",\\\"RequestId\\\":\\\"7FE8A307-1649-6B0D-1AB8-0600C9D4877B\\\",\\\"StartTime\\\":\\\"2024-10-22T10:31:37.787209251+08:00\\\",\\\"EndTime\\\":\\\"2024-10-22T10:31:37.965992728+08:00\\\",\\\"Success\\\":true,\\\"Message\\\":\\\"\\\",\\\"Files\\\":[{\\\"URI\\\":\\\"[\\\\n {\\\\n \\\\\\\"URI\\\\\\\": \\\\\\\"oss://test-bucket/1.jpg\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"URI\\\\\\\": \\\\\\\"oss://test-bucket/2.jpg\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"URI\\\\\\\": \\\\\\\"oss://test-bucket/3.jpg\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"URI\\\\\\\": \\\\\\\"oss://test-bucket/4.jpg\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"URI\\\\\\\": \\\\\\\"oss://test-bucket/5.jpg\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"URI\\\\\\\": \\\\\\\"oss://test-bucket/6.jpg\\\\\\\"\\\\n }\\\\n],\\\"UserData\\\":\\\"\\\"}\"}", "Subscriber": "14133977656xxxxx", "PublishTime": "1729564298068", "SubscriptionName": "test-mns-subscription", "MessageMD5": "9921327B25E01FB38151781B81042BA7", "TopicName": "test-mns-topic", "MessageId": "129D772E14277FA6182D6E67D354D069" }
步骤三:执行人物聚类,自动生成智能相册
在向数据集中写入了照片的人脸相关信息后,可以使用CreateFigureClusteringTask - 创建人物人脸聚类任务接口根据照片的人脸信息进行自动人物分类。人物聚类操作为异步过程,您可以使用设置 Notification 消息通知参数来获取任务信息。此外,还可以调用 GetTask - 获取任务信息 接口获取返回的 TaskId 查看任务信息。
代码示例:
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import os
import sys
from typing import List
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client() -> imm20200930Client:
"""
使用AK&SK初始化账号Client
@return: Client
@throws Exception
"""
# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
# 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。
config = open_api_models.Config(
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
)
# Endpoint 请参考 https://api.aliyun.com/product/imm
config.endpoint = f'imm.cn-hangzhou.aliyuncs.com'
return imm20200930Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client()
notification_mns = imm_20200930_models.MNS(
topic_name='test-mns-topic'
)
notification = imm_20200930_models.Notification(
mns=notification_mns
)
create_figure_clustering_task_request = imm_20200930_models.CreateFigureClusteringTaskRequest(
project_name='test-project',
dataset_name='test-datset',
notification=notification
)
runtime = util_models.RuntimeOptions()
try:
# 复制代码运行请自行打印 API 的返回值
client.create_figure_clustering_task_with_options(create_figure_clustering_task_request, runtime)
except Exception as error:
# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
# 错误 message
print(error.message)
# 诊断地址
print(error.data.get("Recommend"))
UtilClient.assert_as_string(error.message)
@staticmethod
async def main_async(
args: List[str],
) -> None:
client = Sample.create_client()
notification_mns = imm_20200930_models.MNS(
topic_name='test-mns-topic'
)
notification = imm_20200930_models.Notification(
mns=notification_mns
)
create_figure_clustering_task_request = imm_20200930_models.CreateFigureClusteringTaskRequest(
project_name='test-project',
dataset_name='test-dataset',
notification=notification
)
runtime = util_models.RuntimeOptions()
try:
# 复制代码运行请自行打印 API 的返回值
await client.create_figure_clustering_task_with_options_async(create_figure_clustering_task_request, runtime)
except Exception as error:
# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
# 错误 message
print(error.message)
# 诊断地址
print(error.data.get("Recommend"))
UtilClient.assert_as_string(error.message)
if __name__ == '__main__':
Sample.main(sys.argv[1:])
返回示例:
{
"TaskId": "CreateFigureClusteringTask-1741f244-b8e5-47dc-8da0-be1e7d24604d",
"RequestId": "7BA1459A-D5BE-5493-AE65-049405390C1D",
"EventId": "351-1x0bvGzGA88K3qimNnyec2sAJTY"
}
轻量消息队列(原MNS)消息示例:
{
"TopicOwner": "14133977656xxxxx",
"Message": "{\"id\":\"0D8-1x0cVcQcOX4Od0FelqwHFsJEUkC\",\"source\":\"acs.imm\",\"type\":\"imm:Task:FigureClustering\",\"subject\":\"acs:imm:cn-hangzhou:14133977656xxxxx:test-project/imm:Task:FigureClustering\",\"time\":\"1729495470992\",\"content\":\"{\\\"ProjectName\\\":\\\"test-project\\\",\\\"DatasetName\\\":\\\"test-dataset\\\",\\\"RequestId\\\":\\\"279A338B-3561-5EEE-B47B-E66CC5E17FFA\\\",\\\"StartTime\\\":\\\"2024-10-21T07:24:31.04Z\\\",\\\"EndTime\\\":\\\"2024-10-21T07:24:31.463Z\\\",\\\"UserData\\\":\\\"\\\",\\\"TaskType\\\":\\\"FaceClustering\\\",\\\"TaskId\\\":\\\"CreateFigureClusteringTask-8a711151-5d94-407e-a9d2-c3e7c899f9c6\\\",\\\"Status\\\":\\\"Succeeded\\\",\\\"Code\\\":\\\"\\\",\\\"Message\\\":\\\"Success\\\",\\\"EventSourceId\\\":\\\"\\\",\\\"NewClusterCount\\\":2,\\\"UpdatedClusterCount\\\":0,\\\"UpdatedFigureCount\\\":6,\\\"NewClusterIds\\\":[\\\"Cluster-1\\\", \\\"Cluster-2\\\"],\\\"UpdatedClusterIds\\\":[]}\"}",
"Subscriber": "14133977656xxxxx",
"PublishTime": "1729495471584",
"SubscriptionName": "test-mns-subscription",
"MessageMD5": "75FC3BEB509CC5A5FEEFD923A8E4E948",
"TopicName": "test-mns-topic",
"MessageId": "129D772E142761357F976A4D9DE0F4E0"
}
步骤四:查询人脸分组信息
人脸聚类任务创建成功后,您可以调用QueryFigureClusters - 查询人物聚类接口,查询分组的信息,包括分组数量、各分组的图片数量等。
代码示例:
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import os
import sys
from typing import List
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client() -> imm20200930Client:
"""
使用AK&SK初始化账号Client
@return: Client
@throws Exception
"""
# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
# 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。
config = open_api_models.Config(
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
)
# Endpoint 请参考 https://api.aliyun.com/product/imm
config.endpoint = f'imm.cn-hangzhou.aliyuncs.com'
return imm20200930Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client()
query_figure_clusters_request = imm_20200930_models.QueryFigureClustersRequest(
project_name='test-project',
dataset_name='test-datset'
)
runtime = util_models.RuntimeOptions()
try:
# 复制代码运行请自行打印 API 的返回值
client.query_figure_clusters_with_options(query_figure_clusters_request, runtime)
except Exception as error:
# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
# 错误 message
print(error.message)
# 诊断地址
print(error.data.get("Recommend"))
UtilClient.assert_as_string(error.message)
@staticmethod
async def main_async(
args: List[str],
) -> None:
client = Sample.create_client()
query_figure_clusters_request = imm_20200930_models.QueryFigureClustersRequest(
project_name='test-project',
dataset_name='test-dataset'
)
runtime = util_models.RuntimeOptions()
try:
# 复制代码运行请自行打印 API 的返回值
await client.query_figure_clusters_with_options_async(query_figure_clusters_request, runtime)
except Exception as error:
# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
# 错误 message
print(error.message)
# 诊断地址
print(error.data.get("Recommend"))
UtilClient.assert_as_string(error.message)
if __name__ == '__main__':
Sample.main(sys.argv[1:])
返回示例:
{
"RequestId": "B955CD55-AB9D-534C-B531-A861C1428BAB",
"NextToken": "",
"FigureClusters": [
{
"VideoCount": 0,
"ProjectName": "test-project",
"ObjectId": "Cluster-2",
"MetaLockVersion": 0,
"CreateTime": "2024-10-21T15:19:41.614715608+08:00",
"MaxAge": 26.0,
"Gender": "female",
"AverageAge": 25.0,
"ObjectType": "figure-cluster",
"ImageCount": 3,
"MinAge": 24.0,
"Cover": {
"ImageHeight": 1650,
"ObjectId": "48c0e16c50ec0bc00cc49504697d1f8ecd88615ef73c4856acbdf571ac549f63",
"ImageWidth": 1486,
"Figures": [
{
"Beard": "none",
"MouthConfidence": 1.0,
"FigureType": "face",
"HeadPose": {
"Pitch": 4.532,
"Roll": 12.779,
"Yaw": 0.32
},
"Mask": "none",
"MaskConfidence": 0.818,
"HatConfidence": 1.0,
"GlassesConfidence": 1.0,
"Sharpness": 1.0,
"Boundary": {
"Left": 511,
"Top": 234,
"Height": 680,
"Width": 437
},
"FaceQuality": 0.87,
"Attractive": 0.999,
"BeardConfidence": 1.0,
"FigureId": "0d5f269b-ae52-4c52-98da-5b3edab5e4a7",
"Mouth": "open",
"Glasses": "none",
"Hat": "none"
}
],
"URI": "oss://test-bucket/6.jpg"
},
"OwnerId": "14133977656xxxxx",
"DatasetName": "test-dataset",
"UpdateTime": "2024-10-21T15:19:41.614715608+08:00",
"FaceCount": 3
},
{
"VideoCount": 0,
"ProjectName": "test-project",
"ObjectId": "Cluster-2,
"MetaLockVersion": 0,
"CreateTime": "2024-10-21T15:19:41.614715608+08:00",
"MaxAge": 29.0,
"Gender": "female",
"AverageAge": 28.333,
"ObjectType": "figure-cluster",
"ImageCount": 3,
"MinAge": 28.0,
"Cover": {
"ImageHeight": 3699,
"ObjectId": "0bb00fcf9eb8415cec41f4520aef82933e21534daa07698bb440b876a7a17243",
"ImageWidth": 3885,
"Figures": [
{
"Beard": "none",
"MouthConfidence": 0.999,
"FigureType": "face",
"HeadPose": {
"Pitch": -3.278,
"Roll": 1.611,
"Yaw": 3.665
},
"Mask": "none",
"MaskConfidence": 0.825,
"HatConfidence": 0.996,
"GlassesConfidence": 0.996,
"Sharpness": 1.0,
"Boundary": {
"Left": 1294,
"Top": 601,
"Height": 1803,
"Width": 1331
},
"FaceQuality": 0.968,
"Attractive": 0.996,
"BeardConfidence": 1.0,
"FigureId": "cb94232c-e277-4ce4-a28d-2b6a551a3cef",
"Mouth": "open",
"Glasses": "none",
"Hat": "none"
}
],
"URI": "oss://test-bucket/6.jpg"
},
"OwnerId": "14133977656xxxxx",
"DatasetName": "test-dataset",
"UpdateTime": "2024-10-21T15:19:41.614715608+08:00",
"FaceCount": 3
}
]
}
该返回示例显示,此数据集中的人脸图片被分为2组,分组ID分别为Cluster-2和Cluster-1,各包含3张图片。
步骤五:查询人脸分组中的图片列表
查询完分组信息之后,您可以调用SimpleQuery - 简单查询接口,通过分组ID查询某个分组中包含的所有图片。如下以查询数据集test中分组ID为Cluster-1的人脸分组图片信息为例。
代码示例:
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import os
import sys
from typing import List
from alibabacloud_tea_openapi.client import Client as OpenApiClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_openapi_util.client import Client as OpenApiUtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client() -> OpenApiClient:
"""
使用AK&SK初始化账号Client
@return: Client
@throws Exception
"""
# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
# 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。
config = open_api_models.Config(
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
)
# Endpoint 请参考 https://api.aliyun.com/product/imm
config.endpoint = f'imm.cn-hangzhou.aliyuncs.com'
return OpenApiClient(config)
@staticmethod
def create_api_info() -> open_api_models.Params:
"""
API 相关
@param path: string Path parameters
@return: OpenApi.Params
"""
params = open_api_models.Params(
# 接口名称,
action='SimpleQuery',
# 接口版本,
version='2020-09-30',
# 接口协议,
protocol='HTTPS',
# 接口 HTTP 方法,
method='POST',
auth_type='AK',
style='RPC',
# 接口 PATH,
pathname=f'/',
# 接口请求体内容格式,
req_body_type='json',
# 接口响应体内容格式,
body_type='json'
)
return params
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client()
params = Sample.create_api_info()
# query params
queries = {}
queries['ProjectName'] = 'test-project'
queries['DatasetName'] = 'test-dataset'
queries['Query'] = '{"Value":"Cluster-1","Operation":"eq","Field":"Figures.FigureClusterId"}'
# runtime options
runtime = util_models.RuntimeOptions()
request = open_api_models.OpenApiRequest(
query=OpenApiUtilClient.query(queries)
)
# 复制代码运行请自行打印 API 的返回值
# 返回值实际为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
client.call_api(params, request, runtime)
@staticmethod
async def main_async(
args: List[str],
) -> None:
client = Sample.create_client()
params = Sample.create_api_info()
# query params
queries = {}
queries['ProjectName'] = 'test-project'
queries['DatasetName'] = 'test-dataset'
queries['Query'] = '{"Value":"Cluster-1","Operation":"eq","Field":"Figures.FigureClusterId"}'
# runtime options
runtime = util_models.RuntimeOptions()
request = open_api_models.OpenApiRequest(
query=OpenApiUtilClient.query(queries)
)
# 复制代码运行请自行打印 API 的返回值
# 返回值实际为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
await client.call_api_async(params, request, runtime)
if __name__ == '__main__':
Sample.main(sys.argv[1:])
返回示例:
{
"TotalHits": 3,
"RequestId": "B7D57DFA-5D67-5AC9-9071-E2CB156B6CBC",
"Files": [
{
"ProduceTime": "2020-07-22T21:40:51+08:00",
"ObjectACL": "default",
"ContentType": "image/jpeg",
"ProjectName": "test-project",
"Size": 1614586,
"URI": "oss://test-bucket/5.jpg",
"ObjectType": "file",
"CustomLabels": {
"category": "人物"
},
"OwnerId": "14133977656xxxxx",
"FileModifiedTime": "2024-10-21T14:38:58+08:00",
"ImageWidth": 3885,
"OSSStorageClass": "Standard",
"MediaType": "image",
"ObjectId": "0bb00fcf9eb8415cec41f4520aef82933e21534daa07698bb440b876a7a17243",
"CreateTime": "2024-10-21T15:11:03.432029105+08:00",
"Filename": "5.jpg",
"Labels": [
{
"CentricScore": 0.873,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "发型",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.816,
"Language": "zh-Hans",
"LabelConfidence": 0.948,
"LabelName": "人像",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.777,
"Language": "zh-Hans",
"LabelConfidence": 0.937,
"LabelName": "微笑",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.864,
"Language": "zh-Hans",
"LabelConfidence": 0.931,
"LabelName": "照片拍摄",
"LabelLevel": 2,
"ParentLabelName": "艺术品"
},
{
"CentricScore": 0.809,
"Language": "zh-Hans",
"LabelConfidence": 0.923,
"LabelName": "人",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.851,
"Language": "zh-Hans",
"LabelConfidence": 0.915,
"LabelName": "女性",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.849,
"Language": "zh-Hans",
"LabelConfidence": 0.834,
"LabelName": "美人",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.811,
"Language": "zh-Hans",
"LabelConfidence": 0.826,
"LabelName": "服装",
"LabelLevel": 2,
"ParentLabelName": "衣服"
},
{
"CentricScore": 0.826,
"Language": "zh-Hans",
"LabelConfidence": 0.826,
"LabelName": "肖像",
"LabelLevel": 2,
"ParentLabelName": "其他事物"
},
{
"CentricScore": 0.886,
"Language": "zh-Hans",
"LabelConfidence": 0.822,
"LabelName": "珠宝",
"LabelLevel": 2,
"ParentLabelName": "衣服"
},
{
"CentricScore": 0.872,
"Language": "zh-Hans",
"LabelConfidence": 0.766,
"LabelName": "女孩",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.886,
"Language": "zh-Hans",
"LabelConfidence": 0.755,
"LabelName": "模特",
"LabelLevel": 2,
"ParentLabelName": "职业&角色"
},
{
"CentricScore": 0.847,
"Language": "zh-Hans",
"LabelConfidence": 0.648,
"LabelName": "化妆",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.819,
"Language": "zh-Hans",
"LabelConfidence": 0.626,
"LabelName": "肖像摄影",
"LabelLevel": 2,
"ParentLabelName": "艺术品"
},
{
"CentricScore": 0.873,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "日常行为",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.872,
"Language": "zh-Hans",
"LabelConfidence": 0.948,
"LabelName": "面部",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.849,
"Language": "zh-Hans",
"LabelConfidence": 0.937,
"LabelName": "外貌特征",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.864,
"Language": "zh-Hans",
"LabelConfidence": 0.931,
"LabelName": "艺术品",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.886,
"Language": "zh-Hans",
"LabelConfidence": 0.826,
"LabelName": "衣服",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.826,
"Language": "zh-Hans",
"LabelConfidence": 0.826,
"LabelName": "其他事物",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.886,
"Language": "zh-Hans",
"LabelConfidence": 0.755,
"LabelName": "职业&角色",
"LabelLevel": 1,
"ParentLabelName": ""
}
],
"Orientation": 0,
"Figures": [
{
"Beard": "none",
"MaskConfidence": 0.825,
"Gender": "female",
"Boundary": {
"Left": 1294,
"Top": 601,
"Height": 1803,
"Width": 1331
},
"BeardConfidence": 1.0,
"FigureId": "cb94232c-e277-4ce4-a28d-2b6a551a3cef",
"Mouth": "open",
"Emotion": "happiness",
"Age": 28,
"MouthConfidence": 0.999,
"FigureType": "face",
"GenderConfidence": 1.0,
"HeadPose": {
"Pitch": -3.278,
"Roll": 1.611,
"Yaw": 3.665
},
"Mask": "none",
"EmotionConfidence": 0.999,
"HatConfidence": 0.996,
"GlassesConfidence": 0.996,
"Sharpness": 1.0,
"FigureClusterId": "Cluster-1",
"FaceQuality": 0.968,
"Attractive": 0.996,
"AgeSD": 6.0,
"Glasses": "none",
"FigureConfidence": 1.0,
"Hat": "none"
}
],
"EXIF": "{\"Copyright\":{\"value\":\"©ACloud Man - stock.adobe.com\"},\"DateTimeDigitized\":{\"value\":\"2020:07:22 21:40:51\"},\"DateTimeOriginal\":{\"value\":\"2020:07:22 21:40:51\"},\"ExifTag\":{\"value\":\"2154\"},\"FileSize\":{\"value\":\"1614586\"},\"Format\":{\"value\":\"jpg\"},\"FrameCount\":{\"value\":\"1\"},\"ImageHeight\":{\"value\":\"3699\"},\"ImageWidth\":{\"value\":\"3885\"},\"ResolutionUnit\":{\"value\":\"2\"},\"SubSecTimeDigitized\":{\"value\":\"00\"},\"SubSecTimeOriginal\":{\"value\":\"00\"},\"XPKeywords\":{\"value\":\"109 0 97 0 107 0 101 0 117 0 112 0 59 0 97 0 115 0 105 0 97 0 110 0 59 0 99 0 111 0 115 0 109 0 101 0 116 0 105 0 99 0 59 0 99 0 104 0 105 0 110 0 101 0 115 0 101 0 59 0 103 0 105 0 114 0 108 0 59 0 106 0 97 0 112 0 97 0 110 0 101 0 115 0 101 0 59 0 107 0 111 0 114 0 101 0 97 0 110 0 59 0 98 0 111 0 100 0 121 0 32 0 99 0 97 0 114 0 101 0 59 0 98 0 97 0 99 0 107 0 103 0 114 0 111 0 117 0 110 0 100 0 59 0 99 0 108 0 111 0 115 0 101 0 117 0 112 0 59 0 99 0 108 0 101 0 97 0 110 0 59 0 102 0 111 0 117 0 110 0 100 0 97 0 116 0 105 0 111 0 110 0 59 0 102 0 114 0 101 0 115 0 104 0 110 0 101 0 115 0 115 0 59 0 104 0 101 0 97 0 108 0 116 0 104 0 59 0 110 0 97 0 116 0 117 0 114 0 97 0 108 0 59 0 112 0 97 0 115 0 116 0 101 0 108 0 59 0 112 0 111 0 115 0 101 0 59 0 112 0 117 0 114 0 101 0 59 0 115 0 107 0 105 0 110 0 99 0 97 0 114 0 101 0 59 0 115 0 112 0 97 0 0 0\"},\"XResolution\":{\"value\":\"300/1\"},\"YResolution\":{\"value\":\"300/1\"}}",
"ContentMd5": "3NgQCXJsq/NJZJuL2e7ocw==",
"ImageHeight": 3699,
"ImageScore": {
"OverallQualityScore": 0.769
},
"ETag": "\"DCD81009726CABF349649B8BD9EEE873\"",
"DatasetName": "test-dataset",
"FileHash": "DCD81009726CABF349649B8BD9EEE873",
"UpdateTime": "2024-10-21T15:11:08.786577032+08:00",
"OSSCRC64": "12819954187629571497",
"OSSTaggingCount": 0,
"OSSObjectType": "Normal"
},
{
"ProduceTime": "2020-07-20T08:58:53+08:00",
"Artist": "LIUJIACHUAN",
"ObjectACL": "default",
"ContentType": "image/jpeg",
"ProjectName": "test-project",
"Size": 1650902,
"URI": "oss://test-bucket/2.jpg",
"ObjectType": "file",
"CustomLabels": {
"category": "人物"
},
"OwnerId": "14133977656xxxxx",
"FileModifiedTime": "2024-10-21T14:13:10+08:00",
"ImageWidth": 3479,
"OSSStorageClass": "Standard",
"MediaType": "image",
"ObjectId": "2bf8d7c5d39a74c7da3544774dbb2a5da042e1ca2eefb129b5ce15ed0fa445d2",
"CreateTime": "2024-10-21T14:39:12.844774611+08:00",
"Filename": "2.jpg",
"Title": "Portrait Of Beautiful Woman in Studio",
"Labels": [
{
"CentricScore": 0.887,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "发型",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.841,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "肖像",
"LabelLevel": 2,
"ParentLabelName": "其他事物"
},
{
"CentricScore": 0.789,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "服装",
"LabelLevel": 2,
"ParentLabelName": "衣服"
},
{
"CentricScore": 0.853,
"Language": "zh-Hans",
"LabelConfidence": 0.969,
"LabelName": "照片拍摄",
"LabelLevel": 2,
"ParentLabelName": "艺术品"
},
{
"CentricScore": 0.845,
"Language": "zh-Hans",
"LabelConfidence": 0.95,
"LabelName": "人像",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.803,
"Language": "zh-Hans",
"LabelConfidence": 0.941,
"LabelName": "微笑",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.85,
"Language": "zh-Hans",
"LabelConfidence": 0.929,
"LabelName": "美人",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.862,
"Language": "zh-Hans",
"LabelConfidence": 0.928,
"LabelName": "女士",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.852,
"Language": "zh-Hans",
"LabelConfidence": 0.924,
"LabelName": "人",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.881,
"Language": "zh-Hans",
"LabelConfidence": 0.923,
"LabelName": "女性",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.908,
"Language": "zh-Hans",
"LabelConfidence": 0.91,
"LabelName": "棕色头发",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.897,
"Language": "zh-Hans",
"LabelConfidence": 0.906,
"LabelName": "长发",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.841,
"Language": "zh-Hans",
"LabelConfidence": 0.881,
"LabelName": "肖像摄影",
"LabelLevel": 2,
"ParentLabelName": "艺术品"
},
{
"CentricScore": 0.892,
"Language": "zh-Hans",
"LabelConfidence": 0.865,
"LabelName": "女孩",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.851,
"Language": "zh-Hans",
"LabelConfidence": 0.86,
"LabelName": "模特",
"LabelLevel": 2,
"ParentLabelName": "职业&角色"
},
{
"CentricScore": 0.845,
"Language": "zh-Hans",
"LabelConfidence": 0.843,
"LabelName": "人物特写",
"LabelLevel": 2,
"ParentLabelName": "其他场景"
},
{
"CentricScore": 0.88,
"Language": "zh-Hans",
"LabelConfidence": 0.816,
"LabelName": "珠宝",
"LabelLevel": 2,
"ParentLabelName": "衣服"
},
{
"CentricScore": 0.694,
"Language": "zh-Hans",
"LabelConfidence": 0.814,
"LabelName": "白色",
"LabelLevel": 3,
"ParentLabelName": "颜色"
},
{
"CentricScore": 0.868,
"Language": "zh-Hans",
"LabelConfidence": 0.721,
"LabelName": "梳头发",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.88,
"Language": "zh-Hans",
"LabelConfidence": 0.664,
"LabelName": "吹头发",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.887,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "日常行为",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.841,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "其他事物",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.88,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "衣服",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.853,
"Language": "zh-Hans",
"LabelConfidence": 0.969,
"LabelName": "艺术品",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.892,
"Language": "zh-Hans",
"LabelConfidence": 0.95,
"LabelName": "面部",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.908,
"Language": "zh-Hans",
"LabelConfidence": 0.941,
"LabelName": "外貌特征",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.851,
"Language": "zh-Hans",
"LabelConfidence": 0.86,
"LabelName": "职业&角色",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.845,
"Language": "zh-Hans",
"LabelConfidence": 0.843,
"LabelName": "其他场景",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.694,
"Language": "zh-Hans",
"LabelConfidence": 0.814,
"LabelName": "颜色",
"LabelLevel": 2,
"ParentLabelName": "其他事物"
}
],
"Orientation": 0,
"Figures": [
{
"Beard": "none",
"MaskConfidence": 0.857,
"Gender": "female",
"Boundary": {
"Left": 1223,
"Top": 577,
"Height": 1585,
"Width": 1180
},
"BeardConfidence": 1.0,
"FigureId": "fcbecbcb-6f1d-487d-8c16-0a96b375e30c",
"Mouth": "open",
"Emotion": "happiness",
"Age": 28,
"MouthConfidence": 0.999,
"FigureType": "face",
"GenderConfidence": 1.0,
"HeadPose": {
"Pitch": 2.643,
"Roll": 11.223,
"Yaw": -7.446
},
"Mask": "none",
"EmotionConfidence": 1.0,
"HatConfidence": 0.999,
"GlassesConfidence": 0.998,
"Sharpness": 1.0,
"FigureClusterId": "Cluster-1",
"FaceQuality": 0.96,
"Attractive": 0.997,
"AgeSD": 6.0,
"Glasses": "none",
"FigureConfidence": 1.0,
"Hat": "none"
}
],
"EXIF": "{\"Artist\":{\"value\":\"LIUJIACHUAN\"},\"Copyright\":{\"value\":\"LIUJIACHUAN\"},\"DateTimeDigitized\":{\"value\":\"2020:07:20 08:58:53\"},\"DateTimeOriginal\":{\"value\":\"2020:07:20 08:58:53\"},\"ExifTag\":{\"value\":\"2268\"},\"FileSize\":{\"value\":\"1650902\"},\"Format\":{\"value\":\"jpg\"},\"FrameCount\":{\"value\":\"1\"},\"ImageDescription\":{\"value\":\"Portrait Of Beautiful Woman in Studio\"},\"ImageHeight\":{\"value\":\"3937\"},\"ImageWidth\":{\"value\":\"3479\"},\"Rating\":{\"value\":\"5\"},\"RatingPercent\":{\"value\":\"99\"},\"ResolutionUnit\":{\"value\":\"2\"},\"SubSecTimeDigitized\":{\"value\":\"00\"},\"SubSecTimeOriginal\":{\"value\":\"00\"},\"XPAuthor\":{\"value\":\"76 0 73 0 85 0 74 0 73 0 65 0 67 0 72 0 85 0 65 0 78 0 0 0\"},\"XPKeywords\":{\"value\":\"102 0 101 0 109 0 97 0 108 0 101 0 59 0 108 0 97 0 100 0 121 0 59 0 119 0 111 0 109 0 97 0 110 0 59 0 98 0 101 0 97 0 117 0 116 0 121 0 59 0 109 0 111 0 105 0 115 0 116 0 117 0 114 0 101 0 32 0 114 0 101 0 116 0 101 0 110 0 116 0 105 0 111 0 110 0 59 0 102 0 97 0 99 0 105 0 97 0 108 0 59 0 115 0 107 0 105 0 110 0 32 0 99 0 97 0 114 0 101 0 59 0 99 0 111 0 110 0 116 0 101 0 109 0 112 0 108 0 97 0 116 0 105 0 111 0 110 0 59 0 102 0 111 0 117 0 110 0 100 0 97 0 116 0 105 0 111 0 110 0 59 0 112 0 111 0 114 0 116 0 114 0 97 0 105 0 116 0 59 0 112 0 111 0 114 0 116 0 114 0 97 0 105 0 116 0 115 0 59 0 112 0 101 0 114 0 115 0 111 0 110 0 59 0 89 0 111 0 117 0 110 0 103 0 59 0 111 0 110 0 101 0 32 0 112 0 101 0 114 0 115 0 111 0 110 0 59 0 99 0 104 0 105 0 110 0 101 0 115 0 101 0 32 0 101 0 116 0 104 0 110 0 105 0 99 0 105 0 116 0 121 0 59 0 97 0 115 0 105 0 97 0 110 0 59 0 102 0 97 0 99 0 105 0 97 0 108 0 32 0 101 0 120 0 112 0 114 0 101 0 115 0 115 0 105 0 111 0 110 0 59 0 102 0 97 0 99 0 101 0 59 0 109 0 97 0 107 0 101 0 32 0 117 0 112 0 59 0 109 0 97 0 107 0 101 0 45 0 117 0 112 0 0 0\"},\"XPSubject\":{\"value\":\"80 0 111 0 114 0 116 0 114 0 97 0 105 0 116 0 32 0 79 0 102 0 32 0 66 0 101 0 97 0 117 0 116 0 105 0 102 0 117 0 108 0 32 0 87 0 111 0 109 0 97 0 110 0 32 0 105 0 110 0 32 0 83 0 116 0 117 0 100 0 105 0 111 0 0 0\"},\"XPTitle\":{\"value\":\"80 0 111 0 114 0 116 0 114 0 97 0 105 0 116 0 32 0 79 0 102 0 32 0 66 0 101 0 97 0 117 0 116 0 105 0 102 0 117 0 108 0 32 0 87 0 111 0 109 0 97 0 110 0 32 0 105 0 110 0 32 0 83 0 116 0 117 0 100 0 105 0 111 0 0 0\"},\"XResolution\":{\"value\":\"300/1\"},\"YResolution\":{\"value\":\"300/1\"}}",
"ContentMd5": "nXMVmG+xwEgLZLwUyrHc5g==",
"ImageHeight": 3937,
"ImageScore": {
"OverallQualityScore": 0.754
},
"ETag": "\"9D7315986FB1C0480B64BC14CAB1DCE6\"",
"DatasetName": "test-dataset",
"FileHash": "9D7315986FB1C0480B64BC14CAB1DCE6",
"UpdateTime": "2024-10-21T14:48:08.786577032+08:00",
"OSSCRC64": "18204555674833433107",
"OSSTaggingCount": 0,
"OSSObjectType": "Normal"
},
{
"ObjectACL": "default",
"ContentType": "image/jpeg",
"ProjectName": "test-project",
"Size": 9241112,
"URI": "oss://test-bucket/1.jpg",
"ObjectType": "file",
"CustomLabels": {
"category": "人物"
},
"OwnerId": "14133977656xxxxx",
"FileModifiedTime": "2024-10-21T14:13:19+08:00",
"ImageWidth": 3861,
"OSSStorageClass": "Standard",
"MediaType": "image",
"ObjectId": "3a69d4f74493580ae821115a148d1ea1c361a970f8bc6c6274841b64efff9d4a",
"CreateTime": "2024-10-21T14:39:12.749880168+08:00",
"Filename": "1.jpg",
"Title": "A beautiful young Chinese woman",
"Labels": [
{
"CentricScore": 0.821,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "发型",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.754,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "肖像",
"LabelLevel": 2,
"ParentLabelName": "其他事物"
},
{
"CentricScore": 0.728,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "服装",
"LabelLevel": 2,
"ParentLabelName": "衣服"
},
{
"CentricScore": 0.672,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "白色",
"LabelLevel": 3,
"ParentLabelName": "颜色"
},
{
"CentricScore": 0.765,
"Language": "zh-Hans",
"LabelConfidence": 0.993,
"LabelName": "照片拍摄",
"LabelLevel": 2,
"ParentLabelName": "艺术品"
},
{
"CentricScore": 0.784,
"Language": "zh-Hans",
"LabelConfidence": 0.969,
"LabelName": "女士",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.741,
"Language": "zh-Hans",
"LabelConfidence": 0.959,
"LabelName": "肖像摄影",
"LabelLevel": 2,
"ParentLabelName": "艺术品"
},
{
"CentricScore": 0.731,
"Language": "zh-Hans",
"LabelConfidence": 0.95,
"LabelName": "人像",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.853,
"Language": "zh-Hans",
"LabelConfidence": 0.948,
"LabelName": "长发",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.713,
"Language": "zh-Hans",
"LabelConfidence": 0.944,
"LabelName": "微笑",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.736,
"Language": "zh-Hans",
"LabelConfidence": 0.925,
"LabelName": "人",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.768,
"Language": "zh-Hans",
"LabelConfidence": 0.924,
"LabelName": "美人",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.825,
"Language": "zh-Hans",
"LabelConfidence": 0.918,
"LabelName": "女性",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.827,
"Language": "zh-Hans",
"LabelConfidence": 0.909,
"LabelName": "模特",
"LabelLevel": 2,
"ParentLabelName": "职业&角色"
},
{
"CentricScore": 0.827,
"Language": "zh-Hans",
"LabelConfidence": 0.907,
"LabelName": "棕色头发",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.835,
"Language": "zh-Hans",
"LabelConfidence": 0.906,
"LabelName": "女孩",
"LabelLevel": 2,
"ParentLabelName": "面部"
},
{
"CentricScore": 0.738,
"Language": "zh-Hans",
"LabelConfidence": 0.893,
"LabelName": "人物特写",
"LabelLevel": 2,
"ParentLabelName": "其他场景"
},
{
"CentricScore": 0.826,
"Language": "zh-Hans",
"LabelConfidence": 0.811,
"LabelName": "吹头发",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.858,
"Language": "zh-Hans",
"LabelConfidence": 0.748,
"LabelName": "珠宝",
"LabelLevel": 2,
"ParentLabelName": "衣服"
},
{
"CentricScore": 0.786,
"Language": "zh-Hans",
"LabelConfidence": 0.647,
"LabelName": "梳头发",
"LabelLevel": 2,
"ParentLabelName": "日常行为"
},
{
"CentricScore": 0.862,
"Language": "zh-Hans",
"LabelConfidence": 0.632,
"LabelName": "金发",
"LabelLevel": 2,
"ParentLabelName": "外貌特征"
},
{
"CentricScore": 0.826,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "日常行为",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.754,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "其他事物",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.858,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "衣服",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.672,
"Language": "zh-Hans",
"LabelConfidence": 1.0,
"LabelName": "颜色",
"LabelLevel": 2,
"ParentLabelName": "其他事物"
},
{
"CentricScore": 0.765,
"Language": "zh-Hans",
"LabelConfidence": 0.993,
"LabelName": "艺术品",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.835,
"Language": "zh-Hans",
"LabelConfidence": 0.969,
"LabelName": "面部",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.862,
"Language": "zh-Hans",
"LabelConfidence": 0.948,
"LabelName": "外貌特征",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.827,
"Language": "zh-Hans",
"LabelConfidence": 0.909,
"LabelName": "职业&角色",
"LabelLevel": 1,
"ParentLabelName": ""
},
{
"CentricScore": 0.738,
"Language": "zh-Hans",
"LabelConfidence": 0.893,
"LabelName": "其他场景",
"LabelLevel": 1,
"ParentLabelName": ""
}
],
"Orientation": 1,
"Figures": [
{
"Beard": "none",
"MaskConfidence": 0.891,
"Gender": "female",
"Boundary": {
"Left": 2013,
"Top": 572,
"Height": 2254,
"Width": 1557
},
"BeardConfidence": 1.0,
"FigureId": "a4dcdc27-c5be-4ae1-b85d-1b902dba97b9",
"Mouth": "open",
"Emotion": "happiness",
"Age": 29,
"MouthConfidence": 0.997,
"FigureType": "face",
"GenderConfidence": 1.0,
"HeadPose": {
"Pitch": 1.079,
"Roll": 4.29,
"Yaw": -6.545
},
"Mask": "none",
"EmotionConfidence": 0.994,
"HatConfidence": 0.999,
"GlassesConfidence": 0.999,
"Sharpness": 0.999,
"FigureClusterId": "Cluster-1",
"FaceQuality": 0.845,
"Attractive": 0.947,
"AgeSD": 7.0,
"Glasses": "none",
"FigureConfidence": 0.999,
"Hat": "none"
}
],
"EXIF": "{\"ColorSpace\":{\"value\":\"1\"},\"Compression\":{\"value\":\"6\"},\"ExifTag\":{\"value\":\"78\"},\"ExifVersion\":{\"value\":\"48 50 51 48\"},\"FileSize\":{\"value\":\"9241112\"},\"Format\":{\"value\":\"jpg\"},\"FrameCount\":{\"value\":\"1\"},\"ImageDescription\":{\"value\":\"A beautiful young Chinese woman\"},\"ImageHeight\":{\"value\":\"5791\"},\"ImageWidth\":{\"value\":\"3861\"},\"JPEGInterchangeFormat\":{\"value\":\"202\"},\"JPEGInterchangeFormatLength\":{\"value\":\"7945\"},\"Orientation\":{\"value\":\"1\"},\"ResolutionUnit\":{\"value\":\"2\"},\"XResolution\":{\"value\":\"300/1\"},\"YResolution\":{\"value\":\"300/1\"}}",
"ImageHeight": 5791,
"ImageScore": {
"OverallQualityScore": 0.778
},
"ETag": "\"DC2FAD852990AC52F474F5BD1D2D1577-2\"",
"DatasetName": "test-dataset",
"FileHash": "DC2FAD852990AC52F474F5BD1D2D1577-2",
"UpdateTime": "2024-10-21T14:48:08.786577032+08:00",
"OSSCRC64": "7952820220211789159",
"OSSTaggingCount": 0,
"OSSObjectType": "Multipart"
}
]
}
如果您有任何反馈或疑问,欢迎加入钉钉用户群(钉钉群号:31690030817)与阿里云智能媒体管理工程师实时沟通。