Tous les produits
Search
Centre de documentation

Object Storage Service:Détection de véhicules

Dernière mise à jour :Sep 09, 2026

La fonctionnalité de détection de véhicules identifie les informations relatives aux véhicules et aux plaques d'immatriculation dans une image. Cette rubrique décrit les paramètres à spécifier pour utiliser cette fonctionnalité et fournit un exemple de détection.

Scénarios

  • Gestion du trafic : Intégrez la détection de véhicules aux systèmes de surveillance et de gestion du trafic, par exemple pour identifier les images capturées lors d'infractions routières et faciliter leur traitement.

  • Identification des véhicules anormaux : Analysez les images téléchargées dans des compartiments Object Storage Service (OSS) pour extraire les données relatives aux véhicules et aux plaques d'immatriculation.

    Remarque

    Les informations sur le véhicule incluent sa position, sa couleur et son type. Les informations sur la plaque d'immatriculation comprennent sa position et le texte qu'elle contient.

  • Analyse du trafic : Analysez des indicateurs tels que l'utilisation des routes et la répartition du trafic.

Utilisation

Prérequis

Détection de véhicules

L'exemple de code suivant montre comment spécifier les paramètres pour détecter les informations sur les véhicules et les plaques d'immatriculation dans une image à l'aide des SDK OSS pour les langages de programmation courants. Pour utiliser d'autres langages, adaptez les paramètres en vous basant sur cet exemple.

Java

Le SDK OSS pour Java version 3.17.4 ou ultérieure est requis.

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 Demo1 {
    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 ID of the Alibaba Cloud region in which the bucket is located. Example: cn-hangzhou.
        String region = "cn-hangzhou";
        // Obtain access credentials from 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 a processing instruction to detect vehicle information and license plate information in the image.
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
            getObjectRequest.setProcess("image/cars");

            // 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 imageCars = baos.toString("UTF-8");
            System.out.println("Image Cars:");
            System.out.println(imageCars);
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        } finally {
            // Shut down the OSSClient instance.
            ossClient.shutdown();
        }
    }
}

Python

Le SDK OSS pour Python version 2.18.4 ou ultérieure est requis.

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

# Obtain access credentials from 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 a processing instruction to detect vehicle information and license plate information in the image.
process = 'image/cars'

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_cars = result.read().decode('utf-8')
    print("Image Cars:")
    print(image_cars)
except oss2.exceptions.OssError as e:
    print("Error:", e)

Go

Le SDK OSS pour Go version 3.0.2 ou ultérieure est requis.

package main

import (
	"fmt"
	"io"
	"os"

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

func main() {
	// Obtain the temporary access credentials 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.
	// Use the oss.Process method to create a processing instruction to detect vehicle information and license plate information in the image.
	body, err := bucket.GetObject("example.jpg", oss.Process("image/cars"))
	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

Le SDK OSS pour PHP version 2.7.0 ou ultérieure est requis.

<?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. 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 a processing instruction to detect vehicle information and license plate information in the image.
  $options[$ossClient::OSS_PROCESS] = "image/cars";
  $result = $ossClient->getObject($bucket,$key,$options);
  var_dump($result);
} catch (OssException $e) {
  printf($e->getMessage() . "\n");
  return;
}

Description des paramètres

Action : image/cars

Remarque

Pour plus d'informations sur les paramètres de réponse, consultez DetectImageCars.

API associée

Exemple de requête

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

Exemple de réponse réussie

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Fri, 21 Jul 2023 08:57:30 GMT
Content-Type: application/json;charset=utf-8
Content-Length: 250
Connection: keep-alive
x-oss-request-id: 64BA487A5423BA333952334F
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: 552

{
  "RequestId" : "0C299A82-5D32-57DE-B66B-5E2A814C60BA",
  "Cars": [
    {
    "LicensePlates": [
      {
        "Content": "LuA8***8",
        "Boundary": {
          "Width": 200,
          "Height": 300,
          "Left": 10,
          "Top": 30
        },
        "Confidence": 0.789
      }
    ],
    "CarType": "van",
    "CarTypeConfidence": 0.516,
    "CarColor": "white",
    "CarColorConfidence": 0.604,
    "Boundary": {
      "Width": 200,
      "Height": 300,
      "Left": 10,
      "Top": 30
    },
    "Confidence": 0.999
    }
  ]
}

Facturation

L'appel au service IMM lors de la détection de véhicules génère des frais à la fois sur OSS et sur IMM :

  • Côté OSS : Pour le détail des tarifs, consultez Tarification OSS

    API

    Élément de facturation

    Description

    GetObject

    Requêtes GET

    Des frais de requête s'appliquent en fonction du nombre de requêtes abouties.

    Trafic sortant via Internet

    Si vous appelez l'opération GetObject via un endpoint public (par exemple oss-cn-hangzhou.aliyuncs.com) ou un endpoint d'accélération (par exemple oss-accelerate.aliyuncs.com), des frais de trafic sortant via Internet sont facturés selon la taille des données.

    Récupération d'objets IA

    La récupération d'objets Infrequent Access (IA) entraîne des frais de récupération de données IA calculés sur la base de la taille des données récupérées.

    Accélération du transfert

    L'activation de l'accélération du transfert et l'utilisation d'un endpoint d'accélération pour accéder à votre compartiment génèrent des frais d'accélération du transfert basés sur la taille des données.

    HeadObject

    Requêtes GET

    Des frais de requête s'appliquent en fonction du nombre de requêtes abouties.

  • Côté IMM : Pour le détail des tarifs, consultez Éléments de facturation IMM

    Important

    À partir du 28 juillet 2025 à 11 h 00 (UTC+8), le service de détection de véhicules IMM passera d'un modèle gratuit à un modèle payant. L'élément de facturation concerné est ImageDetect. Pour plus d'informations, consultez Annonce relative à l'ajustement de la facturation IMM.

    API

    Élément de facturation

    Description

    DetectImageCars

    ImageDetect

    Des frais de requête s'appliquent en fonction du nombre de requêtes abouties.

Remarques

  • La détection de véhicules prend uniquement en charge le traitement synchrone (x-oss-process).

  • L'accès anonyme est refusé.