全部产品
Search
文档中心

Object Storage Service:Deteksi Wajah

更新时间:Nov 09, 2025

Deteksi wajah yang disediakan oleh Intelligent Media Management (IMM) menggunakan algoritma AI untuk menganalisis konten gambar. Anda dapat mendeteksi beberapa wajah dalam sebuah gambar dan menganalisis informasi seperti usia, jenis kelamin, serta ekspresi wajah. Bahkan jika gambar berisi beberapa wajah, sistem tetap dapat mengidentifikasi dengan akurat dan memberikan informasi terkait setiap wajah.

Deskripsi fitur

Deteksi wajah didasarkan pada teknologi AI gambar. Fitur ini dapat mendeteksi satu atau lebih wajah beserta informasi terkait dalam sebuah gambar. Jika gambar berisi beberapa wajah, sistem akan mendeteksi wajah-wajah tersebut dan menyediakan informasi terkait.

image

Catatan

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

Skenario

  • Pengenalan Wajah: Informasi wajah dideteksi menggunakan teknologi deteksi dan pengenalan wajah. Kemudian, wajah dibandingkan dengan database untuk mencapai otentikasi dan kontrol akses.

  • Otentikasi Wajah: Identitas pengguna diverifikasi menggunakan teknologi deteksi dan otentikasi wajah, seperti membuka kunci ponsel dan verifikasi pembayaran.

  • Analisis Ekspresi Wajah: Ekspresi wajah dianalisis menggunakan teknologi deteksi wajah dan pengenalan ekspresi wajah. Analisis ini berlaku untuk skenario seperti analisis sentimen, interaksi manusia-komputer, dan karakter virtual.

    Catatan
    • Latar Belakang Berantakan: Latar belakang yang kompleks dapat membingungkan dengan karakteristik wajah, yang memengaruhi hasil deteksi.

    • Penutupan Wajah: Jika gambar berisi beberapa wajah, penutupan wajah dapat terjadi, yang dapat menurunkan kinerja algoritma deteksi wajah.

Cara menggunakan

Prasyarat

Deteksi wajah

Kode contoh berikut menunjukkan cara mendeteksi wajah dalam gambar dan menganalisis informasi wajah menggunakan SDK OSS untuk bahasa pemrograman umum. Untuk bahasa pemrograman lainnya, modifikasi parameter berdasarkan kode contoh berikut.

Java

OSS SDK for Java 3.17.4 atau yang lebih baru diperlukan.

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 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 menggunakan deteksi wajah.
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
            getObjectRequest.setProcess("image/faces");

            // Gunakan metode getObject dan lewati instruksi pemrosesan menggunakan 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("Wajah Gambar:");
            System.out.println(imageFaces);
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        } finally {
            // Matikan instance OSSClient.
            ossClient.shutdown();
        }
    }
}

Python

OSS SDK for Python 2.18.4 atau yang lebih baru diperlukan.

# -*- 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. 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 menggunakan deteksi wajah.
process = 'image/faces'

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

    # Baca dan tampilkan hasil kueri.
    image_faces = result.read().decode('utf-8')
    print("Wajah Gambar:")
    print(image_faces)
except oss2.exceptions.OssError as e:
    print("Error:", e)

Go

OSS SDK for Go 3.0.2 atau yang lebih baru diperlukan.

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. 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.
	// Gunakan metode oss.Process untuk membuat instruksi pemrosesan untuk 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

OSS SDK for PHP 2.7.0 atau yang lebih baru diperlukan.

<?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 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 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;
}

Deskripsi parameter

Aksi: image/faces

Catatan

Untuk informasi lebih lanjut, lihat DetectImageFaces.

Operasi API terkait

Jika bisnis Anda memerlukan tingkat penyesuaian yang tinggi, Anda dapat langsung memanggil API RESTful. Untuk memanggil API secara langsung, Anda harus menyertakan perhitungan tanda tangan dalam kode Anda. Untuk informasi lebih lanjut tentang cara menghitung Header Authorization, lihat (Direkomendasikan) Sertakan Tanda Tangan V4.

Anda dapat memproses gambar dengan menambahkan parameter x-oss-process ke operasi GetObject. Untuk informasi lebih lanjut, lihat 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 tanggapan 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

Saat menggunakan deteksi wajah, baik OSS maupun IMM menghasilkan item yang dapat ditagih berikut:

  • OSS: Untuk informasi lebih lanjut tentang harga, lihat Harga OSS

    API

    Item yang dapat ditagih

    Deskripsi

    GetObject

    Permintaan GET

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

    Pengambilan objek IA

    Jika objek IA diambil, Anda dikenakan 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 dikenakan biaya akselerasi transfer berdasarkan ukuran data.

    HeadObject

    Permintaan GET

    Anda dikenakan biaya permintaan berdasarkan jumlah permintaan yang berhasil.

  • IMM: Untuk informasi lebih lanjut tentang harga, lihat 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 lebih lanjut, lihat Pemberitahuan Penyesuaian Penagihan IMM.

    API

    Item yang dapat ditagih

    Deskripsi

    DetectImageFaces

    ImageDetect

    Anda dikenakan biaya permintaan berdasarkan jumlah permintaan yang berhasil.

Catatan penggunaan

  • Deteksi wajah hanya mendukung pemrosesan sinkron (x-oss-process).

  • Akses anonim akan ditolak.