人脸活体离线识别摇头点头张嘴眨眼动作活体算法源码解析

活体识别要求

最近我们公司的项目需要做一个活体识别的功能,要求如下:
1.离线识别,本地识别活体,这样速度快1s内完成。需要识别出人脸,并判断是否在摇头 ,点头,张嘴,眨眼等动作,进而判断是否活体,准确率要求90%即可,可以去破解相信没有任何一个项目能完全规避的,哪怕是专业公司的。
2.免费,网上收费的项目不采用。
3.引入的新库足够小,我们项目的包本身只有30M,如果引入要上百M肯定过不了技术这关,实在不行,可以采用插件下载方式也行,这是备用方案吧。
4.开源,必须有代码,我们项目交付需要全部的代码,而且需要在android平台下可以编译arm /arm v7/ arm64/x 86 的各种架构,如果没有源码,项目也无法验收。

现在谷歌要FQ,我们只能用不专业的百度搜索了。

资源搜索

专业公司相关SDK

讯飞SDK在集成开发测试阶段服务量限制为最高500次/每日,完成提额申请或商务合作后可以解除,也就是说,这玩意也是收费的。不符合免费和开源的要求

虹软:动作什么的并不能识别。同时因为该库未开源,所以ArcFace v2.0这个SDK也未去验证是否符合 。而且是1年必须更新一次授权库,首次使用必须联网验证,所以不符合我们离线的要求

百度:该SDK满足我们的,离线,免费的要求,但是它需要申请企业认证,需要上传营业执照等申请一个appkey,也就是说,他让你用你就能用,他给你关你就得黄。所有,这个也放弃了。其实这个SDK是目前找到的公司层面的最符合我们要求的一个SDK,建议小公司直接采用该sdk即可,有大厂维护,短期应该不太会出什么问题, 但是如果他们停掉这服务,你的项目虽然完结(项目钱都收到罗),后期黄了,涉及到合同纠纷,因小失大

 

系统原生:

谷歌在部分原生系统中提供人脸检测API,但是在我国,手机ROM定制程度太高,可能兼容性无法达到要求。api被裁剪不是你想调用你就能调用的。再者,也只能对静态图片检测人脸,并告眼睛嘴巴的位置,无法识别。所以无法满足要求

 

网上的开源项目

网上相关资料: Dlib,OpenCV, 经过长达一个月的技术分析 (源码编译,Demo代码编写),发现他们都是轮子,我们要的是汽车和汽车的涉及蓝图 (好比技术和技术源码),而他们只是基础建设中的一个轮子,如果要造车基于目前这个轮子应该还有十万八千里。虽然时间是浪费了,也总结出一些经验,对这一块有自己的一些了解,也不往此行,也为后续研发新的算法提供一些参考。

新的实现:

原理:我们在学习和研发中,动作活体必须要从技术上满足下面几个硬行条件:(对于想自行研发,或者参考教程的非常重要,请认真阅读和思考哦)

1:人脸识别。 这个不用多说,这个是必须的 ,而且性能必须快,如果做不到帧率50fps,基本得黄 ,为什么?因为后面还有别的算法要耗费时间,如果你卡住了,用户的人脸已经转过去了,你还没来得及采集到更多有效特征数据,如何来判断人脸的动作?举个不恰当的例子:鸟已经飞走了,你还在上子弹。

2:人脸特征点。人脸特征点如果达到68基本可满足人脸面部动作识别,如果达到256可以更精细的美颜算法效果,如果达到1024可以识别表情:面部喜怒哀乐等 ,性能要求30fps。

3:人脸追踪。就是在识别到人脸后,通过图像算法,在既定的画面中追踪到这个人脸。可以结合人脸识别,可优化人脸识别的性能。所以至少50fps的要求。

4: 数据处理。现在实现到这一步了,这一步拿到特征数据经过处理可以得到想要的结果:眨眼摇头点头张嘴。

源码Demo下载体验地址:https://pan.baidu.com/s/1i5oXoJ7

总结: 最终实现的性能要求,30fps。是比较理想的,实在不行话10fps也是能满足基本的应用。毕竟性能这块怎么优化都不为过的。

接下来几篇将对源码进行解析,请关注我。

热门文章

暂无图片
编程学习 ·

Day 11 武装飞船

《外星人入侵》游戏要实现的是:玩家控制一艘出现在屏幕底部中央的飞船,可以使用箭头左右移动飞船,还可以使用空格来进行射击,游戏开始时候一群外星人出现在天空,他们在屏幕中向下移动,玩家的任务是射杀这些外星人,玩家将所有外星人都消灭干净后,会出现一群新的外星人,…
暂无图片
编程学习 ·

前端适配问题总结

前端适配问题总结视口布局的优点:宽度和高度全部自动适应!再加上rem布局的字体适应,可以完美解决各种屏幕适配问题!1.vw:1vw等于视口宽度的1%。2.vh:1vh等于视口高度的1%。3.vmin:选取vw和vh中最小的那个。4.vmax:选取vw和vh中最大的那个。vh and vw:相对于视口的高度…
暂无图片
编程学习 ·

小白爬虫--Xpath定位信息--举一反三

断断续续学了好多次爬虫,始终没抓到重点,最近两天终于摸到点门路,发现定位信息是最重要的,定位好了,再借助解析库就可以提取想要的信息了。 基本套路如下:(爬虫三部曲) 第一,抓取网页源代码 url = “你爬取信息的网址” headers = 请求头 import requests r0 = reques…
暂无图片
编程学习 ·

分布式数据存储系统之三要素

什么是分布式数据存储系统? 分布式存储系统的核心逻辑,就是将用户需要存储的数据根据某种规则存储到不同的机器上,当用户想要获取指定数据时,再按照规则到存储数据的机器里获取。 如下图所示,当用户(即应用程序)想要访问数据 D,分布式操作引擎通过一些映射方式,比如 H…
暂无图片
中恒嘉业 ·

关于主从复制的超详细解析(全)

目录前言1. 主从复制1.1 方式2. Mysql的主从复制2.1 一主一从2.1.1 window和linux通讯2.1.2 linux和linux的通讯2.2 双主双从3. Redis的主从复制3.1 哨兵模式3.2 java代码结合前言 主要介绍mysql的主从复制以及redis的主从复制 能由浅入深的明白原理以及如何操作 再者&#xf…
暂无图片
郑州普通话 ·

Windows下安装及配置VS Code (C/C++)

Windows下安装及配置VS Code By YC 安装VS Code 登录VS Code官方网站:https://code.visualstudio.com/download下载所需要的VS Code 注意Windows版本分为user和system两类。User版会将VSC安装在Windows的用户个人目录下(也可以手动更改)。S…
暂无图片
郑州普通话 ·

C++——深拷贝与浅拷贝

好久之前学的了&#xff0c;在CLion上试一下&#xff0c;发现为什么用的浅拷贝还是可以正常运行&#xff0c;于是转到了CB&#xff0c;发现还是可以正常运行&#xff0c;最后用了VS2022&#xff0c;就不行。 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #incl…
暂无图片
代理记账 ·

在web应用中发送和接收Jakarta消息

Running the websimplemessage Example To Package and Deploy websimplemessage Using Maven _1、Make sure that GlassFish Server has been started (see Starting and Stopping GlassFish Server). _2、In a terminal window, go to: tut-install/examples/jms/websimp…
暂无图片
cgfy ·

C++学习日记2——函数、封装、对象特性

一、函数 1.1 函数默认参数 1.1.1 简介 在C中&#xff0c;函数的形参列表中的形参是可以有默认值的 1.1.2 语法 返回值类型 函数名 (参数 默认值) {} 1.1.3 代码 #include <iostream> using namespace std;// 函数的默认参数 int func(int a, int b 20, int c 30…
暂无图片
coreui ·

视频水印怎么去除?超简单 千万不要错过

小编在知乎看到很多大佬分享的视频去水印的方法&#xff0c;但是感觉都有点太复杂了&#xff0c;今天就来分享一下小编自己私藏的几个针对于视频去水印的软件和网站~建议大家收藏哦~ 1、爱给网-视频去水印小工具&#xff08;免费 在线&#xff09; 推荐点 1、在线操作&#…
暂无图片
coreui ·

Mac 安装 tomcat10

Mac 安装 tomcat10 1、下载tomcat tomcat官网&#xff1a;https://tomcat.apache.org/ 点击我下载的tomcat10&#xff1a; 2、下载解压,给bin下的*.sh文件添加可执行权限 3、修改webapps下的ROOT中的index文件查看效果
暂无图片
未来博客 ·

视频水印怎么去除?超简单 千万不要错过

小编在知乎看到很多大佬分享的视频去水印的方法&#xff0c;但是感觉都有点太复杂了&#xff0c;今天就来分享一下小编自己私藏的几个针对于视频去水印的软件和网站~建议大家收藏哦~ 1、爱给网-视频去水印小工具&#xff08;免费 在线&#xff09; 推荐点 1、在线操作&#…
暂无图片
未来博客 ·

Mac 安装 tomcat10

Mac 安装 tomcat10 1、下载tomcat tomcat官网&#xff1a;https://tomcat.apache.org/ 点击我下载的tomcat10&#xff1a; 2、下载解压,给bin下的*.sh文件添加可执行权限 3、修改webapps下的ROOT中的index文件查看效果
暂无图片
建站日记 ·

惠州实验室建设选址、勘察事项

惠州实验室建设选址、勘察事项&#xff0c;SICOLAB技术员带您从实验室建设启动前思考问题考虑如下&#xff1a;一、不同实验室建设选址要求 1.化学实验室 &#xff08;1&#xff09;清洁安静环境 &#xff08;2&#xff09;远离住宅、生活区 &#xff08;3&#xff09;锅炉房与…
暂无图片
建站日记 ·

NLP聊天机器人原理(seq2seq模型)

一、seq2seq模型 1.概念 seq2seq是一个Encoder-Decoder结构的网络&#xff0c;它的输入是一个序列&#xff0c;输出也是一个序列。Encoder中将一个可变长度的信号序列变为固定长度的向量表达&#xff0c;Decoder将这个固定长度的向量变成可变长度的目标的信号序列。这个结构最…
暂无图片
mfbz ·

惠州实验室建设选址、勘察事项

惠州实验室建设选址、勘察事项&#xff0c;SICOLAB技术员带您从实验室建设启动前思考问题考虑如下&#xff1a;一、不同实验室建设选址要求 1.化学实验室 &#xff08;1&#xff09;清洁安静环境 &#xff08;2&#xff09;远离住宅、生活区 &#xff08;3&#xff09;锅炉房与…
暂无图片
mfbz ·

全渠道会员通-天猫会员通3: 会员运营内容准备

在天猫会员通技术对接开发过程中&#xff0c;为了通知存量会员的通知工作&#xff0c;发挥会员通的优势&#xff0c;品牌需要做好以下事宜&#xff1a; 会员体系暂停公告&#xff1a;因会员通技术升级期间&#xff0c;会员服务将被暂停&#xff0c;店铺tab中会员入口将被下线&…
暂无图片
珊珊日记 ·

C# 执行Javascript脚本

c#教程https://www.xin3721.com/eschool/CSharpxin3721/ 前一阵子使用C#编写SCXML状态机&#xff0c;需要解析EMCScript表达式&#xff0c;使用了Jint库&#xff08;https://github.com/sebastienros/jint/)&#xff0c;当时感觉与C#之间的数据转换不是很方便。这两天有时间又关…
暂无图片
珊珊日记 ·

第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛

A.大学期末现状 题目描述 作为一名大学生的你&#xff0c;现在又到了期末查成绩的时候&#xff0c;当你的成绩大于等于60时请输出“jige,haoye!”,否则输出"laoshi,caicai,laolao"。 输入描述: 一行&#xff0c;一个整数x代表你的成绩&#xff08;0<x<100&a…