kby-ai/FaceLivenessDetection-Android
GitHub: kby-ai/FaceLivenessDetection-Android
这是一个Android面部活体检测SDK,用于防止人脸识别系统中的欺骗攻击,提升生物识别安全性。
Stars: 64 | Forks: 41
### 我们的面部识别算法在 NIST FRVT 1:1 排行榜上全球排名第一。
[最新 NIST FRVT 评估报告 2024-12-20](https://pages.nist.gov/frvt/html/frvt11.html)

#### 🆔 身份证活体检测 - Linux - [此处](https://web.kby-ai.com)
#### 🤗 Hugging Face - [此处](https://huggingface.co/kby-ai)
#### 📚 产品与资源 - [此处](https://github.com/kby-ai/Product)
#### 🛟 帮助中心 - [此处](https://docs.kby-ai.com)
#### 💼 KYC 验证演示 - [此处](https://github.com/kby-ai/KYC-Verification-Demo-Android)
#### 🙋♀️ Docker Hub - [此处](https://hub.docker.com/u/kbyai)
# 面部活体检测-Android
## 概述
此仓库展示了在 `Android` 设备上实时进行 `Face Liveness Detection`(面部活体检测)的技术。
### ◾FaceSDK(移动端)详情
| 🔽 基础版 | 标准版 | 高级版 |
|------------------|------------------|------------------|
| 人脸检测 | 人脸检测 | 人脸检测 |
| 面部活体检测 | 面部活体检测 | 面部活体检测 |
| 姿态估计 | 姿态估计 | 姿态估计 |
| | 人脸识别 | 人脸识别 |
| | | 68 点面部关键点检测 |
| | | 面部质量计算 |
| | | 面部遮挡检测 |
| | | 闭眼检测 |
| | | 年龄、性别估计 |
### ◾FaceSDK(移动端)产品列表
| 序号 | 仓库 | SDK 详情 |
|------------------|-----------------------------------------------------------------------------------------------------------|------------------|
| ➡️ | [面部活体检测 - Android](https://github.com/kby-ai/FaceLivenessDetection-Android) | 基础版 SDK |
| 2 | [面部活体检测 - iOS](https://github.com/kby-ai/FaceLivenessDetection-iOS) | 基础版 SDK |
| 3 | [人脸识别 + 面部活体检测 - Android](https://github.com/kby-ai/FaceRecognition-Android) | 标准版 SDK |
| 4 | [人脸识别 + 面部活体检测 - iOS](https://github.com/kby-ai/FaceRecognition-iOS) | 标准版 SDK |
| 5 | [人脸识别 + 面部活体检测 - Flutter](https://github.com/kby-ai/FaceRecognition-Flutter) | 标准版 SDK |
| 6 | [人脸识别 + 面部活体检测 - Ionic-Cordova](https://github.com/kby-ai/FaceRececogniion-Ionic-Cordova) | 标准版 SDK |
| 7 | [人脸识别 + 面部活体检测 - React-Native](https://github.com/kby-ai/FaceRecognition-React-Native) | 标准版 SDK |
| 8 | [面部属性 - Android](https://github.com/kby-ai/FaceAttribute-Android) | 高级版 SDK |
| 9 | [面部属性 - iOS](https://github.com/kby-ai/FaceAttribute-iOS) | 高级版 SDK |
| 10 | [面部属性 - Flutter](https://github.com/kby-ai/FaceAttribute-Flutter) | 高级版 SDK |
## 试用 APK
### Google Play
## 性能视频
您可以访问我们的 YouTube 视频[此处](https://www.youtube.com/watch?v=qOAlsq6uba0)查看我们演示应用的运行效果。
[](https://www.youtube.com/watch?v=qOAlsq6uba0)
## SDK 许可证
本项目使用 `KBY-AI` 的活体检测 SDK。该 SDK 需要为每个 `application ID` 申请一个许可证。
- 以下代码展示了如何使用许可证:https://github.com/kby-ai/FaceLivenessDetection-Android/blob/f81f001b0a2f65330d2adaabc9b001003af9a112/app/src/main/java/com/kbyai/facelivedemo/CameraActivity.java#L69-L77
- 要申请许可证,请联系我们:
🧙`Email:` contact@kby-ai.com
🧙`Telegram:` [@kbyaisupport](https://t.me/kbyaisupport)
🧙`WhatsApp:` [+19092802609](https://wa.me/+19092802609)
🧙`Discord:` [KBY-AI](https://discord.gg/6wm383re2s)
🧙`Teams:` [KBY-AI](https://teams.live.com/l/invite/FBAYGB1-IlXkuQM3AY)
## 关于 SDK
### 设置
1. 将 SDK(`libfacesdk` 文件夹)复制到项目中的 `root`(根)文件夹。
2. 在 `settings.gradle` 中将 SDK 添加到项目。
```
include ':libfacesdk'
```
3. 在您的 `build.gradle` 中添加依赖项。
```
implementation project(path: ':libfacesdk')
```
### 初始化 SDK
- 第一步
首先,您需要使用收到的许可证激活 SDK。
```
FaceSDK.setActivation("...")
```
如果激活成功,返回值将是 `SDK_SUCCESS`。否则,将返回一个错误值。
- 第二步
激活后,调用 SDK 的初始化函数。
```
FaceSDK.init(getAssets());
```
如果初始化成功,返回值将是 `SDK_SUCCESS`。否则,将返回一个错误值。
### 人脸检测与活体检测
`FaceSDK` 提供了一个用于检测人脸和进行活体检测的单一函数,可以如下使用:
```
FaceSDK.faceDetection(bitmap)
```
此函数接受一个参数,即一个 `bitmap` 对象。函数的返回值是一个 `FaceBox` 对象列表。每个 FaceBox 对象包含检测到的人脸矩形框、活体分数以及面部角度,如 `yaw`(偏航角)、`roll`(翻滚角)和 `pitch`(俯仰角)。
### YUV 转 Bitmap
SDK 提供了一个名为 `yuv2Bitmap` 的函数,用于将 `yuv` 帧转换为 `bitmap`。由于相机帧通常是 `yuv` 格式,因此需要此函数将其转换为 `bitmap`。该函数的用法如下:
```
Bitmap bitmap = FaceSDK.yuv2Bitmap(nv21, image.getWidth(), image.getHeight(), 7);
```
第一个参数是包含 `yuv` 数据的 `nv21` 字节数组。
第二个参数是 `yuv` 帧的宽度,第三个参数是其高度。
第四个参数是 `转换模式`,这取决于相机的方向。
要确定适当的 `转换模式`,可以使用以下方法:
```
1 2 3 4 5 6 7 8
888888 888888 88 88 8888888888 88 88 8888888888
88 88 88 88 88 88 88 88 88 88 88 88
8888 8888 8888 8888 88 8888888888 8888888888 88
88 88 88 88
88 88 888888 888888
```
## 性能视频
您可以访问我们的 YouTube 视频[此处](https://www.youtube.com/watch?v=qOAlsq6uba0)查看我们演示应用的运行效果。
[](https://www.youtube.com/watch?v=qOAlsq6uba0)
## SDK 许可证
本项目使用 `KBY-AI` 的活体检测 SDK。该 SDK 需要为每个 `application ID` 申请一个许可证。
- 以下代码展示了如何使用许可证:https://github.com/kby-ai/FaceLivenessDetection-Android/blob/f81f001b0a2f65330d2adaabc9b001003af9a112/app/src/main/java/com/kbyai/facelivedemo/CameraActivity.java#L69-L77
- 要申请许可证,请联系我们:
🧙`Email:` contact@kby-ai.com
🧙`Telegram:` [@kbyaisupport](https://t.me/kbyaisupport)
🧙`WhatsApp:` [+19092802609](https://wa.me/+19092802609)
🧙`Discord:` [KBY-AI](https://discord.gg/6wm383re2s)
🧙`Teams:` [KBY-AI](https://teams.live.com/l/invite/FBAYGB1-IlXkuQM3AY)
## 关于 SDK
### 设置
1. 将 SDK(`libfacesdk` 文件夹)复制到项目中的 `root`(根)文件夹。
2. 在 `settings.gradle` 中将 SDK 添加到项目。
```
include ':libfacesdk'
```
3. 在您的 `build.gradle` 中添加依赖项。
```
implementation project(path: ':libfacesdk')
```
### 初始化 SDK
- 第一步
首先,您需要使用收到的许可证激活 SDK。
```
FaceSDK.setActivation("...")
```
如果激活成功,返回值将是 `SDK_SUCCESS`。否则,将返回一个错误值。
- 第二步
激活后,调用 SDK 的初始化函数。
```
FaceSDK.init(getAssets());
```
如果初始化成功,返回值将是 `SDK_SUCCESS`。否则,将返回一个错误值。
### 人脸检测与活体检测
`FaceSDK` 提供了一个用于检测人脸和进行活体检测的单一函数,可以如下使用:
```
FaceSDK.faceDetection(bitmap)
```
此函数接受一个参数,即一个 `bitmap` 对象。函数的返回值是一个 `FaceBox` 对象列表。每个 FaceBox 对象包含检测到的人脸矩形框、活体分数以及面部角度,如 `yaw`(偏航角)、`roll`(翻滚角)和 `pitch`(俯仰角)。
### YUV 转 Bitmap
SDK 提供了一个名为 `yuv2Bitmap` 的函数,用于将 `yuv` 帧转换为 `bitmap`。由于相机帧通常是 `yuv` 格式,因此需要此函数将其转换为 `bitmap`。该函数的用法如下:
```
Bitmap bitmap = FaceSDK.yuv2Bitmap(nv21, image.getWidth(), image.getHeight(), 7);
```
第一个参数是包含 `yuv` 数据的 `nv21` 字节数组。
第二个参数是 `yuv` 帧的宽度,第三个参数是其高度。
第四个参数是 `转换模式`,这取决于相机的方向。
要确定适当的 `转换模式`,可以使用以下方法:
```
1 2 3 4 5 6 7 8
888888 888888 88 88 8888888888 88 88 8888888888
88 88 88 88 88 88 88 88 88 88 88 88
8888 8888 8888 8888 88 8888888888 8888888888 88
88 88 88 88
88 88 888888 888888
```
标签:3D检测, Android应用, JS文件枚举, KYC验证, NIST FRVT, 人工智能, 人脸识别, 人脸质量计算, 反欺骗, 域名枚举, 安全认证, 实时检测, 文档活体检测, 欺诈检测, 活体检测, 深度学习, 生物识别, 用户模式Hook绕过, 移动SDK, 计算机视觉, 面部地标检测