全部產品
Search
文件中心

Intelligent Media Services:如何對海量媒資進行人臉搜尋

更新時間:Nov 01, 2024

媒資管理服務支援對入庫媒資進行人臉搜尋功能,您可以根據實際需求對指定人物定位搜尋或過濾敏感人物。通過閱讀本文,您可以瞭解調用OpenAPI進行人臉搜尋的流程。

前提條件

您已經安裝IMS服務端SDK。具體操作,請參見安裝SDK

操作步驟

  1. 設定智能內容分析配置。

    調用介面CreateSearchIndex,設定媒資註冊完成後自動發起智能內容分析,同時設定入庫類型為人臉。

    com.aliyun.ice20201109.Client client = Sample.createClient("accessKeyId", "accessKeySecret"); 
    com.aliyun.ice20201109.models.CreateSearchIndexRequest createSearchIndexRequest = new com.aliyun.ice20201109.models.CreateSearchIndexRequest() 
           .setIndexType("face"); 
    com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); 
    client.createSearchIndexWithOptions(createSearchIndexRequest, runtime);
  2. 註冊內容庫資源。

    調用介面RegisterMediaInfo,將待搜尋的素材入庫,支援對圖片和視頻進行人臉搜尋。

    com.aliyun.ice20201109.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
    com.aliyun.ice20201109.models.RegisterMediaInfoRequest registerMediaInfoRequest = new com.aliyun.ice20201109.models.RegisterMediaInfoRequest()
            .setMediaType("video")
            .setTitle("face-test12")
            .setInputURL("oss://example-bucket/example.mp4");
    com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    client.registerMediaInfoWithOptions(registerMediaInfoRequest, runtime);
  3. 擷取媒資內容資訊。

    調用介面GetMediaInfo,確認視頻素材入庫成功。

    com.aliyun.ice20201109.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
    com.aliyun.ice20201109.models.GetMediaInfoRequest getMediaInfoRequest = new com.aliyun.ice20201109.models.GetMediaInfoRequest()
            .setInputURL("oss://example-bucket/example.mp4");
    com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    client.getMediaInfoWithOptions(getMediaInfoRequest, runtime);

    如果返回的AiRoughData.Status值為SaveSuccess,表示入庫成功。

  4. 根據人臉圖片搜尋入庫媒資(粗搜)。

    調用介面SearchMediaByFace,同時設定人臉圖片URL,搜尋人臉所在媒資的相關資訊。

    com.aliyun.ice20201109.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
    com.aliyun.ice20201109.models.SearchMediaByFaceRequest searchMediaByFaceRequest = new com.aliyun.ice20201109.models.SearchMediaByFaceRequest()
            .setFaceSearchToken("test001")
            .setPersonImageUrl("https://****.oss-cn-shanghai.aliyuncs.com/test/testFacePic.png");
    com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    client.searchMediaByFaceWithOptions(searchMediaByFaceRequest, runtime);

    返回樣本:

    {
      "RequestId": "F0FBE61A-66FF-55C0-8900-EE816FA20B8D",
      "MediaInfoList": [
        {
          "MediaId": "92796460cd4571ed91c6e7e7c45b****"
        },
        {
          "MediaId": "b5a003f0cd3f71ed919fe7e7c45b****"
        }
      ],
      "Total": 2,
      "Code": "200",
      "Success": true
    }
  5. 根據人臉圖片搜尋入庫媒資片段(精搜)。

    調用介面SearchMediaClipByFace,同時輸入步驟 4中返回的MediaId,搜尋人臉所在該媒資的片段資訊。

    com.aliyun.ice20201109.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
    com.aliyun.ice20201109.models.SearchMediaClipByFaceRequest searchMediaClipByFaceRequest = new com.aliyun.ice20201109.models.SearchMediaClipByFaceRequest()
            .setFaceSearchToken("test001")
            .setMediaId("92796460cd4571ed91c6e7e7c45b****");
    com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    client.searchMediaClipByFaceWithOptions(searchMediaClipByFaceRequest, runtime);

API參考

聯絡我們

更多產品諮詢問題或使用支援,歡迎通過DingTalk搜尋群號48335001108,加入智能媒體服務產品群聯絡我們。