人脸识别技术应用于支付、门禁、以及手机解锁在当下已经非常成熟,作为一个Android 开发者,掌握人脸识别技术已经是必须做的事情了,市面上比较流行的人脸识别API主要有阿里云(5000条以内免费)、腾讯云(收费)、以及虹软API(免费,活体检测免费用一年,一年之后重新申请)。

人脸识别技术原理:

人脸识别系统主要包括四个组成部分,分别为:人脸图像采集及检测、人脸图像预处理、人脸图像特征提取以及匹配与识别。

人脸图像采集:不同的人脸图像都能通过摄像镜头采集下来,比如静态图像、动态图像、不同的位置、不同表情等方面都可以得到很好的采集。当用户在采集设备的拍摄范围内时,采集设备会自动搜索并拍摄用户的人脸图像。

人脸检测:人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。人脸图像中包含的模式特征十分丰富,如直方图特征、颜色特征、模板特征、结构特征及Haar特征等。人脸检测就是把这其中有用的信息挑出来,并利用这些特征实现人脸检测。

主流的人脸检测方法基于以上特征采用Adaboost学习算法,Adaboost算法是一种用来分类的方法,它把一些比较弱的分类方法合在一起,组合出新的很强的分类方法。

人脸检测过程中使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器,再将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,有效地提高分类器的检测速度。

人脸图像预处理:对于人脸的图像预处理是基于人脸检测结果,对图像进行处理并最终服务于特征提取的过程。系统获取的原始图像由于受到各种条件的限制和随机干扰,往往不能直接使用,必须在图像处理的早期阶段对它进行灰度校正、噪声过滤等图像预处理。对于人脸图像而言,其预处理过程主要包括人脸图像的光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等。

人脸图像特征提取:人脸识别系统可使用的特征通常分为视觉特征、像素统计特征、人脸图像变换系数特征、人脸图像代数特征等。人脸特征提取就是针对人脸的某些特征进行的。人脸特征提取,也称人脸表征,它是对人脸进行特征建模的过程。人脸特征提取的方法归纳起来分为两大类:一种是基于知识的表征方法;另外一种是基于代数特征或统计学习的表征方法。

基于知识的表征方法主要是根据人脸器官的形状描述以及他们之间的距离特性来获得有助于人脸分类的特征数据,其特征分量通常包括特征点间的欧氏距离、曲率和角度等。人脸由眼睛、鼻子、嘴、下巴等局部构成,对这些局部和它们之间结构关系的几何描述,可作为识别人脸的重要特征,这些特征被称为几何特征。基于知识的人脸表征主要包括基于几何特征的方法和模板匹配法。

人脸图像匹配与识别:提取的人脸图像的特征数据与数据库中存储的特征模板进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。人脸识别就是将待识别的人脸特征与已得到的人脸特征模板进行比较,根据相似程度对人脸的身份信息进行判断。这一过程又分为两类:一类是确认,是一对一进行图像比较的过程,另一类是辨认,是一对多进行图像匹配对比的过程。

集成阿里云人脸识别(暂不支持活体检测):开通阿里云,获取acceskeys(ak_id和ak_secret)。

查看官方文档,官方文档说的相对简单,调用起来还需做许多工作。


       在咨询如何调用时,官方有给出两篇文章:智能图像技术_人脸识别_检测特征点【最新版】_人脸识别接口/API_图像识别_人工智能-云市场-阿里云(人脸识别,面部特征),另一篇https://market.aliyun.com/products/57124001/cmapi020044.html?spm=5176.730005.productlist.d_cmapi020044.1a903524pirGBp&innerSource=search_%E4%BA%BA%E8%84%B8%E6%A3%80%E6%B5%8B (人脸对比),开发者可参考使用。

说一下我是如何使用的,直接上代码:

一、人脸识别,面部特征:

将bitmap转换成Base64字符串(官方文档要求)

调用接口相对简单。运行结果如下:可检测出人脸个数和位置等信息。

二、人脸对比,直接上代码:

运行结果:

Android 人脸识别 活体检测 人脸对比相关推荐

  1. 人脸识别活体检测之张张嘴和眨眨眼

    暑 [这段时间有点忙,终于截止今天2018.06.22完成了人脸识别的最后一道程序--活体检测之眨眨眼和张张嘴] 关于人脸识别的内容我之前也写过好几篇博文,其中有:  {java实现人脸识别源码}  ...

  2. dlib实现人脸识别+活体检测

    目录: 一:dlib的shape_predictor_68_face_landmarks模型 二.眨眼检测 三.张口检测 四.眨眼检测+张口检测 五.人脸识别 六.人脸识别+活体检测 七.人脸识别破解 ...

  3. ubuntu下用Qt实现人脸识别之检测人脸并绘制人脸框(三)

    ubuntu下用Qt实现人脸识别之检测人脸并绘制人脸框(三) 要检测出人脸并且还要识别出这个人是谁,就得用到人脸算法,这个算法如果你足够牛X的话可以自己写出来,当然,如果像我一样是个小菜鸟的话就得领悟 ...

  4. 人脸识别--活体检测(眨眼检测)

    人脸识别在现在很多的项目中都有应用,最常见的就属此次315曝光的支付宝刷脸登录,当然支付宝也出来做了澄清,我们还是需要相信科技的.支付宝的刷脸可谓是相当成熟了.下面我们来简单的分析一下支付宝的刷脸登录 ...

  5. Android开发之虹软人脸识别活体检测基本步骤

    首先,我简单说下虹软的人脸识别基本步骤: 1.你的设置好设置视频模式方向用于人脸检测 有如下几个可设置方向 //设置视频模式全方向人脸检测ConfigUtil.setFtOrient(this, Fa ...

  6. 人脸识别活体检测之张张嘴和眨眨眼——readme

    人脸检测返回参数详情 ----------------------------------------------------------------------------------------- ...

  7. 微信公众号人脸识别|活体检测SDK|人证比对API

    一.概述 人脸识别特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术.人脸识别是一项热门的计算机技术研究领域,可以将人脸明暗侦测,自动调整动态曝光补偿,人脸追踪侦测,自动调整影像放大:它属于生物 ...

  8. Android开发之虹软人脸识别活体检测SDK包Bitmap转NV21方法

    /** * Bitmap 转化为 ARGB 数据,再转化为 NV21 数据 * * @param src 传入的 Bitmap,格式为 Bitmap.Config.ARGB_8888 * @param ...

  9. android bitmap nv21,Android开发之虹软人脸识别活体检测SDK包Bitmap转NV21方法

    /** * Bitmap 转化为 ARGB 数据,再转化为 NV21 数据 * * @param src 传入的 Bitmap,格式为 Bitmap.Config.ARGB_8888 * @param ...

  10. 人脸识别活体检测之张张嘴和眨眨眼——Json_Parsing

    /** * @Title: Json_Parsing.java * @Package org.util * @Description: TODO该方法的主要作用: * @author A18ccms ...

最新文章

  1. C#技术分享【PDF转换成图片——13种方案】
  2. 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
  3. 5 分钟上手 ECharts
  4. (HDU)1019 --Least Common Multiple(最小公倍数)
  5. Java正则速成秘籍(一)之招式篇
  6. 有序关系中的极大元与极小元
  7. oracle desc卡,Oracle的一个bug,desc的bug,很夸张,这么基础的功能居然有bug
  8. 安卓弹性刷新通用版—支持任何view上下刷新均有弹性效果
  9. Java万年显示和查询_Java 万年历
  10. 数据库常见面试题 —— 3. 数据库去重的方法
  11. linux取ip地址命令,linux下命令取IP地址的多种方法
  12. semilogx 多条曲线_如何在excel中绘制多条曲线
  13. 经纬度换算数值_常用经纬度转换
  14. 计算机cpu天体图,台式电脑CPU天梯图2019年1月版更新 多款新九代酷睿处理器了解下...
  15. python xmxl 无法启动_auto-pypi-一个Python命令行工具,用于自动设置包并将其上载到PyPi。-Sen LEI Use As A Command Line Tool...
  16. VTM3.0代码阅读:xEstimateMvPredAMVP函数
  17. cydia多开微信_微信陌陌多开(N开)并且分开推送及一键隐藏教程
  18. Python视觉摄像头检测有趣项目之机器学习和概率论重点概念分析重要(三)(重点)
  19. STM32电机PID速度控制
  20. 【UDK官方教程】知识点学习第一章

热门文章

  1. 我的世界java版怎么打开游戏菜单_我的世界游戏界面设置方法
  2. Qt编写iphone信息读取(验机)工具
  3. 电脑只能上微信不能打开网页_能上微信不能打开网页
  4. 使用SAS实现单因素方差分析
  5. 活法 - 第三章 磨练灵魂、提升心志
  6. 通过高德地图获取 经纬度 以及地理位置等
  7. zigbee学习之JN5169 串口UARTs
  8. Android为什么图片模糊不清,Android打开图库中图片为什么从模糊变清晰
  9. Python缩进问题:IndentationError:expectedan indented block
  10. 企业级数据服务总线规划