如何利用AI对媒资内容进行理解

智能媒体服务支持对媒资素材(视频、音频、图片)进行内容理解。用户可以根据实际需求对指定素材进行内容理解。通过阅读本文,您将了解调用OpenAPI进行内容理解的流程。

前提条件

基础使用

  1. 创建智能内容理解算法模板。

    调用接口CreateCustomTemplate - 创建用户自定义模板,创建自定义AI智能分析模板。

    示例代码:

    #!/usr/bin/env python
    #coding=utf-8
    
    import os
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    from aliyunsdkcore.auth.credentials import AccessKeyCredential
    from aliyunsdkcore.auth.credentials import StsTokenCredential
    
    # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
    credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
    # use STS Token
    # credentials = StsTokenCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], os.environ['ALIBABA_CLOUD_SECURITY_TOKEN'])
    client = AcsClient(region_id='cn-xxx', credential=credentials)
    
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ice.cn-xxx.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2020-11-09')
    request.set_action_name('CreateCustomTemplate')
    request.add_query_param('Name', "face_template_001")
    request.add_query_param('Type', "11")
    request.add_query_param('TemplateConfig', "{\"AnalyseTypes\":\"face\",\"FaceCategoryIds\":\"celebrity,politician,sensitive\"}")
    
    response = client.do_action(request)
    # python2:  print(response) 
    print(str(response, encoding = 'utf-8'))
  2. 提交智能内容理解任务。

    调用接口SubmitSmarttagJob - 提交智能标签作业,提交智能内容理解任务。

    示例代码:

    #!/usr/bin/env python
    #coding=utf-8
    
    import os, json
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    from aliyunsdkcore.auth.credentials import AccessKeyCredential
    from aliyunsdkcore.auth.credentials import StsTokenCredential
    
    # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
    credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
    # use STS Token
    # credentials = StsTokenCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], os.environ['ALIBABA_CLOUD_SECURITY_TOKEN'])
    client = AcsClient(region_id='cn-xxx', credential=credentials)
    
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ice.cn-xxx.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2020-11-09')
    request.set_action_name('SubmitSmarttagJob')
    request.add_query_param('Title', '人脸测试-001')
    input = {
        "Type": "URL",
        "Media": "https://xxx.jpeg"
    }
    request.add_query_param('Input', json.dumps(input))
    request.add_query_param('TemplateId', "xxx")
    
    response = client.do_action(request)
    # python2:  print(response) 
    print(str(response, encoding = 'utf-8'))
  3. 查询任务结果。

    调用接口QuerySmarttagJob - 智能标签任务查询接口, 查询智能内容理解任务。

    示例代码:

    #!/usr/bin/env python
    #coding=utf-8
    
    import os, json
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    from aliyunsdkcore.auth.credentials import AccessKeyCredential
    from aliyunsdkcore.auth.credentials import StsTokenCredential
    
    # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
    credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
    # use STS Token
    # credentials = StsTokenCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], os.environ['ALIBABA_CLOUD_SECURITY_TOKEN'])
    client = AcsClient(region_id='cn-xxx', credential=credentials)
    
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ice.cn-xxx.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2020-11-09')
    request.set_action_name('QuerySmarttagJob')
    request.add_query_param('JobId', 'xxx')
    
    response = client.do_action(request)
    # python2:  print(response) 
    print(str(response, encoding = 'utf-8'))

进阶使用

  1. 创建自定义库。

    调用接口CreateRecognitionLib - 创建自定义识别库,创建自定义识别库。

    示例代码:

    #!/usr/bin/env python
    #coding=utf-8
    
    import os
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    from aliyunsdkcore.auth.credentials import AccessKeyCredential
    from aliyunsdkcore.auth.credentials import StsTokenCredential
    
    # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
    credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
    # use STS Token
    # credentials = StsTokenCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], os.environ['ALIBABA_CLOUD_SECURITY_TOKEN'])
    client = AcsClient(region_id='cn-xxx', credential=credentials)
    
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ice.cn-xxx.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2020-11-09')
    request.set_action_name('CreateRecognitionLib')
    request.add_query_param('Algorithm', 'face')
    request.add_query_param('LibName', 'face_lib_001')
    
    response = client.do_action(request)
    # python2:  print(response) 
    print(str(response, encoding = 'utf-8'))
  2. 创建自定义实体。

    调用接口CreateRecognitionEntity - 创建自定义识别库中的待识别实体,在指定的自定义识别库中创建一个新的实体。

    示例代码:

    #!/usr/bin/env python
    #coding=utf-8
    
    import os
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    from aliyunsdkcore.auth.credentials import AccessKeyCredential
    from aliyunsdkcore.auth.credentials import StsTokenCredential
    
    # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
    credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
    # use STS Token
    # credentials = StsTokenCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], os.environ['ALIBABA_CLOUD_SECURITY_TOKEN'])
    client = AcsClient(region_id='cn-xxx', credential=credentials)
    
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ice.cn-xxx.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2020-11-09')
    request.set_action_name('CreateRecognitionEntity')
    request.add_query_param('Algorithm', 'face')
    request.add_query_param('LibId', 'xxx')
    request.add_query_param('EntityName', '小帅')
    
    response = client.do_action(request)
    # python2:  print(response) 
    print(str(response, encoding = 'utf-8'))
  3. 创建自定义对象

    调用接口CreateRecognitionSample - 注册自定义实体的识别样本,为指定的自定义实体添加识别样本图片或文本标签。

    示例代码:

    #!/usr/bin/env python
    #coding=utf-8
    
    import os
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    from aliyunsdkcore.auth.credentials import AccessKeyCredential
    from aliyunsdkcore.auth.credentials import StsTokenCredential
    
    # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
    credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
    # use STS Token
    # credentials = StsTokenCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], os.environ['ALIBABA_CLOUD_SECURITY_TOKEN'])
    client = AcsClient(region_id='cn-xxx', credential=credentials)
    
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ice.cn-xxx.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2020-11-09')
    request.set_action_name('CreateRecognitionSample')
    request.add_query_param('Algorithm', 'face')
    request.add_query_param('LibId', 'xxx')
    request.add_query_param('EntityId', 'xxx')
    request.add_query_param('ImageUrl', 'https://xxx.jpg')
    
    response = client.do_action(request)
    # python2:  print(response) 
    print(str(response, encoding = 'utf-8'))
  4. 创建内容理解算法模板。

    与基础使用相同,需要根据需求输入分析类型的算子以及相应的自定义库ID(如人脸、地标、物体、logo、自定义标签等)。

  5. 提交智能内容理解任务。

    与基础使用相同。

  6. 查询任务结果。

    与基础使用相同。