超简单 CameraX 人脸识别效果封装
超简单 CameraX 人脸识别效果封装
项目代码在最后面!!!!跳转到最后
本项目基于Google免费开源人脸识别库和CameraX封装实现,各Android机型兼容。
识别效果
单人脸识别效果:
- 支持识别进度,可通过参数修改识别可信度,也是识别灵敏度
- 识别进度监听,支持修改识别进度条颜色
- 提供Dialog直接调用
- 识别位置人脸框绘制
- 进度加载完成可拿到识别结果,识别结果以base64返回
多人脸识别效果:
- 支持识别进度,可通过参数修改识别可信度,也是识别灵敏度
- 支持修改识别的最大人脸数量 默认10
- 提供Dialog,Fragment调用
- 识别位置人脸框绘制
- 点击识别列表可拿到识别结果,识别结果以base64返回
项目依赖库所需要的依赖
//OCRimplementation 'com.rmtheis:tess-two:9.1.0'implementation 'androidx.appcompat:appcompat:1.2.0'// CameraX core libraryimplementation "androidx.camera:camera-core:1.1.0-beta03"// CameraX Camera2 extensionsimplementation "androidx.camera:camera-camera2:1.1.0-beta03"// CameraX Lifecycle libraryimplementation "androidx.camera:camera-lifecycle:1.1.0-beta03"// CameraX View classimplementation "androidx.camera:camera-view:1.1.0-beta03"//工具类implementation 'com.blankj:utilcodex:1.31.0'//权限implementation 'com.github.getActivity:XXPermissions:13.6'
项目依赖库所需要的权限
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.CAMERA"/>
简单调用
在git下载项目Demo代码后,可参考下方方式依赖代码进行人脸识别的调用:
使用方式和Dialog一致
单人脸Dialog调用
FaceChooseDialog faceChooseDialog=new FaceChooseDialog();faceChooseDialog.setGetFace(new FaceChooseDialog.GetFace() {@Overridepublic void getPhoto(String base64) {Bitmap resultbitmap= Base64Utils.base64ToBitmap(base64);new Handler(Looper.getMainLooper()).post(new Runnable() {@Overridepublic void run() {result_img.setImageBitmap(resultbitmap);}});}@Overridepublic void error(String msg) {new Handler(Looper.getMainLooper()).post(new Runnable() {@Overridepublic void run() {Toast.makeText(requireActivity(),msg,Toast.LENGTH_SHORT).show();}});}});}faceChooseDialog.show(getParentFragmentManager(),"faceChooseDialog");//这里的fragmentmanger根据实际情况传入,不要照抄
多人脸Dialog调用
FaceMultiChooseDialog faceMultiChooseDialog=new FaceMultiChooseDialog();faceMultiChooseDialog.setGetFace(new FaceMultiChooseDialog.GetFace() {@Overridepublic void getPhoto(String base64) {Log.e("TEST","getPhoto"+base64);Bitmap resultbitmap= Base64Utils.base64ToBitmap(base64);new Handler(Looper.getMainLooper()).post(new Runnable() {@Overridepublic void run() {result_img.setImageBitmap(resultbitmap);}});}@Overridepublic void error(String msg) {new Handler(Looper.getMainLooper()).post(new Runnable() {@Overridepublic void run() {Toast.makeText(requireActivity(),msg,Toast.LENGTH_SHORT).show();}});}});}faceMultiChooseDialog.show(requireFragmentManager(),"faceMultiChooseDialog");//这里的fragmentmanger根据实际情况传入,不要照抄
具体实现逻辑可参阅下方项目代码
项目代码仓库
如果直接复制可能会出现代码缺陷,完整代码请去仓库下载
如果觉得还行,耽误您几秒钟的时间去我的仓库点点star,万一以后用到了呢?
CameraXFace 开源项目
超简单 CameraX 人脸识别效果封装相关推荐
- 史上最简单的人脸识别项目登上GitHub趋势榜
来源 | GitHub Trending整理 | Freesia译者 | TommyZihao出品 | AI科技大本营(ID: rgznai100) 导读:近日,一个名为 face_recogniti ...
- 用Python实现简单的人脸识别,10分钟(附源码)
前言 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的.这里介绍的是准确 ...
- 用Python几行代码实现简单的人脸识别,10分钟完成(附源码)
前言 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的.这里介绍的是准确 ...
- 10分钟手把手教你运用Python实现简单的人脸识别
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 前言:让我的电脑认识我 我的电脑只有认识我,才配称之为我的电脑! 今天,我们用Python实现高大上的人脸识别技术! Python里,简单的 ...
- Python简单实现人脸识别检测, 对照片进行评分
大家好,今天和大家说说如何用Python简单实现人脸识别检测, 对照片进行排名,看看自己有多漂亮. [开发环境]: Python 3.8 Pycharm 2021.2 [模块使用]: requests ...
- 吗咿呀嘿-用js来搞个简单的人脸识别
缘起 "蚂蚁呀嘿,蚂蚁呀呼,蚂蚁呀哈" 相信最近好多人的朋友圈或者抖音都被类似视频刷过屏! 类似的效果最早是在2020年初,那个时候大家应该还都记得,几乎所有的人都因为疫情原因被迫 ...
- python简单的人脸识别系统(PCA+逻辑回归)
python简单的人脸识别系统(PCA+逻辑回归) 数据集:ORL人脸库 特征提取:PCA降维,将112*92降成30 分类器:逻辑回归 ** 代码: from tkinter import * fr ...
- python人脸识别解锁电脑_给你的电脑做个简单的“人脸识别认证”
原标题:给你的电脑做个简单的"人脸识别认证" Simple "Face ID" for your PC 作者 | German Gensetskiy 翻译 | ...
- vue 使用人脸识别_使用Vue.js和Kairos构建简单的人脸识别应用
vue 使用人脸识别 Face Detection and Recognition have become an increasingly popular topic these days. It's ...
最新文章
- Java CopyOnWriteArrayList
- nginx安装第三方模块echo
- 怎么给网站加js_网站站内SEO优化实操细节详解,权重上升嗖嗖的
- nyoj 133 子序列(尺取法+离散化)
- 【天工Godwork精品教程】任务一:创建工程(导入相片、编辑相机参数、导入POS)
- 学生电脑哪个牌子好_家用医用酒精棉球哪个牌子好,酒精棉片哪个牌子好
- java inireader_java读取配置文件 Java中如何设置读取ini配置文件?
- 疫情病毒全部“抹杀”?用数据模型来解读传播抑制的效果差异!
- Android 自定义组合控件 简单导航栏
- 【原理分析】细说SpringBoot的自动装配原理
- Python学习笔记17:玩转千图成像
- (黑客游戏)HackTheGame1.21 过关攻略
- 印刷机在纸厚发生变化时的压力调节
- 单片机DAC输出方波简易实验
- 我的世界中国版服务器最新版本,中国版Minecraft更新慢,老玩家喜欢玩国际版,只要是MC都好玩...
- linux下一键部署mysql_linux下一键编译搭建mysql服务器脚本
- linux设置时间大全
- React Native Text 组件显示不全解决方案
- SVG 入门指南(初学者入门必备)
- 微信小程序开发获取AppID 和 AppSecret