/// <summary> /// 登録コマンドの実行 /// </summary> /// <param name="userID">登録する顔認証対象者ID</param> /// <param name="userName">登録する顔認証対象者名</param> /// <param name="jpeg">登録する顔画像のJPEGデータ</param> static void DoRegister(string userID, string userName, byte[] jpeg) { var result = NfcRestApi.Register(userID, userName, jpeg).Result; if (result.ResultStatus == NfcRestApi.ResultStatus.Success) { Console.WriteLine($"顔認証対象者を登録しました (userOId:{result.UserOID})"); return; } Console.WriteLine("顔認証対象者を登録できませんでした"); switch (result.ResultStatus) { case NfcRestApi.ResultStatus.Conflict: Console.WriteLine("指定した顔認証対象者は既に登録されています"); break; case NfcRestApi.ResultStatus.FaceNotDetected: Console.WriteLine("画像から顔を検出できませんでした"); break; case NfcRestApi.ResultStatus.MultiFacesDetected: Console.WriteLine("画像に複数の顔が映っています"); break; } }
/// <summary> /// 認証コマンドの実行 /// </summary> /// <param name="jpeg">認証する顔画像のJPEGデータ</param> /// <param name="userID"> /// 顔認証対象者ID /// 指定あり: 1:1認証 /// null: 1:N認証 /// </param> static void DoAuth(byte[] jpeg, string userID) { var result = NfcRestApi.Auth(jpeg, userID).Result; if (result.ResultStatus == NfcRestApi.ResultStatus.Success) { var user = result.FaceMatches[0].UserMatches[0]; Console.WriteLine($"顔認証に成功しました (ユーザ名:{user.MatchUser.UserName} 照合スコア:{user.Score})"); return; } Console.WriteLine("顔認証に失敗しました"); switch (result.ResultStatus) { case NfcRestApi.ResultStatus.IDUnregistered: Console.WriteLine("指定したユーザは登録されていません"); break; case NfcRestApi.ResultStatus.FaceUnregistered: Console.WriteLine("指定したユーザは顔画像が登録されていません"); break; case NfcRestApi.ResultStatus.FaceNotDetected: Console.WriteLine("画像から顔を検出できませんでした"); break; case NfcRestApi.ResultStatus.MultiFacesDetected: Console.WriteLine("画像に複数の顔が映っています"); break; case NfcRestApi.ResultStatus.FaceCheckInvalid: Console.WriteLine("顔を検出しましたが、照合に必要な品質を満たしていません"); break; case NfcRestApi.ResultStatus.NotAvailableFeature: Console.WriteLine("顔を検出しましたが、特徴量の抽出に失敗しました"); break; case NfcRestApi.ResultStatus.NotApplicable: Console.WriteLine("顔を検出しましたが、該当する対象者が見つかりませんでした"); break; case NfcRestApi.ResultStatus.NotMatched: Console.WriteLine("顔を検出しましたが、閾値を満たす対象者が見つかりませんでした"); break; } }