All Products
Search
Document Center

Object Storage Service:Deteksi wajah

Last Updated:Jun 05, 2026

Fitur deteksi wajah yang didukung oleh Intelligent Media Management (IMM) mendeteksi wajah dalam gambar dan mengekstraksi atribut seperti usia, jenis kelamin, serta ekspresi wajah. Fitur ini mendukung deteksi beberapa wajah dalam satu gambar.

Ikhtisar

Deteksi wajah menggunakan AI gambar untuk mengidentifikasi wajah dalam sebuah gambar dan mengembalikan atribut untuk setiap wajah yang terdeteksi.

image

Catatan

Informasi wajah mencakup ID wajah, usia, jenis kelamin, suasana hati, daya tarik, kualitas wajah, dan atribut wajah (posisi, orientasi kepala, kacamata, jenggot, serta masker).

Kasus penggunaan

  • Pengenalan wajah: Deteksi dan bandingkan wajah terhadap database untuk autentikasi dan kontrol akses.

  • Autentikasi wajah: Verifikasi identitas pengguna untuk skenario seperti membuka kunci ponsel dan verifikasi pembayaran.

  • Analisis ekspresi wajah: Analisis ekspresi wajah untuk analisis sentimen, interaksi manusia-komputer, dan karakter virtual.

    Catatan
    • Latar belakang yang ramai: Latar belakang kompleks dapat mengganggu deteksi fitur wajah.

    • Oklusi wajah: Wajah yang saling tumpang tindih dalam gambar dapat mengurangi akurasi deteksi.

Cara menggunakan

Prasyarat

Deteksi wajah

Contoh berikut menunjukkan cara mendeteksi wajah menggunakan SDK OSS. Untuk bahasa lain, sesuaikan parameter yang sesuai.

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 Demo1 {
    public static void main(String[] args) throws ClientException, ClientException {
        // Tentukan endpoint wilayah tempat bucket berada.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Tentukan ID wilayah Alibaba Cloud tempat bucket berada. Contoh: cn-hangzhou.
        String region = "cn-hangzhou";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, 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 tidak disimpan di direktori root bucket, Anda harus menentukan path 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 menggunakan deteksi wajah.
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
            getObjectRequest.setProcess("image/faces");

            // Gunakan metode getObject dan teruskan instruksi pemrosesan melalui parameter process.
            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 imageFaces = baos.toString("UTF-8");
            System.out.println("Image Faces:");
            System.out.println(imageFaces);
        } 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 contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan endpoint wilayah tempat bucket berada.
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, masukkan nama gambar. Jika tidak, tentukan path lengkapnya.
key = 'example.jpg'

# Buat instruksi pemrosesan untuk menggunakan deteksi wajah.
process = 'image/faces'

try:
    # Gunakan metode get_object dan teruskan instruksi pemrosesan melalui parameter process.
    result = bucket.get_object(key, process=process)

    # Baca dan tampilkan hasil kueri.
    image_faces = result.read().decode('utf-8')
    print("Image Faces:")
    print(image_faces)
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 contoh, 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 wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. Sesuaikan dengan endpoint aktual 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 tidak disimpan di direktori root bucket, Anda harus menentukan path lengkap gambar. Contoh: exampledir/example.jpg.
	// Gunakan metode oss.Process untuk membuat instruksi pemrosesan guna menggunakan deteksi wajah.
	body, err := bucket.GetObject("example.jpg", oss.Process("image/faces"))
	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 contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
    $provider = new EnvironmentVariableCredentialsProvider(); 
    // Tentukan endpoint 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 tidak disimpan di direktori root bucket, Anda harus menentukan path 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 menggunakan deteksi wajah.
  $options[$ossClient::OSS_PROCESS] = "image/faces";
  $result = $ossClient->getObject($bucket,$key,$options);
  var_dump($result);
} catch (OssException $e) {
  printf($e->getMessage() . "\n");
  return;
}

Parameter

Aksi: image/faces

Catatan

Untuk rincian bidang tanggapan, lihat referensi API DetectImageFaces.

Operasi API terkait

Untuk memanggil RESTful API secara langsung, sertakan perhitungan signature dalam kode Anda. Gunakan metode (Direkomendasikan) Sertakan signature V4 untuk header Authorization.

Proses gambar dengan menambahkan parameter x-oss-process ke operasi GetObject. GetObject.

Contoh permintaan

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

Contoh respons sukses

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: 161
Connection: keep-alive
x-oss-request-id: 628E2481184E20F26C000009
x-oss-transfer-acc-type: acc-none
x-oss-data-location: oss-cn-hangzhou-a
ETag: "D0F162350DA037F4DC2A142B2E116BD0"
Last-Modified: Wed, 25 May 2022 12:20:34 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 2040549661341440100
x-oss-storage-class: Standard
x-oss-server-time: 12437

{
    "RequestId": "5F2389FE-A5E3-076F-B071-43A33DB0D716",
    "Figures": [{
        "Beard": "none",
        "MaskConfidence": 0.7509999871253967,
        "Gender": "male",
        "Boundary": {
            "Left": 280,
            "Top": 36,
            "Height": 87,
            "Width": 70
        },
        "BeardConfidence": 0.9980000257492065,
        "FigureId": "d39651db-9dc4-469f-8834-d2fcf30e179e",
        "Mouth": "open",
        "Emotion": "none",
        "Age": 12,
        "MouthConfidence": 0.5669999718666077,
        "FigureType": "face",
        "GenderConfidence": 0.9509999752044678,
        "HeadPose": {
            "Pitch": -12.309000015258789,
            "Roll": -11.362000465393066,
            "Yaw": 3.443000078201294
        },
        "Mask": "none",
        "EmotionConfidence": 0.9950000047683716,
        "HatConfidence": 0.9879999756813049,
        "GlassesConfidence": 1,
        "Sharpness": 0.8870000243186951,
        "FigureClusterId": "figure-cluster-id-unavailable",
        "FaceQuality": 0.8289999961853027,
        "Attractive": 0.12099999934434891,
        "AgeSD": 5,
        "Glasses": "none",
        "FigureConfidence": 0.9990000128746033,
        "Hat": "hat"
    }
    ]
}

Penagihan

Deteksi wajah dikenai biaya dari OSS dan IMM:

  • OSS: Harga OSS

    API

    Item yang dapat ditagih

    Deskripsi

    GetObject

    Permintaan GET

    Anda dikenai biaya permintaan berdasarkan jumlah permintaan yang berhasil.

    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 akan dikenai biaya lalu lintas keluar melalui Internet berdasarkan ukuran data.

    Pengambilan objek IA

    Jika objek IA diambil, Anda akan dikenai biaya pengambilan data IA berdasarkan ukuran data IA yang diambil.

    Akselerasi transfer

    Jika Anda mengaktifkan akselerasi transfer dan menggunakan titik akhir percepatan untuk mengakses bucket Anda, Anda akan dikenai biaya akselerasi transfer berdasarkan ukuran data.

    HeadObject

    Permintaan GET

    Anda dikenai biaya permintaan berdasarkan jumlah permintaan yang berhasil.

  • IMM: Item yang dapat ditagih IMM

    Penting

    Mulai pukul 11.00 pada 28 Juli 2025 (UTC+8), harga layanan deteksi wajah IMM tetap tidak berubah, tetapi nama item yang dapat ditagih diubah dari ImageFace menjadi ImageDetect. Untuk informasi selengkapnya, lihat Pemberitahuan penyesuaian penagihan IMM.

    API

    Item yang dapat ditagih

    Deskripsi

    DetectImageFaces

    ImageDetect

    Anda dikenai biaya permintaan berdasarkan jumlah permintaan yang berhasil.

Batasan

  • Hanya pemrosesan sinkron (x-oss-process) yang didukung.

  • Akses anonim akan ditolak.