Compreface Net SDK делает распознавание лица в вашем приложении еще проще.
Перед использованием нашего SDK убедитесь, что вы установили Compreface и .net на вашем компьютере.
| Compreface .net SDK версия | Compreface 1.1.0 |
|---|---|
| 1.0.0 | |
| 1.0.1 | |
| 1.0.2 |
Объяснение:
Чтобы использовать SDK Install Nuget Package
Install-Package CompreFace.NET.Sdk
Все примеры ниже вы можете найти в репозитории внутри примеров папки. Также вы можете просмотреть пример примера распознавания. Это простой пример использования Compreface.
Для начала использования Compreface .net SDK вам необходимо импортировать объект CompreFace из зависимости «compreface-sdk».
Затем вам нужно создать объект CompreFaceClient и инициализировать его с помощью DOMAIN и PORT . По умолчанию, если вы запустите Compreface на своей локальной машине, его DOMAIN будет http://localhost , а PORT в этом случае будет 8000 . Вы можете передавать необязательный объект options , когда метод вызова для установки параметров по умолчанию см. В справочнике для получения дополнительной информации.
Вы должны использовать службу RecognitionService в объекте CompreFaceClient для распознавания лиц.
Однако, прежде чем распознавать, вам нужно сначала добавить тему в коллекцию лица. Чтобы сделать это, получите объект Subject с помощью RecognitionService . Subject включен в класс 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);
Вот пример, который показывает, как добавить изображение в вашу коллекцию лиц из вашей файловой системы:
var faceCollection = recognitionService.FaceCollection;
var request = new AddSubjectExampleRequestByFilePath()
{
DetProbThreShold = 0.81m,
Subject = "Subject name",
FilePath = "Full file path"
};
var response = await faceCollection.AddAsync(request);
Этот фрагмент кода показывает, как распознать неизвестное лицо. Распознавать лица с данного изображения
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);
Глобальный объект Compreface используется для инициализации подключения к Compreface и настройке значений по умолчанию для параметров. Значения по умолчанию будут использоваться в каждом методе обслуживания, если применимо.
Конструктор: CompreFaceClient(domain, port)
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| домен | нить | необходимый | Домен с протоколом, где находится Compreface. Например http://localhost |
| порт | нить | необходимый | Compreface Port. Например, 8000 |
Пример:
var client = new CompreFaceClient(
domain: "http://localhost",
port: "8000");
client.GetCompreFaceService<RecognitionService>(apiKey)Inits лицом к службе распознавания.
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| apikey | нить | необходимый | Ключ API распознавания лица в формате UUID |
Пример:
var apiKey = "00000000-0000-0000-0000-000000000002";
var recognitionService = client.GetCompreFaceService<RecognitionService>(apiKey);
client.GetCompreFaceService<FaceDetectionService>(apiKey)Inits Come Decoted Service объект.
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| apikey | нить | необходимый | Ключ API обнаружения лица в формате UUID |
Пример:
var apiKey = "00000000-0000-0000-0000-000000000003";
var faceDetectionService = client.GetCompreFaceService<FaceDetectionService>(api_key);
client.GetCompreFaceService<FaceVerificationService>(apiKey)Inits Come Verification Service объект.
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| apikey | нить | необходимый | Ключ API проверки лица в формате UUID |
Пример:
var apiKey = "00000000-0000-0000-0000-000000000004";
var faceVerificationService = client.GetCompreFaceService<FaceVerificationService>(api_key);
Все дополнительные свойства расположены в классе 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; }
}
Класс BaseFaceRequest унаследован несколькими классами DTO, которые сериализованы для запроса формата.
Вот описание, как это выглядит в теле запроса.
| Вариант | Тип | Примечания |
|---|---|---|
| det_prob_threshold | плавать | Минимальная необходимая уверенность в том, что признанное лицо на самом деле является лицом. Значение составляет от 0,0 до 1,0 |
| предел | целое число | Максимальное количество лиц на изображении, которые будут распознаны. В первую очередь он распознает самые большие лица. Значение 0 не представляет предела. Значение по умолчанию: 0 |
| прогнозирование_Конта | целое число | Максимальное количество предыдущих прогнозов на лицо. Он возвращает самые похожие предметы. Значение по умолчанию: 1 |
| face_plugins | нить | Запятые, разделенные слизняками плагинов лица. Если пуст, дополнительная информация не возвращается. Узнать больше |
| статус | логический | Если True включает в себя системную информацию, такую как execution_time и плагин_версионные поля. Значение по умолчанию неверно |
Пример распознавания лица с объектом:
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);
Служба распознавания лица используется для идентификации лица. Это означает, что вам сначала нужно загрузить известные лица, чтобы столкнуться с коллекцией, а затем распознать неизвестные лица среди них. Когда вы загружаете неизвестное лицо, сервис возвращает наиболее похожие лица. Кроме того, служба распознавания лица поддерживает проверку конечной точки, чтобы проверить, является ли этот человек из коллекции лица правильным. Для получения дополнительной информации см. Страницу Compreface.
Методы:
Распознает все лица из изображения. Первым аргументом является местоположение изображения, это может быть URL, локальный путь или байты.
await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest)
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| Признание | Распознавание facefromimagerequestbyfilepath | необходимый |
RecognizeFaceFromImageRequestByFilePath Это объект передачи данных, который сериализован на JSON.
public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest
{
public string FilePath { get; set; }
}
BaseRecognizeFaceFromImageRequest CLASS:
public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest
{
public int? PredictionCount { get; set; }
}
Class BaseFaceRequest содержит дополнительные свойства:
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; }
}
| Вариант | Тип | Примечания |
|---|---|---|
| det_prob_threshold | плавать | Минимальная необходимая уверенность в том, что признанное лицо на самом деле является лицом. Значение составляет от 0,0 до 1,0 |
| предел | целое число | Максимальное количество лиц на изображении, которые будут распознаны. В первую очередь он распознает самые большие лица. Значение 0 не представляет предела. Значение по умолчанию: 0 |
| прогнозирование_Конта | целое число | Максимальное количество предыдущих прогнозов на лицо. Он возвращает самые похожие предметы. Значение по умолчанию: 1 |
| face_plugins | нить | Запятые, разделенные слизняками плагинов лица. Если пуст, дополнительная информация не возвращается. Узнать больше |
| статус | логический | Если True включает в себя системную информацию, такую как execution_time и плагин_версионные поля. Значение по умолчанию неверно |
Ответ от 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"
}
}
| Элемент | Тип | Описание |
|---|---|---|
| возраст | объект | Обнаруженный возрастной диапазон. Вернуть только в том случае, если включен возрастной плагин |
| пол | объект | обнаружен пол. Вернуть только в том случае, если гендерный плагин включен |
| маска | объект | обнаруженная маска. Верните только в том случае, если плагин маски для лица включен. |
| внедрение | множество | Лицо вторжения. Вернуть только в том случае, если плагин калькулятора включен |
| коробка | объект | Список параметров ограничивающей коробки для этого лица |
| вероятность | плавать | вероятность того, что найденное лицо на самом деле является лицом |
| x_max, y_max, x_min, y_min | целое число | координаты рамы, содержащей лицо |
| достопримечательности | множество | Список координат кадры, содержащих лицо лицевой стороны. |
| субъекты | список | Список подобных субъектов с размером <прогнозирование_Конта> порядок по сходству |
| сходство | плавать | сходство, которое на этом изображении предсказал человек |
| предмет | нить | Название предмета в коллекции лица |
| execution_time | объект | Время выполнения всех плагинов |
| plugins_versions | объект | Содержит информацию о версиях плагина |
Этот ответ JSON DeSerialized для RecognizeFaceFromImageResponse Data Data Data Data (DTO).
public class RecognizeFaceFromImageResponse
{
public IList<Result> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
public class Result : BaseResult
{
public IList<SimilarSubject> Subjects { get; set; }
}
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);
Сравнивает сходство данного изображения с изображением из вашей коллекции лица.
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | Проверьтефакс -фромагерекест | необходимый |
VerifyFacesFromImageRequest Это объект передачи данных, который сериализуется на JSON.
public class VerifyFacesFromImageRequest : BaseVerifyFacesFromImageRequest
{
public string FilePath { get; set; }
}
BaseVerifyFacesFromImageRequest от класса:
public class BaseVerifyFacesFromImageRequest : BaseFaceRequest
{
public Guid ImageId { get; set; }
}
Class 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; }
}
| Вариант | Тип | Примечания |
|---|---|---|
| det_prob_threshold | плавать | Минимальная необходимая уверенность в том, что признанное лицо на самом деле является лицом. Значение составляет от 0,0 до 1,0 |
| предел | целое число | Максимальное количество лиц на изображении, которые будут распознаны. В первую очередь он распознает самые большие лица. Значение 0 не представляет предела. Значение по умолчанию: 0 |
| прогнозирование_Конта | целое число | Максимальное количество предыдущих прогнозов на лицо. Он возвращает самые похожие предметы. Значение по умолчанию: 1 |
| face_plugins | нить | Запятые, разделенные слизняками плагинов лица. Если пуст, дополнительная информация не возвращается. Узнать больше |
| статус | логический | Если True включает в себя системную информацию, такую как execution_time и плагин_версионные поля. Значение по умолчанию неверно |
Ответ:
{
"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 "
}
}| Элемент | Тип | Описание |
|---|---|---|
| возраст | объект | Обнаруженный возрастной диапазон. Вернуть только в том случае, если включен возрастной плагин |
| пол | объект | обнаружен пол. Вернуть только в том случае, если гендерный плагин включен |
| маска | объект | обнаруженная маска. Верните только в том случае, если плагин маски для лица включен. |
| внедрение | множество | Лицо вторжения. Вернуть только в том случае, если плагин калькулятора включен |
| коробка | объект | Список параметров ограничивающей коробки для этого лица |
| вероятность | плавать | вероятность того, что найденное лицо на самом деле является лицом |
| x_max, y_max, x_min, y_min | целое число | координаты рамы, содержащей лицо |
| достопримечательности | множество | Список координат кадры, содержащих лицо лицевой стороны. Вернуть только в том случае, если плагин достопримечательностей включен |
| сходство | плавать | сходство, которое на этом изображении предсказал человек |
| execution_time | объект | Время выполнения всех плагинов |
| plugins_versions | объект | Содержит информацию о версиях плагина |
Этот ответ JSON дезиализован, чтобы VerifyFacesFromImageResponse функции FaceCaseFormAgerSponse Data Data Goble (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; }
}
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; }
}
Класс 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
Возвращает объект коллекции лица
Коллекция лица может быть использована для управления известными лицами, например, добавить, список или удаление их.
Распознавание лица выполняется для сохраненных известных лиц в коллекции лица, поэтому перед использованием метода recognize вам нужно сохранить хотя бы одно лицо в коллекцию лица.
Более подробная информация о сборе лица и управлении примерами здесь
Методы:
Это создает пример предмета, сохраняя изображения. Вы можете добавить столько изображений, сколько хотите обучить систему. Изображение должно содержать только одно лицо.
await recognitionService.FaceCollection.AddAsync(request);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | AddsubjectExamplerequestbyfilepath | необходимый |
AddSubjectExampleRequestByFilePath Это объект передачи данных, который сериализован на 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; }
}
}
| Вариант | Тип | Примечания |
|---|---|---|
| det_prob_threshold | плавать | Минимальная необходимая уверенность в том, что признанное лицо на самом деле является лицом. Значение составляет от 0,0 до 1,0 |
DetProbThreShold является дополнительным свойством.
Ответ:
{
"image_id": "6b135f5b-a365-4522-b1f1-4c9ac2dd0728",
"subject": "SubjectName"
}
| Элемент | Тип | Описание |
|---|---|---|
| image_id | Uuid | Uuid загруженного изображения |
| предмет | нить | Предмет сохраненного изображения |
Этот ответ JSON DeSerialized для объекта передачи данных AddSubjectExampleResponse (DTO).
public class AddSubjectExampleResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Чтобы получить список предметов, сохраненных в коллекции лица:
await recognitionService.FaceCollection.ListAsync(request);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | ListallSubjectExamplesRequest | необходимый |
ListAllSubjectExamplesRequest Это объект передачи данных, который сериализован на JSON.
public class ListAllSubjectExamplesRequest
{
public int? Page { get; set; }
public int? Size { get; set; }
public string Subject { get; set; }
}
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| Страница | инт | необязательный | Страница номер примеров для возврата. Можно использовать для страниц. Значение по умолчанию составляет 0. с 0,6 версии. |
| Размер | инт | необязательный | Лица на странице (размер страницы). Можно использовать для страниц. Значение по умолчанию составляет 20. С 0,6 версии. |
| Предмет | инт | необязательный | Какой предмет примеров конечная точка должна вернуться. Если пустые, верните примеры для всех предметов. С 1,0 версии |
Ответ:
{
"faces": [
{
"image_id": <image_id>,
"subject": <subject>
},
...
]
}
| Элемент | Тип | Описание |
|---|---|---|
| image_id | Uuid | Нанесение лица |
| предмет | нить | человека, чья картина была сохранена для этого ключа API |
Этот ответ JSON детериализирован для ListAllSubjectExamplesResponse Data Data Data Datable (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; }
}
Класс Face :
public class Face
{
public Guid ImageId { get; set; }
public string Subject{ get; set; }
}
Чтобы удалить все примеры изображения:
recognitionService.FaceCollection.DeleteAllAsync(request);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | DeleteallexamplesRequest | необходимый |
DeleteAllExamplesRequest Это объект передачи данных, который сериализован на JSON.
public class DeleteMultipleExampleRequest
{
public IList<Guid> ImageIdList { get; set; }
}
Ответ:
{
"deleted": <count>
}
| Элемент | Тип | Описание |
|---|---|---|
| удален | целое число | Количество удаленных лиц |
Этот ответ JSON DeSerialized для DeleteMultipleExamplesResponse Data Data Data Cobve (DTO).
public class DeleteMultipleExamplesResponse
{
public IList<Face> Faces { get; set; }
}
Чтобы удалить изображение по ID:
await recognitionService.FaceCollection.DeleteAsync(request);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | DeleteImageByIdrequest | необходимый |
DeleteImageByIdRequest Это объект передачи данных, который сериализован на JSON.
public class DeleteImageByIdRequest
{
public Guid ImageId { get; set; }
}
Ответ:
{
"image_id": <image_id>,
"subject": <subject>
}
| Элемент | Тип | Описание |
|---|---|---|
| image_id | Uuid | Uuid снятого лица |
| предмет | нить | человека, чья картина была сохранена для этого ключа API |
Этот ответ JSON DeSerialized для DeleteImageByIdResponse Data Data Data Object (DTO).
public class DeleteImageByIdResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
Чтобы загрузить изображение по id:
await recognitionService.FaceCollection.DownloadAsync(downloadImageByIdRequest);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | Скачать ImationByIdDirectlyRequest | необходимый |
DownloadImageByIdDirectlyRequest Это объект передачи данных, который сериализован на JSON.
public class DownloadImageByIdDirectlyRequest
{
public Guid ImageId { get; set; }
public Guid RecognitionApiKey { get; set; }
}
Тело ответа - бинарное изображение. Пустые байты, если изображение не найдено.
since 0.6 version
Чтобы загрузить пример изображения предмета по ID:
await recognitionService.FaceCollection.DownloadAsync(downloadImageBySubjectIdRequest);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | Скачать iMageByIdFromSubJectRectest | необходимый |
DownloadImageByIdFromSubjectRequest Это объект передачи данных, который сериализован на JSON.
public class DownloadImageByIdFromSubjectRequest
{
public Guid ImageId { get; set; }
}
Тело ответа - бинарное изображение. Пустые байты, если изображение не найдено.
recognitionService.Subject
Возвращает объект субъектов Объект субъектов позволяет напрямую работать с субъектами (не через примеры субъектов). Более подробная информация о предметах здесь
Методы:
Создайте новый предмет в коллекции лица.
await recognitionService.Subject.AddAsync(request);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | Addsubjectrecest | необходимый |
AddSubjectRequest Это объект передачи данных, который сериализован на JSON.
public class AddSubjectRequest
{
public string Subject { get; set; }
}
Ответ:
{
"subject" : " subject1 "
}| Элемент | Тип | Описание |
|---|---|---|
| предмет | нить | Имя субъекта |
Этот ответ JSON поясняется для объекта передачи данных AddSubjectResponse (DTO).
public class AddSubjectResponse
{
public string Subject { get; set; }
}
Возвращает весь предмет, связанный с коллекцией лица.
await recognitionService.Subject.ListAsync();
Ответ:
{
"subjects" : [
" <subject_name1> " ,
" <subject_name2> "
]
}| Элемент | Тип | Описание |
|---|---|---|
| субъекты | множество | Список предметов в коллекции лица |
Этот ответ JSON DeSerialized для GetAllSubjectResponse Data Data Data Data Cobve (DTO).
public class GetAllSubjectResponse
{
public IList<string> Subjects { get; set; }
}
Переименовать существующую субъект. Если новое название темы уже существует, предметы объединяются - все лица от старого имени темы переназначены в предмет с новым именем, старая тема удалена.
await recognitionService.Subject.RenameAsync(request);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | RENAMESUBJECTERTEST | необходимый |
RenameSubjectRequest Это объект передачи данных, который сериализован на JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Ответ:
{
"updated" : " true|false "
}| Элемент | Тип | Описание |
|---|---|---|
| Обновлено | логический | неудача или успех |
Этот ответ JSON детериализируется на объект передачи данных RenameSubjectResponse (DTO).
public class RenameSubjectResponse
{
public bool Updated { get; set; }
}
Удалить существующий предмет и все сохраненные лица.
await recognitionService.Subject.DeleteAsync(request);
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | LetetEsubjectRectest | необходимый |
DeleteSubjectRequest Это объект передачи данных, который сериализован на JSON.
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
Ответ:
{
"subject" : " subject1 "
}| Элемент | Тип | Описание |
|---|---|---|
| предмет | нить | Имя субъекта |
Этот ответ JSON DeSerialized для DeleteSubjectResponse объекта передачи данных (DTO).
public class DeleteSubjectResponse
{
public string Subject { get; set; }
}
Удалить все существующие предметы и все сохраненные лица.
await recognitionService.Subject.DeleteAllAsync();
Ответ:
{
"deleted" : " <count> "
}| Элемент | Тип | Описание |
|---|---|---|
| удален | целое число | количество удаленных предметов |
Этот ответ JSON DeSerialized для объекта передачи данных DeleteAllSubjectsResponse (DTO).
public class DeleteAllSubjectsResponse
{
public int Deleted { get; set; }
}
Служба обнаружения лица используется для обнаружения лиц на изображении.
Методы:
await faceDetectionService.DetectAsync(request);
Находит все лица на изображении.
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | FacEdetectionRequestbyFilePath | необходимый |
FaceDetectionRequestByFilePath Это объект передачи данных, который сериализуется на JSON.
public class FaceDetectionRequestByFilePath : BaseFaceRequest
{
public string FilePath { get; set; }
}
Class 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; }
}
| Вариант | Тип | Примечания |
|---|---|---|
| det_prob_threshold | плавать | Минимальная необходимая уверенность в том, что признанное лицо на самом деле является лицом. Значение составляет от 0,0 до 1,0 |
| предел | целое число | Максимальное количество лиц на изображении, которые будут распознаны. В первую очередь он распознает самые большие лица. Значение 0 не представляет предела. Значение по умолчанию: 0 |
| прогнозирование_Конта | целое число | Максимальное количество предыдущих прогнозов на лицо. Он возвращает самые похожие предметы. Значение по умолчанию: 1 |
| face_plugins | нить | Запятые, разделенные слизняками плагинов лица. Если пуст, дополнительная информация не возвращается. Узнать больше |
| статус | логический | Если True включает в себя системную информацию, такую как execution_time и плагин_версионные поля. Значение по умолчанию неверно |
Ответ:
{
"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 "
}
}| Элемент | Тип | Описание |
|---|---|---|
| возраст | объект | Обнаруженный возрастной диапазон. Вернуть только в том случае, если включен возрастной плагин |
| пол | объект | обнаружен пол. Вернуть только в том случае, если гендерный плагин включен |
| маска | объект | обнаруженная маска. Верните только в том случае, если плагин маски для лица включен. |
| внедрение | множество | Лицо вторжения. Вернуть только в том случае, если плагин калькулятора включен |
| коробка | объект | Список параметров ограничивающей коробки для этого лица (на обработке). |
| вероятность | плавать | вероятность того, что найденное лицо на самом деле является лицом (на обработке). |
| x_max, y_max, x_min, y_min | целое число | Координаты рамы, содержащей лицо (на обработке) |
| достопримечательности | множество | Список координат кадры, содержащих лицо лицевой стороны. Вернуть только в том случае, если плагин достопримечательностей включен |
| execution_time | объект | Время выполнения всех плагинов |
| plugins_versions | объект | Содержит информацию о версиях плагина |
Этот ответ JSON детериализируется на объект передачи данных FaceDetectionResponse (DTO).
public class FaceDetectionResponse
{
public IList<BaseResult> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
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 faceVerificationService.VerifyAsync(request);
Сравнивает два изображения, представленные в аргументах. Изображение источника должно содержать только одно лицо, оно будет сравниваться со всеми лицами на целевом изображении.
| Аргумент | Тип | Необходимый | Примечания |
|---|---|---|---|
| запрос | FaceVerificationRequestbyFilePath | необходимый |
FaceVerificationRequestByFilePath Это объект передачи данных, который сериализован на JSON.
public class FaceVerificationRequestByFilePath : BaseFaceRequest
{
public string SourceImageFilePath { get; set; }
public string TargetImageFilePath { get; set; }
}
Class 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; }
}
| Вариант | Тип | Примечания |
|---|---|---|
| det_prob_threshold | плавать | Минимальная необходимая уверенность в том, что признанное лицо на самом деле является лицом. Значение составляет от 0,0 до 1,0 |
| предел | целое число | Максимальное количество лиц на изображении, которые будут распознаны. В первую очередь он распознает самые большие лица. Значение 0 не представляет предела. Значение по умолчанию: 0 |
| прогнозирование_Конта | целое число | Максимальное количество предыдущих прогнозов на лицо. Он возвращает самые похожие предметы. Значение по умолчанию: 1 |
| face_plugins | нить | Запятые, разделенные слизняками плагинов лица. Если пуст, дополнительная информация не возвращается. Узнать больше |
| статус | логический | Если True включает в себя системную информацию, такую как execution_time и плагин_версионные поля. Значение по умолчанию неверно |
Ответ:
{
"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 "
}
}]
}| Элемент | Тип | Описание |
|---|---|---|
| source_image_face | объект | Дополнительная информация о лице исходного изображения |
| face_matches | множество | результат проверки лица |
| возраст | объект | Обнаруженный возрастной диапазон. Вернуть только в том случае, если включен возрастной плагин |
| пол | объект | обнаружен пол. Вернуть только в том случае, если гендерный плагин включен |
| маска | объект | обнаруженная маска. Верните только в том случае, если плагин маски для лица включен. |
| внедрение | множество | Лицо вторжения. Вернуть только в том случае, если плагин калькулятора включен |
| коробка | объект | Список параметров ограничивающей коробки для этого лица |
| вероятность | плавать | вероятность того, что найденное лицо на самом деле является лицом |
| x_max, y_max, x_min, y_min | целое число | координаты рамы, содержащей лицо |
| достопримечательности | множество | Список координат кадры, содержащих лицо лицевой стороны. Вернуть только в том случае, если плагин достопримечательностей включен |
| сходство | плавать | сходство между этим лицом и лицом на исходном изображении |
| execution_time | объект | Время выполнения всех плагинов |
| plugins_versions | объект | Содержит информацию о версиях плагина |
Этот ответ JSON детериализирован для объекта передачи данных 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; }
}
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; }
}
Вклад - это то, что делает сообщество с открытым исходным кодом таким удивительным местом для изучения, вдохновения и создания. Любой вклад, которые вы вносите, высоко ценится.
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )После создания вашего первого внесенного запроса на привлечение вы получите запрос на подписку нашего лицензионного соглашения о внесении, комментируя ваш запрос на привлечение со специальным сообщением.
Пожалуйста, сообщите здесь о любых ошибках.
Если вы сообщаете об ошибке, укажите:
Лучший способ отправить нам отзывы-подать проблему по адресу https://github.com/exadel-inc/compreface-net-sdk/issues.
Если вы предлагаете функцию, пожалуйста:
Compreface .net SDK-это распознавание лица с открытым исходным кодом SDK, выпущенное по лицензии Apache 2.0.