機能紹介
画像審査 2.0 API は、オンラインコンテンツの規制に違反したり、プラットフォームの秩序を乱したり、ユーザーエクスペリエンスに悪影響を及ぼしたりする画像内のコンテンツや要素を識別します。 40 以上のコンテンツリスクラベルと 40 以上のリスク管理項目をサポートしています。 Content Moderation の画像審査 2.0 を使用すると、API が返すリスクラベルと信頼度スコアに基づいて、画像の審査やガバナンスの対策を策定できます。 これらの対策は、業界標準やプラットフォームのルールに合わせて調整できます。 詳細については、「画像審査 2.0 の概要と課金」をご参照ください。
ご利用ガイド
Alibaba Cloud アカウントを登録します。 できます。 画面の指示に従って登録を完了してください。
Content Moderation の従量課金方式を有効化します。 ことを確認してください。 有効化は無料です。 API の使用を開始すると、使用量に基づいて請求書が自動的に生成されます。 詳細については、「課金」をご参照ください。
AccessKey を作成します。 RAM で AccessKey を作成したことを確認してください。 RAM ユーザーの AccessKey を使用する場合、Alibaba Cloud アカウントを使用して RAM ユーザーに `AliyunYundunGreenWebFullAccess` 権限を付与する必要があります。 詳細については、「RAM 権限付与」をご参照ください。
API を統合します。 ソフトウェア開発キット (SDK) を使用して API を呼び出すことを推奨します。 詳細については、「画像審査 2.0 SDK とアクセスガイド」をご参照ください。
画像審査 2.0 の非同期検出サービスには、次の 2 つの API 操作が含まれます。
ImageAsyncModeration:非同期の画像審査タスクを送信します。
DescribeImageModerationResult:審査タスクの結果を取得します。
非同期検出タスクの送信
手順
この API 操作を呼び出して、画像コンテンツ検出タスクを作成できます。 HTTP リクエストの構築方法については、「ネイティブ HTTP 呼び出し」をご参照ください。 事前に構築された HTTP リクエストを使用することもできます。 詳細については、「アクセスガイド」をご参照ください。
サービス API:ImageAsyncModeration
サポートされるリージョンとエンドポイント:
リージョン
パブリックエンドポイント
VPC エンドポイント
サポートされるサービス
シンガポール
https://green-cip.ap-southeast-1.aliyuncs.com
https://green-cip-vpc.ap-southeast-1.aliyuncs.com
baselineCheck_global
課金情報:
これは有料の API 操作です。 HTTP ステータスコードが 200 を返すリクエストのみが課金されます。 他のエラーコードを返すリクエストは課金されません。 課金方法の詳細については、「課金」をご参照ください。
画像要件:
サポートされている画像フォーマットは、PNG、JPG、JPEG、BMP、WEBP、TIFF、SVG、HEIF (最長辺が 8,192 px 未満である必要があります)、GIF (最初のフレームのみ使用)、ICO (最後の画像のみ使用) です。
画像のサイズは 20 MB を超えることはできません。 高さまたは幅は 16,384 px を超えることはできず、総ピクセル数は 1 億 6700 万を超えることはできません。 画像の解像度は 200 × 200 px 以上にすることを推奨します。 解像度が低いと、審査アルゴリズムのパフォーマンスに影響する可能性があります。
画像のダウンロード時間は 3 秒に制限されています。 ダウンロードに 3 秒以上かかると、タイムアウトエラーが返されます。
応答:非同期検出タスクはリアルタイムで結果を返しません。 コールバックまたはポーリングを使用して検出結果を取得する必要があります。 結果は最大 3 日間保存されます。
コールバックを使用して検出結果を取得する:非同期検出タスクを送信する際に、リクエストに callback パラメーターを含めることで、検出結果を自動的に受信します。
ポーリングを使用して検出結果を取得する:非同期検出タスクを送信する際に、callback パラメーターを含めません。 タスクを送信した後、結果クエリ API 操作を呼び出して検出結果を取得する必要があります。 非同期検出タスクは処理のためにキューに入れられます。 結果は通常 24 時間以内に利用可能になります。
QPS 制限
この API 操作に対する単一の Alibaba Cloud アカウントの 1 秒あたりのクエリ数 (QPS) 制限は 100 です。 この制限を超えると、API 呼び出しがスロットリングされ、ビジネス運用に影響を与える可能性があります。 妥当な頻度で API 操作を呼び出すことを推奨します。 ビジネスでより高い QPS 制限が必要な場合は、アカウントマネージャーにご連絡ください。
デバッグ
API を統合する前に、Alibaba Cloud OpenAPI を使用して 画像審査 2.0 API 操作をオンラインでデバッグできます。 これにより、サンプルコードと SDK の依存関係情報を表示して、API 操作とそのパラメーターの使用方法を理解できます。
オンラインデバッグ機能は、現在ログインしているアカウントを使用して Content Moderation API を呼び出します。 そのため、呼び出しは課金対象の使用量に含まれます。
リクエストパラメーター
リクエストに含める必要がある共通リクエストパラメーターについては、「共通パラメーター」をご参照ください。
リクエストボディは、次のフィールドを含む JSON 構造体です。
名前 | タイプ | 必須 | 例 | 説明 |
Service | String | はい | baselineCheck_global | 画像審査 2.0 でサポートされている検出サービス。 有効な値:
説明 サービス間の違いについては、「サービスの説明」をご参照ください。 |
ServiceParameters | JSONString | はい | 検出対象のコンテンツに関連するパラメーターのセット。 値は JSON 文字列です。 各文字列の説明については、「ServiceParameters」をご参照ください。 |
表 1. ServiceParameters
名前 | タイプ | 必須 | 例 | 説明 |
imageUrl | String | はい。 画像審査 Pro は、画像を渡す 3 つの方法をサポートしています。 いずれか 1 つを選択してください。
| https://img.alicdn.com/tfs/TB1U4r9AeH2gK0jSZJnXXaT1FXa-2880-480.png | 検出対象のオブジェクトの URL。 URL がパブリックネットワーク経由でアクセス可能であることを確認してください。 URL は最大 2,048 文字です。 説明 URL には中国語の文字を含めることはできません。 リクエストごとに 1 つの URL のみを渡すようにしてください。 |
ossBucketName | String | bucket_01 | 権限が付与された OSS バケットの名前。 説明 OSS 画像の内部 URL を使用するには、まず Alibaba Cloud アカウントを使用して クラウドリソースアクセス権限付与ページ に移動し、`AliyunCIPScanOSSRole` ロールを付与する必要があります。 | |
ossObjectName | String | 2022023/04/24/test.jpg | 権限が付与された OSS バケット内のファイルの名前。 説明 1. OSS から元のファイル名を渡します。 画像処理パラメーターを追加することはできません。 画像処理パラメーターを追加するには、imageUrl アドレスを使用します。 2. ファイル名に中国語の文字やスペースが含まれている場合は、そのまま渡します。 URL エンコードする必要はありません。 | |
ossRegionId | String | cn-beijing | OSS バケットが配置されているリージョン。 | |
dataId | String | いいえ | img123**** | 検出されたオブジェクトに対応するデータ ID。 大文字と小文字、数字、アンダースコア (_)、ハイフン (-)、ピリオド (.) を含めることができます。 最大 64 文字の長さで、ビジネスデータを一意に識別するために使用できます。 |
callback | String | いいえ | http://www.aliyundoc.com | 検出結果がコールバック通知として送信される URL。 HTTP および HTTPS URL がサポートされています。 このフィールドが空の場合、定期的に検出結果をポーリングする必要があります。 コールバック API は、POST メソッド、UTF-8 エンコーディング、およびフォームパラメーター ReqId、Checksum、Content をサポートする必要があります。 Content Moderation は、次のルールと形式に従って ReqId、Checksum、および Content を設定し、コールバック API を呼び出して検出結果を返します。
説明 サーバー側のコールバック API が Content Moderation によってプッシュされた結果を受信した後、HTTP ステータスコード 200 を返した場合、受信は成功したと見なされます。 他のすべての HTTP ステータスコードは受信失敗と見なされます。 受信に失敗した場合、Content Moderation は検出結果のプッシュを最大 3 回まで再試行します。 3 回の再試行後も成功しない場合、それ以上プッシュされません。 コールバック API のステータスを確認することを推奨します。 |
seed | String | いいえ | abc**** | コールバック通知リクエストの署名に使用されるランダムな文字列。 文字、数字、アンダースコア (_) を含めることができ、最大 64 文字です。 コールバック通知を受信したときに、リクエストが Alibaba Cloud Content Moderation サービスによって開始されたことを確認するためにカスタマイズできます。 説明 このフィールドは、コールバックを使用する場合に必須です。 |
cryptType | String | いいえ | SHA256 | コールバック通知 (callback) を使用する場合、通知コンテンツの暗号化アルゴリズムを設定します。 Content Moderation は、指定されたアルゴリズムを使用して返された結果 (ユーザー UID + seed + content から連結された文字列) を暗号化してから、コールバック通知アドレスに送信します。 有効な値:
|
interval | Integer | いいえ | 1 | フレームキャプチャの頻度。GIF および長い画像の検出に固有です。 この値が存在する場合にのみ、GIF および長い画像でフレームキャプチャが実行されます。
この値が渡されない場合、デフォルトでは GIF の最初のフレームのみが検出され、長い画像は検出前に圧縮されます。 説明 interval パラメーターは maxFrameNum パラメーターと一緒に使用する必要があります。 たとえば、interval を 2、maxFrameNum を 10 に設定した場合、GIF または長い画像を検出する際に、2 フレームごとに 1 フレームが検出され、最大 10 フレームまで検出されます。 課金は、実際に検出されたフレーム数に基づきます。 |
maxFrameNum | Integer | いいえ | 10 | キャプチャする最大フレーム数。GIF および長い画像の検出に固有です。 デフォルト値は 10 で、最大 10 フレームがキャプチャされることを意味します。 値は 1 から 100 の間でなければなりません。 interval* maxFrameNum が GIF または長い画像のフレーム数より少ない場合、フレームキャプチャ間隔は自動的に (GIF または長い画像のフレーム数) / maxFrameNum に変更され、全体的な検出効果が向上します。 |
referer | String | いいえ | www.aliyun.com | リファラーリクエストヘッダー。ホットリンク保護などのシナリオで使用されます。 長さは 256 文字を超えることはできません。 |
infoType | String | はい | customImage,textInImage | 取得する補助情報。 有効な値:
複数のタイプをコンマで区切って指定できます。 たとえば、「customImage,textInImage」は、カスタムイメージライブラリと画像内テキスト情報の両方を返します。 説明 公人およびロゴ情報は、高度な画像審査のサービスで返すことができます。 詳細については、「サービスの説明」をご参照ください。 |
戻りデータ
名前 | タイプ | 例 | 説明 | |
Code | Integer | 200 | ステータスコード。 詳細については、「コードの説明」をご参照ください。 | |
Msg | String | OK | リクエストに対する応答メッセージ。 | |
RequestId | String | ABCD1234-1234-1234-1234-123**** | リクエスト ID。 | |
Data | Object | 検出結果。 | ||
ReqId | String | ABCD1234-1234-1234-1234-123**** | リクエスト ID。 審査タスクの結果をクエリするために使用できます。 | |
DataId | String | img123****** | 検出されたオブジェクトに対応するデータ ID。 | |
例
リクエスト例
{
"Service": "baselineCheck",
"ServiceParameters": {
"imageUrl": "https://img.alicdn.com/tfs/TB1Mq6ZmCslXu8jSZFuXXXg7FXa-1440-568.jpg",
"dataId": "img123******",
"interval": 1,
"maxFrameNum": 50
}
}応答例
{
"Msg": "OK",
"Code": 200,
"RequestId": "ABCD1234-1234-1234-1234-1234XYZ",
"Data": {
"ReqId": "ABCD1234-1234-1234-1234-1234XYZ",
"DataId": "img123******"
}
}タスク結果の取得
API の説明
サービス API:DescribeImageModerationResult。画像審査 2.0 の審査タスクの結果を取得します。
課金情報:この API 操作は課金されません。
クエリタイムアウト:クエリ間隔を 30 秒に設定することを推奨します。 これは、非同期検出タスクを送信してから 30 秒後に結果をクエリする必要があることを意味します。 結果は最大 3 日間保存され、その後自動的に削除されます。
QPS 制限
この API 操作に対する単一の Alibaba Cloud アカウントの QPS 制限は 100 です。 この制限を超えると、API 呼び出しがスロットリングされ、ビジネス運用に影響を与える可能性があります。 妥当な頻度で API 操作を呼び出すことを推奨します。
デバッグ
API を統合する前に、Alibaba Cloud OpenAPI を使用して 画像審査 2.0 タスク結果の取得 API 操作をオンラインでデバッグできます。 これにより、サンプルコードと SDK の依存関係情報を表示して、API 操作とそのパラメーターの使用方法を理解できます。
リクエストパラメーター
名前 | タイプ | 必須 | 例 | 説明 |
ReqId | String | はい | ABCD1234-1234-1234-1234-123**** | リクエスト ID。 これは、画像審査 2.0 同期検出 API によって返される RequestId フィールドです。 |
戻りデータ
名前 | タイプ | 例 | 説明 |
RequestId | String | ABCD1234-1234-1234-1234-123**** | このリクエストの ID。 これは、Alibaba Cloud がリクエストに対して生成した一意の識別子であり、トラブルシューティングに使用できます。 |
Data | Object | 画像コンテンツの検出結果。 詳細については、「Data」をご参照ください。 | |
Code | Integer | 200 | ステータスコード。 詳細については、「コードの説明」をご参照ください。 |
Msg | String | OK | このリクエストに対する応答メッセージ。 |
表 2. Data
名前 | タイプ | 例 | 説明 |
Result | Array | 画像検出の結果パラメーター (リスクラベルや信頼度スコアなど)。 詳細については、「Result」をご参照ください。 | |
RiskLevel | String | high | 設定された高リスクスコアと低リスクスコアに基づいて返されるリスクレベル。 戻り値には以下が含まれます。
説明 高リスクのコンテンツは直接処理することを推奨します。 中リスクのコンテンツは手動で確認することを推奨します。 低リスクのコンテンツは、高い再現率が必要な場合にのみ処理することを推奨します。 それ以外の場合は、リスクが検出されなかったコンテンツと同じように扱うことを推奨します。 リスクスコアは Content Moderation コンソールで設定できます。 |
DataId | String | img123****** | 検出されたオブジェクトに対応するデータ ID。 説明 検出リクエストで `dataId` が渡された場合、対応する `dataId` がここに返されます。 |
FrameNum | Integer | 10 | 画像からキャプチャされたフレームの総数。 |
Frame | String | [{\"Result\":[{\"Confidence\":98.88,\"Label\":\"contraband_gamble\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"}] | 画像フレーム情報の JSON 文字列。 次のフィールドが含まれます。
説明 画像からフレームがキャプチャされない場合、現在の画像情報のみが返されます。 GIF または長い画像からフレームがキャプチャされた場合、各フレームの情報が返されます。 |
表 3. Result
名前 | タイプ | 例 | 説明 |
Label | String | violent_explosion | 画像コンテンツ検出後に返されるラベル。 1 つの画像に複数のラベルとスコアが含まれる場合があります。 サポートされているラベルについては、以下をご参照ください。 |
Confidence | Float | 81.22 | 信頼度スコア。0 から 100 の範囲で、小数点以下 2 桁まで表示されます。 一部のラベルには信頼度スコアがありません。 詳細については、「リスクラベルの説明表」をご参照ください。 |
Description | String | Fireworks content | Labal フィールドの説明。 重要 このフィールドは Label フィールドを説明するものであり、変更される可能性があります。 実際の結果処理については、Label フィールドを処理し、このフィールドに基づいて決定を下さないことを推奨します。 |
例
リクエスト例
{
"ReqId": "ABCD1234-1234-1234-1234-123****"
}応答例
システムがリスクのあるコンテンツを検出した場合、応答の例は次のとおりです。
{ "Msg": "success", "Code": 200, "Data": { "DataId": "img123****", "Result": [ { "Label": "pornographic_adultContent", "Confidence": 81, "Description": "Adult pornography" }, { "Label": "sexual_partialNudity", "Confidence": 98, "Description": "Body nudity or sexual content" }, { "Label": "violent_explosion", "Confidence": 70, "Description": "Fireworks content" }, { "Label": "violent_explosion_lib", "Confidence": 81, "Description": "Fireworks content_hit in custom library" } ], "RiskLevel": "high", "Frame": "[{\"Result\":[{\"Confidence\":98.18,\"Label\":\"contraband_gamble\"},{\"Confidence\":96.39,\"Label\":\"pornographic_adultContent\"},{\"Confidence\":95.27,\"Label\":\"violent_explosion\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"},{\"Result\":[{\"Confidence\":91.18,\"Label\":\"violent_explosion_lib\"}],\"TempUrl\":\"http://www.aliyundoc.com/test2.jpg\"}]", "FrameNum": 2 }, "RequestId": "ABCD1234-1234-1234-1234-123****" }システムがリスクのあるコンテンツを検出しなかった場合、応答の例は次のとおりです。
{ "Msg": "success", "Code": 200, "Data": { "DataId": "img123****", "Result": [ { "Label": "nonLabel", "Confidence": null, "Description": "No risk detected" } ], "RiskLevel": "none", "Frame": "[{\"Result\":[{\"Label\":\"nonLabel\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"},{\"Result\":[{\"Label\":\"nonLabel\"}],\"TempUrl\":\"http://www.aliyundoc.com/test2.jpg\"}]", "FrameNum": 2 }, "RequestId": "ABCD1234-1234-1234-1234-123****" }システムが、提供された画像が設定した審査不要画像ライブラリにあることを検出した場合、応答の例は次のとおりです。
{ "Msg": "success", "Code": 200, "Data": { "DataId": "img123****", "Result": [ { "Label": "nonLabel_lib", "Confidence": 99.66, "Description": "Hit in review-free library" } ], "RiskLevel": "none", "Frame": "[{\"Result\":[{\"Confidence\":99.66,\"Label\":\"nonLabel_lib\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"},{\"Result\":[{\"Confidence\":81.18,\"Label\":\"nonLabel_lib\"}],\"TempUrl\":\"http://www.aliyundoc.com/test2.jpg\"}]", "FrameNum": 2 }, "RequestId": "ABCD1234-1234-1234-1234-123****" }
このドキュメントのリクエストと応答の例は、読みやすさのために改行とインデントでフォーマットされています。 実際に返される結果はフォーマットされていません。
リスクラベルの説明表
リスクラベルの説明については、「リスクラベルの説明表」をご参照ください。 各リスクラベルはコンソールで有効または無効にできます。 一部のリスクラベルについては、より詳細な検出範囲を設定できます。 詳細については、「コンソールユーザーガイド」をご参照ください。
システムから返されたリスクラベルと信頼度スコアを一定期間保存することを推奨します。 これにより、将来のコンテンツガバナンスの参考にすることができます。 これらのリスクラベルに基づいて、手動レビューや注釈の優先順位を設定し、階層化および分類化されたコンテンツガバナンス対策を実施できます。
コードの説明
次の表は、API 操作によって返されるエラーコードを示しています。 システムは、コード 200 を返すリクエストのみを課金します。 他のコードを返すリクエストは課金されません。
コード | 説明 |
200 | リクエストは正常です。 |
280 | タスクは検出中です。 |
400 | リクエストパラメーターが空です。 |
401 | リクエストパラメーターが正しくありません。 |
402 | リクエストパラメーターの長さが API 仕様に準拠していません。 確認して修正してください。 |
403 | リクエストが QPS 制限を超えています。 同時実行数を確認し、調整してください。 |
404 | 提供された画像のダウンロード中にエラーが発生しました。 確認または再試行してください。 |
405 | 提供された画像のダウンロードがタイムアウトしました。 画像にアクセスできない可能性があります。 確認、調整、再試行してください。 |
406 | 提供された画像が大きすぎます。 画像サイズを確認、調整してから再試行してください。 |
407 | 提供された画像のフォーマットはサポートされていません。 確認、調整、再試行してください。 |
408 | アカウントにはこの API 操作を呼び出す権限がありません。 これは、アカウントでサービスが有効化されていない、アカウントに支払い遅延がある、または呼び出し元のアカウントが権限付与されていないことが原因である可能性があります。 |
500 | システムエラーが発生しました。 |