纯前端实现的活体人脸检测、采集组件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sssxyd
V2EX    分享创造

纯前端实现的活体人脸检测、采集组件

  •  
  •   sssxyd 21 天前 1658 次点击

    face-liveness-detector

    最近做了一个混合采用 Tensorflow&&OpenCV 的纯前端的活体人脸检测 NPM 包,发出来供兄弟们品鉴;

    在线 demo

    手机扫码

    特性描述

    • 纯前端实现 - 零后端依赖,所有处理都在浏览器本地运行
    • 混合 TensorFlow + OpenCV 方案 - 结合 TensorFlow.js 进行 AI 检测和 OpenCV.js 进行图像处理
    • 双重检测模式 - 静默活体检测和动作检测(眨眼、张嘴、点头)同时支持,自动最佳帧选择
    • 纯 Javascript & 事件驱动 - 100% TypeScript ,响应式事件架构,无缝集成任何前端框架( Vue 、React 、Angular 、Svelte 或原生 JS )
    • 全面的人脸分析 - 实时反欺骗检测、质量评估、人脸正脸度检测和模糊检测
    6 条回复    2025-12-03 10:16:01 +08:00
    seerhu
        1
    seerhu  
       21 天前
    有没有打算在 uniapp 那边编写成插件形式?
    sssxyd
        2
    sssxyd  
    OP
       21 天前
    @seerhu 嗯,好像挺合适的应用场景
    codehz
        3
    codehz  
       20 天前
    虽然但是,纯前端实现的话,破解方应该也可以纯前端破解吧。。。
    sssxyd
        4
    sssxyd  
    OP
       20 天前
    @codehz 当前是开始采集后,摄像头里必须有且只有一张人脸,否则直接失败;用的 Tensorflow 的 AI 模型来判定是否真实和活体,低于阈值的判定为设想欺诈,连续 3 帧都没过也失败; 不过这里跑的是小模型,确实不如后端跑的大模型;
    codehz
        5
    codehz  
       19 天前
    @sssxyd 意思是破解方直接从前端 js 入手,篡改检测结果(毕竟你这代码也是通过 js 发送的),相比之下操作系统的方案用了 TEE 攻击者无法轻易破解,或者服务端的方案攻击者需要伪造真实图片,因此有更多被检测到的可能性(但是服务端方案有隐私问题)
    sssxyd
        6
    sssxyd  
    OP
       19 天前
    @codehz 嗯;前端代码本质上都是不可信的;用起来还是要注意使用场景、安全等级的;
    /div>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5821 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 69ms UTC 01:48 PVG 09:48 LAX 17:48 JFK 20:48
    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