Todos os produtos
Search
Central de documentação

Object Storage Service:Detecção de corpo humano

Última atualização: Jul 03, 2026

Detecta todos os corpos humanos em uma imagem e retorna as caixas delimitadoras e as pontuações de confiança correspondentes.

Cenários

  • Detecção de pedestres: localize pedestres em imagens.

  • Rastreamento de trajetória: analise o comportamento de pedestres com detecção e rastreamento.

  • Contagem de pessoas: conte indivíduos em imagens para análise de tráfego ou segurança de locais.

Como usar

Pré-requisitos

Exemplos de código

Os exemplos a seguir detectam corpos humanos com SDKs do OSS.

Java

É necessário o OSS SDK for Java 3.17.4 ou 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 endpoint. 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 for human body detection.
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
            getObjectRequest.setProcess("image/bodies");

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

Python

É necessário o OSS SDK for Python 2.18.4 ou posterior.

# -*- 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 region endpoint. For example: https://oss-cn-hangzhou.aliyuncs.com for China (Hangzhou).
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)

# Specify the object name (key). For nested files, provide the full path. Example: exampledir/example.jpg
key = 'example.jpg'

# Create a processing instruction for human body detection.
process = 'image/bodies'

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

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

Go

É necessário o OSS SDK for Go 3.0.2 ou posterior.

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 name of the image. 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 a processing instruction for human body detection by using the oss.Process method.
	body, err := bucket.GetObject("example.jpg", oss.Process("image/bodies"))
	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

É necessário o OSS SDK for PHP 2.7.0 ou 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. 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 name of the image. 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 for human body detection.
  $options[$ossClient::OSS_PROCESS] = "image/bodies";
  $result = $ossClient->getObject($bucket,$key,$options);
  var_dump($result);
} catch (OssException $e) {
  printf($e->getMessage() . "\n");
  return;
}

Parâmetros

Nome da operação: image/bodies

Parâmetro da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

sen

int

Não

Sensibilidade da detecção. Valores mais altos detectam mais corpos. Valores válidos: 0 a 100. Padrão: 60.

50

Parâmetros da resposta

Nota

Os campos da resposta estão descritos em DetectImageBodies - Detectar corpos humanos em imagens.

APIs relacionadas

Para uso avançado, chame as APIs RESTful diretamente com cálculo de assinatura V4. (Recomendado) Incluir uma assinatura V4.

Adicione o parâmetro x-oss-process à operação GetObject para processar imagens. GetObject.

Exemplo 1

Solicitação de exemplo

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

Resposta de exemplo

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

{
  "RequestId": "58C0F6A4-7B26-5E22-9C60-EFF90E2082ED",
  "Bodies": [
    {
       "Confidence": 0.733,
       "Boundary": {
         "Left": 115,
         "Top": 97,
         "Height": 103,
         "Width": 63
         }
     }
   ]
}

Exemplo 2

Solicitação de exemplo

Neste exemplo, o valor do parâmetro sen é 50.

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

Resposta de exemplo

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

{
  "RequestId": "E9BDE106-1436-5077-9F6E-65D81DC6FEC8",
  "Bodies": [
    {
      "Confidence": 0.733,
      "Boundary": {
        "Left": 115,
        "Top": 97,
        "Height": 103,
        "Width": 63
      }
    },
    {
      "Confidence": 0.732,
      "Boundary": {
        "Left": 214,
        "Top": 121,
        "Height": 86,
        "Width": 63
      }
    },
    {
      "Confidence": 0.656,
      "Boundary": {
        "Left": 63,
        "Top": 102,
        "Height": 100,
        "Width": 82
      }
    }
  ]
}

Faturamento

A detecção de corpo humano gera cobranças no OSS e no IMM:

  • No OSS: Preços do OSS

    API

    Item de faturamento

    Descrição

    GetObject

    Solicitações GET

    Cobrança de taxas de solicitação conforme o número de solicitações bem-sucedidas.

    Tráfego de saída pela Internet

    Ao chamar a operação GetObject com um endpoint público, como oss-cn-hangzhou.aliyuncs.com, ou um endpoint de aceleração, como oss-accelerate.aliyuncs.com, há cobrança de tráfego de saída pela Internet conforme o volume de dados.

    Capacidade de recuperação de dados de acesso infrequente

    Na recuperação de objetos IA, aplica-se cobrança de recuperação de dados IA conforme o tamanho dos dados recuperados.

    Capacidade para recuperação direta de dados do Archive

    Na recuperação de objetos Archive em bucket com acesso em tempo real ativado, aplica-se cobrança de recuperação de dados Archive conforme o tamanho dos objetos recuperados.

    Aceleração de transferência

    Com a aceleração de transferência ativada e uso de endpoint de aceleração para acessar o bucket, há cobrança de aceleração de transferência conforme o volume de dados.

    HeadObject

    Solicitações GET

    Cobrança de taxas de solicitação conforme o número de solicitações bem-sucedidas.

  • No IMM: Itens de faturamento do IMM

    Importante

    A partir das 11:00 UTC+8 de 28 de julho de 2025, a detecção de corpo humano do IMM deixa de ser gratuita e passa a ser paga. O item de faturamento é ImageDetect. Anúncio de ajuste de faturamento do IMM.

    API

    Item de faturamento

    Descrição

    DetectImageBodies

    ImageDetect

    Cobrança de taxas de solicitação conforme o número de solicitações bem-sucedidas.

Observações de uso

  • A detecção de corpo humano oferece suporte apenas a processamento síncrono via x-oss-process.