V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
snowflake007
V2EX  ›  Android

分享一个离线版 Android 人脸检测,人脸识别和活体检测 SDK

  •  
  •   snowflake007 · 2023-02-06 18:48:13 +08:00 · 4612 次点击
    这是一个创建于 438 天前的主题,其中的信息可能已经有所发展或是发生改变。

    FaceVerificationSDK

    Offline Android Face Detection & Recognition And Alive Detect SDK 离线版 Android 人脸检测,人脸识别和活体检测 SDK

    简要说明

    本 SDK 支持 Android 5+,包含人脸检测,人脸识别和动作活体检测,所有处理都是离线终端执行,敏感资料不发送后台 Server ,更具隐私安全; 其中活体检测支持张嘴,微笑,眨眼,摇头,点头 随机两种组合验证(摇头点头也可拆分为左右上下 4 个动作),低端机离线验证速度正常。

    前期测试效果能覆盖 95% 的中高低端机器,识别成功率>99% ,实验数据仅供参考,最低端手机完整的兼容性功能通过设备为 2016 年低端机魅蓝 Note3 。 特殊系统设备特殊硬件,如有问题请先提 Issues 附带系统版本,设备型号,错误 log 等信息,其他定制化需求请联系 [email protected] 交流

    Preview

    人脸识别方案为:MobileFaceNets ,解释器为 TensorFlow lite ; 预计 23 年第二季度 方案会升级,同时官方也会更新解释器。

    使用场景

    [ 1:1 ]   识别手机考勤系统,机场 /卡口人证对齐,免密码登录,酒店入驻、刷脸支付、刷脸解锁
    [ 1:N ]  考勤机,物业管理业主出入凭证等,(暂未优化 1:N 识别速度! SM-9700 百张底片最差 5s 左右,最好 50ms )
    

    接入使用

    #### 3.6.9 更新说明
    
    * 提高中高端设备识别精确度,低配设备时间换效率吧
    * 优化活体检测链路的完整性和作弊检测
    
    
    //Gradle
    implementation "io.github.anylifezlb:Face-Verification:3.6.9"
    
    ``` 
    //更多说明请看代码和下载 Demo 体验
    
            FaceProcessBuilder faceProcessBuilder = new FaceProcessBuilder.Builder(this)
                .setThreshold(0.8f)                 //threshold (阈值)设置,范围仅限 0.7-0.9 ,默认 0.8
                .setBaseBitmap(baseBitmap)          //1:1 底片「底片请设置为正脸无遮挡,并如 Demo 裁剪为仅含人脸」
                .setFaceLibFolder(BASE_FACE_DIR_1N) //1:N 底片库 ( 1 还是 N 中检测只能有一种)
                .setGraphicOverlay(mGraphicOverlay) //遮罩层,人脸模型标记画面演示,只是辅助调试用
                .setLiveCheck(true)                 //是否需要活体检测,需要发送邮件,详情参考 ReadMe
                .setVerifyTimeOut(10)               //活体检测支持设置超时时间 9-16 秒
                .setProcessCallBack(new ProcessCallBack() {
                    @Override
                    public void onCompleted(boolean isMatched) {
                         //only 1:1 人脸识别检测会有 Callback
                    }
    
                    @Override
                    public void onMostSimilar(String imagePath){
                        //only 1:N 人脸识别检测会有 Callback
                    }
    
                    @Override
                    public void onFailed(int code) {
    
                    }
    
                    @Override
                    public void onProcessTips(int actionCode) {
                        showAliveDetectTips(actionCode);
                    }
                })
                .create();
    
        faceDetectorUtils.setDetectorParams(faceProcessBuilder);
    ```
    
    
    更多使用说明下载参考本 Repo 和下载 Demo 体验,里面有比较详尽的使用方法,其中 
    
    * NaviActivity Demo 演示导航页面
    * Verify11Activity 人脸检测识别,活体检测页面( 1:1 )
    * AddBaseImageActivity 更换底片页面,仅供参考建议业务方使用自拍裁剪后使用本程序处理获取高质量底片
    * 1:N 识别暂未优化
    
    其中活体检测的使用需要你发送邮件到 [email protected] 申请,内容包括
    APP 简要描述,App 名称 ,包名 ,功能主页截屏和 下载链接 5 项内容。
    
    如果是 H5 web 应用需要使用人脸识别,可以封装 JsBrodge 调用交互使用。如果需要减少包体积,模型文件可以私有部署
    

    Demo 下载

    请前往下载: https://www.pgyer.com/faceVerify (托管服务如果失效请 github 下载代码打包)

    服务定制

    如果你的应用场景 SDK 不能匹配需要特殊定制化,请发邮件到 [email protected] 也可以加微信 HaoNan19990322 (请标注人脸识别定制,否则添加不通过,谢谢)

    Github: https://github.com/AnyLifeZLB/FaceVerificationSDK

    第 1 条附言  ·  256 天前
    贴子没法删除或者更新 ? https://v2ex.com/t/963089#reply0
    yolee599
        1
    yolee599  
       2023-02-06 19:11:54 +08:00 via Android
    现在门禁的活体检测都要求 RGB + IR 双摄像头了,单摄像头容易攻破
    snowflake007
        2
    snowflake007  
    OP
       2023-02-07 17:11:04 +08:00
    @yolee599 是的,门禁的场景要更高的要求
    snowflake007
        3
    snowflake007  
    OP
       256 天前
    贴子没法删除或者更新 ? https://v2ex.com/t/963089#reply0

    Dep
    snowflake007
        4
    snowflake007  
    OP
       256 天前
    方案已经重构,帖子没法更新。 最新查看 https://v2ex.com/t/963089
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2921 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:59 · PVG 10:59 · LAX 19:59 · JFK 22:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.