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 mypersongroupid
dan 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.