Identifica escenas, objetos y eventos en imágenes, y devuelve etiquetas estructuradas. Admite miles de etiquetas en más de 30 categorías dentro de una taxonomía jerárquica.
Casos de uso
|
Escenario |
Descripción |
|
Reconocimiento de contenido |
Detecte elementos, escenas y otra información en imágenes capturadas o cargadas para aplicaciones de reconocimiento de objetos o educativas. |
|
Á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. |
Límites
|
Restricción |
Límite |
|
Formatos de imagen compatibles |
PNG, JPG, JPEG |
|
Tamaño máximo del archivo de imagen |
20 MB |
|
Altura o anchura máxima de la imagen |
30,000 píxeles |
|
Total máximo de píxeles |
250 millones |
Requisitos previos
Necesita:
Un par de AccessKey. Create an AccessKey pair
Un bucket de OSS con al menos una imagen cargada. Upload files
IMM activado. Activate IMM
Un proyecto de IMM en la misma región que su bucket de OSS. Create a project
Llame a CreateProject para crear un proyecto mediante programación, o a ListProjects para consultar los proyectos existentes en una región.
Detectar etiquetas de imagen
Llame a DetectImageLabels para detectar etiquetas de imagen.
Parámetros de solicitud
|
Parámetro |
Tipo |
Descripción |
|
|
String |
El nombre del proyecto de IMM. |
|
|
String |
La URI de OSS de la imagen, con el formato |
|
|
Float |
La puntuación mínima de confianza para las etiquetas devueltas. Las etiquetas por debajo de este umbral se filtran. Ejemplo: |
Ejemplo de solicitud
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-object.jpg",
"Threshold": 0.7
}
Campos de respuesta
Cada etiqueta en la matriz Labels contiene:
|
Campo |
Tipo |
Descripción |
|
|
String |
El nombre de la etiqueta detectada, como |
|
|
Float |
La puntuación de confianza de la etiqueta, que varía de 0 a 1. Los valores más altos indican mayor certeza. |
|
|
Float |
Una puntuación que indica qué tan prominente o central es el objeto etiquetado dentro de la imagen. Los valores más altos significan que el objeto es visualmente más prominente. |
|
|
Integer |
La profundidad jerárquica de la etiqueta. |
|
|
String |
El nombre de la etiqueta principal en la taxonomía. Vacío para etiquetas de nivel superior. |
|
|
String |
El idioma de la taxonomía de etiquetas, como |
La respuesta también incluye un RequestId que identifica cada solicitud.
Ejemplo de respuesta
Código de ejemplo (Python)
Ejemplo con el SDK de Python de 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:])
Utilice un usuario de RAM en lugar de su cuenta de Alibaba Cloud para llamar a operaciones de API. Almacene las credenciales de AccessKey en variables de entorno (ALIBABA_CLOUD_ACCESS_KEY_ID y ALIBABA_CLOUD_ACCESS_KEY_SECRET) en lugar de codificarlas directamente en su código fuente.
Facturación
La detección de etiquetas en imágenes genera cargos tanto para OSS como para IMM.
Facturación de OSS
|
API |
Concepto facturable |
Descripción |
|
GetObject |
Solicitudes GET |
Se factura según el número de solicitudes exitosas. |
|
GetObject |
Recuperación de datos de acceso poco frecuente (IA) |
Si recupera datos IA, se cobra según el volumen de datos recuperados. |
|
GetObject |
Recuperación de datos de acceso en tiempo real de Archive |
Si lee un objeto Archive desde un bucket con acceso en tiempo real habilitado, se cobra según el tamaño de los datos recuperados. |
|
GetObject |
Aceleración de transferencia |
Si la aceleración de transferencia está habilitada y se utiliza un endpoint de aceleración, se cobra según el tamaño de los datos. |
|
HeadObject |
Solicitudes GET |
Se factura según el número de solicitudes exitosas. |
Facturación de IMM
|
API |
Concepto facturable |
Descripción |
|
DetectImageLabels |
ImageLabel |
Se factura según el número de solicitudes exitosas. |
A partir de las 11:00 del 28 de julio de 2025 (UTC+8), el concepto facturable para la detección de etiquetas de imagen de IMM cambió de ImageClassification a ImageLabel. Aviso sobre ajuste de facturación de IMM.
Preguntas frecuentes
¿La detección de etiquetas en imágenes admite la extracción de texto, fechas o ubicaciones de las imágenes como etiquetas?
No. La detección de etiquetas en imágenes identifica contenido visual (objetos, escenas, eventos), pero no realiza OCR ni extrae metadatos.
Para extraer texto de imágenes, utilice image semantic search y luego analice los resultados para buscar fechas o nombres de organizaciones. Para obtener las ubicaciones de las fotos, lea los datos GPS de los metadatos EXIF de la imagen mediante una operación de API de información de imagen.
En imágenes con contenido violento, pornográfico u otro contenido sensible, la detección automática puede carecer de precisión. Es posible que se requiera una revisión manual.