基于JAVA的人脸识别管理系统作品分享一下,希望能帮助到有需要的同学们。
【背景/简介】
人脸搜索与人脸库管理主要用在人脸通用场景,采集照片与底库照片主要为生活照,通常通过手机、电脑、面板机等设备采集。常用于考勤、登录人脸认证等场景。
基于JAVA的人脸识别管理系统由人脸库、人脸识别认证记录两大模块组成,整体简单实用,构成了人脸识别管理系统的核心功能。本篇文章采用百度API为大家展示基于JAVA实现的人脸识别管理系统功能,有需者可参考。
【技术框架】
系统采用的技术是基于JAVA语言开发的后台管理系统,前后端不分离,数据库采用mysql。技术栈如下:
一、后端技术:SpringBoot2.0 + mybatis + Shiro
二、前端技术:Bootstrap + thymeleaf
【核心开发】
一、数据库设计
核心表包括人脸库管理表、人脸识别记录表、人脸识别匹配明细表。因为人脸识别可能有多张图片匹配成功,故需要使用人脸识别记录匹配明细表。具体字段如下:
其中,人脸库结构由人脸库、用户组、用户、用户下的人脸组成,层级关系如下所示:
|- 人脸库(appid)
|- 用户组一(group_id)
|- 用户01(uid)
|- 人脸(faceid)
|- 用户02(uid)
|- 人脸(faceid)
|- 人脸(faceid)
....
....
|- 用户组二(group_id)
|- 用户组三(group_id)
....
设计的库表详细字段如下:
(1)人脸库表(sys_faceLibrary)
create table sys_faceLibrary
(
id bigint(20) not null auto_increment comment 'yID',
group_id varchar(50) not null comment '用户组id',
user_id varchar(50) not null comment '用户id',
url varchar(2000) not null comment '图片',
user_info varchar(50) not null comment '用户资料',
status char(1) default '0' comment '状态(0正常 1停用)',
create_by varchar(64) default '' comment '创建者',
create_time datetime comment '创建时间',
update_by varchar(64) default '' comment '更新者',
update_time datetime comment '更新时间',
remark varchar(500) default null comment '备注',
primary key (id)
) engine=innodb comment = '人脸库';
(2)人脸识别记录表(sys_faceRecord)
create table sys_faceRecord
(
id bigint(20) not null auto_increment comment 'yID',
url varchar(2000) not null comment '上传图片',
face_token varchar(250) default null comment '人脸标志',
result varchar(250) default null comment '识别结果(成功、失败)',
status char(1) default '0' comment '状态(0正常 1停用)',
create_by varchar(64) default '' comment '创建者',
create_time datetime comment '创建时间',
update_by varchar(64) default '' comment '更新者',
update_time datetime comment '更新时间',
remark varchar(500) default null comment '备注',
primary key (id)
) engine=innodb comment = '人脸识别记录';
(3)人脸识别记录匹配明细(sys_faceRecordDetail)
create table sys_faceRecordDetail
(
id bigint(20) not null auto_increment comment 'yID',
recordId bigint(20) not null comment '识别记录id',
group_id varchar(50) not null comment '识别的用户组id',
user_id varchar(50) not null