すべてのプロダクト
Search
ドキュメントセンター

Intelligent Media Services:大量のメディアアセットから顔を検索する

最終更新日:Jan 12, 2025

Intelligent Media Services(IMS)のメディアアセット管理機能を使用すると、メディアアセットライブラリに保存されているメディアアセット内の顔を検索できます。ビジネス要件に基づいて、機密性の高い人物を検索またはフィルタリングできます。このトピックでは、APIオペレーションを呼び出して顔を検索する方法について説明します。

前提条件

IMSサーバー SDK がインストールされていること。詳細については、サーバー SDK のインストールをご参照ください。

手順

  1. インテリジェントコンテンツ分析を設定します。

    CreateSearchIndex オペレーションを呼び出して、メディアアセットの登録後にインテリジェントコンテンツ分析を自動的に開始します。ストレージタイプを face に設定します。

    com.aliyun.ice20201109.Client client = Sample.createClient("accessKeyId", "accessKeySecret"); 
    com.aliyun.ice20201109.models.CreateSearchIndexRequest createSearchIndexRequest = new com.aliyun.ice20201109.models.CreateSearchIndexRequest() 
           .setIndexType("face"); // ストレージタイプを 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"); // 顔画像の URL を設定します。
    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 オペレーションを呼び出し、SearchMediaClipByFaceMediaId手順 4 で返された を指定して、顔が含まれているクリップを検索します。

    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****"); // 手順 4 で返された MediaId を指定します。
    com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
    client.searchMediaClipByFaceWithOptions(searchMediaClipByFaceRequest, runtime);

API リファレンス

お問い合わせ

ご質問がある場合や技術サポートが必要な場合は、IMS の DingTalk グループ(ID:48335001108)にご参加ください。