Android调用人脸生物识别系统实现流程
整体流程
下面是Android调用人脸生物识别系统的实现流程:
flowchart TD
A(开始)
B(导入相关库和依赖)
C(设置权限)
D(初始化人脸识别引擎)
E(设置识别参数)
F(开始识别)
G(获得识别结果)
H(显示识别结果)
I(结束)
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
G --> H
H --> I
步骤详解
下面是每个步骤需要做的事情和相应的代码:
- 导入相关库和依赖
在Android项目的build.gradle文件中,添加以下依赖:
dependencies {
implementation 'com.google.android.gms:play-services-vision:20.1.2'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
}
- 设置权限
在AndroidManifest.xml文件中,添加以下权限:
<uses-permission android:name="android.permission.CAMERA" />
- 初始化人脸识别引擎
在需要调用人脸生物识别系统的Activity或Fragment中,添加以下代码:
private FaceDetector faceDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化人脸识别引擎
faceDetector = new FaceDetector.Builder(getApplicationContext())
.setProminentFaceOnly(true)
.build();
}
@Override
protected void onDestroy() {
super.onDestroy();
// 释放人脸识别引擎资源
faceDetector.release();
}
- 设置识别参数
在需要调用人脸生物识别系统的Activity或Fragment中,添加以下代码:
private FaceDetector faceDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化人脸识别引擎
faceDetector = new FaceDetector.Builder(getApplicationContext())
.setProminentFaceOnly(true)
.build();
// 设置识别参数
if (!faceDetector.isOperational()) {
Toast.makeText(this, "无法运行人脸识别系统", Toast.LENGTH_SHORT).show();
return;
}
CameraSource cameraSource = new CameraSource.Builder(this, faceDetector)
.setRequestedPreviewSize(640, 480)
.setFacing(CameraSource.CAMERA_FACING_FRONT)
.setAutoFocusEnabled(true)
.setRequestedFps(30.0f)
.build();
}
- 开始识别
在需要调用人脸生物识别系统的Activity或Fragment中,添加以下代码:
private FaceDetector faceDetector;
private CameraSource cameraSource;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化人脸识别引擎
faceDetector = new FaceDetector.Builder(getApplicationContext())
.setProminentFaceOnly(true)
.build();
// 设置识别参数
if (!faceDetector.isOperational()) {
Toast.makeText(this, "无法运行人脸识别系统", Toast.LENGTH_SHORT).show();
return;
}
cameraSource = new CameraSource.Builder(this, faceDetector)
.setRequestedPreviewSize(640, 480)
.setFacing(CameraSource.CAMERA_FACING_FRONT)
.setAutoFocusEnabled(true)
.setRequestedFps(30.0f)
.build();
// 开始识别
cameraSource.start();
}
- 获得识别结果
在需要调用人脸生物识别系统的Activity或Fragment中,添加以下代码:
private FaceDetector faceDetector;
private CameraSource cameraSource;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化人脸识别引擎
faceDetector = new FaceDetector.Builder(getApplicationContext())
.setProminentFaceOnly(true)
.build();
// 设置识别参数
if (!faceDetector.isOperational()) {
Toast.makeText(this, "无法运行人脸识别系统", Toast.LENGTH_SHORT).show();
return;
}
cameraSource = new CameraSource.Builder(this, faceDetector)
.setRequestedPreviewSize(