このトピックでは、イメージラベル検出機能のシナリオとプロシージャについて説明します。
機能の説明
イメージラベル検出機能は、イメージ内のシーン、オブジェクト、イベントなどのコンテンツを検出し、自動的にラベルを追加します。この機能は、次の図に示すように、30 以上のカテゴリにわたる数千のラベルをサポートします。

シナリオ
シナリオ | 説明 |
コンテンツ認識 | キャプチャまたはアップロードされたイメージ内のアイテム、シーン、およびその他の情報を検出します。この機能は、写真からのオブジェクト認識やポピュラーサイエンスを目的としたプロダクトや機能で使用できます。 |
スマートアルバム | コンテンツに基づいてイメージを自動的に分類し、フォトアルバムやギャラリーのインテリジェントな分類を実装します。これにより、効率的で自動化された管理が実現します。 |
シーン分析 | イメージ内のさまざまなオブジェクトやシーンを検出し、さまざまなシーンにコンテンツラベルを追加します。これにより、シーン分析の効率が向上し、手動での注釈付けのコストが削減されます。 |
コンテンツ操作 | コンテンツの推奨のためにイメージラベル情報を取得します。この機能は、ソーシャルメディア、ニュース、情報、e コマースプラットフォームなどのコンテンツプラットフォームで広く使用されています。 |
制限事項
次の表に、イメージラベル検出機能の制限を示します。
制限 | 制限事項 |
イメージフォーマット | 次のイメージフォーマットがサポートされています:
|
画像サイズ | 次の画像サイズの制限が適用されます。
|
前提条件
AccessKey ペアを作成して取得します。詳細については、「AccessKey ペアの作成」をご参照ください。
OSS を有効化し、バケットを作成し、ファイルをバケットにアップロードします。詳細については、「ファイルのアップロード」をご参照ください。
Intelligent Media Management (IMM) を有効化します。詳細については、「IMM の有効化」をご参照ください。
IMM コンソールでプロジェクトを作成します。詳細については、「プロジェクトの作成」をご参照ください。
OSS バケットと IMM プロジェクトは、同じリージョン (中国 (フフホト) など) にある必要があります。
説明CreateProject API 操作を呼び出してプロジェクトを作成することもできます。詳細については、「CreateProject」をご参照ください。
ListProjects 操作を呼び出して、指定されたリージョン内のすべてのプロジェクトをリスト表示できます。
プロシージャ
DetectImageLabels 操作を呼び出して、イメージ内のラベルを検出します。
検出する情報
IMM プロジェクト名: test-project
イメージのストレージアドレス: oss://test-bucket/test-object.jpg
イメージの例:

リクエストの例
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-object.jpg",
"Threshold": 0.7
}レスポンスの例
サンプルコード
次のサンプルコードは、Python SDK を使用してイメージラベルを検出する方法を示しています。
# -*- coding: utf-8 -*-
# このファイルは自動生成されます。編集しないでください。ありがとうございます。
import sys
import os
from typing import List
from alibabacloud_imm20200930.client import Client as imm20200930Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_imm20200930 import models as imm_20200930_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> imm20200930Client:
"""
AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
access_key_id=access_key_id,
access_key_secret=access_key_secret
)
# IMM のエンドポイントを指定します。
config.endpoint = f'imm.cn-beijing.aliyuncs.com'
return imm20200930Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
# Alibaba Cloud アカウントは、すべての API 操作に対する完全な権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、O&M を実行することをお勧めします。
# AccessKey ID と AccessKey Secret をプロジェクトコードに保存しないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが損なわれる可能性があります。
# この例では、環境変数から AccessKey ペアを取得して API 呼び出し元の ID を検証します。
imm_access_key_id = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
imm_access_key_secret = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
# クライアントを初期化します。
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
detect_image_labels_request = imm_20200930_models.DetectImageLabelsRequest(
project_name='test-project',
source_uri='oss://test-bucket/test-object.jpg',
threshold=0.7
)
runtime = util_models.RuntimeOptions()
try:
# コードをコピーして実行する場合は、API 操作の戻り値を出力します。
client.detect_image_labels_with_options(detect_image_labels_request, runtime)
except Exception as error:
# エラーが発生した場合は、エラーメッセージを出力します。
UtilClient.assert_as_string(error.message)
@staticmethod
async def main_async(
args: List[str],
) -> None:
# Alibaba Cloud アカウントは、すべての API 操作に対する完全な権限を持っています。RAM ユーザーを使用して API 操作を呼び出すか、O&M を実行することをお勧めします。
# AccessKey ID と AccessKey Secret をプロジェクトコードに保存しないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが損なわれる可能性があります。
# この例では、環境変数から AccessKey ペアを取得して API 呼び出し元の ID を検証します。
imm_access_key_id = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
imm_access_key_secret = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
# クライアントを初期化します。
client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
detect_image_labels_request = imm_20200930_models.DetectImageLabelsRequest(
project_name='test-project',
source_uri='oss://test-bucket/test-object.jpg',
threshold=0.7
)
runtime = util_models.RuntimeOptions()
try:
# コードをコピーして実行する場合は、API 操作の戻り値を出力します。
await client.detect_image_labels_with_options_async(detect_image_labels_request, runtime)
except Exception as error:
# エラーが発生した場合は、エラーメッセージを出力します。
UtilClient.assert_as_string(error.message)
if __name__ == '__main__':
Sample.main(sys.argv[1:])課金
イメージラベルの検出中に、OSS と IMM に対して課金項目が生成されます:
OSS: 料金の詳細については、「OSS の料金」をご参照ください。
API
課金項目
説明
GetObject
GET リクエスト
リクエストは、成功したリクエストの数に基づいて課金されます。
IA データ取得容量
低頻度アクセス (IA) データを取得すると、IA データ取得容量の料金が発生します。取得したデータの量に基づいて課金されます。
アーカイブリアルタイムアクセスデータ取得容量
アーカイブオブジェクトのリアルタイムアクセスが有効になっているバケットからアーカイブオブジェクトを読み取ると、アーカイブリアルタイムアクセスデータ取得容量の料金が発生します。取得したデータのサイズに基づいて課金されます。
転送アクセラレーション
転送アクセラレーションを有効にし、アクセラレーションエンドポイントを使用してバケットにアクセスすると、転送アクセラレーション料金が発生します。データサイズに基づいて課金されます。
HeadObject
GET リクエスト
リクエストは、成功したリクエストの数に基づいて課金されます。
IMM: 料金の詳細については、「IMM の課金項目」をご参照ください。
重要2025 年 7 月 28 日 11:00 (UTC + 08:00) から、IMM イメージタギングサービスの課金項目は ImageClassification から ImageLabel に変更されます。詳細については、「IMM の課金調整に関する通知」をご参照ください。
API
課金項目
説明
DetectImageLabels
ImageLabel
イメージラベル検出の料金は、成功したリクエストの数に基づいて計算されます。
FAQ
イメージラベル検出は、イメージ内のテキスト、日付、場所を検出してラベルに変換することをサポートしていますか?
いいえ、サポートしていません。イメージセマンティック検索を使用して、イメージからテキストを抽出できます。その後、テキストに基づいて日付と組織名を特定できます。場所を取得するには、イメージに Exchangeable Image File Format (EXIF) 情報が含まれている場合、イメージ情報の API 操作を呼び出して、写真が撮影された場所の GPS データを取得できます。
暴力的、ポルノ、またはその他の機密コンテンツを含むイメージの場合、自動検出は十分に高感度または正確でない可能性があります。場合によっては、手動でのレビューが必要です。