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

AI Guardrails:顔属性検出

最終更新日:Dec 30, 2025

この Topic では、.NET SDK を使用して、パブリック URL から取得したイメージ内の顔属性を検出する方法について説明します。この機能はイメージのみをサポートします。

機能

顔属性検出は、イメージ内の顔のさまざまなプロパティ (ぼかし、角度、位置、笑顔の強さ、髪型、メガネ、マスク、帽子、ひげ、前髪の有無など) を識別します。パラメーターの詳細については、「顔属性検出 API リファレンス」をご参照ください。

説明
  • この SDK はイメージ URL のみをサポートします。ローカルファイルやバイナリデータはサポートしていません。

  • サポートされている URL タイプは、長さが 2,048 文字までのインターネット HTTP または HTTPS URL です。

前提条件

.NET 依存関係をインストールする必要があります。手順については、「.NET 依存関係のインストール」をご参照ください。

説明

依存関係をインストールするには、「インストール」の Topic で説明されている必要な .NET バージョンを使用する必要があります。そうしないと、後続の操作の呼び出しが失敗します。

顔属性検出タスクの送信

using System;
using Newtonsoft.Json;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Http;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Green.Model.V20180509;
using System.Collections.Generic;

namespace csharp_sdk_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            /**
             * 環境変数を取得する一般的な方法:
             *     RAM ユーザーの AccessKey ID を取得する: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
             *     RAM ユーザーの AccessKey Secret を取得する: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
             */
            DefaultProfile profile = DefaultProfile.GetProfile(
                    "cn-shanghai",
                    "環境変数から RAM ユーザーの AccessKey ID を取得",
                    "環境変数から RAM ユーザーの AccessKey Secret を取得");
            // 注:インスタンス化されたクライアントを再利用することで、検出パフォーマンスが向上し、接続の重複作成を回避できます。
            DefaultAcsClient client = new DefaultAcsClient(profile);

            DetectFaceRequest request = new DetectFaceRequest();
            request.AcceptFormat = FormatType.JSON;
            request.ContentType = FormatType.JSON;
            request.Method = MethodType.POST;
            request.Encoding = "UTF-8";

            Dictionary<string, object> httpBody = new Dictionary<string, object>();
            httpBody.Add("url", "検出したい顔イメージの URL");

            request.SetContent(System.Text.Encoding.Default.GetBytes(JsonConvert.SerializeObject(httpBody)), "utf-8", FormatType.JSON);
            try
            {
                DetectFaceResponse response = client.GetAcsResponse(request);
                if (response.HttpResponse.Status != 200)
                {
                    Console.WriteLine("リクエストが失敗しました。ステータス:{0}", response.HttpResponse.Status);
                }
                Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
            }
            catch (Exception ex)
            {
                Console.WriteLine("失敗しました。エラー情報: {0}", ex.Message);
            }
        }
    }
}