Android实现人脸识别(人脸检测)初识

news/2024/10/19 0:21:53/

title: Android实现人脸识别(人脸检测)初识
categories:

  • Android
    tags:
  • 人脸识别
  • 人脸检测
  • 相机处理
    date: 2020-05-21 11:35:51

介绍

本篇文章主要介绍一下移动端Android的人脸识别大致逻辑,后续文章会陆续放出干货,首先我们要明确两个名词

  1. 人脸检测,即从一张照片中或者一个相机中,检测有没有人脸的出现,
  2. 人脸识别,相对人脸检测来说可以识别出照片或者视频中的人脸位置,人脸特征,即常用的识别例如,门禁人脸识别对比,年龄识别,性别识别,活体检测,

可以说在现在计算机视觉应用中,人脸识别尤为关键,我们可以想象到常见的美颜相机,就是人脸识别为基础,以及人脸特效啥的(某音常见的)

那么我们Android怎么实现自己的人脸识别呢

目前有几个比较成熟的技术,

  1. camera原生api(已过时不推荐)
  2. camera2 + FaceDetector(后面会详细说)
  3. opencv(笔主采用的4.3.0版本)
  4. ARCore(Google service)

关键知识点

若要知道人脸识别,图像的处理是必不可少的,那么相机等格式也是需要了解,其中有几个关键点的知识需要有所了解

  1. nv21,YUV420这些原始数据格式(大致了解会用即可)
  2. Bitmap(bitmap type 格式RGB 565,RGB4444等,大致了解即可)
  3. 灰度化,二值化
    图像的二值化是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。
    将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,
    首先,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。
     所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域
    而人脸的特征,大家都懂,一个鼻子两个眼,一张嘴2个耳朵,这些都是不同技术共同点,都是靠特征点去比对,然后检测人脸
    (感兴趣的可以继续了解图像二值化后,图像加减法,色彩调节等,迷宫算法,等还挺有意思的)

关于这些知识点,Android老鸟基本都了解,那么对后面的操作就比较简单了,

-----知道这些那么针对你的需求可以继续了

技术对比

如果你需要的是只需要测出人脸,屏幕中出现人脸的个数等,而不需要关注人脸的其余信息,只需要知道人脸出现在了镜头中,ok
那么你就可以方法二,faceDetector,该技术的特征模型,是检测眼睛,双目间距,眉眼特征来的,理论来讲只需要知道双眼坐标,
就可以知道,你相对镜头的角度,人脸的大致位置,眉心中心点,等,(这种方法的好处是,比如说现在疫情,戴口罩,ok,没问题,你带口罩我也能认出你来)

如果说你需要做比较详细的人脸信息,可以采用opencv来比较灵活,图像处理后,可以配合多种算法,各种成熟的模型,来做人脸识别,说白了就是对图像处理后,拿到数据,爱用什么算法算就用什么算,
爱用什么模型匹配,用什么模型匹配,对接起来比较简单,要精确可以简单的提升精确度,当然,模型不同原理也不同比较常用就haar lbp等分类器
在这里插入图片描述

当然项目的体积也会增加较多
好了,这篇文章先写这么多,后续补充,
后面陆续补全,方法二和方法三的具体实现,
至于方法四,后面也会有demo和解读,,,比较厉害的一个东西

博客Android实现人脸识别(人脸检测)初识


http://www.ppmy.cn/news/836829.html

相关文章

人脸识别考勤系统安卓APP(手把手教学-手动滑稽)

由于百度API开始收费,所以这个应用暂时无法使用了,代码部分仍然有参考价值,建议大家自行更换token去验证。个人博客的下载验证码bug,已经fix。可以继续下载了。 更新于2022.02.13 ————————————————————我是分…

Android 人脸识别 活体检测 人脸对比

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

Android开发实现人脸识别

之前看到有人在博客写用face做人脸识别app,后来我也照着教程去试了一遍,发现根本行不通,原因在于他调用的库是旧版本,face已经全面更新了版本.后来我照着face官网新版本的API文档打了一遍代码,发现识别的结果还算差强人…

Android自带的人脸识别

1. Android自带的人脸识别Android自带的人脸识别只能识别出人脸在画面中的位置,中点,眼间距,角度等基本特性,提供给拍照性质的应用使用。从基本功能中不能得出明显的特征数据 2. 底层库支持external/neven/* 3. 接口…

Android 实现人脸识别

引言 基于虹软人脸识别引擎,在Android平台上实现人脸识别功能,即使在离线的情况下依旧运行,不被人采集个人照片的感觉,还是爽爽的。经过整个测试过来,虹软的人脸识别还是很强大的,人脸检测可以控制在20ms之…

Android 人脸识别

1.人脸识别测试,如下: 2.导入新项目如下: 3.翻译 template:模板 tracker:跟踪器 lock:锁定 purge:清除 frame:框架我同事发给我这项目,叫我改目录才能查看,他说这项目的人脸识别可以注册人脸图和特征,注册…

APK的数字签名检测

检测命令: C:\Program Files\Java\jdk1.8.0_111\bin\jarsigner.exe -verify APK 文 件 路 径 -verbose –certs 当输出结果为“jar 已验证”时,表示签名正常 检测签名的 CN 及其他字段是否正确标识客户端程序的来源和发布者身份 如上图,说明…

laravel 上传后的文件如何符合安全标准

WEB应用为了满足“安全标准” - 上传文件的保存 Laravel 静态文件过滤中间件 <?phpnamespace App\Http\Middleware;use Closure;class StaticResourceInterceptor {/*** Handle an incoming request.** param \Illuminate\Http\Request $request* param \Closure $ne…