Android人脸识别的初步学习
前言
随着技术发展,人脸识别在生活中的应用越发广泛,包括门禁系统,监控与检票时的身份辨识,移动支付,或是美颜相机等休闲娱乐应用,人脸识别逐渐替代人工识别。为我们的生活带来了极大的便利。本文将简单介绍人脸识别技术并基于虹软人脸识别SDK的demo对人脸识别技术进行初步学习。
基本知识
1. 什么是人脸识别
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别。
2. 技术流程
人脸识别系统主要包括:人脸图像采集及检测、人脸图像预处理、人脸图像特征提取以及匹配与识别四个组成部分。
人脸图像采集及检测
人脸图像采集:即通过摄像头采集不同的人脸图像;
人脸检测:对人脸识别的预处理,在图像中准确标定出人脸的位置和大小,把这其中有用的信息挑出来,并利用这些特征实现人脸检测。
人脸图像预处理
人脸的图像预处理是基于人脸检测结果,对图像进行处理并最终服务于特征提取的过程。
系统获取的原始图像往往不能直接使用,必须在图像处理的早期阶段对它进行灰度校正、噪声过滤等图像预处理。
人脸图像特征提取
人脸特征提取是对人脸进行特征建模的过程。
人脸特征提取的方法归纳起来分为两大类:一种是基于知识的表征方法;另外一种是基于代数特征或统计学习的表征方法。
人脸图像匹配与识别
提取的人脸图像的特征数据与数据库中存储的特征模板进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。人脸识别就是将待识别的人脸特征与已得到的人脸特征模板进行比较,根据相似程度对人脸的身份信息进行判断。
下载运行demo
1. 获取Demo
https://ai.arcsoft.com.cn/product/arcface.html
根据要求填写信息,进入开发者中心,选择需要的版本。
readme中有具体的使用指南:
2. 申请SDK
申请成功后可查看激活码并下载SDK。
3. 修改项目并运行demo
根据readme中的内容修改项目。
呀,报错了…面对看不懂的错误,我们就…百度…
经过一番艰难险阻,我们的demo终于运行起来了,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/64710205e5654165f3d7daf6d0117a97.png)
然而,当我一次又一次注册人脸,无论是网络上找到明星的照片,还是直接拍摄的图片,甚至是表情包,都检测不到人脸…我已经开始怀疑人脸长什么样子了…
![](https://i-blog.csdnimg.cn/blog_migrate/68a3eb0d4d830d16a48e936c48e156bf.png)
由于时间精力有限…我们直接进入源代码的阅读…
Demo代码的阅读
1. 代码组成
人脸识别流程中应该包含以下几个步骤
人脸检测 (DetecteActivity)
即从摄像头预览中检测到人脸的存在,并且使用一个矩形框出人脸的范围。
人脸注册 (RegisterActivity)
即将一张图片中的人脸信息,提取出特征值,将该特征值与人员信息建立联系。
人脸识别 (FR引擎)