伴随着信息化的发展,城域网承载的业务愈发的多样化,服务的用户量也随之猛增。设备安全问题已经成为设备维护人员不可不谈的重要问题之一,传统的网络设备运维采用账号+密码的方式登录设备,手动访问相关设备进行相关操作,有一号多用的情况,这就会增加账号及密码泄露的风险。本工具采用开源的人脸识别库,结合当前互联网设备运维的实际需求,创新采用人脸识别技术实现网络设备登录。
维护人员运维的互联网设备种类愈发多样化,对应的指令集也成倍增加,在正常的设备维护过程中需要查询各种手册,令运维人员苦不堪言。本工具创新采用语音识别技术,将自然语言翻译成为机器可以识别的指令(时限根据设备型号将自然语言与指令做映射),使的运维更加智能化。另外针对特定的运维场景,语音识别可以释放双手,提升工作效率。
(一)详细技术内容
1、人脸识别及语音控制功能描述:
该功能的实现主要分为身份识别、工具登录、自然语言控制三部分。其中身份识别部分主要采用人脸识别技术,对维护者的身份进行判断;工具登录部分,用批处理文件调用secureCRT,实现4A的登录;语音控制部分运用百度语音识别库,将语音转化为文字,将文字翻译成设备识别指令,从而实现对设备控制的目的。各部分具体实现如下:
(1)身份识别的流程包括大数据人脸特征模拟训练、图像获取、人脸识别三个流程,通过该流程判断出操作人员的身份信息,根据操作人员的身份赋予其操作权限。权限判定成功之后则到数据库获取对应全限的账号及密码。
模拟训练:目前人脸特征库训练数据已经由face_recoginze库完成封装,仅需要使用该库提取用户的面部特征(每个人脸是一个128维的向量),用于对比(利用两个向量的内积来衡量相似度)即可,具体如下:
图像获取:调用CV2库,调用摄像头进行图片抓取,对抓取的图像进行调整使其可以被face_recoginze识别,提取当前用用户的面部特征,关键代码实现如下:
人脸对比:将当前用户的面部数据与系统中已存的面部特征库进行匹配,判断出操作人员的身份信息,根摄像头来获取用户面部特征;人脸识别据操作人员的身份赋予其操作权限。权限判定成功之后则到数据库获取对应全限的账号及密码。
功能展示:
实现效果效果展示:
代码架构及工具启动
调用摄像头,人脸信息采集
人脸识别成功
根据用户权限实现设备登录
工具登录主要是通过os库的system函数,调用用批处理文件打开SecureCRT,调用登录脚本实现4A的登录,后调用win32gui库获取当前活跃的secureCRT窗口,最终定位指令输入的句柄,方便后期指令的输入。关键代码如下:
(3)自然语言控制包括语音采集、语音识别、指令翻译、指令输入4个部分,主要流程为调用playsound库,实现对本地麦克风的控制,采集运维人员的语音数据,将人的声音转化为数据,后将相关数据上传至百度语音识别服务器,对其语音进行识别,后将识别出来的中文转化为机器指令,根据前期获取句柄,将命令输入到制定位置,实现对设备的操作。
原理介绍:声音的本质是震动,它可以由波形表示,识别则需要对波进行分帧,多个帧构成一个状态,三个状态构成一个音素。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调。之后通过音素系统合成单词或者汉字。通过大量数据机型训练,使用相应算法来 将语音转换成文本的语音识别系统要有两个数据库,一是可与提取出的信息进行匹配的声学模型数据库,二是可与之匹配的文本语言数据库。语音识别就是对采集的目标语音进行处理,获取包含关键信息的语音部分——提取关键信息——识别最小单元字词,分析规定语法排列——分析整句语义,将关键内容断句排列,调整文字构成,生成分析结果。
语音采集:调用PyAudio接口,调用马克风,获取用户指令,将指令一WAV格式保存到本地。
语音识别:将本地wav文件上传至百度语音识别服务器,获取服务器返回的识别结果。
指令翻译:进一步对识别的结果进行机器指令翻译,如果识别的结果为推出的则退出本系统,如果为查询命令则直接输入命令,若果为配置命令,安全起见需二次确认,具体关键代码如下:
指令输入:遍历识别出的机器指令,转其化为ASII 码,将其逐个输入到secureCRT中,实现对设备的操控。
具体实现流程如下:
根据用户权限实现设备登录
语音及机器操作对比
总结:实现了人脸识别技术在设备登录中使用,较传统的账号+密码的操作方式,简化了设备登录操作,另外由于人脸识别准确率高,通过低层控制,权限收敛性强,提升设备登录安全性。本工具采用语音识别技术,实现自然语言向设备可识别指令的转换,将大量烦琐的命令进行归类简化,实现了设备运维的智能化及傻瓜化,释放了运维人员双手,提升其运维的工作效率。