Tous les produits
Search
Centre de documentation

Intelligent Media Management:Image label detection

Dernière mise à jour :Aug 10, 2026

Identifie les scènes, objets et événements dans les images et renvoie des libellés structurés. Prend en charge des milliers de libellés répartis dans plus de 30 catégories au sein d'une taxonomie hiérarchique.

Cas d'utilisation

Scénario Description
Reconnaissance de contenu Détectez des éléments, des scènes et d'autres informations dans les images capturées ou téléchargées pour la reconnaissance d'objets ou les applications éducatives.
Album intelligent Classez automatiquement les images en fonction de leur contenu afin d'organiser les albums photo et les galeries sans intervention manuelle.
Analyse de scène Détectez les objets et les scènes dans les images, puis appliquez des libellés de contenu pour réduire les coûts d'annotation manuelle.
Opérations sur le contenu Récupérez les libellés d'image pour la recommandation de contenu sur les réseaux sociaux, les plateformes d'actualités et de commerce électronique.

Limites

Contrainte Limite
Formats d'image pris en charge PNG, JPG, JPEG
Taille maximale du fichier image 20 Mo
Hauteur ou width maximale de l'image 30 000 pixels
Nombre total maximal de pixels 250 millions

Prérequis

Vous avez besoin des éléments suivants :

Remarque

Appelez CreateProject pour créer un projet par programmation, ou ListProjects pour consulter les projets existants dans une région.

Détecter les libellés d'image

Appelez DetectImageLabels pour détecter les libellés d'image.

Paramètres de la requête

Paramètre Type Description
ProjectName String Le nom du projet IMM.
SourceURI String L'URI OSS de l'image, au format oss://bucket-name/object-key.
Threshold Float Le score de confiance minimal pour les libellés renvoyés. Les libellés inférieurs à ce seuil sont filtrés. Exemple : 0.7.

Exemple de requête

{
    "ProjectName": "test-project",
    "SourceURI": "oss://test-bucket/test-object.jpg",
    "Threshold": 0.7
}

Champs de la réponse

Chaque libellé du tableau Labels contient :

Champ Type Description
LabelName String Le nom du libellé détecté, tel que Dog, Building ou Camping.
LabelConfidence Float Le score de confiance du libellé, compris entre 0 et 1. Des valeurs plus élevées indiquent une certitude plus grande.
CentricScore Float Un score indiquant la proéminence ou la centralité de l'objet étiqueté dans l'image. Des valeurs plus élevées signifient que l'objet est visuellement plus prédominant.
LabelLevel Integer La profondeur hiérarchique du libellé. 1 = catégorie de niveau supérieur, 2 = catégorie intermédiaire, 3 = libellé granulaire.
ParentLabelName String Le nom du libellé parent dans la taxonomie. Vide pour les libellés de niveau supérieur.
Language String La langue de la taxonomie des libellés, telle que zh-Hans.

La réponse inclut également un RequestId qui identifie chaque requête.

Exemple de réponse

{
  "RequestId": "91C92EBA-5E51-50C8-B51B-8C3BDC66EB86",
  "Labels": [
    {
      "CentricScore": 0.797,
      "Language": "zh-Hans",
      "LabelConfidence": 1,
      "LabelName": "Clothing",
      "LabelLevel": 2,
      "ParentLabelName": "Clothes"
    },
    {
      "CentricScore": 0.695,
      "Language": "zh-Hans",
      "LabelConfidence": 1,
      "LabelName": "Carnivore",
      "LabelLevel": 2,
      "ParentLabelName": "Wild Animal"
    },
    {
      "CentricScore": 0.723,
      "Language": "zh-Hans",
      "LabelConfidence": 0.987,
      "LabelName": "Tent",
      "LabelLevel": 2,
      "ParentLabelName": "Other Scenes"
    },
    {
      "CentricScore": 0.695,
      "Language": "zh-Hans",
      "LabelConfidence": 0.949,
      "LabelName": "Pet",
      "LabelLevel": 1,
      "ParentLabelName": ""
    },
    {
      "CentricScore": 0.695,
      "Language": "zh-Hans",
      "LabelConfidence": 0.939,
      "LabelName": "Dog",
      "LabelLevel": 3,
      "ParentLabelName": "Pet Dog"
    },
    {
      "CentricScore": 0.803,
      "Language": "zh-Hans",
      "LabelConfidence": 0.924,
      "LabelName": "Person",
      "LabelLevel": 2,
      "ParentLabelName": "Face"
    },
    {
      "CentricScore": 0.689,
      "Language": "zh-Hans",
      "LabelConfidence": 0.885,
      "LabelName": "Camping",
      "LabelLevel": 2,
      "ParentLabelName": "Entertainment"
    }
  ]
}
Remarque

Cette réponse est abrégée. Une réponse complète renvoie tous les libellés satisfaisant au Threshold. Les libellés de niveau supérieur incluent Clothes, Wild Animal, Pet, Face et Entertainment, avec des libellés plus granulaires tels que Dog, Tent, Camping et Person imbriqués à l'intérieur.

Exemple de code (Python)

Exemple utilisant le SDK Python pour IMM :

# -*- 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:
        """
        Initialize the client with an AccessKey ID and 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
        )
        # Specify the endpoint of IMM.
        config.endpoint = f'imm.cn-beijing.aliyuncs.com'
        return imm20200930Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        # Obtain credentials from environment variables.
        # Do not hardcode AccessKey credentials in your code.
        imm_access_key_id = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
        imm_access_key_secret = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
        # Initialize the client.
        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:
            # Print the return value of the API operation.
            client.detect_image_labels_with_options(detect_image_labels_request, runtime)
        except Exception as error:
            # Print the error message if the request fails.
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        # Obtain credentials from environment variables.
        # Do not hardcode AccessKey credentials in your code.
        imm_access_key_id = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
        imm_access_key_secret = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
        # Initialize the client.
        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:
            # Print the return value of the API operation.
            await client.detect_image_labels_with_options_async(detect_image_labels_request, runtime)
        except Exception as error:
            # Print the error message if the request fails.
            UtilClient.assert_as_string(error.message)

if __name__ == '__main__':
    Sample.main(sys.argv[1:])
Important

Utilisez un utilisateur RAM plutôt que votre compte Alibaba Cloud pour appeler les opérations API. Stockez les identifiants AccessKey dans des variables d'environnement (ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET) au lieu de les coder en dur dans votre code source.

Facturation

La détection de libellés d'image entraîne des frais pour OSS et IMM.

Facturation OSS

API Élément facturable Description
GetObject Requêtes GET Facturé en fonction du nombre de requêtes réussies.
GetObject Récupération de données Infrequent Access (IA) Si vous récupérez des données IA, les frais sont calculés en fonction du volume de données récupérées.
GetObject Récupération de données Archive en temps réel Si vous lisez un objet Archive depuis un bucket avec accès en temps réel activé, les frais sont calculés en fonction de la taille des données récupérées.
GetObject Accélération de transfert Si l'accélération de transfert est activée et qu'un endpoint d'accélération est utilisé, les frais sont calculés en fonction de la taille des données.
HeadObject Requêtes GET Facturé en fonction du nombre de requêtes réussies.

Tarification OSS.

Facturation IMM

API Élément facturable Description
DetectImageLabels ImageLabel Facturé en fonction du nombre de requêtes réussies.
Important

À partir du 28 juillet 2025 à 11 h 00 (UTC+8), l'élément facturable pour la détection de libellés d'image IMM est passé de ImageClassification à ImageLabel. Avis concernant l'ajustement de la facturation IMM.

Éléments facturables IMM.

FAQ

La détection de libellés d'image prend-elle en charge l'extraction de texte, de dates ou de localisations à partir des images sous forme de libellés ?

Non. La détection de libellés d'image identifie le contenu visuel (objets, scènes, événements), mais n'effectue pas de reconnaissance optique de caractères (OCR) ni n'extrait de métadonnées.

Pour extraire du texte des images, utilisez la recherche sémantique d'image, puis analysez les résultats pour obtenir des dates ou des noms d'organisation. Pour récupérer l'emplacement des photos, lisez les données GPS des métadonnées EXIF de l'image via une opération API d'information sur l'image.

Remarque

Pour les images contenant du contenu violent, pornographique ou autre contenu sensible, la détection automatique peut manquer de précision. Une révision manuelle peut être nécessaire.