Compleface Net SDK membuat pengenalan wajah ke dalam aplikasi Anda menjadi lebih mudah.
Sebelum menggunakan SDK kami, pastikan Anda telah menginstal compreface dan .net pada mesin Anda.
| Compreface .NET SDK Versi | Compreface 1.1.0 |
|---|---|
| 1.0.0 | |
| 1.0.1 | |
| 1.0.2 |
Penjelasan:
Untuk menggunakan SDK Instal Nuget Package
Install-Package CompreFace.NET.Sdk
Semua contoh di bawah ini dapat Anda temukan di folder Contoh Repositori di dalam. Anda juga dapat meninjau aplikasi contoh pengakuan. Ini adalah contoh sederhana penggunaan komplfasi.
Untuk mulai menggunakan compreface .net SDK Anda perlu mengimpor objek CompreFace dari ketergantungan 'compreface-sdk'.
Maka Anda perlu membuat objek CompreFaceClient dan menginisialisasi dengan DOMAIN dan PORT . Secara default, jika Anda menjalankan compreface di mesin lokal Anda, DOMAIN akan http://localhost , dan PORT dalam kasus ini adalah 8000 . Anda dapat lulus objek options opsional saat metode panggilan untuk mengatur parameter default, lihat referensi untuk informasi lebih lanjut.
Anda harus menggunakan layanan layanan RecognitionService dalam objek CompreFaceClient untuk mengenali wajah.
Namun, sebelum mengenali Anda perlu pertama -tama menambahkan subjek ke dalam koleksi wajah. Untuk melakukan ini, dapatkan objek Subject dengan bantuan RecognitionService . Subject termasuk dalam kelas RecognitionService .
var client = new CompreFaceClient(
domain: "http://localhost",
port: "8000");
var recognitionService = client.GetCompreFaceService<RecognitionService>(recognition api key);
var subject = recognitionService.Subject;
var subjectRequest = new AddSubjectRequest()
{
Subject = "Subject name"
};
var subjectResponse = await subject.AddAsync(subjectRequest);
Berikut adalah contoh yang menunjukkan cara menambahkan gambar ke koleksi wajah Anda dari sistem file Anda:
var faceCollection = recognitionService.FaceCollection;
var request = new AddSubjectExampleRequestByFilePath()
{
DetProbThreShold = 0.81m,
Subject = "Subject name",
FilePath = "Full file path"
};
var response = await faceCollection.AddAsync(request);
Cuplikan kode ini menunjukkan cara mengenali wajah yang tidak diketahui. Mengenali wajah dari gambar yang diberikan
var recognizeRequest = new RecognizeFaceFromImageRequestByFilePath()
{
FilePath = "Full file path",
DetProbThreshold = 0.81m,
FacePlugins = new List<string>()
{
"landmarks",
"gender",
"age",
"detector",
"calculator"
},
Limit = 0,
PredictionCount = 1,
Status = true
};
var recognizeResponse = await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest);
Objek Global Compleface digunakan untuk menginisialisasi koneksi ke compreface dan mengatur nilai default untuk opsi. Nilai default akan digunakan dalam setiap metode layanan jika berlaku.
Konstruktor: CompreFaceClient(domain, port)
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| domain | rangkaian | diperlukan | Domain dengan protokol di mana compreface berada. Misalnya http://localhost |
| pelabuhan | rangkaian | diperlukan | Port Compreface. Misalnya 8000 |
Contoh:
var client = new CompreFaceClient(
domain: "http://localhost",
port: "8000");
client.GetCompreFaceService<RecognitionService>(apiKey)Inits Face Recognition Service Object.
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| apikey | rangkaian | diperlukan | Kunci API Pengenalan wajah dalam format UUID |
Contoh:
var apiKey = "00000000-0000-0000-0000-000000000002";
var recognitionService = client.GetCompreFaceService<RecognitionService>(apiKey);
client.GetCompreFaceService<FaceDetectionService>(apiKey)Init objek layanan deteksi wajah.
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| apikey | rangkaian | diperlukan | Kunci API Deteksi Wajah dalam format UUID |
Contoh:
var apiKey = "00000000-0000-0000-0000-000000000003";
var faceDetectionService = client.GetCompreFaceService<FaceDetectionService>(api_key);
client.GetCompreFaceService<FaceVerificationService>(apiKey)Init Objek layanan verifikasi wajah.
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| apikey | rangkaian | diperlukan | Kunci API verifikasi wajah dalam format UUID |
Contoh:
var apiKey = "00000000-0000-0000-0000-000000000004";
var faceVerificationService = client.GetCompreFaceService<FaceVerificationService>(api_key);
Semua properti opsional terletak di kelas BaseFaceRequest .
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
Kelas BaseFaceRequest diwarisi oleh beberapa kelas DTO yang diserialisasi untuk meminta format.
Berikut adalah deskripsi bagaimana tampilannya di badan permintaan.
| Pilihan | Jenis | Catatan |
|---|---|---|
| Det_prob_threshold | mengambang | Keyakinan minimum yang dibutuhkan bahwa wajah yang diakui sebenarnya adalah wajah. Nilai antara 0,0 dan 1.0 |
| membatasi | bilangan bulat | Jumlah maksimum wajah pada gambar yang akan dikenali. Ini mengenali wajah terbesar terlebih dahulu. Nilai 0 tidak mewakili batas. Nilai default: 0 |
| prediksi_count | bilangan bulat | Jumlah maksimum prediksi subjek per wajah. Ini mengembalikan subjek yang paling mirip. Nilai default: 1 |
| face_plugins | rangkaian | Siput plugin wajah yang dipisahkan koma. Jika kosong, tidak ada informasi tambahan yang dikembalikan. Pelajari lebih lanjut |
| status | Boolean | Jika benar termasuk informasi sistem seperti bidang execution_time dan plugin_version. Nilai default salah |
Contoh pengenalan wajah dengan objek:
var recognizeRequest = new RecognizeFaceFromImageRequestByFilePath()
{
FilePath = "Full file path",
DetProbThreshold = 0.81m,
FacePlugins = new List<string>()
{
"landmarks",
"gender",
"age",
"detector",
"calculator"
},
Limit = 0,
PredictionCount = 1,
Status = true
};
var recognizeResponse = await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest);
Layanan pengenalan wajah digunakan untuk identifikasi wajah. Ini berarti bahwa Anda perlu mengunggah wajah yang diketahui untuk mengoleksi dan kemudian mengenali wajah -wajah yang tidak diketahui di antara mereka. Saat Anda mengunggah wajah yang tidak diketahui, layanan ini mengembalikan wajah yang paling mirip dengan itu. Juga, dukungan layanan pengenalan wajah memverifikasi titik akhir untuk memeriksa apakah orang ini dari pengumpulan wajah adalah yang benar. Untuk informasi lebih lanjut, lihat halaman Compreface.
Metode:
Mengenali semua wajah dari gambar. Argumen pertama adalah lokasi gambar, bisa berupa URL, jalur lokal atau byte.
await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest)
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| Mengenali Desquest | MengenalifacefromimageRequestByFilePath | diperlukan |
RecognizeFaceFromImageRequestByFilePath Ini adalah objek transfer data yang diserialisasi ke JSON.
public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest
{
public string FilePath { get; set; }
}
BaseRecognizeFaceFromImageRequest kelas:
public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest
{
public int? PredictionCount { get; set; }
}
Kelas BaseFaceRequest berisi properti opsional :
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; } = new List<string>()
public bool Status { get; set; }
}
| Pilihan | Jenis | Catatan |
|---|---|---|
| Det_prob_threshold | mengambang | Keyakinan minimum yang dibutuhkan bahwa wajah yang diakui sebenarnya adalah wajah. Nilai antara 0,0 dan 1.0 |
| membatasi | bilangan bulat | Jumlah maksimum wajah pada gambar yang akan dikenali. Ini mengenali wajah terbesar terlebih dahulu. Nilai 0 tidak mewakili batas. Nilai default: 0 |
| prediksi_count | bilangan bulat | Jumlah maksimum prediksi subjek per wajah. Ini mengembalikan subjek yang paling mirip. Nilai default: 1 |
| face_plugins | rangkaian | Siput plugin wajah yang dipisahkan koma. Jika kosong, tidak ada informasi tambahan yang dikembalikan. Pelajari lebih lanjut |
| status | Boolean | Jika benar termasuk informasi sistem seperti bidang execution_time dan plugin_version. Nilai default salah |
Respons dari Comreface API:
{
"result" : [ {
"age" : {
"probability": 0.9308982491493225,
"high": 32,
"low": 25
},
"gender" : {
"probability": 0.9898611307144165,
"value": "female"
},
"mask" : {
"probability": 0.9999470710754395,
"value": "without_mask"
},
"embedding" : [ 9.424854069948196E-4, "...", -0.011415496468544006 ],
"box" : {
"probability" : 1.0,
"x_max" : 1420,
"y_max" : 1368,
"x_min" : 548,
"y_min" : 295
},
"landmarks" : [ [ 814, 713 ], [ 1104, 829 ], [ 832, 937 ], [ 704, 1030 ], [ 1017, 1133 ] ],
"subjects" : [ {
"similarity" : 0.97858,
"subject" : "subject1"
} ],
"execution_time" : {
"age" : 28.0,
"gender" : 26.0,
"detector" : 117.0,
"calculator" : 45.0,
"mask": 36.0
}
} ],
"plugins_versions" : {
"age" : "agegender.AgeDetector",
"gender" : "agegender.GenderDetector",
"detector" : "facenet.FaceDetector",
"calculator" : "facenet.Calculator",
"mask": "facemask.MaskDetector"
}
}
| Elemen | Jenis | Keterangan |
|---|---|---|
| usia | obyek | Rentang usia yang terdeteksi. Kembali hanya jika plugin usia diaktifkan |
| jenis kelamin | obyek | Jenis kelamin yang terdeteksi. Kembali hanya jika plugin gender diaktifkan |
| masker | obyek | topeng terdeteksi. Kembali hanya jika plugin Face Mask diaktifkan. |
| menanamkan | array | wajah embeddings. Pengembalian hanya jika plugin kalkulator diaktifkan |
| kotak | obyek | Daftar parameter kotak pembatas untuk wajah ini |
| kemungkinan | mengambang | kemungkinan wajah yang ditemukan sebenarnya adalah wajah |
| x_max, y_max, x_min, y_min | bilangan bulat | koordinat bingkai yang berisi wajah |
| landmark | array | Daftar koordinat bingkai yang berisi landmark wajah. |
| subjek | daftar | Daftar subjek serupa dengan ukuran <prediction_count> pesanan berdasarkan kesamaan |
| kesamaan | mengambang | kesamaan yang pada gambar itu diprediksi orang |
| subjek | rangkaian | Nama subjek dalam koleksi wajah |
| waktu pelaksanaan | obyek | waktu eksekusi semua plugin |
| plugins_versions | obyek | Berisi informasi tentang versi plugin |
Respons JSON ini RecognizeFaceFromImageResponse ke Object Transfer Data (DTO).
public class RecognizeFaceFromImageResponse
{
public IList<Result> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
public class Result : BaseResult
{
public IList<SimilarSubject> Subjects { get; set; }
}
Kelas BaseResult :
public class BaseResult
{
public Age Age { get; set; }
public Gender Gender { get; set; }
public Mask Mask { get; set; }
public Box Box { get; set; }
public IList<List<int>> Landmarks { get; set; }
public ExecutionTime ExecutionTime { get; set; }
public IList<decimal> Embedding { get; set; }
}
await recognitionService.RecognizeFaceFromImage.VerifyAsync(request);
Membandingkan kesamaan gambar yang diberikan dengan gambar dari koleksi wajah Anda.
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | Verifikasi FacesFromImageRequest | diperlukan |
VerifyFacesFromImageRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class VerifyFacesFromImageRequest : BaseVerifyFacesFromImageRequest
{
public string FilePath { get; set; }
}
BaseVerifyFacesFromImageRequest Kelas:
public class BaseVerifyFacesFromImageRequest : BaseFaceRequest
{
public Guid ImageId { get; set; }
}
Kelas BaseFaceRequest berisi properti opsional :
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Pilihan | Jenis | Catatan |
|---|---|---|
| Det_prob_threshold | mengambang | Keyakinan minimum yang dibutuhkan bahwa wajah yang diakui sebenarnya adalah wajah. Nilai antara 0,0 dan 1.0 |
| membatasi | bilangan bulat | Jumlah maksimum wajah pada gambar yang akan dikenali. Ini mengenali wajah terbesar terlebih dahulu. Nilai 0 tidak mewakili batas. Nilai default: 0 |
| prediksi_count | bilangan bulat | Jumlah maksimum prediksi subjek per wajah. Ini mengembalikan subjek yang paling mirip. Nilai default: 1 |
| face_plugins | rangkaian | Siput plugin wajah yang dipisahkan koma. Jika kosong, tidak ada informasi tambahan yang dikembalikan. Pelajari lebih lanjut |
| status | Boolean | Jika benar termasuk informasi sistem seperti bidang execution_time dan plugin_version. Nilai default salah |
Tanggapan:
{
"result" : [ {
"age" : {
"probability" : 0.9308982491493225 ,
"high" : 32 ,
"low" : 25
},
"gender" : {
"probability" : 0.9898611307144165 ,
"value" : " female "
},
"mask" : {
"probability" : 0.9999470710754395 ,
"value" : " without_mask "
},
"embedding" : [ 9.424854069948196E-4 , " ... " , -0.011415496468544006 ],
"box" : {
"probability" : 1.0 ,
"x_max" : 1420 ,
"y_max" : 1368 ,
"x_min" : 548 ,
"y_min" : 295
},
"landmarks" : [ [ 814 , 713 ], [ 1104 , 829 ], [ 832 , 937 ], [ 704 , 1030 ], [ 1017 , 1133 ] ],
"subjects" : [ {
"similarity" : 0.97858 ,
"subject" : " subject1 "
} ],
"execution_time" : {
"age" : 28.0 ,
"gender" : 26.0 ,
"detector" : 117.0 ,
"calculator" : 45.0 ,
"mask" : 36.0
}
} ],
"plugins_versions" : {
"age" : " agegender.AgeDetector " ,
"gender" : " agegender.GenderDetector " ,
"detector" : " facenet.FaceDetector " ,
"calculator" : " facenet.Calculator " ,
"mask" : " facemask.MaskDetector "
}
}| Elemen | Jenis | Keterangan |
|---|---|---|
| usia | obyek | Rentang usia yang terdeteksi. Kembali hanya jika plugin usia diaktifkan |
| jenis kelamin | obyek | Jenis kelamin yang terdeteksi. Kembali hanya jika plugin gender diaktifkan |
| masker | obyek | topeng terdeteksi. Kembali hanya jika plugin Face Mask diaktifkan. |
| menanamkan | array | wajah embeddings. Pengembalian hanya jika plugin kalkulator diaktifkan |
| kotak | obyek | Daftar parameter kotak pembatas untuk wajah ini |
| kemungkinan | mengambang | kemungkinan wajah yang ditemukan sebenarnya adalah wajah |
| x_max, y_max, x_min, y_min | bilangan bulat | koordinat bingkai yang berisi wajah |
| landmark | array | Daftar koordinat bingkai yang berisi landmark wajah. Kembali hanya jika plugin landmark diaktifkan |
| kesamaan | mengambang | kesamaan yang pada gambar itu diprediksi orang |
| waktu pelaksanaan | obyek | waktu eksekusi semua plugin |
| plugins_versions | obyek | Berisi informasi tentang versi plugin |
Respons JSON ini diuraikan untuk VerifyFacesFromImageResponse Objek Transfer Data (DTO).
public class VerifyFacesFromImageResponse
{
public IList<Result> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
public class Result : BaseResult
{
public string Subject { get; set; }
public decimal Similarity { get; set; }
}
Kelas BaseResult :
public class BaseResult
{
public Age Age { get; set; }
public Gender Gender { get; set; }
public Mask Mask { get; set; }
public Box Box { get; set; }
public IList<List<int>> Landmarks { get; set; }
public ExecutionTime ExecutionTime { get; set; }
public IList<decimal> Embedding { get; set; }
}
Kelas ExecutionTime :
public class ExecutionTime
{
public decimal Age { get; set; }
public decimal Gender { get; set; }
public decimal Detector { get; set; }
public decimal Calculator { get; set; }
public decimal Mask { get; set; }
}
recognitionService.FaceCollection
Returns Face Collection Object
Koleksi wajah dapat digunakan untuk mengelola wajah yang dikenal, misalnya menambah, daftar, atau menghapusnya.
Pengenalan wajah dilakukan untuk wajah yang diketahui disimpan dalam koleksi wajah, jadi sebelum menggunakan metode recognize Anda perlu menyimpan setidaknya satu wajah ke dalam koleksi wajah.
Informasi lebih lanjut tentang pengumpulan wajah dan pengelolaan contoh di sini
Metode:
Ini menciptakan contoh subjek dengan menyimpan gambar. Anda dapat menambahkan gambar sebanyak yang Anda inginkan untuk melatih sistem. Gambar harus hanya berisi satu wajah.
await recognitionService.FaceCollection.AddAsync(request);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | AddSubjectExamplequestByFilePath | diperlukan |
AddSubjectExampleRequestByFilePath Ini adalah objek transfer data yang diserialisasi ke JSON.
public class AddSubjectExampleRequestByFilePath : BaseExampleRequest
{
public string FilePath { get; set; }
}
Kelas BaseExampleRequest :
namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs
{
public class BaseExampleRequest
{
public string Subject { get; set; }
public decimal? DetProbThreShold { get; set; }
}
}
| Pilihan | Jenis | Catatan |
|---|---|---|
| Det_prob_threshold | mengambang | Keyakinan minimum yang dibutuhkan bahwa wajah yang diakui sebenarnya adalah wajah. Nilai antara 0,0 dan 1.0 |
DetProbThreShold adalah properti opsional.
Tanggapan:
{
"image_id": "6b135f5b-a365-4522-b1f1-4c9ac2dd0728",
"subject": "SubjectName"
}
| Elemen | Jenis | Keterangan |
|---|---|---|
| Image_id | UUID | Uuid dari gambar yang diunggah |
| subjek | rangkaian | Subjek dari gambar yang disimpan |
Respons JSON ini diuraikan ke AddSubjectExampleResponse Data Transfer Object (DTO).
public class AddSubjectExampleResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Untuk mengambil daftar subjek yang disimpan dalam koleksi wajah:
await recognitionService.FaceCollection.ListAsync(request);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | ListAllSubjectExamplesRequest | diperlukan |
ListAllSubjectExamplesRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class ListAllSubjectExamplesRequest
{
public int? Page { get; set; }
public int? Size { get; set; }
public string Subject { get; set; }
}
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| Halaman | int | opsional | Jumlah contoh halaman untuk dikembalikan. Dapat digunakan untuk pagination. Nilai default adalah 0. Sejak 0,6 versi. |
| Ukuran | int | opsional | Wajah di halaman (ukuran halaman). Dapat digunakan untuk pagination. Nilai default adalah 20. Sejak 0,6 versi. |
| Subjek | int | opsional | Contoh subjek apa titik akhir yang harus dikembalikan. Jika kosong, kembalikan contoh untuk semua subjek. Sejak versi 1.0 |
Tanggapan:
{
"faces": [
{
"image_id": <image_id>,
"subject": <subject>
},
...
]
}
| Elemen | Jenis | Keterangan |
|---|---|---|
| Image_id | UUID | Uuid wajah |
| subjek | rangkaian | dari orang tersebut, yang fotonya disimpan untuk kunci API ini |
Respons JSON ini diuraikan ke objek transfer data ListAllSubjectExamplesResponse (DTO).
public class ListAllSubjectExamplesResponse
{
public IList<Face> Faces { get; set; }
public int PageNumber { get; set; }
public int PageSize { get; set; }
public int TotalPages { get; set; }
public int TotalElements { get; set; }
}
Kelas Face :
public class Face
{
public Guid ImageId { get; set; }
public string Subject{ get; set; }
}
Untuk menghapus semua contoh gambar dari:
recognitionService.FaceCollection.DeleteAllAsync(request);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | DeleteallexamplesRequest | diperlukan |
DeleteAllExamplesRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class DeleteMultipleExampleRequest
{
public IList<Guid> ImageIdList { get; set; }
}
Tanggapan:
{
"deleted": <count>
}
| Elemen | Jenis | Keterangan |
|---|---|---|
| dihapus | bilangan bulat | Jumlah wajah yang dihapus |
Respons JSON ini diuraikan untuk menghapus objek transfer data DeleteMultipleExamplesResponse (DTO).
public class DeleteMultipleExamplesResponse
{
public IList<Face> Faces { get; set; }
}
Untuk menghapus gambar dengan ID:
await recognitionService.FaceCollection.DeleteAsync(request);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | DeleteImagebyIdrequest | diperlukan |
DeleteImageByIdRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class DeleteImageByIdRequest
{
public Guid ImageId { get; set; }
}
Tanggapan:
{
"image_id": <image_id>,
"subject": <subject>
}
| Elemen | Jenis | Keterangan |
|---|---|---|
| Image_id | UUID | Uuid dari wajah yang dilepas |
| subjek | rangkaian | dari orang tersebut, yang fotonya disimpan untuk kunci API ini |
Respons JSON ini diuraikan untuk menghapus Objek Transfer Data DeleteImageByIdResponse (DTO).
public class DeleteImageByIdResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Untuk mengunduh gambar dengan ID:
await recognitionService.FaceCollection.DownloadAsync(downloadImageByIdRequest);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | DownloadImageByIdDirectlyRequest | diperlukan |
DownloadImageByIdDirectlyRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class DownloadImageByIdDirectlyRequest
{
public Guid ImageId { get; set; }
public Guid RecognitionApiKey { get; set; }
}
Tubuh respons adalah gambar biner. Byte kosong jika gambar tidak ditemukan.
since 0.6 version
Untuk mengunduh contoh gambar dari subjek dengan ID:
await recognitionService.FaceCollection.DownloadAsync(downloadImageBySubjectIdRequest);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | DownloadImageByIdFromsUbjectrequest | diperlukan |
DownloadImageByIdFromSubjectRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class DownloadImageByIdFromSubjectRequest
{
public Guid ImageId { get; set; }
}
Tubuh respons adalah gambar biner. Byte kosong jika gambar tidak ditemukan.
recognitionService.Subject
Mengembalikan Subjek Objek Subjek Objek memungkinkan bekerja dengan subjek secara langsung (tidak melalui contoh subjek). Informasi lebih lanjut tentang subjek di sini
Metode:
Buat subjek baru dalam koleksi wajah.
await recognitionService.Subject.AddAsync(request);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | AddSubjectrequest | diperlukan |
AddSubjectRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class AddSubjectRequest
{
public string Subject { get; set; }
}
Tanggapan:
{
"subject" : " subject1 "
}| Elemen | Jenis | Keterangan |
|---|---|---|
| subjek | rangkaian | adalah nama subjek |
Respons JSON ini diuraikan ke Objek Transfer Data AddSubjectResponse (DTO).
public class AddSubjectResponse
{
public string Subject { get; set; }
}
Mengembalikan semua subjek yang terkait dengan pengumpulan wajah.
await recognitionService.Subject.ListAsync();
Tanggapan:
{
"subjects" : [
" <subject_name1> " ,
" <subject_name2> "
]
}| Elemen | Jenis | Keterangan |
|---|---|---|
| subjek | array | Daftar Subjek dalam Koleksi Wajah |
Respons JSON ini diuraikan untuk GetAllSubjectResponse Objek Transfer Data (DTO).
public class GetAllSubjectResponse
{
public IList<string> Subjects { get; set; }
}
Ubah nama subjek yang ada. Jika nama subjek baru sudah ada, subjek digabungkan - semua wajah dari nama subjek lama dipindahkan ke subjek dengan nama baru, subjek lama dihapus.
await recognitionService.Subject.RenameAsync(request);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | RenamesUBJectrequest | diperlukan |
RenameSubjectRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Tanggapan:
{
"updated" : " true|false "
}| Elemen | Jenis | Keterangan |
|---|---|---|
| diperbarui | Boolean | gagal atau sukses |
Respons JSON ini diuraikan untuk RenameSubjectResponse Data Transfer Object (DTO).
public class RenameSubjectResponse
{
public bool Updated { get; set; }
}
Hapus subjek yang ada dan semua wajah yang disimpan.
await recognitionService.Subject.DeleteAsync(request);
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | DeleteSubjectrequest | diperlukan |
DeleteSubjectRequest Ini adalah objek transfer data yang diserialisasi ke JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Tanggapan:
{
"subject" : " subject1 "
}| Elemen | Jenis | Keterangan |
|---|---|---|
| subjek | rangkaian | adalah nama subjek |
Respons JSON ini diuraikan untuk DeleteSubjectResponse objek transfer data yang dihapus.
public class DeleteSubjectResponse
{
public string Subject { get; set; }
}
Hapus semua subjek yang ada dan semua wajah yang disimpan.
await recognitionService.Subject.DeleteAllAsync();
Tanggapan:
{
"deleted" : " <count> "
}| Elemen | Jenis | Keterangan |
|---|---|---|
| dihapus | bilangan bulat | Jumlah subjek yang dihapus |
Respons JSON ini diuraikan ke DeleteAllSubjectsResponse Data Transfer Object (DTO).
public class DeleteAllSubjectsResponse
{
public int Deleted { get; set; }
}
Layanan deteksi wajah digunakan untuk mendeteksi wajah pada gambar.
Metode:
await faceDetectionService.DetectAsync(request);
Menemukan semua wajah pada gambar.
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | FacedetectionRequestByFilePath | diperlukan |
FaceDetectionRequestByFilePath Ini adalah objek transfer data yang diserialisasi ke JSON.
public class FaceDetectionRequestByFilePath : BaseFaceRequest
{
public string FilePath { get; set; }
}
Kelas BaseFaceRequest berisi properti opsional :
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Pilihan | Jenis | Catatan |
|---|---|---|
| Det_prob_threshold | mengambang | Keyakinan minimum yang dibutuhkan bahwa wajah yang diakui sebenarnya adalah wajah. Nilai antara 0,0 dan 1.0 |
| membatasi | bilangan bulat | Jumlah maksimum wajah pada gambar yang akan dikenali. Ini mengenali wajah terbesar terlebih dahulu. Nilai 0 tidak mewakili batas. Nilai default: 0 |
| prediksi_count | bilangan bulat | Jumlah maksimum prediksi subjek per wajah. Ini mengembalikan subjek yang paling mirip. Nilai default: 1 |
| face_plugins | rangkaian | Siput plugin wajah yang dipisahkan koma. Jika kosong, tidak ada informasi tambahan yang dikembalikan. Pelajari lebih lanjut |
| status | Boolean | Jika benar termasuk informasi sistem seperti bidang execution_time dan plugin_version. Nilai default salah |
Tanggapan:
{
"result" : [ {
"age" : {
"probability" : 0.9308982491493225 ,
"high" : 32 ,
"low" : 25
},
"gender" : {
"probability" : 0.9898611307144165 ,
"value" : " female "
},
"mask" : {
"probability" : 0.9999470710754395 ,
"value" : " without_mask "
},
"embedding" : [ -0.03027934394776821 , " ... " , -0.05117142200469971 ],
"box" : {
"probability" : 0.9987509250640869 ,
"x_max" : 376 ,
"y_max" : 479 ,
"x_min" : 68 ,
"y_min" : 77
},
"landmarks" : [ [ 156 , 245 ], [ 277 , 253 ], [ 202 , 311 ], [ 148 , 358 ], [ 274 , 365 ] ],
"execution_time" : {
"age" : 30.0 ,
"gender" : 26.0 ,
"detector" : 130.0 ,
"calculator" : 49.0 ,
"mask" : 36.0
}
} ],
"plugins_versions" : {
"age" : " agegender.AgeDetector " ,
"gender" : " agegender.GenderDetector " ,
"detector" : " facenet.FaceDetector " ,
"calculator" : " facenet.Calculator " ,
"mask" : " facemask.MaskDetector "
}
}| Elemen | Jenis | Keterangan |
|---|---|---|
| usia | obyek | Rentang usia yang terdeteksi. Kembali hanya jika plugin usia diaktifkan |
| jenis kelamin | obyek | Jenis kelamin yang terdeteksi. Kembali hanya jika plugin gender diaktifkan |
| masker | obyek | topeng terdeteksi. Kembali hanya jika plugin Face Mask diaktifkan. |
| menanamkan | array | wajah embeddings. Pengembalian hanya jika plugin kalkulator diaktifkan |
| kotak | obyek | Daftar parameter kotak pembatas untuk wajah ini (di ProcessedImage) |
| kemungkinan | mengambang | Probabilitas bahwa wajah yang ditemukan sebenarnya adalah wajah (di ProcessedImage) |
| x_max, y_max, x_min, y_min | bilangan bulat | Koordinat bingkai yang berisi wajah (pada proses proses) |
| landmark | array | Daftar koordinat bingkai yang berisi landmark wajah. Kembali hanya jika plugin landmark diaktifkan |
| waktu pelaksanaan | obyek | waktu eksekusi semua plugin |
| plugins_versions | obyek | Berisi informasi tentang versi plugin |
Respons JSON ini diuraikan ke FaceDetectionResponse Data Transfer Object (DTO).
public class FaceDetectionResponse
{
public IList<BaseResult> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
Kelas BaseResult :
public class BaseResult
{
public Age Age { get; set; }
public Gender Gender { get; set; }
public Mask Mask { get; set; }
public Box Box { get; set; }
public IList<List<int>> Landmarks { get; set; }
public ExecutionTime ExecutionTime { get; set; }
public IList<decimal> Embedding { get; set; }
}
Layanan verifikasi wajah digunakan untuk membandingkan dua gambar. Gambar sumber harus berisi hanya satu wajah yang akan dibandingkan dengan semua wajah pada gambar target.
Metode:
await faceVerificationService.VerifyAsync(request);
Membandingkan dua gambar yang disediakan dalam argumen. Gambar sumber harus hanya berisi satu wajah, itu akan dibandingkan dengan semua wajah dalam gambar target.
| Argumen | Jenis | Diperlukan | Catatan |
|---|---|---|---|
| meminta | FaceverificationRequestByFilePath | diperlukan |
FaceVerificationRequestByFilePath Ini adalah objek transfer data yang diserialisasi ke JSON.
public class FaceVerificationRequestByFilePath : BaseFaceRequest
{
public string SourceImageFilePath { get; set; }
public string TargetImageFilePath { get; set; }
}
Kelas BaseFaceRequest berisi properti opsional :
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Pilihan | Jenis | Catatan |
|---|---|---|
| Det_prob_threshold | mengambang | Keyakinan minimum yang dibutuhkan bahwa wajah yang diakui sebenarnya adalah wajah. Nilai antara 0,0 dan 1.0 |
| membatasi | bilangan bulat | Jumlah maksimum wajah pada gambar yang akan dikenali. Ini mengenali wajah terbesar terlebih dahulu. Nilai 0 tidak mewakili batas. Nilai default: 0 |
| prediksi_count | bilangan bulat | Jumlah maksimum prediksi subjek per wajah. Ini mengembalikan subjek yang paling mirip. Nilai default: 1 |
| face_plugins | rangkaian | Siput plugin wajah yang dipisahkan koma. Jika kosong, tidak ada informasi tambahan yang dikembalikan. Pelajari lebih lanjut |
| status | Boolean | Jika benar termasuk informasi sistem seperti bidang execution_time dan plugin_version. Nilai default salah |
Tanggapan:
{
"result" : [{
"source_image_face" : {
"age" : {
"probability" : 0.9308982491493225 ,
"high" : 32 ,
"low" : 25
},
"gender" : {
"probability" : 0.9898611307144165 ,
"value" : " female "
},
"mask" : {
"probability" : 0.9999470710754395 ,
"value" : " without_mask "
},
"embedding" : [ -0.0010271212086081505 , " ... " , -0.008746841922402382 ],
"box" : {
"probability" : 0.9997453093528748 ,
"x_max" : 205 ,
"y_max" : 167 ,
"x_min" : 48 ,
"y_min" : 0
},
"landmarks" : [ [ 92 , 44 ], [ 130 , 68 ], [ 71 , 76 ], [ 60 , 104 ], [ 95 , 125 ] ],
"execution_time" : {
"age" : 85.0 ,
"gender" : 51.0 ,
"detector" : 67.0 ,
"calculator" : 116.0 ,
"mask" : 36.0
}
},
"face_matches" : [
{
"age" : {
"probability" : 0.9308982491493225 ,
"high" : 32 ,
"low" : 25
},
"gender" : {
"probability" : 0.9898611307144165 ,
"value" : " female "
},
"mask" : {
"probability" : 0.9999470710754395 ,
"value" : " without_mask "
},
"embedding" : [ -0.049007344990968704 , " ... " , -0.01753818802535534 ],
"box" : {
"probability" : 0.99975 ,
"x_max" : 308 ,
"y_max" : 180 ,
"x_min" : 235 ,
"y_min" : 98
},
"landmarks" : [ [ 260 , 129 ], [ 273 , 127 ], [ 258 , 136 ], [ 257 , 150 ], [ 269 , 148 ] ],
"similarity" : 0.97858 ,
"execution_time" : {
"age" : 59.0 ,
"gender" : 30.0 ,
"detector" : 177.0 ,
"calculator" : 70.0 ,
"mask" : 36.0
}
}],
"plugins_versions" : {
"age" : " agegender.AgeDetector " ,
"gender" : " agegender.GenderDetector " ,
"detector" : " facenet.FaceDetector " ,
"calculator" : " facenet.Calculator " ,
"mask" : " facemask.MaskDetector "
}
}]
}| Elemen | Jenis | Keterangan |
|---|---|---|
| source_image_face | obyek | info tambahan tentang wajah sumber wajah |
| face_matches | array | hasil verifikasi wajah |
| usia | obyek | Rentang usia yang terdeteksi. Kembali hanya jika plugin usia diaktifkan |
| jenis kelamin | obyek | Jenis kelamin yang terdeteksi. Kembali hanya jika plugin gender diaktifkan |
| masker | obyek | topeng terdeteksi. Kembali hanya jika plugin Face Mask diaktifkan. |
| menanamkan | array | wajah embeddings. Pengembalian hanya jika plugin kalkulator diaktifkan |
| kotak | obyek | Daftar parameter kotak pembatas untuk wajah ini |
| kemungkinan | mengambang | kemungkinan wajah yang ditemukan sebenarnya adalah wajah |
| x_max, y_max, x_min, y_min | bilangan bulat | koordinat bingkai yang berisi wajah |
| landmark | array | Daftar koordinat bingkai yang berisi landmark wajah. Kembali hanya jika plugin landmark diaktifkan |
| kesamaan | mengambang | Kesamaan antara wajah ini dan wajah pada gambar sumber |
| waktu pelaksanaan | obyek | waktu eksekusi semua plugin |
| plugins_versions | obyek | Berisi informasi tentang versi plugin |
Respons JSON ini diuraikan ke FaceVerificationResponse Data Transfer Object (DTO).
public class FaceVerificationResponse
{
public IList<Result> Result { get; set; }
}
public class Result
{
public SourceImageFace SourceImageFace { get; set; }
public IList<FaceMatches> FaceMatches { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
public class SourceImageFace : BaseResult
{ }
public class FaceMatches : BaseResult
{
public decimal Similarity { get; set; }
}
Kelas BaseResult :
public class BaseResult
{
public Age Age { get; set; }
public Gender Gender { get; set; }
public Mask Mask { get; set; }
public Box Box { get; set; }
public IList<List<int>> Landmarks { get; set; }
public ExecutionTime ExecutionTime { get; set; }
public IList<decimal> Embedding { get; set; }
}
Kontribusi inilah yang membuat komunitas open source menjadi tempat yang luar biasa untuk dipelajari, menginspirasi, dan menciptakan. Kontribusi apa pun yang Anda buat sangat dihargai.
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )Setelah membuat permintaan tarik kontribusi pertama Anda, Anda akan menerima permintaan untuk menandatangani perjanjian lisensi kontributor kami dengan mengomentari permintaan tarik Anda dengan pesan khusus.
Harap laporkan bug apa pun di sini.
Jika Anda melaporkan bug, tentukan:
Cara terbaik untuk mengirim umpan balik kepada kami adalah dengan mengajukan masalah di https://github.com/exadel-inc/compreface-net-sdk/issues.
Jika Anda mengusulkan fitur, silakan:
Compreface .NET SDK adalah pengakuan wajah open-source SDK yang dirilis di bawah lisensi Apache 2.0.