AI Face Detect API
CUTOS人脸识别服务功能:
- 支持浏览器原生摄像头调用
- 支持 CUTOS 客户端初始化连接
- 支持人脸注册、搜索、注销、比对
- 支持人脸图像展示与实时识别
- 支持配置自定义服务网关地址和客户端地址
安装
npm install @cutos/core
npm install @cutos/gw-client
npm install @mediapipe/tasks-vision
引入依赖
import { CoreAPI } from "@cutos/core";
import { Face } from './lib/cutos-ai-face.js';
import { config } from './lib/config';
- 举例程序中下载 Demo-cutos-ai-face
Face
构造函数,创建人脸识别服务实例
const faceInstance = new Face();
Face.init
初始化人脸识别网关服务
faceInstance.init([gwUrl]);
gwUrl
:人脸识别服务器地址.- 不传参数:连接设备对应服务器
- 传入目标服务器IP:用于跨服务器获取服务
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 = 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 = 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 = 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 = 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 = faceInstance.compare('data:image/jpeg;base64,/9j/4...', 'data:image/jpeg;base64,/9j/4...');
console.log(score)
- 返回结果示例:
0.9973043918609619 //推荐0.9以上认为匹配成功