O SDK NET da Compreface facilita ainda mais o reconhecimento de face ao seu aplicativo.
Antes de usar nosso SDK, certifique -se de instalar o Compreface e o .NET em sua máquina.
| Versão compreface .NET SDK | Compreface 1.1.0 |
|---|---|
| 1.0.0 | |
| 1.0.1 | |
| 1.0.2 |
Explicação:
Para usar o pacote Nuget de instalação do SDK
Install-Package CompreFace.NET.Sdk
Todos os exemplos abaixo você pode encontrar no repositório dentro da pasta Exemplos. Além disso, você pode revisar o aplicativo de exemplo de reconhecimento. É um exemplo simples de uso da compra.
Para começar a usar o compreface .NET SDK, você precisa importar objeto CompreFace da dependência 'Compreface-SDK'.
Em seguida, você precisa criar um objeto CompreFaceClient e inicializá -lo com DOMAIN e PORT . Por padrão, se você executar o Compreface em sua máquina local, seu DOMAIN será http://localhost , e PORT nesse caso será 8000 . Você pode passar o objeto options opcionais quando o método de chamada para definir parâmetros padrão, consulte a referência para obter mais informações.
Você deve usar o Serviço de Serviço RecognitionService no objeto CompreFaceClient para reconhecer rostos.
No entanto, antes de reconhecer, você precisa primeiro adicionar assunto à coleção de rosto. Para fazer isso, obtenha o objeto Subject com a ajuda do RecognitionService . Subject está incluído na 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);
Aqui está um exemplo que mostra como adicionar uma imagem à sua coleção de rosto do seu sistema de arquivos:
var faceCollection = recognitionService.FaceCollection;
var request = new AddSubjectExampleRequestByFilePath()
{
DetProbThreShold = 0.81m,
Subject = "Subject name",
FilePath = "Full file path"
};
var response = await faceCollection.AddAsync(request);
Este snippet de código mostra como reconhecer o rosto desconhecido. Reconhecer rostos de uma determinada imagem
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);
O objeto Global Compreface é usado para inicializar a conexão para obter e definir valores padrão para opções. Os valores padrão serão usados em todos os métodos de serviço, se aplicável.
Construtor: CompreFaceClient(domain, port)
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| domínio | corda | obrigatório | Domínio com protocolo onde o Compreface está localizado. Por exemplo http://localhost |
| porta | corda | obrigatório | Porta compraface. Por exemplo, 8000 |
Exemplo:
var client = new CompreFaceClient(
domain: "http://localhost",
port: "8000");
client.GetCompreFaceService<RecognitionService>(apiKey)Inits Face Reconhecimento Objeto de Serviço.
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| APIKEY | corda | obrigatório | Chave da API de reconhecimento de rosto no formato UUID |
Exemplo:
var apiKey = "00000000-0000-0000-0000-000000000002";
var recognitionService = client.GetCompreFaceService<RecognitionService>(apiKey);
client.GetCompreFaceService<FaceDetectionService>(apiKey)Inits enfrentam objeto de serviço de detecção.
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| APIKEY | corda | obrigatório | Chave da API de detecção de rosto no formato UUID |
Exemplo:
var apiKey = "00000000-0000-0000-0000-000000000003";
var faceDetectionService = client.GetCompreFaceService<FaceDetectionService>(api_key);
client.GetCompreFaceService<FaceVerificationService>(apiKey)Inits enfrentam objeto de serviço de verificação.
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| APIKEY | corda | obrigatório | Chave da API de verificação do rosto no formato UUID |
Exemplo:
var apiKey = "00000000-0000-0000-0000-000000000004";
var faceVerificationService = client.GetCompreFaceService<FaceVerificationService>(api_key);
Todas as propriedades opcionais estão localizadas na 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; }
}
A classe BaseFaceRequest é herdada por várias classes DTO que são serializadas para solicitar formato.
Aqui está a descrição de como ele se parece no corpo do pedido.
| Opção | Tipo | Notas |
|---|---|---|
| det_prob_threshold | flutuador | A confiança mínima exigia que uma face reconhecida seja na verdade um rosto. O valor está entre 0,0 e 1,0 |
| limite | Inteiro | Número máximo de faces na imagem a ser reconhecida. Ele reconhece os maiores rostos primeiro. O valor de 0 não representa limite. Valor padrão: 0 |
| Prediction_Count | Inteiro | Número máximo de previsões de sujeitos por face. Ele retorna os assuntos mais semelhantes. Valor padrão: 1 |
| FACE_PLUGINS | corda | Lesmas de plugins face separadas por vírgula. Se vazio, nenhuma informação adicional é retornada. Saber mais |
| status | booleano | Se true incluir informações do sistema como Execution_time e Campos Plugin_version. O valor padrão é falso |
Exemplo de reconhecimento de rosto com objeto:
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);
O serviço de reconhecimento de rosto é usado para identificação de rosto. Isso significa que você primeiro precisa enviar rostos conhecidos para enfrentar a coleta e depois reconhecer rostos desconhecidos entre eles. Quando você carrega um rosto desconhecido, o serviço retorna as faces mais semelhantes a ele. Além disso, o Serviço de Reconhecimento Face suporta verificar terminal para verificar se essa pessoa da Coleção Face é a correta. Para obter mais informações, consulte a página Compreface.
Métodos:
Reconhece todas as faces da imagem. O primeiro argumento é o local da imagem, pode ser um URL, caminho local ou bytes.
await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest)
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| reconhecerequest | ReconhecerfaceFROMIMAGEREQUESTBYFILEPATH | obrigatório |
RecognizeFaceFromImageRequestByFilePath Este é o objeto de transferência de dados que é serializado para JSON.
public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest
{
public string FilePath { get; set; }
}
BaseRecognizeFaceFromImageRequest Class:
public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest
{
public int? PredictionCount { get; set; }
}
A classe BaseFaceRequest contém propriedades opcionais :
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; }
}
| Opção | Tipo | Notas |
|---|---|---|
| det_prob_threshold | flutuador | A confiança mínima exigia que uma face reconhecida seja na verdade um rosto. O valor está entre 0,0 e 1,0 |
| limite | Inteiro | Número máximo de faces na imagem a ser reconhecida. Ele reconhece os maiores rostos primeiro. O valor de 0 não representa limite. Valor padrão: 0 |
| Prediction_Count | Inteiro | Número máximo de previsões de sujeitos por face. Ele retorna os assuntos mais semelhantes. Valor padrão: 1 |
| FACE_PLUGINS | corda | Lesmas de plugins face separadas por vírgula. Se vazio, nenhuma informação adicional é retornada. Saber mais |
| status | booleano | Se true incluir informações do sistema como Execution_time e Campos Plugin_version. O valor padrão é falso |
Resposta da API da 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"
}
}
| Elemento | Tipo | Descrição |
|---|---|---|
| idade | objeto | faixa etária detectada. Retorne apenas se o plug -in de idade estiver ativado |
| gênero | objeto | gênero detectado. Retorne apenas se o plug -in de gênero estiver ativado |
| máscara | objeto | máscara detectada. Retorne apenas se o plug -in de máscara facial estiver ativado. |
| incorporação | variedade | Face incorporados. Retorne apenas se o plug -in da calculadora estiver ativado |
| caixa | objeto | Lista de parâmetros da caixa delimitadora para esta face |
| probabilidade | flutuador | probabilidade de que um rosto encontrado seja realmente um rosto |
| x_max, y_max, x_min, y_min | Inteiro | coordenadas do quadro contendo o rosto |
| marcos | variedade | Lista das coordenadas do quadro que contêm as marcas de face. |
| assuntos | lista | Lista de assuntos semelhantes com tamanho de <Prediction_Count> por similaridade |
| semelhança | flutuador | similaridade que nessa imagem previa pessoa |
| assunto | corda | nome do assunto na coleção de rosto |
| Execution_time | objeto | Tempo de execução de todos os plugins |
| plugins_versions | objeto | Contém informações sobre versões do plug -in |
Essa resposta JSON é desapealizada para RecognizeFaceFromImageResponse Data Transfer Object (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; }
}
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);
Compara semelhanças da imagem determinada com a imagem da sua coleção de rosto.
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | Verifique se os raciocratos de referência | obrigatório |
VerifyFacesFromImageRequest se é o objeto de transferência de dados que é serializado para JSON.
public class VerifyFacesFromImageRequest : BaseVerifyFacesFromImageRequest
{
public string FilePath { get; set; }
}
BaseVerifyFacesFromImageRequest CLASS:
public class BaseVerifyFacesFromImageRequest : BaseFaceRequest
{
public Guid ImageId { get; set; }
}
A classe BaseFaceRequest contém propriedades opcionais :
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Opção | Tipo | Notas |
|---|---|---|
| det_prob_threshold | flutuador | A confiança mínima exigia que uma face reconhecida seja na verdade um rosto. O valor está entre 0,0 e 1,0 |
| limite | Inteiro | Número máximo de faces na imagem a ser reconhecida. Ele reconhece os maiores rostos primeiro. O valor de 0 não representa limite. Valor padrão: 0 |
| Prediction_Count | Inteiro | Número máximo de previsões de sujeitos por face. Ele retorna os assuntos mais semelhantes. Valor padrão: 1 |
| FACE_PLUGINS | corda | Lesmas de plugins face separadas por vírgula. Se vazio, nenhuma informação adicional é retornada. Saber mais |
| status | booleano | Se true incluir informações do sistema como Execution_time e Campos Plugin_version. O valor padrão é falso |
Resposta:
{
"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 "
}
}| Elemento | Tipo | Descrição |
|---|---|---|
| idade | objeto | faixa etária detectada. Retorne apenas se o plug -in de idade estiver ativado |
| gênero | objeto | gênero detectado. Retorne apenas se o plug -in de gênero estiver ativado |
| máscara | objeto | máscara detectada. Retorne apenas se o plug -in de máscara facial estiver ativado. |
| incorporação | variedade | Face incorporados. Retorne apenas se o plug -in da calculadora estiver ativado |
| caixa | objeto | Lista de parâmetros da caixa delimitadora para esta face |
| probabilidade | flutuador | probabilidade de que um rosto encontrado seja realmente um rosto |
| x_max, y_max, x_min, y_min | Inteiro | coordenadas do quadro contendo o rosto |
| marcos | variedade | Lista das coordenadas do quadro que contêm as marcas de face. Retorne apenas se o plug -in de marcos estiver ativado |
| semelhança | flutuador | similaridade que nessa imagem previa pessoa |
| Execution_time | objeto | Tempo de execução de todos os plugins |
| plugins_versions | objeto | Contém informações sobre versões do plug -in |
Essa resposta JSON é desapealizada para VerifyFacesFromImageResponse o Objeto de Transferência de Dados (DTO) de Transferência de Dados (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 de 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
Retorna objeto de coleta de rosto
A coleta de rosto pode ser usada para gerenciar rostos conhecidos, por exemplo, add, listar ou excluí -los.
O reconhecimento de rosto é realizado para os rostos conhecidos salvos na coleta de rosto; portanto, antes de usar o método recognize , você precisa salvar pelo menos uma face na coleta de rosto.
Mais informações sobre a coleta de rosto e gerenciamento de exemplos aqui
Métodos:
Isso cria um exemplo do assunto salvando imagens. Você pode adicionar quantas imagens deseja treinar o sistema. A imagem deve conter apenas um rosto.
await recognitionService.FaceCollection.AddAsync(request);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | AddSubjectExamplerequestbyFilePath | obrigatório |
AddSubjectExampleRequestByFilePath Este é o objeto de transferência de dados que é serializado para JSON.
public class AddSubjectExampleRequestByFilePath : BaseExampleRequest
{
public string FilePath { get; set; }
}
BaseExampleRequest Class:
namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs
{
public class BaseExampleRequest
{
public string Subject { get; set; }
public decimal? DetProbThreShold { get; set; }
}
}
| Opção | Tipo | Notas |
|---|---|---|
| det_prob_threshold | flutuador | A confiança mínima exigia que uma face reconhecida seja na verdade um rosto. O valor está entre 0,0 e 1,0 |
DetProbThreShold é uma propriedade opcional.
Resposta:
{
"image_id": "6b135f5b-a365-4522-b1f1-4c9ac2dd0728",
"subject": "SubjectName"
}
| Elemento | Tipo | Descrição |
|---|---|---|
| image_id | Uuid | Uuid de imagem carregada |
| assunto | corda | Assunto da imagem salva |
Essa resposta JSON é desserializada para AddSubjectExampleResponse Data Transfer Object (DTO).
public class AddSubjectExampleResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Para recuperar uma lista de assuntos salvos em uma coleção de rosto:
await recognitionService.FaceCollection.ListAsync(request);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | ListAllSubjectExampleSequest | obrigatório |
ListAllSubjectExamplesRequest Este é o objeto de transferência de dados que é serializado para JSON.
public class ListAllSubjectExamplesRequest
{
public int? Page { get; set; }
public int? Size { get; set; }
public string Subject { get; set; }
}
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| Página | int | opcional | Número da página de exemplos para retornar. Pode ser usado para paginação. O valor padrão é 0. Desde 0,6 versão. |
| Tamanho | int | opcional | Faces na página (tamanho da página). Pode ser usado para paginação. O valor padrão é 20. Desde 0,6 versão. |
| Assunto | int | opcional | Que fim de extremidade do assunto deve retornar. Se vazio, retorne exemplos para todos os sujeitos. Desde a versão 1.0 |
Resposta:
{
"faces": [
{
"image_id": <image_id>,
"subject": <subject>
},
...
]
}
| Elemento | Tipo | Descrição |
|---|---|---|
| image_id | Uuid | Uuid do rosto |
| assunto | corda | da pessoa, cuja imagem foi salva para esta chave da API |
Essa resposta JSON é desapealizada para ListAllSubjectExamplesResponse Transfer FRANSTIFICAÇÃO (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; }
}
Para excluir todos os exemplos de imagem do:
recognitionService.FaceCollection.DeleteAllAsync(request);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | DeLeTealLexampleSequest | obrigatório |
DeleteAllExamplesRequest Este é o objeto de transferência de dados que é serializado para JSON.
public class DeleteMultipleExampleRequest
{
public IList<Guid> ImageIdList { get; set; }
}
Resposta:
{
"deleted": <count>
}
| Elemento | Tipo | Descrição |
|---|---|---|
| excluído | Inteiro | Número de rostos excluídos |
Essa resposta JSON é desapealizada para DeleteMultipleExamplesResponse Transfer FRANSFERTE (DTTO).
public class DeleteMultipleExamplesResponse
{
public IList<Face> Faces { get; set; }
}
Para excluir uma imagem por id:
await recognitionService.FaceCollection.DeleteAsync(request);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | DeleteImageByidRequest | obrigatório |
DeleteImageByIdRequest Este é o objeto de transferência de dados que é serializado para JSON.
public class DeleteImageByIdRequest
{
public Guid ImageId { get; set; }
}
Resposta:
{
"image_id": <image_id>,
"subject": <subject>
}
| Elemento | Tipo | Descrição |
|---|---|---|
| image_id | Uuid | Uuid do rosto removido |
| assunto | corda | da pessoa, cuja imagem foi salva para esta chave da API |
Essa resposta JSON é desapealizada para DeleteImageByIdResponse Data Transfer Object (DTO).
public class DeleteImageByIdResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Para baixar uma imagem por id:
await recognitionService.FaceCollection.DownloadAsync(downloadImageByIdRequest);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | DownloadImageByIdDDirectlyRequest | obrigatório |
DownloadImageByIdDirectlyRequest Este é o objeto de transferência de dados que é serializado para JSON.
public class DownloadImageByIdDirectlyRequest
{
public Guid ImageId { get; set; }
public Guid RecognitionApiKey { get; set; }
}
O corpo de resposta é uma imagem binária. Bytes vazios se a imagem não encontrada.
since 0.6 version
Para baixar um exemplo de imagem do assunto por id:
await recognitionService.FaceCollection.DownloadAsync(downloadImageBySubjectIdRequest);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | DownloadImageByIdFromSubJectreQuest | obrigatório |
DownloadImageByIdFromSubjectRequest
public class DownloadImageByIdFromSubjectRequest
{
public Guid ImageId { get; set; }
}
O corpo de resposta é uma imagem binária. Bytes vazios se a imagem não encontrada.
recognitionService.Subject
Retornos objeto Objeto Objeto Objeto permite trabalhar diretamente com assuntos (não através de exemplos de assuntos). Mais informações sobre assuntos aqui
Métodos:
Crie um novo assunto na coleção de rosto.
await recognitionService.Subject.AddAsync(request);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | AddSubjectionequest | obrigatório |
AddSubjectRequest Este é o objeto de transferência de dados que é serializado para JSON.
public class AddSubjectRequest
{
public string Subject { get; set; }
}
Resposta:
{
"subject" : " subject1 "
}| Elemento | Tipo | Descrição |
|---|---|---|
| assunto | corda | é o nome do assunto |
Essa resposta JSON é desapealizada para AddSubjectResponse Data Transfer Object (DTO).
public class AddSubjectResponse
{
public string Subject { get; set; }
}
Retorna todos os assuntos relacionados à coleta de rosto.
await recognitionService.Subject.ListAsync();
Resposta:
{
"subjects" : [
" <subject_name1> " ,
" <subject_name2> "
]
}| Elemento | Tipo | Descrição |
|---|---|---|
| assuntos | variedade | A lista de assuntos na coleção de rosto |
Essa resposta JSON é desapealizada para GetAllSubjectResponse o objeto de transferência de dados (DTO).
public class GetAllSubjectResponse
{
public IList<string> Subjects { get; set; }
}
Renomear o assunto existente. Se já existir um novo nome de assunto, os sujeitos serão mesclados - todos os rostos do nome antigo do assunto serão transferidos para o assunto com o novo nome, o assunto antigo removido.
await recognitionService.Subject.RenameAsync(request);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | Renamesubjectionequest | obrigatório |
RenameSubjectRequest Este é o objeto de transferência de dados que é serializado para JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Resposta:
{
"updated" : " true|false "
}| Elemento | Tipo | Descrição |
|---|---|---|
| atualizado | booleano | falhou ou sucesso |
Essa resposta JSON é desapealizada para RenameSubjectResponse Data Transfer Data (DTO).
public class RenameSubjectResponse
{
public bool Updated { get; set; }
}
Exclua o assunto existente e todos os rostos salvos.
await recognitionService.Subject.DeleteAsync(request);
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | Deletesubjectrequest | obrigatório |
DeleteSubjectRequest Este é o objeto de transferência de dados que é serializado para JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Resposta:
{
"subject" : " subject1 "
}| Elemento | Tipo | Descrição |
|---|---|---|
| assunto | corda | é o nome do assunto |
Essa resposta JSON é desapealizada para deletar o objeto de transferência de dados (DTO) DeleteSubjectResponse .
public class DeleteSubjectResponse
{
public string Subject { get; set; }
}
Exclua todos os assuntos existentes e todos os rostos salvos.
await recognitionService.Subject.DeleteAllAsync();
Resposta:
{
"deleted" : " <count> "
}| Elemento | Tipo | Descrição |
|---|---|---|
| excluído | Inteiro | Número de assuntos excluídos |
Essa resposta JSON é desapealizada para DeleteAllSubjectsResponse Data Transfer Object (DTO).
public class DeleteAllSubjectsResponse
{
public int Deleted { get; set; }
}
O serviço de detecção de rosto é usado para detectar faces na imagem.
Métodos:
await faceDetectionService.DetectAsync(request);
Encontra todas as faces na imagem.
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | FACEDETECTIONREQUESTBYFILEPATH | obrigatório |
FaceDetectionRequestByFilePath Este é o objeto de transferência de dados que é serializado para JSON.
public class FaceDetectionRequestByFilePath : BaseFaceRequest
{
public string FilePath { get; set; }
}
A classe BaseFaceRequest contém propriedades opcionais :
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Opção | Tipo | Notas |
|---|---|---|
| det_prob_threshold | flutuador | A confiança mínima exigia que uma face reconhecida seja na verdade um rosto. O valor está entre 0,0 e 1,0 |
| limite | Inteiro | Número máximo de faces na imagem a ser reconhecida. Ele reconhece os maiores rostos primeiro. O valor de 0 não representa limite. Valor padrão: 0 |
| Prediction_Count | Inteiro | Número máximo de previsões de sujeitos por face. Ele retorna os assuntos mais semelhantes. Valor padrão: 1 |
| FACE_PLUGINS | corda | Lesmas de plugins face separadas por vírgula. Se vazio, nenhuma informação adicional é retornada. Saber mais |
| status | booleano | Se true incluir informações do sistema como Execution_time e Campos Plugin_version. O valor padrão é falso |
Resposta:
{
"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 "
}
}| Elemento | Tipo | Descrição |
|---|---|---|
| idade | objeto | faixa etária detectada. Retorne apenas se o plug -in de idade estiver ativado |
| gênero | objeto | gênero detectado. Retorne apenas se o plug -in de gênero estiver ativado |
| máscara | objeto | máscara detectada. Retorne apenas se o plug -in de máscara facial estiver ativado. |
| incorporação | variedade | Face incorporados. Retorne apenas se o plug -in da calculadora estiver ativado |
| caixa | objeto | Lista de parâmetros da caixa delimitadora para esta face (no ProcessEdImage) |
| probabilidade | flutuador | Probabilidade de que um rosto encontrado seja realmente um rosto (no ProcessEdImage) |
| x_max, y_max, x_min, y_min | Inteiro | Coordenadas do quadro que contêm a face (no ProcessEdImage) |
| marcos | variedade | Lista das coordenadas do quadro que contêm as marcas de face. Retorne apenas se o plug -in de marcos estiver ativado |
| Execution_time | objeto | Tempo de execução de todos os plugins |
| plugins_versions | objeto | Contém informações sobre versões do plug -in |
Essa resposta JSON é desapealizada para o Objeto de Transferência de Dados (DTO) FaceDetectionResponse .
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; }
}
O serviço de verificação de rosto é usado para comparar duas imagens. Uma imagem de origem deve conter apenas uma face que será comparada a todas as faces na imagem de destino.
Métodos:
await faceVerificationService.VerifyAsync(request);
Compara duas imagens fornecidas em argumentos. A imagem de origem deve conter apenas uma face, ela será comparada a todas as faces na imagem de destino.
| Argumento | Tipo | Obrigatório | Notas |
|---|---|---|---|
| solicitar | FACEVERIFICAÇÃO REQUERNA -FILFILEPATH | obrigatório |
FaceVerificationRequestByFilePath Este é o objeto de transferência de dados que é serializado para JSON.
public class FaceVerificationRequestByFilePath : BaseFaceRequest
{
public string SourceImageFilePath { get; set; }
public string TargetImageFilePath { get; set; }
}
A classe BaseFaceRequest contém propriedades opcionais :
public class BaseFaceRequest
{
public int? Limit { get; set; }
public decimal DetProbThreshold { get; set; }
public IList<string> FacePlugins { get; set; }
public bool Status { get; set; }
}
| Opção | Tipo | Notas |
|---|---|---|
| det_prob_threshold | flutuador | A confiança mínima exigia que uma face reconhecida seja na verdade um rosto. O valor está entre 0,0 e 1,0 |
| limite | Inteiro | Número máximo de faces na imagem a ser reconhecida. Ele reconhece os maiores rostos primeiro. O valor de 0 não representa limite. Valor padrão: 0 |
| Prediction_Count | Inteiro | Número máximo de previsões de sujeitos por face. Ele retorna os assuntos mais semelhantes. Valor padrão: 1 |
| FACE_PLUGINS | corda | Lesmas de plugins face separadas por vírgula. Se vazio, nenhuma informação adicional é retornada. Saber mais |
| status | booleano | Se true incluir informações do sistema como Execution_time e Campos Plugin_version. O valor padrão é falso |
Resposta:
{
"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 "
}
}]
}| Elemento | Tipo | Descrição |
|---|---|---|
| fonte_image_face | objeto | Informações adicionais sobre a face da imagem de origem |
| face_matches | variedade | resultado de verificação de face |
| idade | objeto | faixa etária detectada. Retorne apenas se o plug -in de idade estiver ativado |
| gênero | objeto | gênero detectado. Retorne apenas se o plug -in de gênero estiver ativado |
| máscara | objeto | máscara detectada. Retorne apenas se o plug -in de máscara facial estiver ativado. |
| incorporação | variedade | Face incorporados. Retorne apenas se o plug -in da calculadora estiver ativado |
| caixa | objeto | Lista de parâmetros da caixa delimitadora para esta face |
| probabilidade | flutuador | probabilidade de que um rosto encontrado seja realmente um rosto |
| x_max, y_max, x_min, y_min | Inteiro | coordenadas do quadro contendo o rosto |
| marcos | variedade | Lista das coordenadas do quadro que contêm as marcas de face. Retorne apenas se o plug -in de marcos estiver ativado |
| semelhança | flutuador | similaridade entre esse rosto e o rosto na imagem de origem |
| Execution_time | objeto | Tempo de execução de todos os plugins |
| plugins_versions | objeto | Contém informações sobre versões do plug -in |
Essa resposta JSON é desserializada para o Objeto de Transferência de Dados 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; }
}
As contribuições são o que tornam a comunidade de código aberto um lugar tão incrível para aprender, inspirar e criar. Quaisquer contribuições que você faz são muito apreciadas.
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )Depois de criar sua primeira solicitação de tração contribuinte, você receberá uma solicitação para assinar nosso contrato de licença de colaborador comentando sua solicitação de tração com uma mensagem especial.
Por favor, relate todos os bugs aqui.
Se você estiver relatando um bug, especifique:
A melhor maneira de nos enviar feedback é arquivar um problema em https://github.com/exadel-inc/compreface-net-sdk/issues.
Se você estiver propondo um recurso, por favor:
O Compreface .NET SDK é o SDK de reconhecimento facial de código aberto liberado sob a licença Apache 2.0.