Compreface Net SDK facilite la reconnaissance du visage dans votre application.
Avant d'utiliser notre SDK, assurez-vous que vous avez installé Compreface et .NET sur votre machine.
| Version SDK .net Compreface | Compreface 1.1.0 |
|---|---|
| 1.0.0 | |
| 1.0.1 | |
| 1.0.2 |
Explication:
Pour utiliser SDK Installez le package NuGet
Install-Package CompreFace.NET.Sdk
Tous les exemples ci-dessous, vous pouvez trouver dans le dossier du référentiel à l'intérieur des exemples. Vous pouvez également consulter l'exemple de reconnaissance de l'application. C'est un exemple simple d'utilisation de la compreface.
Pour commencer à utiliser le SDK .net Compreface, vous devez importer un objet CompreFace à partir de la dépendance «Compreface-SDK».
Ensuite, vous devez créer un objet CompreFaceClient et l'initialiser avec DOMAIN et PORT . Par défaut, si vous exécutez Compreface sur votre machine locale, son DOMAIN sera http://localhost , et PORT dans ce cas sera 8000 . Vous pouvez transmettre l'objet options facultatifs lorsque l'appel de la méthode pour définir les paramètres par défaut, voir la référence pour plus d'informations.
Vous devez utiliser le service RecognitionService dans l'objet CompreFaceClient pour reconnaître les visages.
Cependant, avant de reconnaître, vous devez d'abord ajouter le sujet dans la collection de visage. Pour ce faire, obtenez l'objet Subject à l'aide de RecognitionService . Subject est inclus dans la classe 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);
Voici un exemple qui montre comment ajouter une image à votre collection de visage à partir de votre système de fichiers:
var faceCollection = recognitionService.FaceCollection;
var request = new AddSubjectExampleRequestByFilePath()
{
DetProbThreShold = 0.81m,
Subject = "Subject name",
FilePath = "Full file path"
};
var response = await faceCollection.AddAsync(request);
Cet extrait de code montre comment reconnaître le visage inconnu. Reconnaître les visages d'une image donnée
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);
L'objet Global Compreface est utilisé pour initialiser la connexion à Compreface et la définition de valeurs par défaut pour les options. Les valeurs par défaut seront utilisées dans chaque méthode de service le cas échéant.
Constructeur: CompreFaceClient(domain, port)
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| domaine | chaîne | requis | Domaine avec protocole où se trouve la compreface. Par exemple http://localhost |
| port | chaîne | requis | Port de compreface. Par exemple 8000 |
Exemple:
var client = new CompreFaceClient(
domain: "http://localhost",
port: "8000");
client.GetCompreFaceService<RecognitionService>(apiKey)INITS FACE RECONDATION OBJET DE SERVICE.
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| apikey | chaîne | requis | Clé API de reconnaissance face au format UUID |
Exemple:
var apiKey = "00000000-0000-0000-0000-000000000002";
var recognitionService = client.GetCompreFaceService<RecognitionService>(apiKey);
client.GetCompreFaceService<FaceDetectionService>(apiKey)INITS Face Detection Service Object.
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| apikey | chaîne | requis | Clé API de détection de visage au format UUID |
Exemple:
var apiKey = "00000000-0000-0000-0000-000000000003";
var faceDetectionService = client.GetCompreFaceService<FaceDetectionService>(api_key);
client.GetCompreFaceService<FaceVerificationService>(apiKey)INITS Face Verification Service Object.
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| apikey | chaîne | requis | Clé de l'API de vérification du visage au format UUID |
Exemple:
var apiKey = "00000000-0000-0000-0000-000000000004";
var faceVerificationService = client.GetCompreFaceService<FaceVerificationService>(api_key);
Toutes les propriétés facultatives sont situées dans la classe 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; }
}
La classe BaseFaceRequest est héritée par plusieurs classes DTO qui sont sérialisées pour demander le format.
Voici la description à quoi il ressemble dans le corps de demande.
| Option | Taper | Notes |
|---|---|---|
| DET_PROB_THRESHOLD | flotter | La confiance minimale requise qu'un visage reconnu est en fait un visage. La valeur est comprise entre 0,0 et 1,0 |
| limite | entier | Nombre maximum de visages sur l'image à reconnaître. Il reconnaît d'abord les plus grands visages. La valeur de 0 ne représente aucune limite. Valeur par défaut: 0 |
| Prediction_Count | entier | Nombre maximum de prédictions de sujet par face. Il renvoie les sujets les plus similaires. Valeur par défaut: 1 |
| face_plugins | chaîne | Des limaces séparées par des virgules de plugins pour le visage. Si vide, aucune information supplémentaire n'est retournée. Apprendre encore plus |
| statut | booléen | Si TRUE inclut les informations système comme EXECUMENT_TIME et Plugin_version Fields. La valeur par défaut est fausse |
Exemple de reconnaissance faciale avec objet:
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);
Le service de reconnaissance du visage est utilisé pour l'identification du visage. Cela signifie que vous devez d'abord télécharger des visages connus pour faire face à la collecte, puis reconnaître les visages inconnus parmi eux. Lorsque vous téléchargez un visage inconnu, le service y renvoie les faces les plus similaires. En outre, les supports du service de reconnaissance des visage, vérifiez le point de terminaison pour vérifier si cette personne de la collection de visage est la bonne. Pour plus d'informations, voir la page Compreface.
Méthodes:
Reconnaît tous les visages de l'image. Le premier argument est l'emplacement de l'image, il peut être une URL, un chemin local ou des octets.
await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest)
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| reconnaissance | Reconnaître FromimageRequestByFilepath | requis |
RecognizeFaceFromImageRequestByFilePath Cet objet de transfert de données qui est sérialisé en JSON.
public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest
{
public string FilePath { get; set; }
}
BaseRecognizeFaceFromImageRequest Classe:
public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest
{
public int? PredictionCount { get; set; }
}
La classe BaseFaceRequest contient des propriétés facultatives :
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 | Taper | Notes |
|---|---|---|
| DET_PROB_THRESHOLD | flotter | La confiance minimale requise qu'un visage reconnu est en fait un visage. La valeur est comprise entre 0,0 et 1,0 |
| limite | entier | Nombre maximum de visages sur l'image à reconnaître. Il reconnaît d'abord les plus grands visages. La valeur de 0 ne représente aucune limite. Valeur par défaut: 0 |
| Prediction_Count | entier | Nombre maximum de prédictions de sujet par face. Il renvoie les sujets les plus similaires. Valeur par défaut: 1 |
| face_plugins | chaîne | Des limaces séparées par des virgules de plugins pour le visage. Si vide, aucune information supplémentaire n'est retournée. Apprendre encore plus |
| statut | booléen | Si TRUE inclut les informations système comme EXECUMENT_TIME et Plugin_version Fields. La valeur par défaut est fausse |
Réponse de l'API COMREFACE:
{
"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"
}
}
| Élément | Taper | Description |
|---|---|---|
| âge | objet | Action d'âge détecté. Retourner uniquement si le plugin d'âge est activé |
| genre | objet | Sexe détecté. Retourner uniquement si le plugin de genre est activé |
| masque | objet | masque détecté. RETOUR UNIQUEMENT Si le plugin Face Mask est activé. |
| intégration | tableau | ENCHETS FACE. Retourner uniquement si le plugin de calculatrice est activé |
| boîte | objet | Liste des paramètres de la boîte de délimitation pour ce visage |
| probabilité | flotter | probabilité qu'un visage trouvé est en fait un visage |
| x_max, y_max, x_min, y_min | entier | coordonnées du cadre contenant le visage |
| repère | tableau | Liste des coordonnées du cadre contenant les marques faciales. |
| sujets | liste | Liste de sujets similaires avec une taille de <Dediction_Count> Ordre par similitude |
| similarité | flotter | similitude que sur cette image prédite la personne |
| sujet | chaîne | Nom du sujet dans la collection de visage |
| exécution_time | objet | Temps d'exécution de tous les plugins |
| Plugins_versions | objet | Contient des informations sur les versions du plugin |
Cette réponse JSON est désérialisée pour RecognizeFaceFromImageResponse l'objet de transfert de données (DTO) de reconnaissance.
public class RecognizeFaceFromImageResponse
{
public IList<Result> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
public class Result : BaseResult
{
public IList<SimilarSubject> Subjects { get; set; }
}
Classe 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);
Compare les similitudes de l'image donnée avec l'image de votre collection de visage.
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | Vérifyfaces de FromimageRequest | requis |
VerifyFacesFromImageRequest Cet objet de transfert de données qui est sérialisé à JSON.
public class VerifyFacesFromImageRequest : BaseVerifyFacesFromImageRequest
{
public string FilePath { get; set; }
}
BaseVerifyFacesFromImageRequest la classe de l'ImageRequest:
public class BaseVerifyFacesFromImageRequest : BaseFaceRequest
{
public Guid ImageId { get; set; }
}
La classe BaseFaceRequest contient des propriétés facultatives :
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 | Taper | Notes |
|---|---|---|
| DET_PROB_THRESHOLD | flotter | La confiance minimale requise qu'un visage reconnu est en fait un visage. La valeur est comprise entre 0,0 et 1,0 |
| limite | entier | Nombre maximum de visages sur l'image à reconnaître. Il reconnaît d'abord les plus grands visages. La valeur de 0 ne représente aucune limite. Valeur par défaut: 0 |
| Prediction_Count | entier | Nombre maximum de prédictions de sujet par face. Il renvoie les sujets les plus similaires. Valeur par défaut: 1 |
| face_plugins | chaîne | Des limaces séparées par des virgules de plugins pour le visage. Si vide, aucune information supplémentaire n'est retournée. Apprendre encore plus |
| statut | booléen | Si TRUE inclut les informations système comme EXECUMENT_TIME et Plugin_version Fields. La valeur par défaut est fausse |
Réponse:
{
"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 "
}
}| Élément | Taper | Description |
|---|---|---|
| âge | objet | Action d'âge détecté. Retourner uniquement si le plugin d'âge est activé |
| genre | objet | Sexe détecté. Retourner uniquement si le plugin de genre est activé |
| masque | objet | masque détecté. RETOUR UNIQUEMENT Si le plugin Face Mask est activé. |
| intégration | tableau | ENCHETS FACE. Retourner uniquement si le plugin de calculatrice est activé |
| boîte | objet | Liste des paramètres de la boîte de délimitation pour ce visage |
| probabilité | flotter | probabilité qu'un visage trouvé est en fait un visage |
| x_max, y_max, x_min, y_min | entier | coordonnées du cadre contenant le visage |
| repère | tableau | Liste des coordonnées du cadre contenant les marques faciales. Retour uniquement si le plugin de repères est activé |
| similarité | flotter | similitude que sur cette image prédite la personne |
| exécution_time | objet | Temps d'exécution de tous les plugins |
| Plugins_versions | objet | Contient des informations sur les versions du plugin |
Cette réponse JSON est désérialisée pour VerifyFacesFromImageResponse l'objet de transfert de données de données (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; }
}
Classe 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; }
}
Classe 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
Renvoie un objet de collecte de visage
La collection de visages pourrait être utilisée pour gérer les visages connus, par exemple, ajouter, les liste ou les supprimer.
La reconnaissance du visage est effectuée pour les faces connues enregistrées dans la collection de visage, donc avant d'utiliser la méthode recognize , vous devez économiser au moins un visage dans la collection de visage.
Plus d'informations sur la collecte du visage et la gestion des exemples ici
Méthodes:
Cela crée un exemple du sujet en enregistrant des images. Vous pouvez ajouter autant d'images que vous souhaitez former le système. L'image ne doit contenir qu'un seul visage.
await recognitionService.FaceCollection.AddAsync(request);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | AddSubjectExamplerequestByFilePath | requis |
AddSubjectExampleRequestByFilePath Ceci est un objet de transfert de données qui est sérialisé à JSON.
public class AddSubjectExampleRequestByFilePath : BaseExampleRequest
{
public string FilePath { get; set; }
}
Classe BaseExampleRequest :
namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs
{
public class BaseExampleRequest
{
public string Subject { get; set; }
public decimal? DetProbThreShold { get; set; }
}
}
| Option | Taper | Notes |
|---|---|---|
| DET_PROB_THRESHOLD | flotter | La confiance minimale requise qu'un visage reconnu est en fait un visage. La valeur est comprise entre 0,0 et 1,0 |
DetProbThreShold est une propriété facultative.
Réponse:
{
"image_id": "6b135f5b-a365-4522-b1f1-4c9ac2dd0728",
"subject": "SubjectName"
}
| Élément | Taper | Description |
|---|---|---|
| image_id | Uuid | Uuid de l'image téléchargée |
| sujet | chaîne | Sujet de l'image enregistrée |
Cette réponse JSON est désérialisée pour AddSubjectExampleResponse l'objet de transfert de données de données (DTO).
public class AddSubjectExampleResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Pour récupérer une liste de sujets enregistrés dans une collection de visage:
await recognitionService.FaceCollection.ListAsync(request);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | ListAllSubjectExamplesSrequest | requis |
ListAllSubjectExamplesRequest Cet objet de transfert de données qui est sérialisé vers JSON.
public class ListAllSubjectExamplesRequest
{
public int? Page { get; set; }
public int? Size { get; set; }
public string Subject { get; set; }
}
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| Page | int | facultatif | Numéro de page d'exemples à retourner. Peut être utilisé pour la pagination. La valeur par défaut est 0. Depuis 0,6 version. |
| Taille | int | facultatif | Faces sur la page (taille de la page). Peut être utilisé pour la pagination. La valeur par défaut est de 20. Depuis 0,6 version. |
| Sujet | int | facultatif | Quels exemples de sujet devraient revenir. Si vide, retournez des exemples pour tous les sujets. Depuis 1.0 version |
Réponse:
{
"faces": [
{
"image_id": <image_id>,
"subject": <subject>
},
...
]
}
| Élément | Taper | Description |
|---|---|---|
| image_id | Uuid | Uuid du visage |
| sujet | chaîne | de la personne, dont l'image a été enregistrée pour cette clé API |
Cette réponse JSON est désérialisée à ListAllSubjectExamplesResponse d'objet de transfert de données (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; }
}
Classe Face :
public class Face
{
public Guid ImageId { get; set; }
public string Subject{ get; set; }
}
Pour supprimer tous les exemples d'image du:
recognitionService.FaceCollection.DeleteAllAsync(request);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | Deleteallex échantillons | requis |
DeleteAllExamplesRequest Cet objet de transfert de données qui est sérialisé vers JSON.
public class DeleteMultipleExampleRequest
{
public IList<Guid> ImageIdList { get; set; }
}
Réponse:
{
"deleted": <count>
}
| Élément | Taper | Description |
|---|---|---|
| supprimé | entier | Nombre de visages supprimés |
Cette réponse JSON est désérialisée pour DeleteMultipleExamplesResponse d'objet de transfert de données de réponse (DTO).
public class DeleteMultipleExamplesResponse
{
public IList<Face> Faces { get; set; }
}
Pour supprimer une image par ID:
await recognitionService.FaceCollection.DeleteAsync(request);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | DeleteImageByidrequest | requis |
DeleteImageByIdRequest Cet objet de transfert de données qui est sérialisé vers JSON.
public class DeleteImageByIdRequest
{
public Guid ImageId { get; set; }
}
Réponse:
{
"image_id": <image_id>,
"subject": <subject>
}
| Élément | Taper | Description |
|---|---|---|
| image_id | Uuid | Uuid du visage retiré |
| sujet | chaîne | de la personne, dont l'image a été enregistrée pour cette clé API |
Cette réponse JSON est désérialisée pour DeleteImageByIdResponse TRANSFERT DATA TRANSFER (DTO).
public class DeleteImageByIdResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Pour télécharger une image par ID:
await recognitionService.FaceCollection.DownloadAsync(downloadImageByIdRequest);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | TéléchargerImageByidDirectlyRequest | requis |
DownloadImageByIdDirectlyRequest Cet objet de transfert de données qui est sérialisé à JSON.
public class DownloadImageByIdDirectlyRequest
{
public Guid ImageId { get; set; }
public Guid RecognitionApiKey { get; set; }
}
Le corps de réponse est l'image binaire. Octets vides si l'image n'est pas trouvée.
since 0.6 version
Pour télécharger un exemple d'image du sujet par ID:
await recognitionService.FaceCollection.DownloadAsync(downloadImageBySubjectIdRequest);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | TéléchargementImageByIdFromsUbjectRequest | requis |
DownloadImageByIdFromSubjectRequest Cet objet de transfert de données qui est sérialisé à JSON.
public class DownloadImageByIdFromSubjectRequest
{
public Guid ImageId { get; set; }
}
Le corps de réponse est l'image binaire. Octets vides si l'image n'est pas trouvée.
recognitionService.Subject
Renvoie l'objet des sujets des sujets permet de travailler directement avec les sujets (pas via des exemples de sujet). Plus d'informations sur les sujets ici
Méthodes:
Créez un nouveau sujet dans la collection Face.
await recognitionService.Subject.AddAsync(request);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | AddSubjectResest | requis |
AddSubjectRequest Cet objet de transfert de données qui est sérialisé à JSON.
public class AddSubjectRequest
{
public string Subject { get; set; }
}
Réponse:
{
"subject" : " subject1 "
}| Élément | Taper | Description |
|---|---|---|
| sujet | chaîne | est le nom du sujet |
Cette réponse JSON est désérialisée pour AddSubjectResponse un objet de transfert de données (DTO).
public class AddSubjectResponse
{
public string Subject { get; set; }
}
Renvoie tout le sujet lié à la collection de visage.
await recognitionService.Subject.ListAsync();
Réponse:
{
"subjects" : [
" <subject_name1> " ,
" <subject_name2> "
]
}| Élément | Taper | Description |
|---|---|---|
| sujets | tableau | La liste des sujets de la collection de visage |
Cette réponse JSON est désérialisée pour obtenir un objet de transfert de données (DTO) GetAllSubjectResponse .
public class GetAllSubjectResponse
{
public IList<string> Subjects { get; set; }
}
Renommer le sujet existant. Si un nouveau nom de sujet existe déjà, les sujets sont fusionnés - tous les visages de l'ancien nom de sujet sont réaffectés au sujet avec le nouveau nom, l'ancien sujet supprimé.
await recognitionService.Subject.RenameAsync(request);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | RenameSubjectRequest | requis |
RenameSubjectRequest Cet objet de transfert de données qui est sérialisé à JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Réponse:
{
"updated" : " true|false "
}| Élément | Taper | Description |
|---|---|---|
| mis à jour | booléen | Échec ou succès |
Cette réponse JSON est désérialisée pour RenameSubjectResponse Data Transfer Object (DTO).
public class RenameSubjectResponse
{
public bool Updated { get; set; }
}
Supprimer le sujet existant et tous les visages enregistrés.
await recognitionService.Subject.DeleteAsync(request);
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | Supprimer | requis |
DeleteSubjectRequest Cet objet de transfert de données qui est sérialisé à JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Réponse:
{
"subject" : " subject1 "
}| Élément | Taper | Description |
|---|---|---|
| sujet | chaîne | est le nom du sujet |
Cette réponse JSON est désérialisée pour supprimer l'objet de transfert de données (DTO) DeleteSubjectResponse .
public class DeleteSubjectResponse
{
public string Subject { get; set; }
}
Supprimez tous les sujets existants et tous les faces enregistrées.
await recognitionService.Subject.DeleteAllAsync();
Réponse:
{
"deleted" : " <count> "
}| Élément | Taper | Description |
|---|---|---|
| supprimé | entier | Nombre de sujets supprimés |
Cette réponse JSON est désérialisée pour DeleteAllSubjectsResponse l'objet de transfert de données (DTO) de supprimer.
public class DeleteAllSubjectsResponse
{
public int Deleted { get; set; }
}
Le service de détection de visage est utilisé pour détecter les visages dans l'image.
Méthodes:
await faceDetectionService.DetectAsync(request);
Trouve tous les visages sur l'image.
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | Facedetectionrequestbyfilepath | requis |
FaceDetectionRequestByFilePath Ceci est un objet de transfert de données qui est sérialisé à JSON.
public class FaceDetectionRequestByFilePath : BaseFaceRequest
{
public string FilePath { get; set; }
}
La classe BaseFaceRequest contient des propriétés facultatives :
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 | Taper | Notes |
|---|---|---|
| DET_PROB_THRESHOLD | flotter | La confiance minimale requise qu'un visage reconnu est en fait un visage. La valeur est comprise entre 0,0 et 1,0 |
| limite | entier | Nombre maximum de visages sur l'image à reconnaître. Il reconnaît d'abord les plus grands visages. La valeur de 0 ne représente aucune limite. Valeur par défaut: 0 |
| Prediction_Count | entier | Nombre maximum de prédictions de sujet par face. Il renvoie les sujets les plus similaires. Valeur par défaut: 1 |
| face_plugins | chaîne | Des limaces séparées par des virgules de plugins pour le visage. Si vide, aucune information supplémentaire n'est retournée. Apprendre encore plus |
| statut | booléen | Si TRUE inclut les informations système comme EXECUMENT_TIME et Plugin_version Fields. La valeur par défaut est fausse |
Réponse:
{
"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 "
}
}| Élément | Taper | Description |
|---|---|---|
| âge | objet | Action d'âge détecté. Retourner uniquement si le plugin d'âge est activé |
| genre | objet | Sexe détecté. Retourner uniquement si le plugin de genre est activé |
| masque | objet | masque détecté. RETOUR UNIQUEMENT Si le plugin Face Mask est activé. |
| intégration | tableau | ENCHETS FACE. Retourner uniquement si le plugin de calculatrice est activé |
| boîte | objet | Liste des paramètres de la boîte de délimitation pour cette face (sur ProcessEdImage) |
| probabilité | flotter | probabilité qu'un visage trouvé est en fait un visage (sur procedImage) |
| x_max, y_max, x_min, y_min | entier | Coordonnées du cadre contenant le visage (sur procedImage) |
| repère | tableau | Liste des coordonnées du cadre contenant les marques faciales. Retour uniquement si le plugin de repères est activé |
| exécution_time | objet | Temps d'exécution de tous les plugins |
| Plugins_versions | objet | Contient des informations sur les versions du plugin |
Cette réponse JSON est désérialisée à l'objet de transfert de données FaceDetectionResponse (DTO).
public class FaceDetectionResponse
{
public IList<BaseResult> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
Classe 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; }
}
Le service de vérification du visage est utilisé pour comparer deux images. Une image source ne doit contenir qu'une seule face qui sera comparée à toutes les faces de l'image cible.
Méthodes:
await faceVerificationService.VerifyAsync(request);
Compare deux images fournies dans les arguments. L'image source ne doit contenir qu'une seule face, elle sera comparée à toutes les faces de l'image cible.
| Argument | Taper | Requis | Notes |
|---|---|---|---|
| demande | FacerificationrequestByFilepath | requis |
FaceVerificationRequestByFilePath Ceci est un objet de transfert de données qui est sérialisé à JSON.
public class FaceVerificationRequestByFilePath : BaseFaceRequest
{
public string SourceImageFilePath { get; set; }
public string TargetImageFilePath { get; set; }
}
La classe BaseFaceRequest contient des propriétés facultatives :
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 | Taper | Notes |
|---|---|---|
| DET_PROB_THRESHOLD | flotter | La confiance minimale requise qu'un visage reconnu est en fait un visage. La valeur est comprise entre 0,0 et 1,0 |
| limite | entier | Nombre maximum de visages sur l'image à reconnaître. Il reconnaît d'abord les plus grands visages. La valeur de 0 ne représente aucune limite. Valeur par défaut: 0 |
| Prediction_Count | entier | Nombre maximum de prédictions de sujet par face. Il renvoie les sujets les plus similaires. Valeur par défaut: 1 |
| face_plugins | chaîne | Des limaces séparées par des virgules de plugins pour le visage. Si vide, aucune information supplémentaire n'est retournée. Apprendre encore plus |
| statut | booléen | Si TRUE inclut les informations système comme EXECUMENT_TIME et Plugin_version Fields. La valeur par défaut est fausse |
Réponse:
{
"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 "
}
}]
}| Élément | Taper | Description |
|---|---|---|
| source_image_face | objet | Informations supplémentaires sur le visage d'image source |
| face_matches | tableau | Résultat de la vérification du visage |
| âge | objet | Action d'âge détecté. Retourner uniquement si le plugin d'âge est activé |
| genre | objet | Sexe détecté. Retourner uniquement si le plugin de genre est activé |
| masque | objet | masque détecté. RETOUR UNIQUEMENT Si le plugin Face Mask est activé. |
| intégration | tableau | ENCHETS FACE. Retourner uniquement si le plugin de calculatrice est activé |
| boîte | objet | Liste des paramètres de la boîte de délimitation pour ce visage |
| probabilité | flotter | probabilité qu'un visage trouvé est en fait un visage |
| x_max, y_max, x_min, y_min | entier | coordonnées du cadre contenant le visage |
| repère | tableau | Liste des coordonnées du cadre contenant les marques faciales. Retour uniquement si le plugin de repères est activé |
| similarité | flotter | similitude entre ce visage et le visage sur l'image source |
| exécution_time | objet | Temps d'exécution de tous les plugins |
| Plugins_versions | objet | Contient des informations sur les versions du plugin |
Cette réponse JSON est désérialisée à l'objet de transfert de données FaceVerificationResponse (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; }
}
Classe 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; }
}
Les contributions font de la communauté open source un endroit aussi incroyable pour apprendre, inspirer et créer. Toutes les contributions que vous faites sont grandement appréciées.
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )Après avoir créé votre première demande de traction de contribution, vous recevrez une demande de signer notre accord de licence de contributeur en commentant votre demande de traction avec un message spécial.
Veuillez signaler les bogues ici.
Si vous signalez un bogue, veuillez spécifier:
La meilleure façon de nous envoyer des commentaires est de déposer un problème sur https://github.com/exadel-inc/compreface-net-sdk/issues.
Si vous proposez une fonctionnalité, s'il vous plaît:
Compreface .NET SDK est le SDK de reconnaissance faciale open source publié sous la licence Apache 2.0.