当前位置:网站首页>超简单 CameraX 人脸识别效果封装
超简单 CameraX 人脸识别效果封装
2022-06-11 03:56:00 【玖流之辈】
超简单 CameraX 人脸识别效果封装
项目代码在最后面!!!!跳转到最后
本项目基于Google免费开源人脸识别库和CameraX封装实现,各Android机型兼容。
识别效果
单人脸识别效果:
- 支持识别进度,可通过参数修改识别可信度,也是识别灵敏度
- 识别进度监听,支持修改识别进度条颜色
- 提供Dialog直接调用
- 识别位置人脸框绘制
- 进度加载完成可拿到识别结果,识别结果以base64返回

多人脸识别效果:
- 支持识别进度,可通过参数修改识别可信度,也是识别灵敏度
- 支持修改识别的最大人脸数量 默认10
- 提供Dialog,Fragment调用
- 识别位置人脸框绘制
- 点击识别列表可拿到识别结果,识别结果以base64返回

项目依赖库所需要的依赖
//OCR
implementation 'com.rmtheis:tess-two:9.1.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
// CameraX core library
implementation "androidx.camera:camera-core:1.1.0-beta03"
// CameraX Camera2 extensions
implementation "androidx.camera:camera-camera2:1.1.0-beta03"
// CameraX Lifecycle library
implementation "androidx.camera:camera-lifecycle:1.1.0-beta03"
// CameraX View class
implementation "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() {
@Override
public void getPhoto(String base64) {
Bitmap resultbitmap= Base64Utils.base64ToBitmap(base64);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
result_img.setImageBitmap(resultbitmap);
}
});
}
@Override
public void error(String msg) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public 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() {
@Override
public void getPhoto(String base64) {
Log.e("TEST","getPhoto"+base64);
Bitmap resultbitmap= Base64Utils.base64ToBitmap(base64);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
result_img.setImageBitmap(resultbitmap);
}
});
}
@Override
public void error(String msg) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(requireActivity(),msg,Toast.LENGTH_SHORT).show();
}
});
}
});
}
faceMultiChooseDialog.show(requireFragmentManager(),"faceMultiChooseDialog");//这里的fragmentmanger根据实际情况传入,不要照抄
具体实现逻辑可参阅下方项目代码
项目代码仓库
如果直接复制可能会出现代码缺陷,完整代码请去仓库下载
如果觉得还行,耽误您几秒钟的时间去我的仓库点点star,万一以后用到了呢?
CameraXFace 开源项目
边栏推荐
- Market prospect analysis and Research Report of denitrification unit in 2022
- ETH 中继接口
- Guide de migration Maui
- Eth Transfer
- 如何检查域名解析是否生效?
- This artifact is highly recommended. One line command will convert the web page to PDF!
- Pci/pcie related knowledge
- A Security Analysis Of Browser Extensions
- 检测php网站是否已经被攻破的方法
- 开源项目 英雄联盟 之WPF
猜你喜欢

Programming battle -- challenging college entrance examination questions

Discussion on the development trend of remote power management unit (Intelligent PDU)

雷达辐射源调制信号仿真

7. 列表标签

为了实现零丢包,数据中心网络到底有多拼?

Writing shell scripts using vscode

Red team shooting range with three-layer protection

Matlab reports an error when trying to use * * * as a function problem, and tries to execute script PCA as a function:

Google 有哪些牛逼的开源项目?

Vulkan-官方示例解读-RayTracing
随机推荐
高考结束,可以干什么事情,专业应该如何选择?-- 来自一个在校大学生的肺腑之言
【CustomView】Glide+BitmapTransformation 图片上下边框波浪处理(WaveTransformation)
clickjacking漏洞的挖掘与利用
Evil CSRF
[dataset] | UAV Perspective
Pci/pcie related knowledge
代码复现CSRF攻击并解决它
Chinese classics for children
Source Insight 4.0设置注释与反注释的快捷键
Code replicates CSRF attack and resolves it
域名解析耗时是什么?域名解析耗时影响因素有哪些?
Writing shell scripts using vscode
Market prospect analysis and Research Report of single photon counting detector in 2022
零时科技 | Discover 闪电贷攻击事件分析
PHP正则用例
强烈推荐这款神器,一行命令将网页转PDF!
How to invest in programming knowledge and reduce the impact of knowledge failure
Google 有哪些牛逼的开源项目?
6. form label
Market prospect analysis and Research Report of hydrogen liquefier in 2022