Gunakan fitur deteksi tubuh manusia untuk mendeteksi semua tubuh manusia dalam gambar serta mendapatkan bingkai posisi dan tingkat kepercayaan mereka.
Skenario
Deteksi pejalan kaki: Identifikasi lokasi pejalan kaki di gambar menggunakan fitur deteksi tubuh manusia.
Pelacakan jalur: Analisis perilaku pejalan kaki dengan memanfaatkan fitur deteksi tubuh manusia dan pelacakan jalur.
Penghitungan tubuh manusia: Hitung jumlah orang dalam gambar menggunakan fitur deteksi tubuh manusia untuk analisis volume pejalan kaki atau jaminan keselamatan.
Cara Menggunakan
Prasyarat
Anda telah mengaktifkan Intelligent Media Management (IMM).
Anda telah membuat bucket di OSS dan mengunggah file yang akan diproses ke bucket tersebut.
Anda telah membuat dan memetakan Proyek IMM. Anda dapat memetakan proyek melalui Konsol OSS atau dengan memanggil Operasi API. Proyek IMM harus berada di wilayah yang sama dengan bucket.
Anda telah memberikan izin yang diperlukan kepada pengguna.
Deteksi tubuh manusia
Contoh kode berikut menunjukkan cara melakukan deteksi tubuh manusia menggunakan SDK OSS untuk bahasa pemrograman umum. Sesuaikan parameter sesuai kebutuhan bisnis Anda.
Java
Diperlukan OSS SDK for Java versi 3.17.4 atau lebih baru.
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 {
// Tentukan endpoint dari wilayah tempat bucket berada.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan wilayah dari endpoint. Contoh: cn-hangzhou.
String region = "cn-hangzhou";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket.
String bucketName = "examplebucket";
// Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg.
String key = "example.jpg";
// Buat instance OSSClient.
// Panggil metode shutdown untuk melepaskan sumber daya ketika OSSClient tidak lagi digunakan.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Buat instruksi pemrosesan untuk deteksi tubuh manusia.
GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
getObjectRequest.setProcess("image/bodies");
// Gunakan metode getObject, dan lewati instruksi pemrosesan.
OSSObject ossObject = ossClient.getObject(getObjectRequest);
// Baca dan tampilkan hasil kueri.
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 {
// Matikan instance OSSClient.
ossClient.shutdown();
}
}
}Python
Diperlukan OSS SDK for Python versi 2.18.4 atau lebih baru.
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan endpoint dari wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Tentukan ID wilayah Alibaba Cloud tempat bucket berada.
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)
# Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg.
key = 'example.jpg'
# Buat instruksi pemrosesan untuk deteksi tubuh manusia.
process = 'image/bodies'
try:
# Gunakan parameter process dari metode get_object untuk melewati instruksi pemrosesan.
result = bucket.get_object(key, process=process)
# Baca dan tampilkan hasil kueri.
image_bodies = result.read().decode('utf-8')
print("Image Bodies:")
print(image_bodies)
except oss2.exceptions.OssError as e:
print("Error:", e)Go
Diperlukan OSS SDK for Go versi 3.0.2 atau lebih baru.
package main
import (
"fmt"
"io"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Dapatkan kredensial akses sementara dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Buat instance OSSClient.
// Tentukan endpoint dari wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. Tentukan endpoint sebenarnya Anda.
// Tentukan ID wilayah Alibaba Cloud tempat bucket berada. Contoh: 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)
}
// Tentukan nama bucket. Contoh: examplebucket.
bucketName := "examplebucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg.
// Buat instruksi pemrosesan untuk deteksi tubuh manusia dengan menggunakan metode oss.Process.
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
Diperlukan OSS SDK for PHP versi 2.7.0 atau lebih baru.
<?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 {
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
$provider = new EnvironmentVariableCredentialsProvider();
// Tentukan endpoint dari wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = 'https://oss-cn-hangzhou.aliyuncs.com';
// Tentukan nama bucket. Contoh: examplebucket.
$bucket = 'examplebucket';
// Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg.
$key = 'example.jpg';
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
// Tentukan ID wilayah Alibaba Cloud tempat bucket berada.
"region" => "cn-hangzhou"
);
$ossClient = new OssClient($config);
// Buat instruksi pemrosesan untuk deteksi tubuh manusia.
$options[$ossClient::OSS_PROCESS] = "image/bodies";
$result = $ossClient->getObject($bucket,$key,$options);
var_dump($result);
} catch (OssException $e) {
printf($e->getMessage() . "\n");
return;
}Parameter
Nama operasi: image/bodies
Parameter dalam permintaan
Parameter | Tipe | Dibutuhkan | Deskripsi | Contoh |
sen | int | Tidak | Sensitivitas hasil deteksi. Semakin tinggi sensitivitas, semakin banyak tubuh manusia yang terdeteksi. Nilai valid: 0 hingga 100. Nilai default: 60. | 50 |
Parameter dalam tanggapan
Untuk informasi lebih lanjut, lihat DetectImageBodies - Deteksi tubuh manusia dalam gambar.
API Terkait
Jika bisnis Anda memerlukan penyesuaian tingkat tinggi, Anda dapat langsung memanggil API RESTful. Untuk memanggil API secara langsung, sertakan perhitungan tanda tangan dalam kode Anda. Untuk informasi lebih lanjut tentang cara menghitung Header Authorization, lihat (Direkomendasikan) Sertakan tanda tangan V4.
Proses gambar dengan menambahkan parameter x-oss-process ke operasi GetObject. Untuk informasi lebih lanjut, lihat GetObject.
Contoh 1
Permintaan sampel
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: SignatureValueTanggapan sampel
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
}
}
]
}Contoh 2
Permintaan sampel
Dalam contoh ini, nilai parameter sen adalah 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: SignatureValueTanggapan sampel
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
}
}
]
}Penagihan
Selama deteksi tubuh manusia, item penagihan berikut dihasilkan di kedua sisi OSS dan IMM karena layanan IMM dipanggil:
Sisi OSS: Untuk harga rinci, lihat Harga OSS
API
Item penagihan
Deskripsi
GetObject
Permintaan GET
Anda dikenakan biaya permintaan berdasarkan jumlah permintaan sukses.
Lalu lintas keluar melalui Internet
Jika Anda memanggil operasi GetObject menggunakan titik akhir publik, seperti oss-cn-hangzhou.aliyuncs.com, atau titik akhir percepatan, seperti oss-accelerate.aliyuncs.com, Anda dikenakan biaya lalu lintas keluar melalui Internet berdasarkan ukuran data.
Kapasitas Pengambilan Data Akses Jarang
Jika objek IA diambil, Anda dikenakan biaya pengambilan data IA berdasarkan ukuran data IA yang diambil.
Kapasitas Pengambilan Data Arsip Langsung
Jika objek Arsip dalam bucket dengan akses real-time diaktifkan diambil, Anda dikenakan biaya pengambilan data Arsip berdasarkan ukuran objek Arsip yang diambil.
Akselerasi transfer
Jika Anda mengaktifkan akselerasi transfer dan menggunakan titik akhir percepatan untuk mengakses bucket Anda, Anda dikenakan biaya akselerasi transfer berdasarkan ukuran data.
HeadObject
Permintaan GET
Anda dikenakan biaya permintaan berdasarkan jumlah permintaan sukses.
Sisi IMM: Untuk harga rinci, lihat Item penagihan IMM
PentingMulai pukul 11:00 UTC+8 pada 28 Juli 2025, layanan deteksi tubuh manusia IMM akan ditingkatkan dari model gratis ke model berbayar. Item penagihan spesifik adalah ImageDetect. Untuk informasi lebih lanjut, lihat Pengumuman penyesuaian penagihan IMM.
API
Item penagihan
Deskripsi
DetectImageBodies
ImageDetect
Anda dikenakan biaya permintaan berdasarkan jumlah permintaan sukses.
Catatan Penggunaan
Deteksi tubuh manusia hanya mendukung pemrosesan sinkron dengan memanggil operasi x-oss-process.
Akses anonim tidak diizinkan.