AI Face Detect API
CUTOS人脸识别服务功能:
- 支持人脸捕获、注册、搜索、注销、比对
安装
npm install @cutos/ai-face-detect
引入依赖
import {Face} from '@cutos/ai-face-detect'
模型文件资源路径配置
1.自动安装(推荐)
在执行 npm install
时,安装脚本会自动下载模型文件,并将其复制到项目目录:
public/cutos-ai-face-models/
开发者无需额外操作,安装完成后即可使用。
2.手动安装
若自动安装失败或需要手动操作,可按以下步骤完成:
(1)在依赖包目录中找到已下载的模型文件:
/node_modules/@cutos/ai-face-detect/cutos-ai-face-models/
(2)将该目录完整复制到项目public/cutos-ai-face-models/
目录下,最终目录结构应如下所示:
public/
├── cutos-ai-face-models/ # 模型文件目录
│ ├── blaze_face_short_range.tflite
│ ├── vision_wasm_internal.js
│ └── vision_wasm_internal.wasm
├── config.json
├── index.html
└── thumbnail.png
Face
构造函数,创建人脸识别服务实例
const faceInstance = new Face();
Face.init
初始化人脸识别网关服务
faceInstance.init(gwClient);
gwClient
:人脸识别网关服务的实例。
Face.detectSingleFace
识别摄像头画面中的单张人脸
faceInstance.detectSingleFace(videoElement);
- videoElement:
<video>
元素
举例:
//index.html
<video class="cam-video" autoplay muted playsinline id="cam"></video>
...
//main.js
const $cam = document.querySelector('#cam')
const result = await faceInstance.detectSingleFace($cam);
console.log(result)
- 返回结果示例:
{
"face": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA",
"fullFrame": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA",
"score": 0.9609517455101013
}
result.face
:检测到的人脸图像result.fullFrame
:摄像头捕捉到的原始图像 Blobresult.score
:捕捉人脸的置信度(0-1),推荐0.9以上为检测人脸成功
Face.register
注册人脸图像
faceInstance.register(fullFrame)
fullFrame
:base64格式图像
举例:
const id = await faceInstance.register('data:image/jpeg;base64,/9jtUgA.../Z);')
console.log(id)
- 返回结果示例:
"f956ac67-0dd8-4dc4-ae5b-55f37d99bc6b" //注册成功后返回 ID
Face.search
搜索已注册人脸
faceInstance.search(fullFrame)
fullFrame
:base64格式图像
举例:
const result = await faceInstance.search('data:image/jpeg;base64,/9jtUgA.../Z);');
console.log(result)
- 返回结果示例:
{
"id": "f956ac67-0dd8-4dc4-ae5b-55f37d99bc6b",
"payload": {},
"score": 0.9953916239059821
}
result.id
:匹配到的 IDresult.score
:匹配分数
Face.unregister
注销人脸 ID
faceInstance.unregister(id);
举例:
const id = await faceInstance.unregister("f956ac67-0dd8-4dc4-ae5b-55f37d99bc6b");
console.log(id)
- 返回结果示例:
"f956ac67-0dd8-4dc4-ae5b-55f37d99bc6b" //注销成功后返回 ID
Face.compare
人脸比对
faceInstance.compare(image1, image2);
image1
:人脸图片1的base64格式图像image2
:人脸图片2的base64格式图像
举例:
const score = await faceInstance.compare('data:image/jpeg;base64,/9j/4...', 'data:image/jpeg;base64,/9j/4...');
console.log(score)
- 返回结果示例:
0.9973043918609619 //推荐0.9以上认为匹配成功