Todos los productos
Search
Centro de documentos

Object Storage Service:Image label detection

Última actualización: Sep 03, 2026

La detección de etiquetas en imágenes identifica información como escenas, objetos y eventos dentro de una imagen. Utilice esta función para etiquetar sus imágenes automáticamente.

Casos de uso

Scenario

Description

Reconocimiento de contenido

Detecte elementos, escenas y otra información en imágenes capturadas o cargadas para aplicaciones educativas o de reconocimiento de objetos.

Álbum inteligente

Clasifique imágenes automáticamente según su contenido para organizar álbumes de fotos y galerías sin esfuerzo manual.

Análisis de escenas

Detecte objetos y escenas en imágenes y aplique etiquetas de contenido para reducir los costos de anotación manual.

Operaciones de contenido

Obtenga etiquetas de imágenes para recomendaciones de contenido en plataformas de redes sociales, noticias y comercio electrónico.

Casos de uso

Scenario

Description

Reconocimiento de contenido

Detecte elementos, escenas y otra información en imágenes capturadas o cargadas para aplicaciones educativas o de reconocimiento de objetos.

Álbum inteligente

Clasifique imágenes automáticamente según su contenido para organizar álbumes de fotos y galerías sin esfuerzo manual.

Análisis de escenas

Detecte objetos y escenas en imágenes y aplique etiquetas de contenido para reducir los costos de anotación manual.

Operaciones de contenido

Obtenga etiquetas de imágenes para recomendaciones de contenido en plataformas de redes sociales, noticias y comercio electrónico.

Casos de uso

Scenario

Description

Reconocimiento de contenido

Detecte elementos, escenas y otra información en imágenes capturadas o cargadas para aplicaciones educativas o de reconocimiento de objetos.

Álbum inteligente

Clasifique imágenes automáticamente según su contenido para organizar álbumes de fotos y galerías sin esfuerzo manual.

Análisis de escenas

Detecte objetos y escenas en imágenes y aplique etiquetas de contenido para reducir los costos de anotación manual.

Operaciones de contenido

Obtenga etiquetas de imágenes para recomendaciones de contenido en plataformas de redes sociales, noticias y comercio electrónico.

Casos de uso

Scenario

Description

Reconocimiento de contenido

Detecte elementos, escenas y otra información en imágenes capturadas o cargadas para aplicaciones educativas o de reconocimiento de objetos.

Álbum inteligente

Clasifique imágenes automáticamente según su contenido para organizar álbumes de fotos y galerías sin esfuerzo manual.

Análisis de escenas

Detecte objetos y escenas en imágenes y aplique etiquetas de contenido para reducir los costos de anotación manual.

Operaciones de contenido

Obtenga etiquetas de imágenes para recomendaciones de contenido en plataformas de redes sociales, noticias y comercio electrónico.

Precauciones

  • La detección de etiquetas en imágenes solo admite imágenes en formato JPG, PNG o JPEG.

  • Se aplican los siguientes límites al tamaño de la imagen:

    • El tamaño de la imagen no puede superar los 20 MB.

    • La altura o el ancho de la imagen no puede exceder los 30,000 píxeles.

    • El número total de píxeles en la imagen no puede superar los 250 millones.

  • La detección de etiquetas en imágenes solo admite procesamiento síncrono mediante el método x-oss-process.

  • Se denegará el acceso anónimo.

  • Se denegará el acceso anónimo.

    Se denegará el acceso anónimo.

    Se denegará el acceso anónimo.

    Se denegará el acceso anónimo.

Cómo utilizarlo

Requisitos previos

Detectar etiquetas de imagen

Los siguientes ejemplos muestran cómo detectar etiquetas con los SDK más comunes. Adapte el código de estos ejemplos para otros SDK.

Python

Utilice Python SDK 2.18.4 o posterior.

# -*- 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

Utilice Java SDK 3.17.4 o posterior.

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

Utilice Go SDK 3.0.2 o posterior.

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

Utilice PHP SDK 2.7.0 o posterior.

<?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;
}

Obtener etiquetas con el umbral predeterminado

Configuración del umbral

No se especificó el parámetro thr, por lo que se aplica el umbral predeterminado de 0.7.

Ejemplo de procesamiento

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

Respuesta de ejemplo

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"
}

Obtener etiquetas con un umbral específico

Configuración del umbral

El parámetro thr está establecido en 0.85.

Ejemplo de procesamiento

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

Respuesta de ejemplo

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"
        }
        ...
    ]
}

Parámetros

Acción: image/labels

Parámetros de solicitud

Parámetro

Tipo

Obligatorio

Descripción

Ejemplo

thr

float

No

Las etiquetas cuyo valor de LabelConfidence sea inferior al umbral especificado no se mostrarán. Valores válidos: [0, 1]. Valor predeterminado: 0.7.

0.5

Aumente thr para devolver solo etiquetas con alta confianza. Reduzca thr para obtener más etiquetas.

Parámetros de respuesta

Para obtener más información sobre los parámetros de respuesta, consulte DetectImageLabels - Detect labels in an image.

Facturación

La detección de etiquetas en imágenes invoca a IMM. Por lo tanto, genera conceptos facturables tanto para OSS como para IMM:

API

Concepto facturable

Descripción

GetObject

Solicitudes GET

Se le cobra según el número de solicitudes exitosas.

GetObject

Tráfico saliente por Internet

Si llama a la operación GetObject mediante un endpoint público (por ejemplo, el endpoint China (Hangzhou) oss-cn-hangzhou.aliyuncs.com) o un endpoint de aceleración (por ejemplo, oss-accelerate.aliyuncs.com), se le cobrará el tráfico saliente por Internet según el volumen de datos.

GetObject

Volumen de datos recuperados de Acceso poco frecuente (IA)

Si los datos recuperados son de Acceso poco frecuente (IA), se le cobrará la recuperación de datos según el volumen recuperado.

GetObject

Volumen de datos recuperados mediante acceso en tiempo real de objetos Archive

Si lee un objeto Archive desde un bucket que tiene habilitado el acceso en tiempo real para objetos Archive, se le cobrará la recuperación de datos mediante acceso en tiempo real de objetos Archive según el volumen recuperado.

GetObject

Aceleración de transferencia

Si la aceleración de transferencia está habilitada y utiliza un endpoint de aceleración para acceder a su bucket, se le cobrará la aceleración de transferencia según el volumen de datos.

HeadObject

Solicitudes GET

Se le cobra según el número de solicitudes exitosas.

Importante

A partir de las 11:00 (UTC+8) del 28 de julio de 2025, el precio del servicio de detección de etiquetas en imágenes de IMM se mantiene sin cambios, pero el concepto facturable cambia de nombre de ImageClassification a ImageLabel. Para obtener más información, consulte Anuncio sobre ajuste de facturación de IMM.

API

Concepto facturable

Descripción

DetectImageLabels

ImageLabel

Se le cobra según el número de solicitudes exitosas.