一种基于WebSocket协议的动态人脸识别方法与流程

文档序号:14555415阅读:359来源:国知局
一种基于WebSocket协议的动态人脸识别方法与流程

本发明涉及人脸识别系统通信实施方法领域,具体地讲涉及一种基于websocket协议的动态人脸识别方法。



背景技术:

随着平安城市、智慧城市项目的推进,大量的天网摄像机被建设使用,通过对摄像机的监控查看等,有效提高了公安干警侦破案件的效率。同时,随着人脸识别智能分析算法的不断成熟,动态人脸识别系统开始被广泛的应用到实际生产中。尽管分析算法已经实现了比较好的效果,但分析的结果要实时的展现给用户才能体现它的价值,数据的滞后会使公安人员错失先机,不利于案件侦破。

传统的客户端与服务端交互基本上都是采用http轮询或者定时任务触发,但不管哪一种形式都需要客户端不断的与服务器建立http连接,然后等待处理。这种不断反复请求解析的模式非常消耗资源,也导致了消息同步的延迟。这些问题都困扰着公安实战视频侦查工作。



技术实现要素:

根据现有技术中存在的问题,本发明提供了一种基于websocket协议的动态人脸识别方法,能够使得服务端有信息时主动推送给客户端,避免了反复解析协议和数据头信息重复的发送,提高了信息交换效率和服务器cpu使用率,实现了人脸识别消息的及时性。

为实现上述发明目的,本发明提供了一种基于websocket协议的动态人脸识别方法,包括如下步骤:

s1,在算法分析服务器上部署人脸识别算法服务,在web服务器上部署人脸动态识别系统web服务,在消息服务器上部署java消息服务;

s2,将至少一个人像样本库上传至web服务器;

s3,web服务器向算法分析服务器下发布控任务;web服务器向消息服务器发送订阅消息请求并与消息服务器建立连接;

s4,算法分析服务器对抓拍的人像与人像样本库中的样本人像进行对比,并将抓拍的人像和对比结果发送给消息服务器;

s5,消息服务器接收抓拍的人像和对比结果,并主动发送给web服务器,web服务器对抓拍的人像和对比结果进行显示。

优选的,步骤s1中,在消息服务器上部署java消息服务时采用支持websocket、amqp和stomp协议的apacheapollo软件。

进一步优选的,步骤s2中,所述人像样本库中包含有至少一个需要进行对比的样本人像。

更进一步优选的,步骤s3中,web服务器向算法分析服务器下发布控任务指定一个人样样本库、指定摄像头、设定相似度阈值和发送识别任务指令。

更进一步优选的,步骤s3中,web服务器向消息服务器发送订阅消息请求并与消息服务器建立连接的具体步骤如下:

s11,web服务器调用websocket的初始化接口url;

s12,web服务器使用stomp客户端库stomp.js中的over方法,获取stomp子协议的客户端对象,即消息服务器;

s13,web服务器向消息服务器发起websocket连接请求并向消息服务器发送connece帧;

s14,消息服务器接收web服务器发送来的连接请求并与web服务器成功连接;

s15,经过三次如所述步骤s14的连接请求和成功连接后,触发connectcallback事件,web服务器与消息服务器之间形成tcp通道连接。

更进一步优选的,步骤s4的具体步骤如下:

s21,算法分析服务器接收摄像头抓拍的人像和web服务器中的人像样本库中的样本人像,对抓拍的人像和样本人像进行归一化处理,再通过卷积神经网络技术对处理后的抓拍的人像和样本人像进行特征提取,分别得到待识别人像和对比样本人像;

s22,通过卷积神经网络技术将待识别人像与对比样本人像进行特征匹配;

s23,将特征匹配后得到的所有对比相似度值与web服务器设定的相似度阈值进行比较,并将抓拍的人像和对比相似度值大于或等于相似度阈值的人像样本库中的相关样本人像发送给消息服务器;若对比相似度值均小于相似度阈值,则仅将抓拍的人像发送给消息服务器。

更进一步优选的,步骤s14中,消息服务器接收web服务器发送来的连接请求,并判断连接请求的协议版本号、数据包的数据及格式是否与其自身的匹配,匹配则接受本次连接请求,与web服务器成功连接;不匹配消息服务器则将错误通知反馈给web服务器,web服务器端找出并解决相应的错误,直至消息服务器与web服务器成功连接为止。

本发明的有益效果在于:

1)本发明的人脸识别方法中,web服务器向算法分析服务器下发识别任务;web服务器向消息服务器发送订阅消息请求并与消息服务器建立连接;算法分析服务器对抓拍的人像与人像样本库中的样本人像进行对比,抓拍的人像和对比结果发送给消息服务器;消息服务器接收抓拍的人像和对比结果,并主动发送给web服务器,web服务器对抓拍的人像和对比结果进行显示。将web服务器通过websocket协议与消息服务器建立全双工(full-duplex)通信,即web服务器向消息服务器发送订阅消息请求并与消息服务器建立连接,当消息服务器接收抓拍的人像和对比结果,主动发送给web服务器,避免了反复解析协议和数据头信息重复的发送,提高了信息交换效率和服务器资源使用率,实现了人脸识别消息的及时性。

附图说明

图1为本发明的人脸识别方法的流程图。

图2为本发明的人脸识别方法中的系统组成示意图。

图3a、图3b分别为http协议和websocket协议的消息传送原理图。

图4为web服务器与消息服务器之间的通信示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,一种基于websocket协议的动态人脸识别方法,包括如下步骤:

s1,在算法分析服务器上部署人脸识别算法服务,在web服务器上部署人脸动态识别系统web服务,在消息服务器上部署java消息服务;如图2所示,图2为本发明的人脸识别方法中的系统组成示意图;

具体的,在消息服务器上部署java消息服务时采用支持websocket、amqp和stomp协议的apacheapollo软件。

s2,将至少一个人像样本库上传至web服务器;

具体的,所述人像样本库中包含有至少一个需要进行对比的样本人像。

s3,web服务器向算法分析服务器下发布控任务;web服务器向消息服务器发送订阅消息请求并与消息服务器建立连接;

具体的,web服务器向算法分析服务器下发布控任务指定一个人样样本库、指定摄像头、设定相似度阈值和发送识别任务指令;

如图3a和图3b所示,图3a和图3b分别为http协议和websocket协议的消息传送原理图,可以看到http交互方式,要不断的建立和关闭http协议,且http是非状态性的,每次都要重新传输identityinfo(鉴别信息);而websocket只需要建立一次连接,直到你关闭请求,同时由客户端主动询问,转换为服务端有信息时主动推送。这就避免了反复解析http协议和查看identityinfo信息,提高了宽带利用率和信息交换效率,有效地实现了消息的及时性。

如图4所示,图4为web服务器与消息服务器之间的通信示意图,web服务器向消息服务器发送订阅消息请求并与消息服务器建立连接的具体步骤如下:

s11,web服务器调用websocket的初始化接口url;

s12,web服务器使用stomp客户端库stomp.js中over方法,获取stomp子协议的客户端对象,即消息服务器;

s13,web服务器向消息服务器发起websocket连接请求并向消息服务器发送connece帧;

s14,消息服务器接收web服务器发送来的连接请求并与web服务器成功连接;

消息服务器接收web服务器发送来的连接请求,并判断连接请求的协议版本号、数据包的数据及格式是否与其自身的匹配,匹配则接受本次连接请求,与web服务器成功连接;不匹配消息服务器则将错误通知反馈给web服务器,web服务器端找出并解决相应的错误,直至消息服务器与web服务器成功连接为止;

s15,经过三次如所述步骤s14的连接请求和成功连接后,触发connectcallback事件,web服务器与消息服务器之间形成tcp通道连接。

s4,算法分析服务器对抓拍的人像与人像样本库中的样本人像进行对比,并将抓拍的人像和对比结果发送给消息服务器;具体步骤如下:

s21,算法分析服务器接收摄像头抓拍的人像和web服务器中的人像样本库中的样本人像,对抓拍的人像和样本人像进行归一化处理,再通过卷积神经网络技术对处理后的抓拍的人像和样本人像进行特征提取,分别得到待识别人像和对比样本人像;

s22,通过卷积神经网络技术将待识别人像与对比样本人像进行特征匹配;

s23,将特征匹配后得到的所有对比相似度值与web服务器设定的相似度阈值进行比较,并将抓拍的人像和对比相似度值大于或等于相似度阈值的人像样本库中的相关样本人像发送给消息服务器;若对比相似度值均小于相似度阈值,则仅将抓拍的人像发送给消息服务器。

s5,消息服务器接收抓拍的人像和对比结果,并主动发送给web服务器,web服务器对抓拍的人像和对比结果进行显示。

下面结合实施例对本发明中的部署方法进行举例说明。

实施例1:

某地公安部门在侦破盗窃案件时,需要对监控摄像头抓拍到人像进行识别,利用本发明的人脸识别方法具体过程如下:

1、在算法分析服务器上部署人脸识别算法服务,在web服务器上部署人脸动态识别系统web服务,通过apacheapollo软件在消息服务器上部署java消息服务。

2、打开web服务器中的人像库管理模块,新建人像样本库,命名为黑名单test,将本区域有盗窃前科的20个样本人像person1.jpg、person2.png、person3.png、…、person20.png上传到人像样本库黑名单test中。

3、打开web服务器中的布控功能模块,新建布控任务,命名为布控测试,其中人像样本库选择黑名单test,摄像头选择盗窃地点附近的摄像头a,相似度阈值设置为85%,确定保存;同时web服务器向算法分析服务器下发识别任务;

此时,web服务器向消息服务器发送订阅消息请求并与消息服务器建立连接,具体步骤如下:

1)web服务器调用websocket的初始化接口url;

2)web服务器使用stomp客户端库stomp.js中over方法,获取stomp子协议的客户端对象,即消息服务器;

3)web服务器向消息服务器发起websocket连接请求并发送connece帧;

4)消息服务器接收web服务器发送来的连接请求,并判断数据包数据和格式和两端协议版本号是否匹配,匹配则接受本次连接请求,并与web服务器成功连接;不匹配消息服务器则将错误通知反馈给web服务器,web服务器端找出并解决对应的错误,直至消息服务器与web服务器成功连接为止;

5)经过三次上述步骤4)的连接请求和成功连接后,触发connectcallback事件,web服务器与消息服务器之间形成tcp通道连接。

4、算法分析服务器接收摄像头a抓拍的嫌疑人人像,同时获取web服务器中的人像样本库黑名单test中的二十个样本人像,对嫌疑人人像和二十个样本人像均进行归一化处理,再通过卷积神经网络技术对处理后的嫌疑人人像和二十个样本人像均进行特征提取,得到待识别人像和对比样本人像;

通过卷积神经网络技术将待识别人像与对比样本人像进行特征匹配,得到二十个对比相似度值,对比相似度值大于相似度阈值85%的有2个,从大到小依次为88.2%和86.5%,相应的对比样本人像为person7.png和person15.png。

将摄像头a抓拍的嫌疑人人像和样本人像person7.png和person15.png发送给消息服务器。

5、消息服务器接收嫌疑人人像和样本人像person7.png和person15.png,并主动发送给web服务器,web服务器对嫌疑人人像和样本人像person7.png和person15.png进行显示,供公安部门参考。

随着摄像头a不停的抓拍并获取新的人像,通过上述步骤,web服务器可以对抓拍的人像和对比相似度值大于或等于相似度阈值的人像样本库中的相关样本人像不断地进行显示,能够实现动态人脸识别。

综上所述,本发明的人脸识别方法中,当消息服务器接收到抓拍的人像和对比结果时,会将抓拍的人像和对比结果主动发送给web服务器,避免了反复解析协议和数据头信息重复的发送,提高了信息交换效率和服务器资源使用率,实现了人脸识别消息的及时性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1