Todos los productos
Search
Centro de documentos

Object Storage Service:Evaluación de calidad de imagen

Última actualización: Sep 03, 2026

La función de evaluación de calidad de imagen analiza la calidad visual de una imagen mediante un conjunto de métricas como resolución, ruido, distorsión, saturación de color y exposición. Esta evaluación genera una puntuación general que indica la calidad de la imagen. La función es útil para seleccionar portadas de alta calidad en artículos, elegir miniaturas para videos, eliminar imágenes duplicadas y filtrar contenido de baja calidad. En este tema se describen los parámetros y ejemplos de uso de la evaluación de calidad de imagen.

Escenarios

  • Selección de portadas para documentos: La evaluación de calidad de imagen permite a los creadores de contenido elegir portadas atractivas y de alta calidad, lo cual contribuye a mejorar las tasas de clics y el número de visitas.

  • Selección de miniaturas para video: Los creadores de contenido audiovisual pueden utilizar esta función para seleccionar imágenes atractivas y de alta calidad como miniaturas, lo que mejora la experiencia del espectador y aumenta la tasa de clics.

  • Filtrado de imágenes de baja calidad: En los sistemas de procesamiento y almacenamiento de imágenes, el contenido de baja calidad puede ocupar mucho espacio de almacenamiento y afectar negativamente el rendimiento del sistema y la experiencia del usuario. La evaluación de calidad de imagen permite filtrar automáticamente imágenes borrosas, distorsionadas o con ruido. Utilice esta función para mejorar la calidad y usabilidad de su biblioteca de imágenes.

Requisitos previos

  • Intelligent Media Management (IMM) debe estar activado. Para más información, consulte Activate IMM.

  • Debe existir un bucket de Object Storage Service (OSS) asociado a su proyecto de Intelligent Media Management (IMM). Para obtener más información sobre cómo asociar un proyecto de IMM con un bucket de OSS desde la consola de OSS, consulte Getting started. Si desea asociar un proyecto de IMM con un bucket mediante una llamada a la API, consulte AttachOSSBucket.

Notas de uso

  • La evaluación de calidad de imagen solo admite procesamiento síncrono (x-oss-process).

  • Se denegará el acceso anónimo.

  • Es obligatorio contar con los permisos necesarios para utilizar esta función. Para más información, consulte permissions.

Parámetros

Acción: image/score

Nota

Para más información sobre los parámetros de respuesta, consulte DetectImageScore.

Ejemplos

Uso de SDK de OSS

A continuación se presentan ejemplos de código para obtener la puntuación de calidad de una imagen mediante los SDK de OSS en lenguajes de programación comunes. Si necesita obtener la puntuación de calidad con SDK de otros lenguajes, modifique los parámetros tomando como base los siguientes ejemplos.

Java

Se requiere OSS SDK for Java V3.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 {
        // Specify the endpoint of the region in which the bucket is located. 
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Specify the region of the bucket in which the image is stored. Example: cn-hangzhou. 
        String region = "cn-hangzhou";
        // Obtain a credential from the environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the name of the bucket. 
        String bucketName = "examplebucket";
        // If the image is stored in the root directory of the bucket, enter the image name. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/example.jpg. 
        String key = "example.jpg";

        // Create an OSSClient instance.
        // Call the shutdown method to release resources when the OSSClient is no longer in use.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // Create an image quality assessment instruction. 
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
            getObjectRequest.setProcess("image/score");

            // Use the process parameter of the getObject method to pass the processing instruction. 
            OSSObject ossObject = ossClient.getObject(getObjectRequest);

            // Read and display the query results. 
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = ossObject.getObjectContent().read(buffer)) != -1) {
                baos.write(buffer, 0, bytesRead);
            }
            String imageScore = baos.toString("UTF-8");
            System.out.println("Image Score:");
            System.out.println(imageScore);
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        } finally {
            // Stop the OSSClient instance. 
            ossClient.shutdown();
        }
    }
}

Python

Se requiere OSS SDK for Python V2.18.4 o posterior.

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

# Obtain a credential from the environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Specify the ID of the Alibaba Cloud region in which the bucket is located. 
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

# If the image is stored in the root directory of the bucket, enter the image name. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/example.jpg. 
key = 'example.jpg'

# Create an image quality assessment instruction. 
process = 'image/score'

try:
    # Use the get_object method and pass the processing instruction by using the process parameter. 
    result = bucket.get_object(key, process=process)

    # Read and display the query results. 
    image_score = result.read().decode('utf-8')
    print("Image Score:")
    print(image_score)
except oss2.exceptions.OssError as e:
    print("Error:", e)

Go

Se requiere OSS SDK for Go V3.0.2 o posterior.

package main

import (
	"fmt"
	"io"
	"os"

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

func main() {
	// Obtain a temporary credential from the environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Create an OSSClient instance. 
	// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. Specify your actual endpoint. 
	// Specify the ID of the Alibaba Cloud region in which the bucket is located. Example: cn-hangzhou. 
	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)
	}
	// Specify the name of the bucket. Example: examplebucket. 
	bucketName := "examplebucket"

	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// If the image is stored in the root directory of the bucket, enter the image name. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/example.jpg. 
	// Create an image quality assessment instruction by using the oss.Process method. 
	body, err := bucket.GetObject("example.jpg", oss.Process("image/score"))
	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("data:", string(data))
}

PHP

Se requiere OSS SDK for PHP V2.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 a credential from the environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
    $provider = new EnvironmentVariableCredentialsProvider(); 
    // Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
    $endpoint = 'https://oss-cn-hangzhou.aliyuncs.com';
    // Specify the name of the bucket. Example: examplebucket. 
    $bucket = 'examplebucket';
    // If the image is stored in the root directory of the bucket, enter the image name. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/example.jpg. 
    $key = 'example.jpg'; 

    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // Specify the ID of the Alibaba Cloud region in which the bucket is located. 
        "region" => "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
  // Create an image quality assessment instruction. 
  $options[$ossClient::OSS_PROCESS] = "image/score";
  $result = $ossClient->getObject($bucket,$key,$options);
  var_dump($result);
} catch (OssException $e) {
  printf($e->getMessage() . "\n");
  return;
}

Uso de la API RESTful

Si su caso de uso requiere un alto nivel de personalización, llame directamente a las API RESTful. Para llamar directamente a la API, incluya el cálculo de la firma en su código. Para más información sobre cómo calcular el encabezado Authorization, consulte (Recommended) Include a V4 signature.

Procese imágenes si especifica el parámetro x-oss-process en la solicitud GetObject. Para más información, consulte GetObject.

Solicitud de ejemplo

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

Respuesta de ejemplo

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Fri, 21 Jul 2023 08:28:34 GMT
Content-Type: application/json;charset=utf-8
Content-Length: 96
Connection: keep-alive
x-oss-request-id: 64BA41B2F326DB30370FEBC9
ETag: "2CE2EA370531B7CC1D23BE6015CF5DA5"
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: 466

{
  "ImageScore":
  {
    "OverallQualityScore":0.705
  },
  "RequestId":"E4B48BE7-46D9-589D-AB6D-C16E9A09A075"
}