Compreface Net SDK使您的應用程序識別面部識別更加容易。
在使用我們的SDK之前,請確保您已經在計算機上安裝了Compreface和.NET。
| compreface .NET SDK版本 | COMPREFACE 1.1.0 |
|---|---|
| 1.0.0 | |
| 1.0.1 | |
| 1.0.2 |
解釋:
使用SDK安裝Nuget軟件包
Install-Package CompreFace.NET.Sdk
您可以在示例文件夾中的存儲庫中找到下面的所有示例。您也可以查看識別示例應用程序。這是一個簡單的示例示例。
要開始使用Compreface .NET SDK,您需要從“ Compreface-SDK”依賴項導入CompreFace對象。
然後,您需要創建CompreFaceClient對象並使用DOMAIN和PORT初始化。默認情況下,如果您在本地計算機上運行compreface,則其DOMAIN將為http://localhost ,在這種情況下, PORT將為8000 。您可以在調用方法設置默認參數時傳遞可選的options對象,請參閱參考。
您應該在CompreFaceClient對像中使用RecognitionService服務來識別面部。
但是,在認識到您需要首先將主題添加到面部收藏之前。為此,請在RecognitionService的幫助下獲取Subject對象。 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);
Global Compreface對像用於初始化連接到compreface和設置選項的默認值。如果適用,將在每種服務方法中使用默認值。
構造函數: CompreFaceClient(domain, port)
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 領域 | 細繩 | 必需的 | 帶有compreface位置的協議的域。例如http://localhost |
| 港口 | 細繩 | 必需的 | compreface端口。例如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面部檢測服務對象。
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| Apikey | 細繩 | 必需的 | 面部檢測API鍵以UUID格式 |
例子:
var apiKey = "00000000-0000-0000-0000-000000000003";
var faceDetectionService = client.GetCompreFaceService<FaceDetectionService>(api_key);
client.GetCompreFaceService<FaceVerificationService>(apiKey)INITS面對驗證服務對象。
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 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類繼承,這些DTO類已序列化為請求格式。
這是請求主體中的描述。
| 選項 | 類型 | 筆記 |
|---|---|---|
| det_prob_threshold | 漂浮 | 最低要求的信心是公認的面孔實際上是一張臉。值在0.0至1.0之間 |
| 限制 | 整數 | 圖像上的最大面孔數量要識別。它首先認識到最大的面孔。值0表示無限。默認值:0 |
| Prediction_Count | 整數 | 每張面的主題預測數量的最大數量。它返回最相似的主題。默認值:1 |
| face_plugins | 細繩 | 面部插件的逗號分隔。如果空,則不會返回其他信息。了解更多 |
| 地位 | 布爾 | 如果是true,則包括execution_time和plugin_version字段(例如expution_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)
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| ventizerequest | 識別fromagerequestbyfilepath | 必需的 |
RecognizeFaceFromImageRequestByFilePath這是數據傳輸對象,該對像已序列化為JSON。
public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest
{
public string FilePath { get; set; }
}
BaseRecognizeFaceFromImageRequest類:
public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest
{
public int? PredictionCount { get; set; }
}
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 |
| Prediction_Count | 整數 | 每張面的主題預測數量的最大數量。它返回最相似的主題。默認值:1 |
| face_plugins | 細繩 | 面部插件的逗號分隔。如果空,則不會返回其他信息。了解更多 |
| 地位 | 布爾 | 如果是true,則包括execution_time和plugin_version字段(例如expution_time)等系統信息。默認值是錯誤的 |
Comreface API的響應:
{
"result" : [ {
"age" : {
"probability": 0.9308982491493225,
"high": 32,
"low": 25
},
"gender" : {
"probability": 0.9898611307144165,
"value": "female"
},
"mask" : {
"probability": 0.9999470710754395,
"value": "without_mask"
},
"embedding" : [ 9.424854069948196E-4, "...", -0.011415496468544006 ],
"box" : {
"probability" : 1.0,
"x_max" : 1420,
"y_max" : 1368,
"x_min" : 548,
"y_min" : 295
},
"landmarks" : [ [ 814, 713 ], [ 1104, 829 ], [ 832, 937 ], [ 704, 1030 ], [ 1017, 1133 ] ],
"subjects" : [ {
"similarity" : 0.97858,
"subject" : "subject1"
} ],
"execution_time" : {
"age" : 28.0,
"gender" : 26.0,
"detector" : 117.0,
"calculator" : 45.0,
"mask": 36.0
}
} ],
"plugins_versions" : {
"age" : "agegender.AgeDetector",
"gender" : "agegender.GenderDetector",
"detector" : "facenet.FaceDetector",
"calculator" : "facenet.Calculator",
"mask": "facemask.MaskDetector"
}
}
| 元素 | 類型 | 描述 |
|---|---|---|
| 年齡 | 目的 | 檢測到的年齡範圍。僅在啟用年齡插件時返回 |
| 性別 | 目的 | 檢測到性別。僅在啟用性別插件時返回 |
| 面具 | 目的 | 檢測到的面具。僅在啟用面罩插件時返回。 |
| 嵌入 | 大批 | 面部嵌入。僅在啟用計算器插件時返回 |
| 盒子 | 目的 | 該臉的邊界框的參數列表 |
| 可能性 | 漂浮 | 發現的臉實際上是臉的概率 |
| x_max,y_max,x_min,y_min | 整數 | 框架的坐標 |
| 地標 | 大批 | 包含面部標記的框架坐標列表。 |
| 主題 | 列表 | 大小<preditiond_count>訂購相似性的相似主題列表 |
| 相似 | 漂浮 | 在該圖像上預測的人的相似性 |
| 主題 | 細繩 | 主題的名稱 |
| execution_time | 目的 | 所有插件的執行時間 |
| plugins_versions | 目的 | 包含有關插件版本的信息 |
該JSON響應應進行識別以RecognizeFaceFromImageResponse數據傳輸對象(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);
比較給定圖像的相似之處與您的面部收藏中的圖像。
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 要求 | verifyfacesFromageRequest | 必需的 |
VerifyFacesFromImageRequest這是序列化與JSON的數據傳輸對象。
public class VerifyFacesFromImageRequest : BaseVerifyFacesFromImageRequest
{
public string FilePath { get; set; }
}
BaseVerifyFacesFromImageRequest類:
public class BaseVerifyFacesFromImageRequest : BaseFaceRequest
{
public Guid ImageId { get; set; }
}
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 |
| Prediction_Count | 整數 | 每張面的主題預測數量的最大數量。它返回最相似的主題。默認值:1 |
| face_plugins | 細繩 | 面部插件的逗號分隔。如果空,則不會返回其他信息。了解更多 |
| 地位 | 布爾 | 如果是true,則包括execution_time和plugin_version字段(例如expution_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數據傳輸對象(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);
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 要求 | 添加subjectexamplerequestbyFilePath | 必需的 |
AddSubjectExampleRequestByFilePath這是數據傳輸對象,該對像已序列化為JSON。
public class AddSubjectExampleRequestByFilePath : BaseExampleRequest
{
public string FilePath { get; set; }
}
BaseExampleRequest類:
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響應應為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; }
}
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 頁 | int | 選修的 | 頁碼返回的示例。可用於分頁。默認值為0。由於0.6版本。 |
| 尺寸 | int | 選修的 | 頁面上的面(頁面大小)。可用於分頁。默認值為20。由於0.6版本。 |
| 主題 | int | 選修的 | 哪些主題示例端點應返回。如果為空,請返回所有主題的示例。自1.0版本以來 |
回覆:
{
"faces": [
{
"image_id": <image_id>,
"subject": <subject>
},
...
]
}
| 元素 | 類型 | 描述 |
|---|---|---|
| image_id | UUID | 臉 |
| 主題 | 細繩 | 該人的照片保存了此API鍵 |
該JSON響應應列為ListAllSubjectExamplesResponse數據傳輸對象(DTO)。
public class ListAllSubjectExamplesResponse
{
public IList<Face> Faces { get; set; }
public int PageNumber { get; set; }
public int PageSize { get; set; }
public int TotalPages { get; set; }
public int TotalElements { get; set; }
}
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響應應予以刪除,以DeleteMultipleExamplesResponse數據傳輸對象(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 | 被移開的臉 |
| 主題 | 細繩 | 該人的照片保存了此API鍵 |
該JSON響應應予以刪除,以DeleteImageByIdResponse數據傳輸對象(DTO)。
public class DeleteImageByIdResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
通過ID下載圖像:
await recognitionService.FaceCollection.DownloadAsync(downloadImageByIdRequest);
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 要求 | 下載ImageByIdDirectlyRequest | 必需的 |
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);
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 要求 | downloadimageByIdFromSubjectRequest | 必需的 |
DownloadImageByIdFromSubjectRequest這是序列化與JSON的數據傳輸對象。
public class DownloadImageByIdFromSubjectRequest
{
public Guid ImageId { get; set; }
}
響應主體是二進製圖像。如果找不到圖像,則空字節。
recognitionService.Subject
返回主題對像對像對像對象允許直接使用主題(不是通過主題示例)。有關主題的更多信息
方法:
在面部收藏中創建一個新主題。
await recognitionService.Subject.AddAsync(request);
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 要求 | AddsubjectRequest | 必需的 |
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響應應序列化以GetAllSubjectResponse數據傳輸對象(DTO)。
public class GetAllSubjectResponse
{
public IList<string> Subjects { get; set; }
}
重命名現有主題。如果已經存在一個新的主題名稱,則將合併主題 - 舊主題名稱中的所有面孔都會用新名稱重新分配給主題,並刪除了舊主題。
await recognitionService.Subject.RenameAsync(request);
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 要求 | RenamesubjectRequest | 必需的 |
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);
| 爭論 | 類型 | 必需的 | 筆記 |
|---|---|---|---|
| 要求 | deletesubjectRequest | 必需的 |
DeleteSubjectRequest這是序列化與JSON的數據傳輸對象。
public class RenameSubjectRequest
{
public string CurrentSubject { get; set; }
public string Subject { get; set; }
}
回覆:
{
"subject" : " subject1 "
}| 元素 | 類型 | 描述 |
|---|---|---|
| 主題 | 細繩 | 是主題的名稱 |
該JSON響應應序列化為DeleteSubjectResponse數據傳輸對象(DTO)。
public class DeleteSubjectResponse
{
public string Subject { get; set; }
}
刪除所有現有主題和所有保存的面孔。
await recognitionService.Subject.DeleteAllAsync();
回覆:
{
"deleted" : " <count> "
}| 元素 | 類型 | 描述 |
|---|---|---|
| 刪除 | 整數 | 刪除的主題數量 |
該JSON響應應予以刪除為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; }
}
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 |
| Prediction_Count | 整數 | 每張面的主題預測數量的最大數量。它返回最相似的主題。默認值:1 |
| face_plugins | 細繩 | 面部插件的逗號分隔。如果空,則不會返回其他信息。了解更多 |
| 地位 | 布爾 | 如果是true,則包括execution_time和plugin_version字段(例如expution_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 "
}
}| 元素 | 類型 | 描述 |
|---|---|---|
| 年齡 | 目的 | 檢測到的年齡範圍。僅在啟用年齡插件時返回 |
| 性別 | 目的 | 檢測到性別。僅在啟用性別插件時返回 |
| 面具 | 目的 | 檢測到的面具。僅在啟用面罩插件時返回。 |
| 嵌入 | 大批 | 面部嵌入。僅在啟用計算器插件時返回 |
| 盒子 | 目的 | 該面的邊界框的參數列表(在processedimage上) |
| 可能性 | 漂浮 | 發現的臉實際上是臉部(在processedimage上)的概率 |
| x_max,y_max,x_min,y_min | 整數 | 包含面部的框架的坐標(在processEdimage上) |
| 地標 | 大批 | 包含面部標記的框架坐標列表。僅在啟用地標插件時返回 |
| 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; }
}
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 |
| Prediction_Count | 整數 | 每張面的主題預測數量的最大數量。它返回最相似的主題。默認值:1 |
| face_plugins | 細繩 | 面部插件的逗號分隔。如果空,則不會返回其他信息。了解更多 |
| 地位 | 布爾 | 如果是true,則包括execution_time和plugin_version字段(例如expution_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是根據Apache 2.0許可發布的開源面部識別SDK。