当前位置: 首页 > 知识库问答 >
问题:

使用android人脸识别来验证多个用户

苏骏
2023-03-14

我正在寻找创建应用程序,以验证用户使用面部识别。

我检查了Android是否提供生物识别提示来验证用户身份,但我不确定这个API是否可以用于我的用例。另外,如果我能使用这个API,手机上可以存储多少面部数据,这些数据将存储在哪里?

如果我不能实现我正在寻找的东西,通过面部识别,这是否可以使用指纹认证来完成。如果是,一个设备上可以存储多少指纹?

共有3个答案

罗茂实
2023-03-14

AndroidX生物识别库为您处理所有形状因素(人脸、虹膜、指纹等)。这一切都是在幕后完成的,所以开发者只需实现一次,你的代码就可以在任何地方运行,无论Android设备使用的是什么生物识别传感器。这篇博文和这篇博文展示了如何实现API,使其能够与所有形式因素一起工作。

关于你的问题“一部手机可以存储多少面部数据”,谢天谢地,这超出了你应用程序的关注范围。正如我在这里解释的,框架在幕后为您处理所有这些。

何兴学
2023-03-14

这可能是一个晚,但我想补充几个注意事项:快速问题:当你可以简单地允许设备自己管理数据时,为什么要存储生物特征数据?此外,对于数据真实性,我只是猜测,如果设备自行处理这些数据,那么我们可以肯定生物特征数据至少是真实的,因为我们没有将其存储在我们可能丢失或意外操作这些数据的地方所以上...

这让我得出结论,当用户设置他们的设备生物特征时,我的应用程序只会在必要时使用数据对他们进行身份验证,所以如果用户更改了他们的生物特征数据,它也会在我的应用程序中更改,这是我自己的观点和方法,我认为,如果我的应用程序必须捕获设备已经拥有的数据,并且如果设备没有这些数据,我将通过我的应用程序指示用户设置他们的生物特征认证,这几乎是多余的。注意:这可能并不适用于所有人,这只是我认为对应用程序用户来说是一致的和节省的。

以下是我的实现:

第一步=

implementation(group: 'com.an.biometric', name: 'biometric-auth', version: '0.1.0', ext: 'aar', classifier: '')

步骤2=

<uses-permission android:name="android.permission.USE_BIOMETRIC" />

最后=

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P){
        new BiometricManager.BiometricBuilder(MainActivity.this)
        .setTitle("Enter your print to access your wallet.")
        .setNegativeButtonText("Try pin instead")
        .build()
        .authenticate(new BiometricCallback() {
            @Override
            public void onSdkVersionNotSupported() {
                Log.e("SDK", "Not supported");
                /*
                 *  Will be called if the device sdk version does not support Biometric authentication
                 */
            }

            @Override
            public void onBiometricAuthenticationNotSupported() {
                Log.e("BIOMETRIC", "Not supported");
                /*
                 *  Will be called if the device does not contain any fingerprint sensors
                 */
            }

            @Override
            public void onBiometricAuthenticationNotAvailable() {
                Log.e("BIOMETRIC", "Authentication Not Available");
                /*
                 *  The device does not have any biometrics registered in the device.
                 */
            }

            @Override
            public void onBiometricAuthenticationPermissionNotGranted() {
                Log.e("BIOMETRIC", "Authentication Permission Not Granted");
                /*
                 *  android.permission.USE_BIOMETRIC permission is not granted to the app
                 */
            }

            @Override
            public void onBiometricAuthenticationInternalError(String error) {
                Log.e("BIOMETRIC", "Authentication Internal Error");

                /*
                 *  This method is called if one of the fields such as the title, subtitle,
                 * description or the negative button text is empty
                 */
            }

            @Override
            public void onAuthenticationFailed() {
                Log.e("BIOMETRIC", "Authentication Failed");
                /*
                 * When the fingerprint doesn’t match with any of the fingerprints registered on the device,
                 * then this callback will be triggered.
                 */
            }

            @Override
            public void onAuthenticationCancelled() {
                Log.e("BIOMETRIC", "Authentication Cancelled");
                    pinDialog();
                /*
                 * The authentication is cancelled by the user.
                 */
            }

            @Override
            public void onAuthenticationSuccessful() {
                Log.e("BIOMETRIC", "Authentication Successful");
                /*
                 * When the fingerprint is has been successfully matched with one of the fingerprints
                 * registered on the device, then this callback will be triggered.
                 */
            }

            @Override
            public void onAuthenticationHelp(int helpCode, CharSequence helpString) {
                Log.e("BIOMETRIC", "Authentication Help");
                /*
                 * This method is called when a non-fatal error has occurred during the authentication
                 * process. The callback will be provided with an help code to identify the cause of the
                 * error, along with a help message.
                 */
            }

            @Override
            public void onAuthenticationError(int errorCode, CharSequence errString) {
                Log.e("BIOMETRIC", "Authentication Error");
                setSelectedTab(0);
                /*
                 * When an unrecoverable error has been encountered and the authentication process has
                 * completed without success, then this callback will be triggered. The callback is provided
                 * with an error code to identify the cause of the error, along with the error message.
                 */
            }
        });
}

几乎忘了,这个实现只针对指纹,不针对人脸识别,实际上,找到了这个问题,寻找人脸识别的实现。。。英雄联盟

快乐编码。

师向文
2023-03-14

您可以在存储空间有限的设备(如Android设备)上保存的面部图像或指纹图像或指纹模板的数量将受到限制。到目前为止,您在市场上的平均Android设备可能没有超过32 Gb的可用存储空间。

面部图像可能会比指纹图像占用更多的空间,如果您打算保留它们以备将来使用,而指纹图像在存档中占用的存储空间要小得多。

这取决于您是否要将面部图像或指纹图像保存为*。jpg,*。巴布亚新几内亚*。bmp或任何其他常见的图像格式,图像格式的类型也会影响要保存的人脸图像或指纹图像的数量。例如,*。bmp图像可能比*占用更多空间。巴布亚新几内亚或*。jpg文件。

至于指纹图像,您可以进一步将其处理为指纹模板,从中可以存档其编码文本数据。这不会在你的存储空间中占用太多空间,因为指纹模板会像基于文本的数据一样占用很少的空间,不像你保存完整的指纹图像。

为了存档从移动设备捕获的生物特征数据,如果您想要更多存储空间,最好将生物特征数据发送到托管云服务器或具有足够存储空间的远程计算机,而不是移动设备。对于大多数基于云的服务器,随着应用程序数据存储需求的扩大,您可以请求更多存储空间。对于物理远程服务器,您必须安排硬盘升级到数据容量更大的服务器。

通过编写在服务器端运行的身份验证代码,您还可以让事情变得更简单,这样您的移动设备就可以被特意用于捕获人脸图像或指纹图像,并将其发送到远程服务器进行存档和身份验证,然后一旦匹配结果(无论是否找到匹配)被删除确定后,您的Android设备将收到匹配结果,并向Android生物认证应用程序的用户报告。

你可以考虑让你的Android应用程序调用一些Web服务,一旦你捕捉到一张脸部图像或者注册一个指纹模板,它就可以把数据发送到你的远程服务器。

 类似资料:
  • 使用ML Kit的人脸识别API,您可以检测图像中的人脸并识别关键面部特征。 借助人脸识别功能,您可以获取所需的信息,以执行修饰自拍和美化人像等任务或从用户照片中生成头像。由于ML Kit可以执行实时的人脸识别,因此您可以将其用于视频聊天或会对玩家表情进行响应的游戏等应用程序。 iOS Android 核心功能 识别和定位面部特征 获取检测到的每个人脸的眼睛,耳朵,脸颊,鼻子和嘴巴的坐标。 识别面

  • 1.1. 1.FACE SDK集成 1.2. 2. 接口说明及示例 1.2.1. 2.0 人脸检测参数配置: 1.2.2. 2.1 单帧图片检测: 1.2.3. 2.2 相机预览人脸检测: 1.2.4. 2.3 人脸数据库操作: Version:facelib.aar 1.1. 1.FACE SDK集成 添加三方依赖库: dependencies { compile 'com.rokid:

  • 问题内容: 使用Android,什么是面部识别的开源选项。 问题答案: 这是我在人脸识别库上找到的一些链接。 Android的FaceDetector.Face 教程:在Android中实现人脸检测 OpenCV Facerecog 图片识别链接: moodstocks ltutech

  • 我试图在Android上开发一个人脸识别应用程序,因为我不想在项目上使用NDK(根本没有时间切换),我坚持用Java开发整个应用程序,因此我遇到了一些问题: > 似乎Contrib模块没有包含在OpenCV 2.4.2中。有没有在项目中使用它? 我尝试使用JavaCV来使用Contrib模块的“FaceRecognizer”类。有两个可用的类,称为“FaceRecognizer”和“FaceRec

  • DWZ 百度人脸识别模块 dwzBaiduFaceLive 百度人脸识别模块【apicloud】 功能介绍 https://www.apicloud.com/mod_detail/dwzBaiduFaceLive 封装了新版百度开放平台的人脸识别采集 SDK: 包含活体动作 faceLiveness 不包含活体动作 faceDetect 考虑灵活度问题,本模块只作人脸采集,人脸识别成功后生成 ba

  • 本文向大家介绍python使用opencv进行人脸识别,包括了python使用opencv进行人脸识别的使用技巧和注意事项,需要的朋友参考一下 环境 ubuntu 12.04 LTS python 2.7.3 opencv 2.3.1-7 安装依赖 示例代码 转换效果 原图: 转换后 使用感受 对于大部分图像来说,只要是头像是正面的,没有被阻挡,识别基本没问题,准确性还是很高的。 识别效率有点低,