Compreface Net SDK erleichtert die Gesichtserkennung in Ihre Anwendung noch einfacher.
Stellen Sie vor der Verwendung unseres SDK sicher, dass Sie Compreface und .NET auf Ihrem Computer installiert haben.
| COMPREFACE .NET SDK -Version | Kompreface 1.1.0 |
|---|---|
| 1.0.0 | |
| 1.0.1 | |
| 1.0.2 |
Erläuterung:
Um das SDK -NUGET -Paket zu verwenden
Install-Package CompreFace.NET.Sdk
Alle nachstehenden Beispiele finden Sie im Repository im Ordner Beispiele. Sie können auch die Antragsanwendung für die Erkennung überprüfen. Es ist ein einfaches Beispiel für eine Kompreface -Verwendung.
Um das COMPREFACE .NET SDK zu verwenden, müssen Sie CompreFace Objekt aus der Abhängigkeit von 'compreace-sdk' importieren.
Anschließend müssen Sie ein CompreFaceClient -Objekt erstellen und es mit DOMAIN und PORT initialisieren. Wenn Sie das Kompreface auf Ihrem lokalen Computer ausführen, ist die DOMAIN http://localhost und PORT in diesem Fall 8000 . Sie können das optionale options übergeben, wenn die Aufrufmethode auf die Festlegung von Standardparametern festgelegt wird. Weitere Informationen finden Sie unter der Referenz.
Sie sollten den RecognitionService -Service im CompreFaceClient -Objekt verwenden, um Gesichter zu erkennen.
Bevor Sie jedoch erkennen, müssen Sie zunächst das Face -Sammlung fügen. Holen Sie sich dazu das Subject mit Hilfe des RecognitionService . Subject ist in der RecognitionService -Klasse enthalten.
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);
Hier ist ein Beispiel, das zeigt, wie Sie Ihrer Face -Sammlung aus Ihrem Dateisystem ein Bild hinzufügen:
var faceCollection = recognitionService.FaceCollection;
var request = new AddSubjectExampleRequestByFilePath()
{
DetProbThreShold = 0.81m,
Subject = "Subject name",
FilePath = "Full file path"
};
var response = await faceCollection.AddAsync(request);
Dieser Code -Snippet zeigt, wie man ein unbekanntes Gesicht erkennt. Gesichter aus einem bestimmten Bild erkennen
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);
Global Compreface -Objekt wird zur Initialisierung der Verbindung zum Kompreface- und Festlegen von Standardwerten für Optionen verwendet. Standardwerte werden gegebenenfalls in jeder Servicemethode verwendet.
Konstruktor: CompreFaceClient(domain, port)
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Domain | Saite | erforderlich | Domäne mit Protokoll, in dem sich das Kompreface befindet. ZB http://localhost |
| Hafen | Saite | erforderlich | Portface -Port. ZB 8000 |
Beispiel:
var client = new CompreFaceClient(
domain: "http://localhost",
port: "8000");
client.GetCompreFaceService<RecognitionService>(apiKey)Inits Face Recognition Service Object.
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Apikey | Saite | erforderlich | Gesichtserkennungs -API -Schlüssel im UUID -Format |
Beispiel:
var apiKey = "00000000-0000-0000-0000-000000000002";
var recognitionService = client.GetCompreFaceService<RecognitionService>(apiKey);
client.GetCompreFaceService<FaceDetectionService>(apiKey)Face Detection Service Objekt.
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Apikey | Saite | erforderlich | Gesichtserkennungs -API -Schlüssel im UUID -Format |
Beispiel:
var apiKey = "00000000-0000-0000-0000-000000000003";
var faceDetectionService = client.GetCompreFaceService<FaceDetectionService>(api_key);
client.GetCompreFaceService<FaceVerificationService>(apiKey)Face Converification Service Objekt.
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Apikey | Saite | erforderlich | Gesichtsprüfungs -API -Schlüssel im UUID -Format |
Beispiel:
var apiKey = "00000000-0000-0000-0000-000000000004";
var faceVerificationService = client.GetCompreFaceService<FaceVerificationService>(api_key);
Alle optionalen Eigenschaften befinden sich in der BaseFaceRequest -Klasse.
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
BaseFaceRequest -Klasse wird durch mehrere DTO -Klassen geerbt, die serialisiert sind, um das Format anzufordern.
Hier finden Sie Beschreibung, wie es in der Anfrage aussieht.
| Option | Typ | Notizen |
|---|---|---|
| dET_PROB_Threshold | schweben | Das Minimum erforderte das Vertrauen, dass ein anerkanntes Gesicht tatsächlich ein Gesicht ist. Der Wert liegt zwischen 0,0 und 1,0 |
| Limit | ganze Zahl | Maximale Anzahl von Gesichtern auf dem Bild zu erkannt. Es erkennt zuerst die größten Gesichter. Der Wert von 0 stellt keine Grenze dar. Standardwert: 0 |
| Vorhersage_Count | ganze Zahl | Maximale Anzahl von Subjektvorhersagen pro Gesicht. Es gibt die ähnlichsten Themen zurück. Standardwert: 1 |
| face_plugins | Saite | Komma getrennte Schnecken von Gesichts-Plugins. Wenn leer, werden keine zusätzlichen Informationen zurückgegeben. Erfahren Sie mehr |
| Status | booleschen | Wenn True Systeminformationen wie Execution_Time und Plugin_version Fields enthält. Standardwert ist falsch |
Beispiel für die Gesichtserkennung mit Objekt:
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);
Der Gesichtserkennungsdienst wird für die Gesichtsexidentierung verwendet. Dies bedeutet, dass Sie zuerst bekannte Gesichter auf die Sammlung hochladen und dann unbekannte Gesichter unter ihnen erkennen müssen. Wenn Sie ein unbekanntes Gesicht hochladen, gibt der Service die ähnlichsten Gesichter zurück. Außerdem unterstützt der Face Recognition Service den Endpunkt überprüflich, um zu überprüfen, ob diese Person aus der Gesichtskollektion die richtige ist. Weitere Informationen finden Sie auf der Seite Compreace.
Methoden:
Erkennt alle Gesichter aus dem Bild. Das erste Argument ist der Bildort, es kann eine URL, ein lokaler Pfad oder eine Bytes sein.
await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest)
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| erkennen | Erkennen SiefaceFromimageRequestByFilePath | erforderlich |
RecognizeFaceFromImageRequestByFilePath Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert wird.
public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest
{
public string FilePath { get; set; }
}
BaseRecognizeFaceFromImageRequest -Klasse:
public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest
{
public int? PredictionCount { get; set; }
}
BaseFaceRequest -Klasse enthält optionale Eigenschaften:
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; }
}
| Option | Typ | Notizen |
|---|---|---|
| dET_PROB_Threshold | schweben | Das Minimum erforderte das Vertrauen, dass ein anerkanntes Gesicht tatsächlich ein Gesicht ist. Der Wert liegt zwischen 0,0 und 1,0 |
| Limit | ganze Zahl | Maximale Anzahl von Gesichtern auf dem Bild zu erkannt. Es erkennt zuerst die größten Gesichter. Der Wert von 0 stellt keine Grenze dar. Standardwert: 0 |
| Vorhersage_Count | ganze Zahl | Maximale Anzahl von Subjektvorhersagen pro Gesicht. Es gibt die ähnlichsten Themen zurück. Standardwert: 1 |
| face_plugins | Saite | Komma getrennte Schnecken von Gesichts-Plugins. Wenn leer, werden keine zusätzlichen Informationen zurückgegeben. Erfahren Sie mehr |
| Status | booleschen | Wenn True Systeminformationen wie Execution_Time und Plugin_version Fields enthält. Standardwert ist falsch |
Antwort von 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"
}
}
| Element | Typ | Beschreibung |
|---|---|---|
| Alter | Objekt | erkannte Altersspanne. Gehen Sie nur dann zurück, wenn das Alters -Plugin aktiviert ist |
| Geschlecht | Objekt | Geschlecht erkannt. Rückgabe nur, wenn das Gender -Plugin aktiviert ist |
| Maske | Objekt | Maske erkannt. Rückgabe nur, wenn das Gesichtsmasken -Plugin aktiviert ist. |
| Einbettung | Array | Gesicht Einbettungen. Rückgabe nur, wenn das Calculator -Plugin aktiviert ist |
| Kasten | Objekt | Liste der Parameter des Begrenzungsfelds für dieses Gesicht |
| Wahrscheinlichkeit | schweben | Wahrscheinlichkeit, dass ein gefundenes Gesicht tatsächlich ein Gesicht ist |
| x_max, y_max, x_min, y_min | ganze Zahl | Koordinaten des Rahmens, der das Gesicht enthält |
| Sehenswürdigkeiten | Array | Liste der Koordinaten des Rahmens, das die Gesichtslandmarks enthält. |
| Themen | Liste | Liste ähnlicher Themen mit Größe von <Prediction_Count> Reihenfolge nach Ähnlichkeit |
| Ähnlichkeit | schweben | Ähnlichkeit, die auf diesem Bild die Person vorhergesagte |
| Thema | Saite | Name des Motivs in der Face Collection |
| Execution_time | Objekt | Ausführungszeit aller Plugins |
| Plugins_versions | Objekt | Enthält Informationen zu Plugin -Versionen |
Diese JSON -Reaktion wird deserialisiert, um FaceFromImagerePonse -Datenübertragungsobjekt (DTO) RecognizeFaceFromImageResponse .
public class RecognizeFaceFromImageResponse
{
public IList<Result> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
public class Result : BaseResult
{
public IList<SimilarSubject> Subjects { get; set; }
}
BaseResult -Klasse:
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);
Vergleicht Ähnlichkeiten des gegebenen Bildes mit dem Bild aus Ihrer Gesichtsersammlung.
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | VerifyFaces FromimageRequest | erforderlich |
VerifyFacesFromImageRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert ist.
public class VerifyFacesFromImageRequest : BaseVerifyFacesFromImageRequest
{
public string FilePath { get; set; }
}
BaseVerifyFacesFromImageRequest Class:
public class BaseVerifyFacesFromImageRequest : BaseFaceRequest
{
public Guid ImageId { get; set; }
}
BaseFaceRequest -Klasse enthält optionale Eigenschaften:
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Option | Typ | Notizen |
|---|---|---|
| dET_PROB_Threshold | schweben | Das Minimum erforderte das Vertrauen, dass ein anerkanntes Gesicht tatsächlich ein Gesicht ist. Der Wert liegt zwischen 0,0 und 1,0 |
| Limit | ganze Zahl | Maximale Anzahl von Gesichtern auf dem Bild zu erkannt. Es erkennt zuerst die größten Gesichter. Der Wert von 0 stellt keine Grenze dar. Standardwert: 0 |
| Vorhersage_Count | ganze Zahl | Maximale Anzahl von Subjektvorhersagen pro Gesicht. Es gibt die ähnlichsten Themen zurück. Standardwert: 1 |
| face_plugins | Saite | Komma getrennte Schnecken von Gesichts-Plugins. Wenn leer, werden keine zusätzlichen Informationen zurückgegeben. Erfahren Sie mehr |
| Status | booleschen | Wenn True Systeminformationen wie Execution_Time und Plugin_version Fields enthält. Standardwert ist falsch |
Antwort:
{
"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 "
}
}| Element | Typ | Beschreibung |
|---|---|---|
| Alter | Objekt | erkannte Altersspanne. Gehen Sie nur dann zurück, wenn das Alters -Plugin aktiviert ist |
| Geschlecht | Objekt | Geschlecht erkannt. Rückgabe nur, wenn das Gender -Plugin aktiviert ist |
| Maske | Objekt | Maske erkannt. Rückgabe nur, wenn das Gesichtsmasken -Plugin aktiviert ist. |
| Einbettung | Array | Gesicht Einbettungen. Rückgabe nur, wenn das Calculator -Plugin aktiviert ist |
| Kasten | Objekt | Liste der Parameter des Begrenzungsfelds für dieses Gesicht |
| Wahrscheinlichkeit | schweben | Wahrscheinlichkeit, dass ein gefundenes Gesicht tatsächlich ein Gesicht ist |
| x_max, y_max, x_min, y_min | ganze Zahl | Koordinaten des Rahmens, der das Gesicht enthält |
| Sehenswürdigkeiten | Array | Liste der Koordinaten des Rahmens, das die Gesichtslandmarks enthält. Kehren Sie nur dann zurück, wenn das Landmarks -Plugin aktiviert ist |
| Ähnlichkeit | schweben | Ähnlichkeit, die auf diesem Bild die Person vorhergesagte |
| Execution_time | Objekt | Ausführungszeit aller Plugins |
| Plugins_versions | Objekt | Enthält Informationen zu Plugin -Versionen |
Diese JSON -Reaktion wird deserialisiert, um VerifyFacesFromImageResponse -Datenübertragungsobjekt (DTO) überprüft wird.
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; }
}
BaseResult -Klasse:
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; }
}
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
Gibt das Gesichtskollektionsobjekt zurück
Die Gesichtssammlung kann verwendet werden, um bekannte Gesichter zu verwalten, z. B. hinzuzufügen, auflisten oder zu löschen.
Die Gesichtserkennung wird für die gespeicherten bekannten Gesichter in der Face -Sammlung durchgeführt. Bevor Sie die recognize verwenden, müssen Sie mindestens ein Gesicht in die Gesichtskollektion speichern.
Weitere Informationen zu Beispielen für die Gesichtserfassung und das Verwalten von Beispielen hier
Methoden:
Dies schafft ein Beispiel für das Thema, indem Sie Bilder speichern. Sie können so viele Bilder hinzufügen, wie Sie das System trainieren möchten. Bild sollte nur ein Gesicht enthalten.
await recognitionService.FaceCollection.AddAsync(request);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | AddSubjectExamPleRequestByFilePath | erforderlich |
AddSubjectExampleRequestByFilePath Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert wird.
public class AddSubjectExampleRequestByFilePath : BaseExampleRequest
{
public string FilePath { get; set; }
}
BaseExampleRequest -Klasse:
namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs
{
public class BaseExampleRequest
{
public string Subject { get; set; }
public decimal? DetProbThreShold { get; set; }
}
}
| Option | Typ | Notizen |
|---|---|---|
| dET_PROB_Threshold | schweben | Das Minimum erforderte das Vertrauen, dass ein anerkanntes Gesicht tatsächlich ein Gesicht ist. Der Wert liegt zwischen 0,0 und 1,0 |
DetProbThreShold ist eine optionale Eigenschaft.
Antwort:
{
"image_id": "6b135f5b-a365-4522-b1f1-4c9ac2dd0728",
"subject": "SubjectName"
}
| Element | Typ | Beschreibung |
|---|---|---|
| Image_id | Uuid | Uuid des hochgeladenen Bildes |
| Thema | Saite | Thema des gespeicherten Bildes |
Diese JSON -Reaktion wird zu AddSubjectExampleResponse -Datenübertragungsobjekt (DTO) deserialisiert.
public class AddSubjectExampleResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Um eine Liste von Themen abzurufen, die in einer Gesichtserfassung gespeichert sind:
await recognitionService.FaceCollection.ListAsync(request);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | ListAllSubjectExamplesRequest | erforderlich |
ListAllSubjectExamplesRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert ist.
public class ListAllSubjectExamplesRequest
{
public int? Page { get; set; }
public int? Size { get; set; }
public string Subject { get; set; }
}
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Seite | int | optional | Seite Anzahl der Beispiele zur Rückgabe. Kann zur Paginierung verwendet werden. Der Standardwert ist 0. Seit 0,6 Version. |
| Größe | int | optional | Gesichter auf Seite (Seitengröße). Kann zur Paginierung verwendet werden. Der Standardwert beträgt 20. Seit 0,6 Version. |
| Thema | int | optional | Welchen Subjekt Beispiele der Endpunkt sollte zurückkehren. Wenn Sie leer sind, geben Sie Beispiele für alle Probanden zurück. Seit 1.0 Version |
Antwort:
{
"faces": [
{
"image_id": <image_id>,
"subject": <subject>
},
...
]
}
| Element | Typ | Beschreibung |
|---|---|---|
| Image_id | Uuid | Uuid des Gesichts |
| Thema | Saite | der Person, deren Bild für diesen API -Schlüssel gespeichert wurde |
Diese JSON -Reaktion wird von ListAllSubjectExamplesResponse -Datenübertragungsobjekt (DTO) deserialisiert.
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; }
}
Face :
public class Face
{
public Guid ImageId { get; set; }
public string Subject{ get; set; }
}
So löschen Sie alle Bildbeispiele der::
recognitionService.FaceCollection.DeleteAllAsync(request);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | DeleteAllexamplesRequest | erforderlich |
DeleteAllExamplesRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert wird.
public class DeleteMultipleExampleRequest
{
public IList<Guid> ImageIdList { get; set; }
}
Antwort:
{
"deleted": <count>
}
| Element | Typ | Beschreibung |
|---|---|---|
| gelöscht | ganze Zahl | Anzahl der gelöschten Gesichter |
Diese JSON -Reaktion wird dem DeleteMultipleExamplesResponse -Datenübertragungsobjekt (DTO) deserialisiert.
public class DeleteMultipleExamplesResponse
{
public IList<Face> Faces { get; set; }
}
So löschen Sie ein Bild durch ID:
await recognitionService.FaceCollection.DeleteAsync(request);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | DeleteImageByIdRequest | erforderlich |
DeleteImageByIdRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert ist.
public class DeleteImageByIdRequest
{
public Guid ImageId { get; set; }
}
Antwort:
{
"image_id": <image_id>,
"subject": <subject>
}
| Element | Typ | Beschreibung |
|---|---|---|
| Image_id | Uuid | Uuid des entfernten Gesichts |
| Thema | Saite | der Person, deren Bild für diesen API -Schlüssel gespeichert wurde |
Diese JSON -Antwort wird zum DeleteImageByIdResponse -Datenübertragungsobjekt (DTO) deserialisiert.
public class DeleteImageByIdResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
So laden Sie ein Bild nach ID herunter:
await recognitionService.FaceCollection.DownloadAsync(downloadImageByIdRequest);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | DownloadImageByIdDirectLyRequest | erforderlich |
DownloadImageByIdDirectlyRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert ist.
public class DownloadImageByIdDirectlyRequest
{
public Guid ImageId { get; set; }
public Guid RecognitionApiKey { get; set; }
}
Reaktionskörper ist ein binäres Bild. Leere Bytes, wenn Bild nicht gefunden.
since 0.6 version
So laden Sie ein Bildbeispiel des Betreffs durch ID herunter:
await recognitionService.FaceCollection.DownloadAsync(downloadImageBySubjectIdRequest);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | DownloadImageByIdFromsUbjectralrequest | erforderlich |
DownloadImageByIdFromSubjectRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert ist.
public class DownloadImageByIdFromSubjectRequest
{
public Guid ImageId { get; set; }
}
Reaktionskörper ist ein binäres Bild. Leere Bytes, wenn Bild nicht gefunden.
recognitionService.Subject
Rückgabe von Probanden Objekt Themen Objekt ermöglicht das direkte Arbeit mit Probanden (nicht über Themenbeispiele). Weitere Informationen zu Themen hier
Methoden:
Erstellen Sie ein neues Thema in der Gesichtskollektion.
await recognitionService.Subject.AddAsync(request);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | AddSubJectrequest | erforderlich |
AddSubjectRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert wird.
public class AddSubjectRequest
{
public string Subject { get; set; }
}
Antwort:
{
"subject" : " subject1 "
}| Element | Typ | Beschreibung |
|---|---|---|
| Thema | Saite | ist der Name des Themas |
Diese JSON -Reaktion wird dem AddSubjectResponse -Datenübertragungsobjekt (DTO) deserialisiert.
public class AddSubjectResponse
{
public string Subject { get; set; }
}
Gibt das gesamte Thema im Zusammenhang mit der Face Collection zurück.
await recognitionService.Subject.ListAsync();
Antwort:
{
"subjects" : [
" <subject_name1> " ,
" <subject_name2> "
]
}| Element | Typ | Beschreibung |
|---|---|---|
| Themen | Array | Die Liste der Themen in der Face Collection |
Diese JSON -Reaktion wird deserialisiert, um GetAllSubjectResponse -Datenübertragungsobjekt (DTO) zu erhalten.
public class GetAllSubjectResponse
{
public IList<string> Subjects { get; set; }
}
Bestehendes Thema umbenennen. Wenn bereits ein neuer Thema vorhanden ist, werden die Themen zusammengeführt - alle Gesichter aus dem alten Betreff werden dem Thema mit dem neuen Namen, dem alten Thema entfernt, neu zugewiesen.
await recognitionService.Subject.RenameAsync(request);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | Renamesubjectralrequest | erforderlich |
RenameSubjectRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert wird.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Antwort:
{
"updated" : " true|false "
}| Element | Typ | Beschreibung |
|---|---|---|
| aktualisiert | booleschen | gescheitert oder Erfolg |
Diese JSON -Reaktion wird deserialisiert, um das Datenübertragungsobjekt (DTO) RenameSubjectResponse .
public class RenameSubjectResponse
{
public bool Updated { get; set; }
}
Löschen Sie das vorhandene Thema und alle gespeicherten Gesichter.
await recognitionService.Subject.DeleteAsync(request);
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | Deletesubjectrequest | erforderlich |
DeleteSubjectRequest Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert wird.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Antwort:
{
"subject" : " subject1 "
}| Element | Typ | Beschreibung |
|---|---|---|
| Thema | Saite | ist der Name des Themas |
Diese JSON -Reaktion wird dem DeleteSubjectResponse -Datenübertragungsobjekt (DTO) deserialisiert.
public class DeleteSubjectResponse
{
public string Subject { get; set; }
}
Löschen Sie alle vorhandenen Themen und alle gespeicherten Gesichter.
await recognitionService.Subject.DeleteAllAsync();
Antwort:
{
"deleted" : " <count> "
}| Element | Typ | Beschreibung |
|---|---|---|
| gelöscht | ganze Zahl | Anzahl der gelöschten Themen |
Diese JSON -Antwort wird dem DeleteAllSubjectsResponse -Datenübertragungsobjekt (DTO) deserialisiert.
public class DeleteAllSubjectsResponse
{
public int Deleted { get; set; }
}
Der Gesichtserkennungsdienst wird zum Erkennen von Gesichtern im Bild verwendet.
Methoden:
await faceDetectionService.DetectAsync(request);
Findet alle Gesichter auf dem Bild.
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | FaceDectionRequestByFilepath | erforderlich |
FaceDetectionRequestByFilePath Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert ist.
public class FaceDetectionRequestByFilePath : BaseFaceRequest
{
public string FilePath { get; set; }
}
BaseFaceRequest -Klasse enthält optionale Eigenschaften:
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Option | Typ | Notizen |
|---|---|---|
| dET_PROB_Threshold | schweben | Das Minimum erforderte das Vertrauen, dass ein anerkanntes Gesicht tatsächlich ein Gesicht ist. Der Wert liegt zwischen 0,0 und 1,0 |
| Limit | ganze Zahl | Maximale Anzahl von Gesichtern auf dem Bild zu erkannt. Es erkennt zuerst die größten Gesichter. Der Wert von 0 stellt keine Grenze dar. Standardwert: 0 |
| Vorhersage_Count | ganze Zahl | Maximale Anzahl von Subjektvorhersagen pro Gesicht. Es gibt die ähnlichsten Themen zurück. Standardwert: 1 |
| face_plugins | Saite | Komma getrennte Schnecken von Gesichts-Plugins. Wenn leer, werden keine zusätzlichen Informationen zurückgegeben. Erfahren Sie mehr |
| Status | booleschen | Wenn True Systeminformationen wie Execution_Time und Plugin_version Fields enthält. Standardwert ist falsch |
Antwort:
{
"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 "
}
}| Element | Typ | Beschreibung |
|---|---|---|
| Alter | Objekt | erkannte Altersspanne. Gehen Sie nur dann zurück, wenn das Alters -Plugin aktiviert ist |
| Geschlecht | Objekt | Geschlecht erkannt. Rückgabe nur, wenn das Gender -Plugin aktiviert ist |
| Maske | Objekt | Maske erkannt. Rückgabe nur, wenn das Gesichtsmasken -Plugin aktiviert ist. |
| Einbettung | Array | Gesicht Einbettungen. Rückgabe nur, wenn das Calculator -Plugin aktiviert ist |
| Kasten | Objekt | Liste der Parameter des Begrenzungsfelds für dieses Gesicht (auf ProcessedImage) |
| Wahrscheinlichkeit | schweben | Wahrscheinlichkeit, dass ein gefundenes Gesicht tatsächlich ein Gesicht ist (auf verarbeitungsbedingtem) |
| x_max, y_max, x_min, y_min | ganze Zahl | Koordinaten des Rahmens, der das Gesicht enthält (auf verarbeitungsbedingt) |
| Sehenswürdigkeiten | Array | Liste der Koordinaten des Rahmens, das die Gesichtslandmarks enthält. Kehren Sie nur dann zurück, wenn das Landmarks -Plugin aktiviert ist |
| Execution_time | Objekt | Ausführungszeit aller Plugins |
| Plugins_versions | Objekt | Enthält Informationen zu Plugin -Versionen |
Diese JSON -Reaktion wird auf das Datenübertragungsobjekt (DTO) des FaceDetectionResponse -Datenübertragungsdaten übertragen.
public class FaceDetectionResponse
{
public IList<BaseResult> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
BaseResult -Klasse:
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; }
}
Der Gesichtsprüfungsdienst wird zum Vergleich von zwei Bildern verwendet. Ein Quellbild sollte nur ein Gesicht enthalten, das mit allen Gesichtern auf dem Zielbild verglichen wird.
Methoden:
await faceVerificationService.VerifyAsync(request);
Vergleicht zwei in Argumente bereitgestellte Bilder. Das Quellbild sollte nur ein Gesicht enthalten, es wird mit allen Gesichtern im Zielbild verglichen.
| Argument | Typ | Erforderlich | Notizen |
|---|---|---|---|
| Anfrage | FaceverificationRequestByFilepath | erforderlich |
FaceVerificationRequestByFilePath Dies ist ein Datenübertragungsobjekt, das mit JSON serialisiert wird.
public class FaceVerificationRequestByFilePath : BaseFaceRequest
{
public string SourceImageFilePath { get; set; }
public string TargetImageFilePath { get; set; }
}
BaseFaceRequest -Klasse enthält optionale Eigenschaften:
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Option | Typ | Notizen |
|---|---|---|
| dET_PROB_Threshold | schweben | Das Minimum erforderte das Vertrauen, dass ein anerkanntes Gesicht tatsächlich ein Gesicht ist. Der Wert liegt zwischen 0,0 und 1,0 |
| Limit | ganze Zahl | Maximale Anzahl von Gesichtern auf dem Bild zu erkannt. Es erkennt zuerst die größten Gesichter. Der Wert von 0 stellt keine Grenze dar. Standardwert: 0 |
| Vorhersage_Count | ganze Zahl | Maximale Anzahl von Subjektvorhersagen pro Gesicht. Es gibt die ähnlichsten Themen zurück. Standardwert: 1 |
| face_plugins | Saite | Komma getrennte Schnecken von Gesichts-Plugins. Wenn leer, werden keine zusätzlichen Informationen zurückgegeben. Erfahren Sie mehr |
| Status | booleschen | Wenn True Systeminformationen wie Execution_Time und Plugin_version Fields enthält. Standardwert ist falsch |
Antwort:
{
"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 "
}
}]
}| Element | Typ | Beschreibung |
|---|---|---|
| SCRECT_IMAGE_FACE | Objekt | Zusätzliche Informationen zum Quellbildgesicht |
| face_matches | Array | Ergebnis der Gesichtsprüfung |
| Alter | Objekt | erkannte Altersspanne. Gehen Sie nur dann zurück, wenn das Alters -Plugin aktiviert ist |
| Geschlecht | Objekt | Geschlecht erkannt. Rückgabe nur, wenn das Gender -Plugin aktiviert ist |
| Maske | Objekt | Maske erkannt. Rückgabe nur, wenn das Gesichtsmasken -Plugin aktiviert ist. |
| Einbettung | Array | Gesicht Einbettungen. Rückgabe nur, wenn das Calculator -Plugin aktiviert ist |
| Kasten | Objekt | Liste der Parameter des Begrenzungsfelds für dieses Gesicht |
| Wahrscheinlichkeit | schweben | Wahrscheinlichkeit, dass ein gefundenes Gesicht tatsächlich ein Gesicht ist |
| x_max, y_max, x_min, y_min | ganze Zahl | Koordinaten des Rahmens, der das Gesicht enthält |
| Sehenswürdigkeiten | Array | Liste der Koordinaten des Rahmens, das die Gesichtslandmarks enthält. Kehren Sie nur dann zurück, wenn das Landmarks -Plugin aktiviert ist |
| Ähnlichkeit | schweben | Ähnlichkeit zwischen diesem Gesicht und dem Gesicht auf dem Quellbild |
| Execution_time | Objekt | Ausführungszeit aller Plugins |
| Plugins_versions | Objekt | Enthält Informationen zu Plugin -Versionen |
Diese JSON -Reaktion wird auf FaceVerificationResponse -Datenübertragungsobjekt (DTO) deserialisiert.
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; }
}
BaseResult -Klasse:
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; }
}
Beiträge machen die Open -Source -Community zu einem erstaunlichen Ort, um zu lernen, zu inspirieren und zu kreieren. Alle Beiträge, die Sie leisten, werden sehr geschätzt.
git checkout -b feature/AmazingFeature ).git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )Nachdem Sie Ihre erste Pull -Anfrage erstellt haben, erhalten Sie eine Anfrage zur Unterzeichnung unserer Beitragslizenzvereinbarung, indem Sie Ihre Pull -Anfrage mit einer Sondernachricht kommentieren.
Bitte melden Sie hier alle Fehler.
Wenn Sie einen Fehler melden, geben Sie bitte an:
Der beste Weg, uns Feedback zu senden, besteht darin, ein Problem unter https://github.com/exadel-inc/compreface-net-sdk/issues einzureichen.
Wenn Sie eine Funktion vorschlagen, bitte:
COMPREFACE .NET SDK ist Open-Source Facial Recognition SDK, die unter der Apache 2.0-Lizenz veröffentlicht wurde.