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.

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.
CatatanLatar 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
Buat bucket di OSS dan unggah file yang ingin diproses ke bucket tersebut.
Buat dan ikat proyek IMM. Anda dapat mengikat proyek di Konsol OSS atau dengan memanggil Operasi API. Proyek IMM harus berada di wilayah yang sama dengan bucket.
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
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: SignatureValueContoh 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
PentingMulai 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.