创建一个人脸函数实现增删改查

本文介绍了如何创建一个人脸识别系统的人脸库,包括添加、删除、更新和搜索功能。通过FaceDatabase类,实现了向人脸库中添加特征向量,删除特定人员,更新人员特征向量,以及搜索与给定向量相似度高的人脸。示例代码展示了具体的使用方法。
摘要由CSDN通过智能技术生成

人脸识别:
完成以下人脸识别功能。
创建一个人脸库,实现人脸库的类FaceDatabase。
支持随时向人脸库中增加特征向量,实现接口add(name, vector);
支持随时删除人脸库中的人员,实现接口delete(name);
支持随时更新人脸库中的特征向量,实现接口update(name, vector);
支持,从人脸库中搜索所有相似度符合要求的人脸search(similarity, vector)。-- 返回值是人员名称的数组。
特征向量:每个人脸经过算法提取后,可以得到一串数据(浮点数),这里是一个长度为10的数组,如:
v1 = [0 , 1 , 2 , 3, 4 , 5 , 6 , 7 , 8 , 9];
v2 = [0 , 1 , 2 , 3, 4 , 5 , 6 , 7 , 8 , 9];
v1[i]和v2[i]是0到100之间的float
v1、v2相似度公式:

相似度s的范围是0到100之间的float

示例:
var faceDB = new FaceDatabase();
//添加姓名为lilei特征向量(0,1,2,3,4,5,6,7,8,9)到人脸库
faceDB.add(‘lilei’, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
//添加姓名为hanmeimei特征向量(0,1,2,3,4,5,6,7,8,9)到人脸库
faceDB.add(‘hanmeimei’, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
//更新lilei的特征向量为(1,1,2,3,4,5,6,7,8,9)
faceDB.update(‘lilei’, [1, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
//搜索和(0,1,2,3,4,5,6,7,8,9)相似度90.0%(包含90.0%)以上的人
faceDB.search(90, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); //返回值[‘hangmeimei’]
faceDB.delete(‘hanmeimei’);
faceDB.search(0.0, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); //返回值[‘lilei’]

function FaceDatabase () {
   
	var obj = {
   };
	var vectors = [];
	var names = [];
	obj.add = function (name, vector) {
   
		if (name === '') alert('name不能为空');
		vectors.push(vector);
		names.push(name);
	};
	obj.delete = function (name) {
   
		if (name === '') alert('name不能为空');
		if (names
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值