场景:
在封闭式人脸识别中,如果我们在一个图库集中有10个人,那么查询图像将来自这10个人中.因此,每个查询将分配给10个人中的一个.
在开放式人脸识别中,查询人脸可能来自画廊中10人以外的人.这些额外的人被称为" 干扰者 ".可以在IJB-A挑战中找到示例任务.
题:
假设我为10个身份中的每一个训练了一个SVM(一个对所有人).我如何在开放式方案中报告准确性?如果查询图像X进来,我的模型将始终将其识别为我的图库中的10个人中的一个,尽管如果该人不在图库中的10个人中,则得分较低.因此,当将精度报告为%时,每个干扰物查询图像将给出0准确度,从而降低使用其正确标识标记每个查询图像的总体准确性.
这是在开放式协议上报告识别准确性的正确方法吗?或者是否有一种标准方法来设置分类分数的阈值,并说"查询图像X对于Gallery中的每个身份都有低分,因此我们知道它是一个干扰图像,我们在计算识别时不会考虑这个准确性"
最后,需要注意的是:这特别针对生物识别和人脸识别.然而,SO提供了最一致的答案,并且极有可能在SO处找到活跃于视觉和图像处理标签的生物识别人员,这就是我在这里问这个问题的原因.
image-processing biometrics face-recognition computer-vision
Android 的指纹传感器实现是否支持直接访问原始指纹数据,即手指上的实际图案?我不是指用于解锁设备和付款的存储安全指纹,而是指在扫描手指时按需获取原始数据。如果没有,为什么不呢?
如何从我的应用程序启动指纹注册设置屏幕(添加指纹屏幕)?
注册指纹后,有没有办法导航回我的应用程序?(使用startActivityForResult)
我们实现了新的android.hardware.biometrics.BiometricPrompt,取代了现有的android.hardware.fingerprint。在我们将“首选生物特征”称为“指纹”之前,新的生物特征API会按预期工作。
当我们将“首选生物特征识别”设置为“面部识别”并尝试使用面部识别作为应用程序的身份验证机制时,我们在onAuthenticationSucceeded中收到“ java.security.SignatureException:android.security.KeyStoreException:密钥用户未通过身份验证” (BiometricPrompt.AuthenticationResult结果)。
在配备Android P的三星设备中似乎可以重现此问题。在配备Android P的Pixel设备中,该问题运行良好(我相信当前Pixel设备不支持第三方应用程序的人脸识别功能)。
private BiometricPrompt.AuthenticationCallback getAuthenticationCallback() {
@Override
public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
Log.i(TAG, "onAuthenticationSucceeded");
super.onAuthenticationSucceeded(result);
Signature signature = result.getCryptoObject().getSignature();
try {
//Exception is thrown when we try to update the Signature with our message.
signature.update(mToBeSignedMessage.getBytes());
String signatureString = Base64.encodeToString(signature.sign(), Base64.URL_SAFE);
Log.i(TAG, "Message: " + mToBeSignedMessage);
Log.i(TAG, "Signature (Base64 EncodeD): " + signatureString);
Toast.makeText(getApplicationContext(), mToBeSignedMessage + ":" + signatureString, Toast.LENGTH_SHORT).show();
} catch (SignatureException e) {
Log.d(TAG, e.getLocalizedMessage());
//java.security.SignatureException: android.security.KeyStoreException: Key user not authenticated"
}
}
} …Run Code Online (Sandbox Code Playgroud) 我们希望在.Net 3.5应用程序中添加对指纹身份验证的支持.
我们目前只使用Griaule的sdk .但这仅支持5 usb即插即用设备.我们希望支持笔记本电脑,平板电脑等附带的大多数读者.
是否有支持许多设备的通用方法?我知道有一个从Windows 7开始的新标准,但我们想要支持XP及更高版本.
是否有针对UPEK或Authentec设备的.Net SDK?
任何想法或帮助将不胜感激.
我有ZKTeco Biometrics设备,它使用本教程(C#ZKTeco生物识别设备入门)与C#windows应用程序连接.
它工作正常,但一段时间后,我的应用程序无法ping通设备.如下面的代码建议,我试图在每25秒后ping一次设备.
private void TimerCheckPingAndCloseAttendanceForm() {
timerCheckPingAndCloseAttendanceForm = new Timer();
timerCheckPingAndCloseAttendanceForm.Tick += new EventHandler(CheckPingAndCloseAttendanceForm);
timerCheckPingAndCloseAttendanceForm.Interval = 25000;//25 seconds.
timerCheckPingAndCloseAttendanceForm.Start();
}
private void CheckPingAndCloseAttendanceForm(object sender, EventArgs e) {
string ipAddress = tbxDeviceIP.Text.Trim();
if (UniversalStatic.PingTheDevice(ipAddress) == false) {
//CloseAttendaceListForm();
IsDeviceConnected = false;
string infoString = "Application started on " + applicationStartDateTime.ToString() + " and ping failed on " + DateTime.Now.ToString() + " then, app closed while device ip is "+ ipAddress;
File.AppendAllText("ConnectionLog.txt", infoString + Environment.NewLine);
Application.Exit();
//timerCheckPingAndCloseAttendanceForm.Tick -= …Run Code Online (Sandbox Code Playgroud) 如果您在活动中创建 biometricPrompt 和 promptInfo,它工作正常。但我无法让它在片段中工作。
这是在一个片段内,它在 OnViewCreated 内被调用。你在一个很好的活动中做同样的事情,一种解决方案是从活动中传递 biometricPrompt 和 PromptInfo 并将它传递到片段中。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
tryToDisplayBiometricPrompt()
}
@TargetApi(Build.VERSION_CODES.M)
private fun tryToDisplayBiometricPrompt() {
//Create a thread pool with a single thread
biometricPrompt = BiometricPrompt(activity as FragmentActivity, Executors.newSingleThreadExecutor(), object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
authenticationSuccessful()
}
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
if (errorCode == BiometricConstants.ERROR_NEGATIVE_BUTTON || errorCode == BiometricConstants.ERROR_USER_CANCELED || errorCode == BiometricPrompt.ERROR_CANCELED) return
authenticationlistener?.isBiometricAvailable = false
authenticationlistener?.onAuthenticationFailed()
} …Run Code Online (Sandbox Code Playgroud) 我有这个生物识别技术,但它给了我完全错误的输出 - 不同的用户 ID和2132 年的验证日期。
是什么导致了这种错误信息?我在互联网上找不到任何类似的问题。有没有其他人遇到过和我一样的问题?
C# 代码:
if (axCZKEM1.ReadGeneralLogData(GetMachineNumber()))
{
while (axCZKEM1.SSR_GetGeneralLogData(GetMachineNumber(), out sdwEnrollNumber, out idwVerifyMode,
out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory
{
DataRow dr = dt_log.NewRow();
dr["User ID"] = sdwEnrollNumber;
dr["Verify Date"] = idwYear + "-" + idwMonth + "-" + idwDay + " " + idwHour + ":" + idwMinute + ":" + idwSecond;
dr["Verify Type"] = idwVerifyMode;
dr["Verify …Run Code Online (Sandbox Code Playgroud) 我们有一个基于微服务的系统,当前用户通过 keycloack(jwt) 进行身份验证,我们需要在这个现有系统中添加生物识别登录。首先,我们设计了如下的生物识别认证流程:
但我遇到的问题是在以下情况下该怎么办:
我的问题是:
我从上周开始就试图解决这个问题,但没有成功。我非常感谢您的建议、提示和帮助。
我需要在 flutter 应用程序内实现 Face ID(生物识别)身份验证。我正在使用 flutter 包“local_auth”v1.1.6(https://pub.dev/packages/local_auth)。但是,当在所需设备上运行时,面部验证选项在应用程序中不可用。
我正在使用以下函数,该函数在按下按钮时运行:
Future<bool> authenticate() async {
try {
final canCheckBiometrics = await _auth.canCheckBiometrics;
print('canCheckBiometrics: ');
print(canCheckBiometrics);
final availableBiometrics = await _auth.getAvailableBiometrics();
print('getAvailableBiometrics: ');
print(availableBiometrics);
return await _auth.authenticate(
localizedReason: 'Authenticate',
biometricOnly: true,
);
} on PlatformException catch (e) {
print(e);
rethrow;
}
Run Code Online (Sandbox Code Playgroud)
}
但是,面部身份验证从未显示为可用的身份验证选项,即使它被列为“可用的生物识别”:
I/flutter ( 4816): canCheckBiometrics:
I/flutter ( 4816): true
I/flutter ( 4816): getAvailableBiometrics:
I/flutter ( 4816): [BiometricType.fingerprint, BiometricType.face]
Run Code Online (Sandbox Code Playgroud)
如果设备上同时设置了指纹和面部,则指纹将显示为唯一可用的身份验证选项。如果仅设置了face,则local_auth库会抛出“NotEnrolled”异常(如果未设置任何方法,则相同):
I/flutter ( 4816): canCheckBiometrics:
I/flutter ( 4816): true
I/flutter ( 4816): …Run Code Online (Sandbox Code Playgroud) biometrics ×10
android ×4
c# ×3
zkteco ×2
.net ×1
connection ×1
face-id ×1
fingerprint ×1
flutter ×1
keycloak ×1
node.js ×1
react-native ×1
sdk ×1
vb.net ×1
zkemkeeper ×1