面向智能迎宾场景的身份自动录入系统设计与实现
人脸识别;跟踪算法;对话系统;姓名纠错;
当下类似迎宾场景等包含信息录入的领域中存在着信息录入方式单一、用户友好性差、语音录入姓名出现歧义无法纠正的问题。因此,本文以智能迎宾为背景,设计并实现了一套结合语音交互式姓名录入和人脸无感式录入的身份信息自动录入系统。
在语音交互式姓名身份信息录入中,面向姓名纠错特定场景,人工构建并标注上千条数据。以Rasa为基本框架,结合意图识别与实体提取,用多种方式进行单字主语分析,实现支持成语组词和偏旁部首拆字描述的汉字指代纠错方式的姓名纠错对话系统。同时辅以伴随人脸身份信息无感式录入,在用户对话过程中自动捕捉用户人脸信息,帮助系统获取更加全面的用户信息,提升用户友好性。最后,为便于管理和维护用户信息,设计并实现一套身份信息后台管理系统。
经人工模拟并测试150个对话,系统均表现出良好的性能。在给出完整信息的情况下,一次交互即正确录入姓名的占比高达90%,平均交互次数为1.14次。
本系统弥补了语音交互纠正姓名这一领域的不足,也为类似迎宾场景中的身份录入系统提供了更具有用户友好性的设计方案。
研究内容
系统整体流程图如图 1‑4所示,文章具体的主要研究内容包括:
(1) 基于命名实体识别的语音交互式姓名身份信息自动录入方法
本系统以姓名录入和纠错为主要任务,因此多轮对话系统是本系统的核心。不同于闲聊和问答,本系统需要记忆用户上文说过的信息并根据这些内容和用户当前所说的话做出下一步决策与回答。本课题主要研究内容之一为多轮对话系统的开发与设计。
(2) 伴随人脸身份信息无感式录入方法
在本系统中,当摄像头捕捉到人脸时会进行人脸识别并与人脸数据库中的数据进行比对。如果是之前已经录入信息的用户则会主动进行一些打招呼,如果是陌生人则会记录下这个人的人脸信息并存储到人脸数据库中,以便后续的信息管理和录入工作。本课题研究现有人脸识别和检测技术的优缺点,并在适配本系统中是否存在改进空间。
(3) 身份信息管理系统设计与实现
人脸信息的保存和更多的用户信息可以大大提升用户友好性和系统智能度。一个完善的身份信息管理系统不仅能大大减轻管理员的负担也能使数据管理更加高效、准确。设计开发身份信息管理系统也是本课题主要研究内容之一。
(4) 整体系统集成与实现
本课题涉及多个模块,人脸检测与识别模块、语音输入输出模块、对话系统以及身份信息存储与管理系统,如何将科学地将各个模块设计并实现出来是本课题的研究重点之一。

图 1‑4 系统整体流程图
基于命名实体识别的语音交互式姓名身份信息自动录入方法
本系统中与用户进行交互的多轮对话系统采用RASA开源框架。在多轮对话系统中,输入为语音模块科大讯飞转成的文字,输出为语音合成模块输出的音频。首先对其进行意图识别和实体抽取,将用户话语中有意义的信息提取出来并判断用户想要做什么,由此根据学习到的策略和设定好的规则由对话系统给出应答或是引导。纠错一般流程如图 3‑1所示:

对话策略设计

对话逻辑示例


表 3‑12测试数据样例
| 数据样例 |
|---|
| 我的名字是罗绮信,罗网的罗,绮丽的绮,人字旁的信。 |
| 我的名字是许嘉然,许可的许,嘉奖的嘉,四点底的然。 |
| 我的名字是谢晨曦,谢天谢地的谢,晨光熹微的晨,日字旁的曦。 |
| 我的名字是蒋梦琪,蒋干盗书的蒋,梦寐以求的梦,王字旁的琪。 |
| 我的名字是邓雅婷,邓通之钱的邓,雅俗共赏的雅,女字旁的婷。 |
| 我叫沈惠群,沈思的沈,惠泽的惠,群英荟萃的群。 |
| 我叫牛艳青,牛气冲天的牛,艳丽的艳,青出于蓝的青。 |
| 我叫郭长岭,郭子仪的郭,长风破浪的长,山岭的岭。 |
| 我叫陈浩任,陈胜吴广的陈,浩然正气的浩,任重道远的任。 |
| 我叫夏路,夏日炎炎的夏,路途的路。 |
表 3‑13测试记录
| 原文:我的名字是李宵云,李白斗酒的李,宵衣旰食的宵,云游四海的云。 |
|---|
| 用户:我的名字是李霄云,李白的李校医甘食得消,云游四海的云。 |
| 回答:投桃报李的李,九霄云外的霄,风云人物的云,对吗? |
| 实体提取器提取结果: [‘我的名字是李霄云’, [{‘entity’: ‘name’, ‘start’: 5, ‘end’: 8, ‘confidence_entity’: 0.9652285670581184, ‘value’: ‘李霄云’, ‘extractor’: ‘CRFEntityExtractor’}]], [‘李白的李校医甘食得消’, [{‘entity’: ‘compound’, ‘start’: 9, ‘end’: 11, ‘value’: ‘李白’, ‘extractor’: ‘RegexEntityExtractor’, ‘processors’: [‘EntitySynonymMapper’]}]], [‘云游四海的云’, [{‘entity ‘: ‘compound’, ‘start’: 20, ‘end’: 24, ‘value’: ‘云游四海’, ‘extractor’: ‘RegexEntityExtractor’}]] |
| 用户:夜宵的宵。 |
| 回答:投桃报李的李,通宵达旦的宵,风云人物的云,对吗? |
| 用户:对的。 |
| 回答:李宵云,您好!欢迎下次使用!再见! |
伴随人脸身份信息无感式录入方法
本章介绍系统的伴随人脸身份信息无感式录入。在智能迎宾场景中,本系统希望获取用户的人脸图像且尽量避免麻烦用户主动地去进行采集人脸的这么一个操作,从而在用户正常的交流过程中就获取到用户人脸信息。本章阐述了人脸模块构建过程中的技术方案、难点及解决方法。
基本流程设计
伴随人脸身份信息无感式录入基本流程如图 4‑1所示,具体流程如下:
(1) 初始化工作,包括各种模型、数据;
(2) 打开摄像头,获取图像;
(3) 人脸检测:MTCNN对每一帧图像进行人脸检测并返回人脸坐标;
(4) 人脸跟踪:DeepSORT进行人脸跟踪,更新、预测轨迹;
(5) 人脸质量评估:对每个检测到的人脸图像用FaceQnet进行图像质量评估,剔除质量低的人脸图像;
(6) 人脸识别:对跟踪器中的高质量人脸进行识别,不断更新每个跟踪器的数据;
(7) 身份信息维护:以跟踪算法进行身份保持,对跟踪中的人脸进行身份信息维护。若跟踪器中confirm的人脸标记为miss,说再见,如果刚变为confirm,进行问好,若是陌生人且人脸图像质量高就存储进数据库,且与对话系统保持信息同步。

基于DeepSORT的人脸识别稳定性优化
跟踪器预测轨迹

跟踪器稳定识别结果

基于FaceQnet的人脸识别质量优化
不同角度光照下的人脸质量评估

小结
本章中在选定MTCNN+FaceNet来实现人脸检测与识别后进行测试时遇到了诸多问题:人脸识别结果跳变、人脸检测器失效、无法对视频中检测到的对象进行更进一步的处理、捕捉并保存的人脸图像质量低、人脸误识别等。
为了解决人脸识别结果跳变、多人脸同时出现以及帧与帧之间对象关联的问题,引入DeepSORT多目标跟踪算法,使得人脸识别结果更加稳定且能对视频中出现的各个对象进行操作。
为了解决捕捉并保存的人脸图像质量低而造成陌生人误识别等问题,引入FaceQnet人脸图像质量评估算法,过滤低质量的人脸图像,大大减少了误识别现象。
在加入这两种技术后问题确实得到了很好的解决,但仍然存在一些问题,这里进行一些讨论并给出优化方向。
(1) 多个人脸同时出现时,跟踪器数量过多容易造成卡顿
为了尽可能减少人脸遮挡或检测器失效后人脸重新出现导致的ID switch现象,我延长了跟踪器的存活时间,但这样也就导致了多人脸同时出现的时候跟踪器数量过多,算力紧张的问题。要想提高帧率,可以考虑减少检测器的检测次数,不需要每一帧都检测,采用隔帧检测,但是这样会降低用户的体验。
(2) 保存的人脸图像个数设定
FaceNet的训练集并非亚洲人脸,因此在亚洲人脸的表现上不如原数据集那么好,而每个人用于提取特征的图片数量也会影响到识别结果,如何设置一个合理的数值从而达到令人满意的效果则成为一个需要探究的问题。经过作者在CASIA Face Image Database Version 5.0数据集上测试得出的结论,每个人取一张图时准确率在80%-85%,取两张图时准确率在90%-95%。
身份信息管理系统设计与实现
本章介绍系统的身份信息管理系统设计与实现,基于SpringBoot、Vue和MySQL实现后台管理系统,便于管理员对于用户及陌生人信息的查看和管理。
设计身份信息管理系统是一项极其关键的任务,尤其在当前数字化和信息化的时代,其重要性不言而喻。该系统在提高安全管理效率、优化数据管理以及增强用户体验方面扮演着不可或缺的角色。
在系统中,姓名和人脸等信息至关重要,其准确性和安全性对个人和组织的利益至关重要。系统的设计确保了信息的准确性、完整性和实时性,有效防止身份冒用、信息篡改等安全问题的发生。此外,系统还可以根据需要灵活添加其他身份信息,以满足不同场景的需求。
同时,在管理系统中的后台管理里记录了每个人的进入时间,有助于管理员实时了解系统使用情况,及时发现异常行为。同时,以网页形式展示用户数据使管理员能够直观地查看和检索所需信息,大大提高了数据管理效率。这种高效的数据管理方式不仅可以减少人力成本,还能够保证数据的准确性和可靠性。
借助身份信息管理系统,通过简化操作流程、提供个性化服务等方式,系统使用户更加便捷地管理自己的身份信息。同时,系统还可以根据用户的访问习惯和偏好提供更智能化的服务,例如智能推荐、自动提醒等,从而提高用户满意度和忠诚度。
因此,设计身份信息管理系统是一项具有重要意义的任务。它不仅能够提升安全管理效率、优化数据管理,还能够增强用户体验,为组织和个人提供更加安全、便捷的身份信息管理服务。
数据库表设计
数据库含有四张表分别为user、stranger、record、admin,如表 5‑1、表 5‑2、表 5‑3、表 5‑4。ER图如图 5‑1所示。
表 5‑1 user表
| 名称 | 数据类型 | NULL | 约束 | 中文描述 | 默认值 |
|---|---|---|---|---|---|
| Id | int | Not null | PK | Id | |
| Name | Varchar(30) | Null | 姓名 | 未知 | |
| Sex | Char | Null | 性别 | 无 | |
| Face | Mediumtext | Null | 人脸 | ||
| Vector | Mediumtext | Null | 人脸向量 | ||
| status | Int | Null | 状态 | 1 |
表 5‑2 stranger表
| 名称 | 数据类型 | NULL | 约束 | 中文描述 | 默认值 |
|---|---|---|---|---|---|
| Id | int | Not null | PK | Id | |
| Name | Varchar(30) | Null | 姓名 | 未知 | |
| Sex | Char | Null | 性别 | 无 | |
| Face | Mediumtext | Null | 人脸 | ||
| Vector | Mediumtext | Null | 人脸向量 | ||
| status | Int | Null | 状态 | 1 |
表 5‑3 record表
| 名称 | 数据类型 | NULL | 约束 | 中文描述 | 默认值 |
|---|---|---|---|---|---|
| Id | int | Not null | PK | Id | |
| User_id | int | Null | FK | 用户id | |
| Stranger_id | int | Null | FK | 陌生人id | |
| time | datetime | Null | 进入时间 |
表 5‑4 admin表
| 名称 | 数据类型 | NULL | 约束 | 中文描述 | 默认值 |
|---|---|---|---|---|---|
| Id | int | Not null | PK | Id | |
| Name | Varchar(30) | Not null | 姓名 | 未知 | |
| Password | Varchar(30) | Not null | 密码 | 666666 | |
| status | Int | Null | 状态 | 1 |

图 5‑1 ER图




