Bagikan melalui


Tentukan model pendeteksi wajah

Panduan ini menunjukkan kepada Anda cara menentukan model deteksi wajah untuk layanan Azure AI Face.

Layanan Face menggunakan model pembelajaran mesin untuk melakukan operasi pada wajah manusia dalam gambar. Kami terus meningkatkan keakuratan model berdasarkan umpan balik pelanggan dan kemajuan dalam penelitian, dan kami memberikan peningkatan ini sebagai pembaruan model. Pengembang dapat menentukan versi model deteksi wajah mana yang ingin mereka gunakan; mereka dapat memilih model yang paling sesuai dengan kasus penggunaan mereka.

Baca terus untuk mempelajari cara menentukan model deteksi wajah dalam operasi wajah tertentu. Layanan Wajah menggunakan deteksi wajah setiap kali mengonversi gambar wajah menjadi beberapa bentuk data lainnya.

Jika Anda tidak yakin apakah Anda harus menggunakan model terbaru, lewati ke bagianMengevaluasi model yang berbeda untuk mengevaluasi model baru dan membandingkan hasil menggunakan himpunan data Anda saat ini.

Prasyarat

Anda harus terbiasa dengan konsep pendeteksi wajah AI. Jika tidak, lihat panduan konseptual pendeteksi wajah atau panduan cara:

Evaluasi model yang berbeda

Berbagai model pendeteksi wajah dioptimalkan untuk tugas yang berbeda. Lihat tabel berikut ini untuk ringkasan perbedaan.

Model Deskripsi Catatan performa Landmark
detection_01 Pilihan default untuk semua operasi pendeteksi wajah. Tidak dioptimalkan untuk wajah kecil, tampilan samping, atau buram. Mengembalikan landmark wajah jika ditentukan dalam panggilan deteksi.
detection_02 Dirilis pada Mei 2019 dan tersedia secara opsional di semua operasi pendeteksi wajah. Peningkatan akurasi pada wajah kecil, tampilan samping, dan buram. Tidak mengembalikan landmark wajah.
detection_03 Dirilis pada Februari 2021 dan tersedia secara opsional di semua operasi pendeteksi wajah. Akurasi yang lebih ditingkatkan, termasuk pada wajah yang lebih kecil (64x64 piksel) dan orientasi wajah yang diputar. Mengembalikan landmark wajah jika ditentukan dalam panggilan deteksi.

Atribut adalah sekumpulan fitur yang secara opsional dapat dideteksi jika ditentukan dalam panggilan deteksi:

Model Aksesoris Kabur Paparan kacamata headPose mask kebisingan occlusion qualityForRecognition
detection_01 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ (untuk recognition_03 atau 04)
detection_02
detection_03 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ (untuk recognition_03 atau 04)

Cara terbaik untuk membandingkan performa model deteksi adalah dengan menggunakannya pada himpunan data sampel. Sebaiknya panggil Detect API pada berbagai gambar, terutama gambar banyak wajah atau wajah yang sulit dilihat, menggunakan setiap model deteksi. Perhatikan jumlah wajah yang dikembalikan setiap model.

Deteksi wajah dengan model tertentu

Deteksi wajah menemukan lokasi kotak batas wajah manusia dan mengidentifikasi landmark visual mereka. Ini mengekstrak fitur wajah dan menyimpannya untuk digunakan nanti dalam operasipengenalan.

Saat menggunakan Detect API, Anda dapat menetapkan versi model dengan detectionModel parameter . Nilai yang tersedia adalah:

  • detection_01
  • detection_02
  • detection_03

URL permintaan untuk Deteksi REST API terlihat seperti ini:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}

Jika Anda menggunakan pustaka klien, Anda bisa menetapkan nilai dengan detectionModel meneruskan untaian yang sesuai. Jika Anda membiarkannya tidak ditetapkan, API menggunakan versi model default (detection_01). Lihat contoh kode berikut untuk pustaka klien .NET.

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: false, returnFaceLandmarks: false);
var faces = response.Value;

Menambahkan tatap muka ke Orang dengan model yang ditentukan

Layanan Face dapat mengekstrak data wajah dari gambar dan mengaitkannya dengan objek Orang melalui API Tambahkan Wajah Orang Grup. Dalam panggilan API ini, Anda dapat menentukan model deteksi dengan cara yang sama seperti di Deteksi.

Lihat contoh kode .NET berikut.

// Create a PersonGroup and add a person with face detected by "detection_03" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}

string? personId = null;
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Name" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    using (var response = await httpClient.PostAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}/persons", content))
    {
        string contentString = await response.Content.ReadAsStringAsync();
        personId = (string?)(JsonConvert.DeserializeObject<Dictionary<string, object>>(contentString)?["personId"]);
    }
}

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["url"] = imageUrl }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PostAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}/persons/{personId}/persistedfaces?detectionModel=detection_03", content);
}

Kode ini membuat PersonGroup dengan ID mypersongroupiddan menambahkan seseorang ke dalamnya. Kemudian menambahkan Wajah ke Orang ini menggunakan detection_03 model. Jika Anda tidak menentukan parameter detectionModel , API menggunakan model default, detection_01.

Catatan

Anda tidak perlu menggunakan model deteksi yang sama untuk semua wajah dalam objek Orang , dan Anda tidak perlu menggunakan model deteksi yang sama saat mendeteksi wajah baru untuk dibandingkan dengan objek Orang (misalnya di API Identifikasi Dari Grup Orang).

Menambahkan wajah ke FaceList dengan model tertentu

Anda juga dapat menentukan model deteksi saat menambahkan wajah ke objek FaceList yang sudah ada. Lihat contoh kode .NET berikut.

using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["url"] = imageUrl }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PostAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}/persistedfaces?detectionModel=detection_03", content);
}

Kode ini membuat FaceList yang disebut My face collection dan menambahkan Face ke dalamnya dengan detection_03 model. Jika Anda tidak menentukan parameter detectionModel , API menggunakan model default, detection_01.

Catatan

Anda tidak perlu menggunakan model deteksi yang sama untuk semua wajah dalam objekFaceList, dan Anda tidak perlu menggunakan model deteksi yang sama saat mendeteksi wajah baru untuk dibandingkan dengan objekFaceList.

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara menentukan model deteksi yang akan digunakan dengan Face API yang berbeda. Selanjutnya, ikuti mulai cepat untuk mulai menggunakan deteksi wajah dan analisis.