基于近红外与可见光双目摄像头的人脸识别与活体检测,文末附 Demo - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
snowflake007
V2EX    Android

基于近红外与可见光双目摄像头的人脸识别与活体检测,文末附 Demo

  •  
  •   snowflake007 2025 年 3 月 11 日 3399 次点击
    这是一个创建于 392 天前的主题,其中的信息可能已经有所发展或是发生改变。

    基于近红外与可见光双目摄像头的活体人脸检测原理

    人脸活体检测( Face Anti-Spoofing )是人脸识别系中的重要一环,它负责验证捕捉到的人脸是否为真实活体,以抵御各种伪造攻击,如彩色纸张打印的人脸图、电子设备屏幕中的人脸数字图像及面具等。这些攻击手段若得逞,将对金融安全、门禁管理等造成严重威胁。

    基于近红外与可见光双目摄像头的活体人脸检测利用红外摄像头下视频和大部分纸张不能呈现图像的特性,有效的防止了视频中伪造人脸的攻击;同时利用近红外摄像头和可见光摄像头下真实人脸与照片人脸纹理差异和颜色差异,可以有效地区分人脸是来自真实人脸还是照片中的伪造人脸。

    Android 实现双目红外活体检测 首先建议使用上图 1 的 USB 双目摄像头,能支持双头 Type-C 接口 UVC 协议的,现在的手机平板大部分都是 TypeC 接口了,千万别整公头 USB 口,需要特定的开发板才能开发调试。 然后 打通 UVC 协议摄像头预览,能正常预览才能取数据进行 AI 分析人脸识别等,目前 Android 平台的 UVC 协议摄像头库最有名的就是日本大神的 saki4510t/UVCCamera ,但是很久不维护了,文章最后的源码会集成到 Demo 中 最后 就可以拿双目摄像头中的 RGB 和 IR 图像进行活体检测人脸识别了。 ini 代码解读复制代码 /** * 初始化 IR 摄像头 * */ private void initIRCamara() { irCameraManager.initCameraHelper(); irCameraManager.setOpeningMultiCamera(true); irCameraManager.setCameraView(binding.irCameraTextureView,true); irCameraManager.selectUsbCamera(UsbCameraEnum.IR);

     irCameraManager.setOnDeviceStatuesCallBack(new UsbCameraManager.OnDeviceStatuesCallBack() { @Override public void onAttach(UsbDevice device) { } @Override public void onDeviceOpen(UsbDevice device, boolean isFirstOpen) { } }); irCameraManager.setPreviewHeight(PREVIEW_HEIGHT); irCameraManager.setFrameCallback(frame -> { Size currentPreviewSize = irCameraManager.getCurrentPreviewSize(); int width = PREVIEW_WIDTH; int height = PREVIEW_HEIGHT; if (currentPreviewSize != null) { width = currentPreviewSize.width; height = currentPreviewSize.height; } Bitmap bitmap = DataConvertUtils.NV21Data2Bitmap(frame, width, height, 0, 0, false); if (bitmap != null) { faceVerifySetBitmap(bitmap, FaceVerifyUtils.BitmapType.IR); } }, UVCCamera.PIXEL_FORMAT_NV21); } 

    初始化 RGB 和 IR 数据后把数据转为 Bitmap 后送入引擎开始人脸识别,双目活体检测了 ini 代码解读复制代码 faceVerifyUtils.goVerifyWithIR(irBitmap, rgbBitmap);

    注意事项

    目前的 USB 双目摄像头的带宽普遍不足,但好在人脸识别,双目活体检测不需要太高分辨率,1280*720 足够了 需要宽动态抗逆光摄像头,调试的时候经常经常用手触摸镜头需要保持镜头整洁 确保两个摄像头都正常稳定同步的输出了影像画面

    演示接入代码 Demo 和体验 App 下载 上述的 UVC 协议摄像头管理已经放在工程目了 libs 下面了打包成了 AAR 文件,整个项目代码 GitHub 搜索 AnyLifeZLB/FaceVerificationSDK 或者点击:github.com/AnyLifeZLB/… 手上有双目摄像头的连接设备可以立马体验效果

    Shatyuka
        1
    Shatyuka  
       2025 年 3 月 11 日
    这是从哪复制来的,格式乱七八糟,甚至链接都缩略了,广告机器人?
    “调试的时候经常经常用手触摸镜头需要保持镜头整洁”,怪。
    snowflake007
        2
    snowflake007  
    OP
       2025 年 3 月 11 日
    从我的博客复制过来的,准备把主题下沉 10 天。

    直接看 GitHub 主页 https://github.com/AnyLifeZLB/FaceVerificationSDK
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     948 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 19:36 PVG 03:36 LAX 12:36 JFK 15:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86