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
以下のすべての例は、リポジトリ内のExamplesフォルダーにあります。また、認識サンプルアプリケーションを確認することもできます。これは、Comprefaceの使用の簡単な例です。
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オブジェクトは、接続を初期化するために使用され、オプションのデフォルト値を設定します。デフォルト値は、該当する場合はすべてのサービス方法で使用されます。
コンストラクター: CompreFaceClient(domain, port)
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| ドメイン | 弦 | 必須 | Comprefaceが配置されているプロトコル付きドメイン。例http://localhost |
| ポート | 弦 | 必須 | Comprefaceポート。たとえば、 8000 |
例:
var client = new CompreFaceClient(
domain: "http://localhost",
port: "8000");
client.GetCompreFaceService<RecognitionService>(apiKey)顔認識サービスオブジェクト。
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| アピケイ | 弦 | 必須 | UUID形式のフェイス認識APIキー |
例:
var apiKey = "00000000-0000-0000-0000-000000000002";
var recognitionService = client.GetCompreFaceService<RecognitionService>(apiKey);
client.GetCompreFaceService<FaceDetectionService>(apiKey)直面検出サービスオブジェクト。
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| アピケイ | 弦 | 必須 | UUID形式のフェイス検出APIキー |
例:
var apiKey = "00000000-0000-0000-0000-000000000003";
var faceDetectionService = client.GetCompreFaceService<FaceDetectionService>(api_key);
client.GetCompreFaceService<FaceVerificationService>(apiKey)検証サービスオブジェクトに直面します。
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| アピケイ | 弦 | 必須 | UUID形式のAPIキーに直面します |
例:
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 |
| prection_count | 整数 | 顔ごとの被験者予測の最大数。最も類似した主題を返します。デフォルト値:1 |
| face_plugins | 弦 | フェイスプラグインのコンマ分離したナメクジ。空の場合、追加情報は返されません。もっと詳しく知る |
| 状態 | ブール | trueが含まれている場合、execution_timeやplugin_versionフィールドなどのシステム情報が含まれています。デフォルト値はfalseです |
オブジェクトによる顔認識の例:
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);
フェイス認識サービスは、顔の識別に使用されます。これは、最初に既知の顔をアップロードして顔を合わせてコレクションに直面し、次にそれらの間の未知の顔を認識する必要があることを意味します。未知の顔をアップロードすると、サービスは最も似た顔を返します。また、Face認識サービスサポートエンドポイントを検証して、Face Collectionのこの人が正しいものであるかどうかを確認します。詳細については、comprefaceページを参照してください。
方法:
画像からすべての顔を認識します。最初の引数は画像の場所であり、URL、ローカルパス、またはバイトである可能性があります。
await recognitionService.RecognizeFaceFromImage.RecognizeAsync(recognizeRequest)
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| 認識 | Facefromagerequestbyfilepathを認識します | 必須 |
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 |
| prection_count | 整数 | 顔ごとの被験者予測の最大数。最も類似した主題を返します。デフォルト値:1 |
| face_plugins | 弦 | フェイスプラグインのコンマ分離したナメクジ。空の場合、追加情報は返されません。もっと詳しく知る |
| 状態 | ブール | trueが含まれている場合、execution_timeやplugin_versionフィールドなどのシステム情報が含まれています。デフォルト値はfalseです |
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"
}
}
| 要素 | タイプ | 説明 |
|---|---|---|
| 年 | 物体 | 検出された年齢範囲。 AGEプラグインが有効になっている場合にのみ返します |
| 性別 | 物体 | 性別が検出されました。性別プラグインが有効になっている場合にのみ返します |
| マスク | 物体 | 検出されたマスク。 Face Maskプラグインが有効になっている場合にのみ返します。 |
| 埋め込み | 配列 | 顔の埋め込み。計算機プラグインが有効になっている場合にのみ返します |
| 箱 | 物体 | この顔の境界ボックスのパラメーターのリスト |
| 確率 | フロート | 発見された顔が実際に顔である確率 |
| x_max、y_max、x_min、y_min | 整数 | 顔を含むフレームの座標 |
| ランドマーク | 配列 | 顔の陸板を含むフレームの座標のリスト。 |
| 被験者 | リスト | 類似性による<Pretiction_Count>注文のサイズの同様の被験者のリスト |
| 類似性 | フロート | その画像では人を予測する類似性 |
| 主題 | 弦 | フェイスコレクションの主題の名前 |
| execution_time | 物体 | すべてのプラグインの実行時間 |
| Plugins_versions | 物体 | プラグインバージョンに関する情報が含まれています |
このJSON応答は、FaceFromageresponseデータ転送オブジェクト(DTO) RecognizeFaceFromImageResponseために脱必要です。
public class RecognizeFaceFromImageResponse
{
public IList<Result> Result { get; set; }
public PluginVersions PluginsVersions { get; set; }
}
public class Result : BaseResult
{
public IList<SimilarSubject> Subjects { get; set; }
}
BaseResultクラス:
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 |
| prection_count | 整数 | 顔ごとの被験者予測の最大数。最も類似した主題を返します。デフォルト値:1 |
| face_plugins | 弦 | フェイスプラグインのコンマ分離したナメクジ。空の場合、追加情報は返されません。もっと詳しく知る |
| 状態 | ブール | trueが含まれている場合、execution_timeやplugin_versionフィールドなどのシステム情報が含まれています。デフォルト値はfalseです |
応答:
{
"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 "
}
}| 要素 | タイプ | 説明 |
|---|---|---|
| 年 | 物体 | 検出された年齢範囲。 AGEプラグインが有効になっている場合にのみ返します |
| 性別 | 物体 | 性別が検出されました。性別プラグインが有効になっている場合にのみ返します |
| マスク | 物体 | 検出されたマスク。 Face Maskプラグインが有効になっている場合にのみ返します。 |
| 埋め込み | 配列 | 顔の埋め込み。計算機プラグインが有効になっている場合にのみ返します |
| 箱 | 物体 | この顔の境界ボックスのパラメーターのリスト |
| 確率 | フロート | 発見された顔が実際に顔である確率 |
| x_max、y_max、x_min、y_min | 整数 | 顔を含むフレームの座標 |
| ランドマーク | 配列 | 顔の陸板を含むフレームの座標のリスト。ランドマークプラグインが有効になっている場合にのみ返します |
| 類似性 | フロート | その画像では人を予測する類似性 |
| execution_time | 物体 | すべてのプラグインの実行時間 |
| Plugins_versions | 物体 | プラグインバージョンに関する情報が含まれています |
このJSON応答は、DATEFASESFROMAGERESPONSEデータ転送オブジェクト(DTO)をVerifyFacesFromImageResponseために脱必要です。
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方法を使用する前に、少なくとも1つの顔をフェイスコレクションに保存する必要があります。
顔の収集と管理の例の詳細については、こちらをご覧ください
方法:
これにより、画像を保存することにより、主題の例が作成されます。システムをトレーニングするだけの画像を追加できます。画像には1つの顔のみが含まれている必要があります。
await recognitionService.FaceCollection.AddAsync(request);
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| リクエスト | addsubjectexamplerequestbyfilepath | 必須 |
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)をaddsubjectexampleresponseデータに浸透させます。
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 | 顔の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 | 除去された顔のuuid |
| 主題 | 弦 | このAPIキーのために写真が保存された人の |
このJSON応答は、 DeleteImageByIdResponseデータ転送オブジェクト(DTO)に脱必要です。
public class DeleteImageByIdResponse
{
public Guid ImageId { get; set; }
public string Subject { get; set; }
}
IDで画像をダウンロードするには:
await recognitionService.FaceCollection.DownloadAsync(downloadImageByIdRequest);
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| リクエスト | downloadimagebyiddirectlyrequest | 必須 |
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
被験者オブジェクトを返す被験者オブジェクトは、被験者と直接連携することを許可します(サブジェクトの例を介してではありません)。被験者の詳細については、こちら
方法:
Face Collectionで新しい科目を作成します。
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);
画像上のすべての顔を見つけます。
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| リクエスト | FACEEDETECTIONREQUESTBYFILEPATH | 必須 |
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 |
| prection_count | 整数 | 顔ごとの被験者予測の最大数。最も類似した主題を返します。デフォルト値:1 |
| face_plugins | 弦 | フェイスプラグインのコンマ分離したナメクジ。空の場合、追加情報は返されません。もっと詳しく知る |
| 状態 | ブール | trueが含まれている場合、execution_timeやplugin_versionフィールドなどのシステム情報が含まれています。デフォルト値はfalseです |
応答:
{
"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 "
}
}| 要素 | タイプ | 説明 |
|---|---|---|
| 年 | 物体 | 検出された年齢範囲。 AGEプラグインが有効になっている場合にのみ返します |
| 性別 | 物体 | 性別が検出されました。性別プラグインが有効になっている場合にのみ返します |
| マスク | 物体 | 検出されたマスク。 Face Maskプラグインが有効になっている場合にのみ返します。 |
| 埋め込み | 配列 | 顔の埋め込み。計算機プラグインが有効になっている場合にのみ返します |
| 箱 | 物体 | この顔の境界ボックスのパラメーターのリスト(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; }
}
フェイス検証サービスは、2つの画像を比較するために使用されます。ソース画像には、ターゲット画像のすべての面と比較される顔のみを含める必要があります。
方法:
await faceVerificationService.VerifyAsync(request);
引数で提供されている2つの画像を比較します。ソース画像には1つの顔のみが含まれている必要があり、ターゲット画像のすべての面と比較されます。
| 口論 | タイプ | 必須 | メモ |
|---|---|---|---|
| リクエスト | 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 |
| prection_count | 整数 | 顔ごとの被験者予測の最大数。最も類似した主題を返します。デフォルト値:1 |
| face_plugins | 弦 | フェイスプラグインのコンマ分離したナメクジ。空の場合、追加情報は返されません。もっと詳しく知る |
| 状態 | ブール | trueが含まれている場合、execution_timeやplugin_versionフィールドなどのシステム情報が含まれています。デフォルト値はfalseです |
応答:
{
"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 | 配列 | 顔の検証の結果 |
| 年 | 物体 | 検出された年齢範囲。 AGEプラグインが有効になっている場合にのみ返します |
| 性別 | 物体 | 性別が検出されました。性別プラグインが有効になっている場合にのみ返します |
| マスク | 物体 | 検出されたマスク。 Face Maskプラグインが有効になっている場合にのみ返します。 |
| 埋め込み | 配列 | 顔の埋め込み。計算機プラグインが有効になっている場合にのみ返します |
| 箱 | 物体 | この顔の境界ボックスのパラメーターのリスト |
| 確率 | フロート | 発見された顔が実際に顔である確率 |
| 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です。