このトピックでは、画像内の顔属性を検出するための `/green/face/detect` 操作の呼び出し方法について説明します。顔属性検出機能は、画像内の顔に関する以下の属性を認識します:顔のぼかし度、顔の角度、顔の位置、笑顔の強さ、髪のタイプ、およびメガネ・マスク・帽子の着用有無、ひげ・前髪の有無などです。
注意事項
API オペレーション:/green/face/detect。この操作は、顔属性の同期検出を実行します。
この操作を呼び出して顔属性検出タスクを作成し、即座に検出結果を取得します。HTTP リクエストの構築方法については、「リクエスト構造」をご参照ください。また、あらかじめ作成済みの HTTP リクエストを使用することもできます。詳細については、「SDK 概要」をご参照ください。
-
課金:
この操作の呼び出しに対して課金されます。課金方法の詳細については、をご参照ください。
-
検出タイムアウト:
同期モードでのモデレーションリクエストに対する最大応答時間は 6 秒です。6 秒以内にモデレーションが完了しない場合、タイムアウトエラーが返されます。リアルタイムでモデレーション結果を必要としない場合は、非同期モードでのモデレーションリクエストを送信できます。ただし、同期モードの操作は呼び出しが容易であるため、ほとんどのケースで同期モードでのリクエストを推奨します。同期モードの操作を呼び出す際には、タイムアウト期間を 6 秒に設定することを推奨します。
-
応答:
通常、同期モードのモデレーションリクエストを送信後、1 秒以内にモデレーション結果が返されます。ただし、システム内で大量のリクエストを処理する必要がある場合、画像サイズが大きい場合、または画像に多数の文字が含まれる場合など、特殊なシナリオでは応答時間が延長されることがあります。
-
画像要件:
画像の URL は HTTP または HTTPS の URL である必要があります。
画像は PNG、JPG、JPEG、BMP、GIF、WEBP 形式である必要があります。
画像サイズは最大 20 MB までです。この制限は、同期モードおよび非同期モードの両方のモデレーション操作に適用されます。
画像のダウンロード時間は最大 3 秒までとされています。3 秒以内に画像のダウンロードが完了しない場合、タイムアウトエラーが返されます。
モデレーション効果を確保するため、少なくとも 256 × 256 ピクセルの画像を提出することを推奨します。
画像のモデレーション操作の応答時間は、これらの画像のダウンロード時間によって異なります。モデレーション対象の画像を格納するストレージサービスは、安定性と信頼性を確保してください。Object Storage Service (OSS) または コンテンツデリバリーネットワーク (CDN) の利用を推奨します。
QPS 制限
アカウントあたり、この操作を 1 秒間に最大 50 回まで呼び出すことができます。1 秒あたりの呼び出し回数がこの上限を超えると、速度制限が発動し、業務に影響を及ぼす可能性があります。この操作を呼び出す際には、上限値を十分にご確認ください。
リクエストパラメーター
|
名前 |
型 |
必須 |
説明 |
|
bizType |
String |
いいえ |
ビジネスシナリオを指定します。ビジネスシナリオは、 Content Moderation コンソールで作成できます。詳細については、「機械審査のためのポリシーのカスタマイズ」をご参照ください。 |
|
dataId |
String |
いいえ |
検出対象の画像のデータ ID です。このパラメーターを指定した場合、応答にその値が返されます。この ID を使用して、リクエストと応答を関連付けることができます。 |
|
url |
String |
はい |
インターネット経由でアクセス可能な HTTP または HTTPS の URL です。URL の長さは最大 2,048 文字です。 |
戻り値
|
名前 |
型 |
説明 |
|
code |
String |
エラーコードです。これは HTTP ステータスコードと同じです。 |
|
msg |
String |
エラーメッセージです。 |
|
dataId |
String |
モデレーション対象の ID です。 説明 モデレーションリクエストで dataId パラメーターを設定した場合、dataId リクエストパラメーターの値がここに返されます。 |
|
taskId |
String |
検出タスクの ID です。 |
|
url |
String |
検出対象の URL です。 |
|
faces |
JSONArray |
呼び出しが成功した場合(code の値が 200 の場合)、このパラメーターは顔属性情報を返します。配列の各要素は 1 つの顔に対応します。各要素の構造については、「face」をご参照ください。 |
表 1. face
|
名前 |
型 |
説明 |
|
location |
JSONObject |
顔の位置です。構造の詳細については、「location」をご参照ください。 |
|
smile |
JSONObject |
顔の笑顔の強さです。構造の詳細については、「smile」をご参照ください。 |
|
glasses |
JSONObject |
メガネ検出の結果です。構造の詳細については、「glasses」をご参照ください。 |
|
quality |
JSONObject |
顔画像の品質です。構造の詳細については、「quality」をご参照ください。 |
|
qualified |
Boolean |
顔画像の品質が許容範囲内かどうかを示します。有効値:
AI ガードレールは、画像内で検出された各顔について、顔画像の品質が許容範囲内かどうかを判定します。許容範囲内の顔画像とは、以下のすべての条件を満たす画像です:
返された顔属性値を活用して、顔データベース管理などのユースケースにおいて顔画像の品質を制御できます。 |
|
respirator |
JSONObject |
マスク検出の結果です。構造の詳細については、「respirator」をご参照ください。 |
|
hat |
JSONObject |
帽子検出の結果です。構造の詳細については、「hat」をご参照ください。 |
|
mustache |
JSONObject |
口ひげ検出の結果です。構造の詳細については、「mustache」をご参照ください。 |
|
bang |
JSONObject |
前髪検出の結果です。構造の詳細については、「bang」をご参照ください。 |
|
hairstyle |
JSONObject |
ヘアスタイル検出の結果です。構造の詳細については、「hairstyle」をご参照ください。 |
表 2. location
|
名前 |
型 |
説明 |
|
x |
Float |
顔領域の左上隅から y 軸までの距離です。原点 (0,0) は画像の左上隅です。単位:ピクセル。 |
|
y |
Float |
顔領域の左上隅から x 軸までの距離です。原点 (0,0) は画像の左上隅です。単位:ピクセル。 |
|
w |
Float |
顔領域の幅です。単位:ピクセル。 |
|
h |
Float |
顔領域の高さです。単位:ピクセル。 |
表 3. smile
|
名前 |
型 |
説明 |
|
value |
Float |
顔の笑顔の強さです。値の範囲は 0 ~ 1 です。値が大きいほど笑顔が強いことを示します。 |
|
rate |
Float |
笑顔検出結果の信頼度です。値の範囲は 0 ~ 1 です。値が大きいほど信頼度が高いことを示します。 |
表 4. glasses
|
名前 |
型 |
説明 |
|
value |
String |
メガネ検出の結果です。有効値:
|
|
rate |
Float |
メガネ検出結果の信頼度です。値の範囲は 0 ~ 1 です。値が大きいほど信頼度が高いことを示します。 |
表 5. quality
|
名前 |
型 |
説明 |
|
blur |
Float |
顔画像のぼかし度です。値の範囲は 0 ~ 20 です。値が大きいほど画像がぼやけていることを示します。 推奨値範囲:0 ~ 5。 |
|
pitch |
Float |
顔のピッチ角度です。上下方向の向きを示します。 推奨値範囲:-30 ~ 30。 |
|
yaw |
Float |
顔のヨー角度です。左右方向の向きを示します。 推奨値範囲:-30 ~ 30。 |
|
roll |
Float |
顔のロール角度です。左右への傾きを示します。 推奨値範囲:-30 ~ 30。 |
表 6. respirator
|
名前 |
型 |
説明 |
|
value |
String |
マスク検出の結果です。有効値:
|
|
rate |
Float |
マスク検出結果の信頼度です。値の範囲は 0 ~ 1 です。値が大きいほど信頼度が高いことを示します。 |
表 7. hat
|
名前 |
型 |
説明 |
|
value |
String |
帽子検出の結果です。有効値:
|
|
rate |
Float |
帽子検出結果の信頼度です。値の範囲は 0 ~ 1 です。値が大きいほど信頼度が高いことを示します。 |
表 8. mustache
|
名前 |
型 |
説明 |
|
value |
String |
口ひげ検出の結果です。有効値:
|
|
rate |
Float |
口ひげ検出結果の信頼度です。値の範囲は 0 ~ 1 です。値が大きいほど信頼度が高いことを示します。 |
表 9. bang
|
名前 |
型 |
説明 |
|
value |
String |
前髪検出の結果です。有効値:
|
|
rate |
Float |
前髪検出結果の信頼度です。値の範囲は 0 ~ 1 です。値が大きいほど信頼度が高いことを示します。 |
表 10. hairstyle
|
名前 |
型 |
説明 |
|
value |
String |
ヘアスタイル検出の結果です。有効値:
|
|
rate |
Float |
ヘアスタイル検出結果の信頼度です。値の範囲は 0 ~ 1 です。値が大きいほど信頼度が高いことを示します。 |
サンプル
リクエストのサンプル
http(s)://[Endpoint]/green/face/detect
&<共通リクエストパラメーター>
{
"bizType": "abc",
"dataId": "test2NInmO$tAON6qYUrtCRgLo-1mwxdi",
"url": "http://example.com/face1.jpeg"
}
応答のサンプル
{
"msg": "OK",
"code": 200,
"extras": {
"width": "328",
"height": "390"
},
"faces": [
{
"glasses": {
"rate": 0.99,
"value": "None"
},
"qualified": false,
"bang": {
"rate": 0.99,
"value": "Has"
},
"respirator": {
"rate": 0.99,
"value": "None"
},
"hat": {
"rate": 0.99,
"value": "None"
},
"location": {
"w": 116,
"h": 116,
"x": 134,
"y": 135
},
"mustache": {
"rate": 0.99,
"value": "None"
},
"hairstyle": {
"rate": 0.99,
"value": "Short"
},
"quality": {
"roll": 0.38,
"blur": 6.44,
"pitch": 21.21,
"yaw": 21.12
},
"smile": {
"rate": 0.99,
"value": 0.5
}
}
],
"dataId": "test2NInmO$tAON6qYUrtCRgLo-1mwxdi",
"taskId": "img1uJtIrlwH$F4FA3h$Sxe2F-1tbWWx",
"url": "http://example.com/face1.jpeg"
}