Tous les produits
Search
Centre de documentation

Object Storage Service:Image label detection

Dernière mise à jour :Aug 27, 2026

La détection des libellés d'image identifie les informations telles que les scènes, les objets et les événements présents dans une image. Utilisez cette fonctionnalité pour étiqueter automatiquement vos images.

Cas d'utilisation

Scénario

Description

Reconnaissance de contenu

Détectez les éléments, les 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 les sites e-commerce.

Cas d'utilisation

Scénario

Description

Reconnaissance de contenu

Détectez les éléments, les 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 les sites e-commerce.

Cas d'utilisation

Scénario

Description

Reconnaissance de contenu

Détectez les éléments, les 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 les sites e-commerce.

Cas d'utilisation

Scénario

Description

Reconnaissance de contenu

Détectez les éléments, les 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 les sites e-commerce.

Précautions

  • La détection des libellés d'image prend uniquement en charge les images aux formats JPG, PNG ou JPEG.

  • Les limites suivantes s'appliquent à la taille des images :

    • La taille de l'image ne doit pas dépasser 20 Mo.

    • La hauteur ou la largeur de l'image ne doit pas dépasser 30 000 pixels.

    • Le nombre total de pixels de l'image ne doit pas dépasser 250 millions.

  • La détection des libellés d'image prend uniquement en charge le traitement synchrone, via la méthode x-oss-process.

  • L'accès anonyme est refusé.

  • L'accès anonyme est refusé.

    L'accès anonyme est refusé.

    L'accès anonyme est refusé.

    L'accès anonyme est refusé.

Utilisation

Prérequis

Détecter les libellés d'image

Les exemples suivants montrent comment détecter des libellés à l'aide des SDK courants. Adaptez le code de ces exemples pour les autres SDK.

Python

Utilisez le SDK Python version 2.18.4 ou ultérieure.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Obtain access credentials from environment variables.
# Set OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET before running this code.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Set the endpoint for the region where the bucket is located.
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

# Specify the object key. Include the full path if the image is not in the root directory,
# for example, exampledir/example.jpg.
key = 'example.jpg'

process = 'image/labels'

try:
    result = bucket.get_object(key, process=process)
    image_labels = result.read().decode('utf-8')
    print("Image labels:")
    print(image_labels)
except oss2.exceptions.OssError as e:
    print("Error:", e)

Java

Utilisez le SDK Java version 3.17.4 ou ultérieure.

import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyuncs.exceptions.ClientException;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws ClientException, ClientException {
        // Set the endpoint for the region where the bucket is located.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        String region = "cn-hangzhou";
        // Obtain access credentials from environment variables.
        // Set OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET before running this code.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        String bucketName = "examplebucket";
        // Specify the object key. Include the full path if the image is not in the root directory,
        // for example, exampledir/example.jpg.
        String key = "example.jpg";

        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
            getObjectRequest.setProcess("image/labels");

            OSSObject ossObject = ossClient.getObject(getObjectRequest);

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = ossObject.getObjectContent().read(buffer)) != -1) {
                baos.write(buffer, 0, bytesRead);
            }
            String imageLabels = baos.toString("UTF-8");
            System.out.println("Image labels:");
            System.out.println(imageLabels);
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        } finally {
            ossClient.shutdown();
        }
    }
}

Go

Utilisez le SDK Go version 3.0.2 ou ultérieure.

package main

import (
	"fmt"
	"io"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Obtain access credentials from environment variables.
	// Set OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET before running this code.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Set the endpoint for the region where the bucket is located.
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucket, err := client.Bucket("examplebucket")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Specify the object key. Include the full path if the image is not in the root directory,
	// for example, exampledir/example.jpg.
	body, err := bucket.GetObject("example.jpg", oss.Process("image/labels"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	defer body.Close()

	data, err := io.ReadAll(body)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Println("Image labels:", string(data))
}

PHP

Utilisez le SDK PHP version 2.7.0 ou ultérieure.

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

try {
    // Obtain access credentials from environment variables.
    // Set OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET before running this code.
    $provider = new EnvironmentVariableCredentialsProvider();
    // Set the endpoint for the region where the bucket is located.
    $endpoint = 'https://oss-cn-hangzhou.aliyuncs.com';
    $bucket = 'examplebucket';
    // Specify the object key. Include the full path if the image is not in the root directory,
    // for example, exampledir/example.jpg.
    $key = 'example.jpg';

    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region" => "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    $options[$ossClient::OSS_PROCESS] = "image/labels";
    $result = $ossClient->getObject($bucket, $key, $options);
    var_dump($result);
} catch (OssException $e) {
    printf($e->getMessage() . "\n");
    return;
}

Obtenir des libellés avec le seuil par défaut

Configuration du seuil

Le paramètre thr n'est pas spécifié, le seuil par défaut de 0,7 s'applique donc.

Exemple de traitement

GET /example.jpg?x-oss-process=image/labels HTTP/1.1
Host: image-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 21 Jul 2023 08:30:25 GMT
Authorization: SignatureValue

Exemple de réponse

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Fri, 21 Jul 2023 08:30:26 GMT
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
x-oss-request-id: 64BA42225DFDD13437ECD00E
Last-Modified: Mon, 10 Jul 2023 13:07:30 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 13420962247653419692
x-oss-storage-class: Standard
x-oss-ec: 0048-00000104
Content-Disposition: attachment
x-oss-force-download: true
x-oss-server-time: 489
Content-Encoding: gzip

{
    "Labels": [
        {
            "CentricScore": 0.823,
            "LabelConfidence": 1.0,
            "LabelLevel": 2,
            "LabelName": "Outerwear",
            "Language": "zh-Hans",
            "ParentLabelName": "Clothing"
        },
        {
            "CentricScore": 0.721,
            "LabelConfidence": 0.735,
            "LabelLevel": 2,
            "LabelName": "Apparel",
            "Language": "zh-Hans",
            "ParentLabelName": "Clothing"
        }
        ...
    ],
    "RequestId": "0EC0B6EC-EB16-5EF4-812B-EF3A60C7D20D"
}

Obtenir des libellés avec un seuil spécifié

Configuration du seuil

Le paramètre thr est défini sur 0,85.

Exemple de traitement

GET /example.jpg?x-oss-process=image/labels,thr_0.85 HTTP/1.1
Host: image-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 21 Jul 2023 08:44:58 GMT
Authorization: SignatureValue

Exemple de réponse

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Fri, 21 Jul 2023 08:45:00 GMT
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
x-oss-request-id: 64BA458C7FFDC2383651DF09
Last-Modified: Mon, 10 Jul 2023 13:07:30 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 13420962247653419692
x-oss-storage-class: Standard
x-oss-ec: 0048-00000104
Content-Disposition: attachment
x-oss-force-download: true
x-oss-server-time: 421
Content-Encoding: gzip

{
    "RequestId": "B7BDAFD5-C0AF-5042-A749-88BF6E4F2712",
    "Labels": [
        {
            "CentricScore": 0.797,
            "Language": "zh-Hans",
            "LabelConfidence": 0.927,
            "LabelName": "Apparel",
            "LabelLevel": 2,
            "ParentLabelName": "Clothing"
        }
        ...
    ]
}

Paramètres

Action : image/labels

Paramètres de requête

Paramètre

Type

Obligatoire

Description

Exemple

thr

float

Non

Les libellés dont la valeur LabelConfidence est inférieure au seuil spécifié ne sont pas affichés. Valeurs valides : [0, 1]. Valeur par défaut : 0,7.

0,5

Augmentez la valeur de thr pour ne renvoyer que les libellés ayant un niveau de confiance élevé. Réduisez la valeur de thr pour renvoyer davantage de libellés.

Paramètres de réponse

Pour plus d'informations sur les paramètres de réponse, consultez DetectImageLabels - Détecter les libellés dans une image.

Facturation

La détection des libellés d'image fait appel à IMM. Par conséquent, elle génère des éléments facturables pour OSS et IMM :

API

Élément facturable

Description

GetObject

Requêtes GET

La facturation est basée sur le nombre de requêtes réussies.

GetObject

Trafic sortant via Internet

Si vous appelez l'opération GetObject via un endpoint public (par exemple, l'endpoint Chine (Hangzhou) oss-cn-hangzhou.aliyuncs.com) ou un endpoint d'accélération (par exemple, oss-accelerate.aliyuncs.com), le trafic sortant via Internet est facturé en fonction du volume de données.

GetObject

Volume de données Infrequent Access (IA) récupérées

Si les données récupérées sont des données Infrequent Access (IA), la récupération des données est facturée en fonction du volume de données récupérées.

GetObject

Volume de données récupérées via l'accès en temps réel aux objets Archive

Si vous lisez un objet Archive depuis un bucket pour lequel l'accès en temps réel aux objets Archive est activé, la récupération des données via l'accès en temps réel aux objets Archive est facturée en fonction du volume de données récupérées.

GetObject

Accélération du transfert

Si l'accélération du transfert est activée et que vous utilisez un endpoint d'accélération pour accéder à votre bucket, l'accélération du transfert est facturée en fonction du volume de données.

HeadObject

Requêtes GET

La facturation est basée sur le nombre de requêtes réussies.

Important

À partir du 28 juillet 2025 à 11 h 00 (UTC+8), le prix du service de détection des libellés d'image IMM reste inchangé, mais l'élément facturable est renommé de ImageClassification à ImageLabel. Pour plus d'informations, consultez Annonce concernant l'ajustement de la facturation IMM.

API

Élément facturable

Description

DetectImageLabels

ImageLabel

La facturation est basée sur le nombre de requêtes réussies.