IPC内容理解最佳实践

更新时间:
复制为 MD 格式

IPC内容理解是通过AI算法自动识别媒体内容特征(如对象、场景、文字、图标等),为后续进行搜索等媒体处理提供分析基础。本文档指导开发者通过API实现IPC内容理解。

前提条件

  1. 请确保已通过CreateIpcOrder - 创建IPC订单下单购买。

  2. 请确保已完成环境搭建,详情可参考OpenAPI门户工具

基础使用

创建IPC算法模板

使用CreateCustomTemplate - 创建用户自定义模板创建模板。示例如下:

# -*- coding: utf-8 -*-
from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models

# 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
credential = CredentialClient()
config = open_api_models.Config(
    credential=credential
)
# Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = 'ice.cn-shanghai.aliyuncs.com'
client = ICE20201109Client(config)

create_custom_template_request = ice20201109_models.CreateCustomTemplateRequest(
    name='ipc_template_001',
    template_config='{"AnalyseTypes":"vlEventDesc","Industry":"common","Scene":"search","TemplateName":"ipc_template_001"}',
    type=11
)
runtime = util_models.RuntimeOptions()
response = client.create_custom_template_with_options(create_custom_template_request, runtime)
print(response)

请求参数:

参数名称

类型

描述

示例值

Name

string

模板名称

ipc_template_001

Type

integer

模板类型,IPC任务必须输入11,代表AI智能标签模板。

11

TemplateConfig

string

模板配置,为JSON格式。IPC任务必须按示例值填写,代表创建IPC模板。

{\"AnalyseTypes\":\"vlEventDesc\",\"TemplateName\":\"test\",\"Industry\":\"common\",\"Scene\":\"search\"}

返回参数:

参数名称

类型

描述

示例值

RequestId

string

请求 ID

******11-DB8D-4A9A-875B-275798******

CustomTemplate

object

模板信息

CustomTemplate.TemplateId

string

模板 ID

****20b48fb04483915d4f2cd8ac****

CustomTemplate.TemplateName

string

模板名称

test-template

CustomTemplate.Type

integer

模板类型 ID

11

CustomTemplate.TypeName

string

模板类型名称

AISmarttagTemplate

CustomTemplate.AppId

string

CustomTemplate.Version

string

模板版本

1

CustomTemplate.Status

string

模板状态

Normal

CustomTemplate.IsDefault

boolean

是否默认模板

true

CustomTemplate.TemplateConfig

string

模板配置

{\"AnalyseTypes\":\"vlEventDesc\",\"TemplateName\":\"test\",\"Industry\":\"common\",\"Scene\":\"search\"}

CustomTemplate.CreateTime

string

模板创建时间

CustomTemplate.ModifiedTime

string

模板修改时间

返回示例:

{
  "CustomTemplate": {
    "CreateTime": "2025-12-22T03:11:02Z",
    "IsDefault": false,
    "ModifiedTime": "2025-12-22T03:11:02Z",
    "Status": "Normal",
    "TemplateConfig": "{\"AnalyseTypes\":\"vlEventDesc\"}",
    "TemplateId": "****a0da83434f0a8d57ffb0415c****",
    "TemplateName": "ipc_template_001",
    "Type": 11,
    "TypeName": "AISmarttagTemplate"
  },
  "RequestId": "******22-1193-5A70-8D4C-E0533C******"
}

提交IPC内容理解任务

使用SubmitSmarttagJob - 提交智能标签作业提交任务。示例如下:

# -*- coding: utf-8 -*-
from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models
import json

# 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
credential = CredentialClient()
config = open_api_models.Config(
    credential=credential
)
# Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = 'ice.cn-shanghai.aliyuncs.com'
client = ICE20201109Client(config)

submit_smarttag_job_request_input = ice20201109_models.SubmitSmarttagJobRequestInput(
    type='Multi',
    media=json.dumps(
        {
            "type": "URL",
            "inputs": [
                "https://xxx.png",
                "https://xxx.png"
            ]
        }
    )
)
submit_smarttag_job_request = ice20201109_models.SubmitSmarttagJobRequest(
    title='ipc测试-001',
    input=submit_smarttag_job_request_input,
    template_id='xxx',
    # params='{"vlEventDescParams":{"deviceId":"camera_001"}}',
)
runtime = util_models.RuntimeOptions()
response = client.submit_smarttag_job_with_options(submit_smarttag_job_request, runtime)
print(response)

请求参数:

参数名称

类型

描述

示例值

Title

string

任务标题。

xxx

Input

object

输入对象。

Input.Type

string

媒体类型,IPC任务必须输入Multi

Multi

Input.Media

string

输入素材。TypeMulti时,输入为JSON字符串,参考如下格式:{"type": "URL", "inputs": ["xxx.png", "xxx.png"]},{"type": "URL", "inputs": ["xxx.mp4"],"extra":{"mediaType":"video", "fps":2}}

type类型目前只支持URL,inputs支持图片列表和视频(支持视频时长:2秒至40秒)。

extra字段中:

  • mediaType默认为image,视频需要显示设置为video。

  • fps代表采样率,默认为2,每秒采样2帧,不设置使用默认值,只对输入视频生效。

  • targetLanguage代表目标翻译语言,默认为简体中文,只翻译返回结果中的概要描述(brief),可取值见下表。

{"type": "URL", "inputs": ["xxx.png", "xxx.png"]}

{"type": "URL", "inputs": ["xxx.m3u8"],"extra":{"mediaType":"video","fps":2,"targetLanguage": "it"}}

TemplateId

string

模板ID,创建IPC模板时返回。

3d5***ca7

Params

string

扩展配置参数,为JSON字符串。其中 vlEventDescParams 用于配置IPC内容理解的扩展参数。

{"vlEventDescParams":{"deviceId":"xxx"}}

vlEventDescParams字段说明:

参数名

类型

是否必填

描述

示例值

deviceId

string

设备唯一标识符,用于标识提交任务的设备来源。最大长度为32字符,仅支持字母、数字、下划线(_)、连字符(-)。

camera_001

targetLanguage取值:

参数

目标翻译语言

en

英语

ja

日语

id

印尼语

es

西班牙语

pt

葡萄牙语

ar

阿拉伯语

fr

法语

tr

土耳其语

de

德语

ko

韩语

th

泰语

vi

越南语

ru

俄语

ms

马来语

zh-tw

繁体中文

km

柬埔寨语

pl

波兰语

nl

荷兰语

cs

捷克语

fi

芬兰语

ro

罗马尼亚语

sv

瑞典语

fa

波斯语

it

意大利语

返回参数:

参数名称

类型

描述

示例值

RequestId

string

请求ID。

******11-DB8D-4A9A-875B-275798******

JobId

string

智能标签作业 ID。建议您保存此ID便于后续调用其他接口时使用。

****d80e4e4044975745c14b****

返回示例:

{
    "RequestId": "******11-DB8D-4A9A-875B-275798******",
    "JobId": "****d80e4e4044975745c14b****"
}

查询IPC任务结果

使用QuerySmarttagJob - 智能标签任务查询接口查询结果。示例如下:

# -*- coding: utf-8 -*-
from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models

# 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
credential = CredentialClient()
config = open_api_models.Config(
    credential=credential
)
# Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = 'ice.cn-shanghai.aliyuncs.com'
client = ICE20201109Client(config)

query_smarttag_job_request = ice20201109_models.QuerySmarttagJobRequest(
    job_id='xxx'
)
runtime = util_models.RuntimeOptions()
response = client.query_smarttag_job_with_options(query_smarttag_job_request, runtime)
print(response)

请求参数:

参数名称

类型

描述

示例值

JobId

string

需要查询的智能标签作业 ID。

88c6ca184c0e47098a5b665e2****

返回参数:

参数名称

类型

描述

示例值

RequestId

string

请求 ID

******11-DB8D-4A9A-875B-275798******

JobStatus

string

任务状态,可取值:

  • Success:处理成功。

  • Fail:处理失败。

  • Processing:处理中。

  • Submitted:已提交等待处理。

Success

UserData

string

通过 MNS 回调时透传回来的信息。

Results

object

分析结果对象

Results.Result

array<object>

分析结果对象数组。

Type

string

分析结果的类型。

Data

string

分析结果的具体数据,以JSON字符串表示,取值见下表。

Data取值:

参数

描述

brief

视频概要描述。

caption

视频详细内容描述。

title

标题。

event

事件信息。

object

对象信息。

action

动作信息。

label

标签信息。

返回示例:

{
  "JobStatus": "Success",
  "RequestId": "41B38CF1-C1EC-538E-81FB-791355065538",
  "Results": {
    "Result": [
      {
        "Data": "\"{\\\"brief\\\":\\\"一名成年男性坐在椅子上吃东西,旁边笼子里的两只狗在 走动。\\\",\\\"caption\\\":\\\"在一个铺有砖块的庭院中,一名成年男性(短发,穿米色长袍)坐在椅子上吃东西,旁边有一张放着食物和水瓶的桌子。笼子里有两只灰白色的中型狗在走动。\\\",\\\"action\\\":[\\\"吃东西\\\",\\\"走动\\\"],\\\"label\\\":{\\\"package\\\":false,\\\"human\\\":true,\\\"pet\\\":true,\\\"vehicle\\\":false},\\\"title\\\":\\\"男子庭院吃东西,狗笼内走动\\\",\\\"event\\\":[\\\"成年男性 吃东西\\\",\\\"狗 走动\\\"],\\\"object\\\":[\\\"成年男性\\\",\\\"狗\\\",\\\"桌子\\\",\\\"椅子\\\"]}\"",
        "Type": "EventDesc"
      }
    ]
  },
  "UserData": "{\"fromICE\":true,\"pk\":1346693276669150}"
}

进阶使用

进阶使用支持人物身份识别。

创建人物自注册库

使用CreateRecognitionLib - 创建自定义识别库创建库。示例如下:

# -*- coding: utf-8 -*-
from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models

# 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
credential = CredentialClient()
config = open_api_models.Config(
    credential=credential
)
# Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = 'ice.cn-shanghai.aliyuncs.com'
client = ICE20201109Client(config)

create_recognition_lib_request = ice20201109_models.CreateRecognitionLibRequest(
    algorithm='pedestrian',
    lib_name='ipc_peds_lib_001'
)
runtime = util_models.RuntimeOptions()
response = client.create_recognition_lib_with_options(create_recognition_lib_request, runtime)
print(response)

请求参数:

参数名称

类型

描述

示例值

Algorithm

string

识别类型,取值:

  • pedestrian:自定义人物。

pedestrian

LibName

string

识别库名称,最长支持64字节。

ipc_peds_lib_001

返回参数:

参数名称

类型

描述

示例值

RequestId

string

请求ID。

******11-DB8D-4A9A-875B-275798******

LibId

string

创建成功的识别库ID。

*************24b47865c6**************

返回示例:

{
    "LibId": "*************24b47865c6**************",
    "RequestId": "******11-DB8D-4A9A-875B-275798******"
}

创建人物自注册实体

使用CreateRecognitionEntity - 创建自定义识别库中的待识别实体创建实体。示例如下:

# -*- coding: utf-8 -*-
from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models

# 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
credential = CredentialClient()
config = open_api_models.Config(
    credential=credential
)
# Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = 'ice.cn-shanghai.aliyuncs.com'
client = ICE20201109Client(config)

create_recognition_entity_request = ice20201109_models.CreateRecognitionEntityRequest(
    algorithm='pedestrian',
    lib_id='xxx',
    entity_name='小帅'
)
runtime = util_models.RuntimeOptions()
response = client.create_recognition_entity_with_options(create_recognition_entity_request, runtime)
print(response)

请求参数:

参数名称

类型

描述

示例值

Algorithm

string

识别类型,取值:

pedestrian:自定义人物

pedestrian

LibId

string

识别库 ID

*************24b47865c6**************

EntityName

string

自定义识别实体名称,最长支持 64 字节

小帅

返回参数:

参数名称

类型

描述

示例值

RequestId

string

请求ID。

******11-DB8D-4A9A-875B-275798******

EntityId

string

创建成功的实体ID。

**************544cb84754************

返回示例:

{
  "EntityId": "**************544cb84754************",
  "RequestId": "******11-DB8D-4A9A-875B-275798******"
}

创建人物自注册样本

使用CreateRecognitionSample - 注册自定义实体的识别样本创建样本。示例如下:

# -*- coding: utf-8 -*-

from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models

# 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
credential = CredentialClient()
config = open_api_models.Config(
    credential=credential
)
# Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = 'ice.cn-shanghai.aliyuncs.com'
client = ICE20201109Client(config)

create_recognition_sample_request = ice20201109_models.CreateRecognitionSampleRequest(
    algorithm='pedestrian',
    lib_id='xxx',
    entity_id='xxx',
    image_url='https://xxx.png'
)
runtime = util_models.RuntimeOptions()
response = client.create_recognition_sample_with_options(create_recognition_sample_request, runtime)
print(response)

请求参数:

参数名称

类型

描述

示例值

Algorithm

string

识别类型,取值:

  • pedestrian:自定义人物。

pedestrian

LibId

string

识别库ID。

*************24b47865c6**************

EntityId

string

实体ID。

**************544cb84754************

ImageUrl

string

样本图片的URL地址。

https://xxx.png

返回参数:

参数名称

类型

描述

示例值

RequestId

string

请求ID。

******11-DB8D-4A9A-875B-275798******

SampleId

string

创建成功的样本ID。

**************4d2ba728e2f**************

返回示例:

{
    "RequestId": "******11-DB8D-4A9A-875B-275798******",
    "SampleId": "**************4d2ba728e2f**************"
}

创建IPC算法模板

使用CreateCustomTemplate - 创建用户自定义模板创建模板,流程与基础使用相同,但需额外配置人物库。示例如下:

# -*- coding: utf-8 -*-
from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models

# 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
credential = CredentialClient()
config = open_api_models.Config(
    credential=credential
)
# Endpoint 请参考 https://api.aliyun.com/product/ICE
config.endpoint = 'ice.cn-shanghai.aliyuncs.com'
client = ICE20201109Client(config)

create_custom_template_request = ice20201109_models.CreateCustomTemplateRequest(
    name='ipc_template_001_with_group',
    template_config='{"AnalyseTypes":"vlEventDesc","Industry":"common","Scene":"search","TemplateName":"ipc_template_001_with_group","PedestrianGroupIds":"xxx"}',
    type=11
)
runtime = util_models.RuntimeOptions()
response = client.create_custom_template_with_options(create_custom_template_request, runtime)
print(response)

请求参数:

参数名称

类型

描述

示例值

Name

string

模板名称

xxx

Type

integer

模板类型,IPC任务必须输入11,代表AI智能标签模板。

11

TemplateConfig

string

模板配置,为JSON格式。IPC任务必须按示例值填写,代表创建IPC模板并填写人物库ID。

  • AnalyseTypes:分析类型,可选vlEventDesc(事件分析)。

  • TemplateName:自定义模板名称。

  • Industry:行业,可选common(默认)。

  • Scene:场景,可选search(默认)。

  • PedestrianGroupIds:人物库ID。

{"AnalyseTypes":"vlEventDesc","Industry":"common","Scene":"search","TemplateName":"ipc_template_001_with_group","PedestrianGroupIds":"xxx"}

提交IPC内容理解任务

使用SubmitSmarttagJob - 提交智能标签作业提交任务,流程与基础使用相同。

查询IPC任务结果

使用QuerySmarttagJob - 智能标签任务查询接口查询结果,流程与基础使用相同。相同的输入,描述结果里人物转换成自定义的人物小帅,输出结果为:

{
  "JobStatus": "Success",
  "RequestId": "******F9-82A8-5BC4-B63E-63D756******",
  "Results": {
    "Result": [
      {
        "Data": "\"{\\\"brief\\\":\\\"小帅坐在椅子上吃东西,旁边笼子里有两只狗。\\\",\\\"caption\\\":\\\"在一个铺有砖块的庭院中,一名成年男性(小帅)坐在椅子上吃东西,旁边有一张装有食物和水瓶的桌子。笼子里有两只灰白色的中型狗。\\\",\\\"action\\\":[\\\"吃东西\\\",\\\"其他事件\\\"],\\\"label\\\":{\\\"package\\\":false,\\\"human\\\":true,\\\"pet\\\":true,\\\"vehicle\\\":false},\\\"title\\\":\\\"小帅院中吃东西,狗在笼中\\\",\\\"event\\\":[\\\"成年男性 吃东西\\\",\\\"狗 其他事件\\\"],\\\"object\\\":[\\\"成年男性\\\",\\\"狗\\\",\\\"桌子\\\",\\\"椅子\\\"]}\"",
        "Type": "EventDesc"
      }
    ]
  },
  "UserData": "{\"fromICE\":true,\"pk\":1346693276669150}"
}