监控视频人脸识别OSD的显示方法及装置与流程

文档序号:16815690发布日期:2019-02-10 14:28阅读:1280来源:国知局
监控视频人脸识别OSD的显示方法及装置与流程

本发明实施例涉及视频监控技术领域,更具体地,涉及一种监控视频人脸识别osd的显示方法及装置。



背景技术:

在传统的视频监控环境下,监控管理人员往往要对监控视频画面中搜索出的人脸进行仔细观察并与嫌疑犯人的图片进行比对,一旦需要关注的前端视频画面或嫌疑人过多,将十分耗费人的精力。随着人工智能和计算机图像技术的飞速发展,实时人脸检测和识别技术不断取得新的发展,这些技术在一定程度上能够替代管理人员对监控画面中出现的人脸自动进行检测、识别。

视频监控的应用中通常会在视频监控画面中嵌入osd(onscreendisplay,在屏显示)信息,通过osd数据,可以使该视频的观看者直观地了解视频序列中记录的事件发生的时间和地点信息,记录这些信息极大的方便了对图像序列的辨识和图像内容的分析。当然osd数据不局限于事件发生的时间和地点信息,还可以是业务场景需要的信息,例如,人脸识别osd数据,包含视频帧图像中的人脸出现的位置信息和时间戳信息。目前在浏览器里显示监控视频以及人脸识别osd数据的方法是在网页中安装ocx插件(olecontrolextension,对象类别扩充组件),通过ocx插件播放视频流并显示人脸识别osd数据。

但是,ocx插件推广度低,在播放时,用户需要下载ocx插件,然后在浏览器中安装,而且在安装过程中需要进行验证,容易被安全软件拦截,甚至由于兼容性问题,可能引起注册模块调用失败等错误,导致安装失败,操作十分繁琐,而且只支持ie浏览器,chrome、firefox等浏览器均不能支持,限制了监控视频人脸识别osd显示的应用。



技术实现要素:

本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的一种监控视频人脸识别osd的显示方法及装置。

第一方面,本发明实施例提供一种监控视频人脸识别osd的显示方法,包括:

通过flash插件与流媒体服务器建立数据通道,通过所述数据通道从所述流媒体服务器获取监控视频流数据和人脸识别osd数据;

通过flash插件将所述监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中,将所述人脸识别osd数据存储至osd缓冲池中;

当所述视频缓冲池满时,通过flash插件对所述视频数据进行解码和渲染,同时从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据,并将所述与当前渲染的视频帧图像相匹配的人脸识别osd数据绘制成图像后叠加在所述当前渲染的视频帧图像上;

其中,所述人脸识别osd数据携带有人脸相关的坐标信息和时间戳。

第二方面,本发明实施例提供一种监控视频人脸识别osd的显示装置,包括:

数据获取模块,用于通过flash插件与流媒体服务器建立数据通道,通过所述数据通道从所述流媒体服务器获取监控视频流数据和人脸识别osd数据;

数据缓冲模块,用于通过flash插件将所述监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中,将所述人脸识别osd数据存储至osd缓冲池中;

osd显示模块,用于当所述视频缓冲池满时,通过flash插件对所述视频数据进行解码和渲染,同时从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据,并将所述与当前渲染的视频帧图像相匹配的人脸识别osd数据绘制成图像后叠加在所述当前渲染的视频帧图像上;

其中,所述人脸识别osd数据携带有人脸相关的坐标信息和时间戳。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的监控视频人脸识别osd的显示方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的监控视频人脸识别osd的显示方法的步骤。

本发明实施例提供的监控视频人脸识别osd的显示方法及装置,使用flash插件实现了监控视频播放以及人脸识别osd叠加,客户端无须安装ocx插件,且由于flash插件兼容性高,可跨浏览器运行,有益于监控视频人脸识别osd显示的应用和推广。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的监控视频人脸识别osd的显示方法的流程示意图;

图2为本发明实施例提供的监控视频人脸识别osd的显示装置的结构示意图;

图3为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

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

为了克服现有使用ocx插件进行监控视频播放和人脸识别osd数据显示所存在的问题,本发明实施例提供了一种监控视频人脸识别osd的显示方法,其发明构思为:为了将对监控视频进行实时人脸检测和识别的结果至视频播放端实时显示,现有技术采用在客户端浏览器中安装ocx插件,通过ocx插件播放视频流并显示人脸识别的osd数据。但是ocx插件安装过程繁琐,后期维护成本高,只支持部分浏览器,考虑到flash插件是在大多数的用户终端的浏览器中已安装,且可兼容各种类型的浏览器,故本发明实施例利用flash插件代替ocx插件实现监控视频播放以及人脸识别osd数据的显示。

图1为本发明实施例提供的监控视频人脸识别osd的显示方法的流程示意图,如图1所示,该方法的执行主体为安装了flash插件的用户终端,包括浏览器中安装了flash插件的移动终端或计算机等,该方法包括:

步骤10、通过flash插件与流媒体服务器建立数据通道,通过所述数据通道从所述流媒体服务器获取监控视频流数据和人脸识别osd数据。

具体地,流媒体服务器是指存储有监控视频的后台服务器,flash插件采用flashsocket方式与流媒体服务器建立通信,flash插件与流媒体服务器建立数据通道后,通过该数据通道向流媒体服务器发送视频数据请求以获取监控视频流数据,与现有技术不同的是,本发明实施例中flash插件在获取监控视频流数据的同时也获取与该监控视频流数据相关联的人脸识别osd数据。

在一个实施例中,flash插件通过socket协议从流媒体服务器获取到经过封装的数据包后,对数据包进行解析和重新组包,从中提取出监控视频流数据和人脸识别osd数据。

人脸识别osd数据是在视频源端将监控视频上传至流媒体服务器时通过人脸检测和识别算法获取到的,在本发明实施例中人脸识别osd数据已经预先存储在流媒体服务器中。所述人脸识别osd数据携带有人脸相关的坐标信息和时间戳。人脸相关的坐标信息是指视频帧图像画面中出现的人脸在该帧画面中所对应的位置信息,时间戳是指视频帧图像画面中人脸出现的时刻信息。

步骤20、通过flash插件将所述监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中,将所述人脸识别osd数据存储至osd缓冲池中。

具体地,flash插件将所获取到的监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中。由于flash插件所提取出的监控视频流数据是经过私有协议编码的,不能直接被flash插件直接播放,因此需要对提取出的监控视频流数据实时按帧进行flv格式的封装处理,最终将监控视频流数据转换为flv格式的视频数据,这样做的好处在于,可以保证视频播放的实时性,从而进一步实现人脸识别osd数据在视频播放时的同步显示。

将经过flv格式转码处理后的监控视频流数据(即flv格式的视频数据)和人脸识别osd数据均先缓存下来,目的是为了实现在监控视频流数据被解码和渲染的同时筛选出与当前渲染的视频帧图像匹配的人脸识别osd数据,然后将筛选出的人脸识别osd数据叠加绘制在正在渲染的视频帧图像上。

在具体实施时,flash插件会设置一定的缓冲时长,缓冲时长非常短,一般不超过2s,在视频缓冲池满后,才开始播放监控视频流数据。

步骤30、当所述视频缓冲池满时,通过flash插件对所述视频数据进行解码和渲染,同时从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据,并将所述与当前渲染的视频帧图像相匹配的人脸识别osd数据绘制成图像后叠加在所述当前渲染的视频帧图像上。

具体地,当视频缓冲池满时,开始对视频缓冲池中的视频数据进行解码和渲染,并且设置一个计时器开始计时,每隔预设时间,从osd缓冲池中过滤出与当前渲染的视频帧图像相匹配的人脸识别osd数据,其中,预设时间一般设置为一个极小的值,从而实现osd数据的同步显示。例如,每隔1毫秒从osd缓冲池内过滤出时间戳与当前渲染的帧时间戳相等的人脸识别osd数据,并根据所述人脸识别osd数据中包含的坐标信息在当前渲染的视频帧图像上相应位置叠加绘制人脸框和眼睛,从而实现人脸识别osd数据在视频播放时的同步显示。

本发明实施例提供的监控视频人脸识别osd的显示方法,使用flash插件实现了监控视频播放时人脸识别osd的同步显示,客户端无须安装ocx插件,且flash插件安装方便、后期维护成本低、几乎兼容所有的浏览器,有益于监控视频人脸识别osd显示的应用和推广。

基于上述实施例的内容,所述通过所述数据通道从所述流媒体服务器获取监控视频流数据和人脸识别osd数据的步骤,具体为:

通过所述数据通道从所述流媒体服务器获取消息数据包;

对所述消息数据包进行重新组包,获得完整的消息数据包;

从所述完整的消息数据包中分别提取监控视频流数据和人脸识别osd数据。

具体地,在本发明实施例中,flash插件通过socket协议接收流媒体服务器发送的消息数据包。

由于在大多数情况下,flashsocket使用tcp/ip协议组,鉴于tcp协议的数据传输特性,一个完整的视频对应的视频数据和人脸识别osd数据被封装在多个数据包中进行传输,因此,需要对接收到的消息数据包进行重新组包,从而获得一个视频对应的完整的消息数据包。重新组包的过程,例如通过对ip报文五元组相同的ip报文进行重组,获得一个完整的消息数据包。

flash插件从所述完整的消息数据包中分别提取监控视频流数据和人脸识别osd数据是指对所述完整的消息数据包进行解析,根据所述完整的消息数据包的消息标签区分监控视频流数据和人脸识别osd数据,通常一个视频数据标签后面则是视频数据,osd标签后则是人脸识别osd数据,分别提取监控视频流数据和人脸识别osd数据。

基于上述实施例的内容,所述从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据,并将所述与当前渲染的视频帧图像相匹配的人脸识别osd数据绘制成图像后叠加在所述当前渲染的视频帧图像上的步骤,具体为:

每隔预设时间将所述当前渲染的视频帧图像的时间戳与所述osd缓冲池中各人脸识别osd数据的时间戳进行比对;

若存在时间戳与所述当前渲染的视频帧图像的时间戳相等的人脸识别osd数据,则获得与当前渲染的视频帧图像相匹配的人脸识别osd数据;

根据所述人脸识别osd数据中携带的坐标信息,在所述当前渲染的视频帧图像上相应位置处叠加绘制人脸框和眼睛。

具体地,flash插件从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据是指每隔预设时间将当前渲染的视频帧图像的时间戳与所述osd缓冲池中各人脸识别osd数据的时间戳进行比对,若存在时间戳相等的人脸识别osd数据,则根据所述与当前渲染的视频帧图像相匹配的人脸识别osd数据中所携带的坐标信息,在所述当前渲染的视频帧图像的相应位置绘制人脸框和眼睛,相应位置是指与该坐标信息对应的位置。通过将人脸框和眼睛叠加在当前视频帧图像上从而实现了人脸检测和识别结果的同步显示。

基于上述实施例的内容,所述从所述完整的消息数据包中分别提取监控视频流数据和人脸识别osd数据包括:

对所述完整的消息数据包进行解析,根据所述完整的消息数据包的消息标签对h.264视频流数据和人脸识别osd数据进行区分,并分别提取所述h.264视频流数据和人脸识别osd数据。

具体地,h.264是网络视频传输编解码的主流格式,因此,对所述完整的消息数据包进行解析后,根据所述完整的消息数据包的消息标签区分h.264视频流数据和人脸识别osd数据,然后分别进行提取。

如图2所示,为本发明实施例提供的监控视频人脸识别osd的显示装置的结构示意图,包括:数据获取模块210、数据缓冲模块220和osd显示模块230,其中,

数据获取模块210,用于通过flash插件与流媒体服务器建立数据通道,通过所述数据通道从所述流媒体服务器获取监控视频流数据和人脸识别osd数据。

具体地,流媒体服务器是指存储有监控视频的后台服务器,数据获取模块210通过flash插件与流媒体服务器建立数据通道后,通过该数据通道向流媒体服务器发送视频数据请求以获取监控视频流数据,与现有技术不同的是,本发明实施例中flash插件获取监控视频流数据的同时也获取与该监控视频流数据相关联的人脸识别osd数据。

在一个实施例中,flash插件通过socket协议从流媒体服务器获取到经过封装的数据包后,对数据包进行解析和重新组包,从中提取出监控视频流数据和人脸识别osd数据。

人脸识别osd数据是在视频源端将监控视频上传至流媒体服务器时通过人脸检测和识别算法获取到的,在本发明实施例中人脸识别osd数据已经预先存储在流媒体服务器中。所述人脸识别osd数据携带有人脸相关的坐标信息和时间戳。人脸相关的坐标信息是指视频帧图像画面中出现的人脸在该帧画面中所对应的位置信息,时间戳是指视频帧图像画面中人脸出现的时刻信息。

数据缓冲模块220,用于通过flash插件将所述监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中,将所述人脸识别osd数据存储至osd缓冲池中。

具体地,数据缓冲模块220将所获取到的监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中。由于flash插件所提取出的监控视频流数据是经过私有协议编码的,不能直接被flash插件直接播放,因此需要对提取出的监控视频流数据实时按帧进行flv格式的封装处理,最终将监控视频流数据转换为flv格式的视频数据,这样做的好处在于,可以保证视频播放的实时性,从而进一步实现人脸识别osd数据在视频播放时的同步显示。

将经过flv格式转码处理的监控视频流数据(即flv格式的视频数据)和人脸识别osd数据均先缓存下来,目的是为了实现在监控视频流数据被解码和渲染的同时筛选出与当前渲染的视频帧图像匹配的人脸识别osd数据,然后将筛选出的人脸识别osd数据叠加绘制在正在渲染的视频帧图像上。在具体实施时,flash插件会设置一定的缓冲时长,缓冲时长非常短,一般不超过2s,在视频缓冲池满后,才开始播放监控视频流数据。

osd显示模块230,用于当所述视频缓冲池满时,通过flash插件对所述视频数据进行解码和渲染,同时从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据,并将所述与当前渲染的视频帧图像相匹配的人脸识别osd数据绘制成图像后叠加在所述当前渲染的视频帧图像上。

具体地,当视频缓冲池满时,osd显示模块230开始对视频缓冲池中的视频数据进行解码和渲染,并且设置一个计时器开始计时,每隔预设时间,从osd缓冲池中过滤出与当前渲染的视频帧图像相匹配的人脸识别osd数据,其中,预设时间一般设置为一个极小的值,从而实现osd数据的同步显示。例如,每隔1毫秒从osd缓冲池内过滤出时间戳与当前渲染的帧时间戳相等的人脸识别osd数据,并根据所述人脸识别osd数据中包含的坐标信息在当前渲染的视频帧图像上相应位置叠加绘制人脸框和眼睛,从而实现人脸识别osd数据在视频播放时的同步显示。

本发明实施例提供的监控视频人脸识别osd的显示装置,使用flash插件实现了监控视频播放时人脸识别osd的同步显示,客户端无须安装ocx插件,且flash插件安装方便、后期维护成本低、几乎兼容所有的浏览器,有益于监控视频人脸识别osd显示的应用和推广。

基于上述实施例的内容,所述数据获取模块210具体用于:

通过所述数据通道从所述流媒体服务器获取消息数据包;

对所述消息数据包进行重新组包,获得完整的消息数据包;

从所述完整的消息数据包中分别提取监控视频流数据和人脸识别osd数据。

具体地,数据获取模块210通过socket协议接收流媒体服务器发送的消息数据包。

由于在大多数情况下,flashsocket使用tcp/ip协议组,鉴于tcp协议的数据传输特性,一个完整的视频对应的视频数据和人脸识别osd数据被封装在多个数据包中进行传输,因此,需要对接收到的消息数据包进行重新组包,从而获得一个视频对应的完整的消息数据包。重新组包的过程,例如通过对ip报文五元组相同的ip报文进行重组,获得一个完整的消息数据包。

数据获取模块210从所述完整的消息数据包中分别提取监控视频流数据和人脸识别osd数据是指对所述完整的消息数据包进行解析,根据所述完整的消息数据包的消息标签区分监控视频流数据和人脸识别osd数据,通常一个视频数据标签后面则是视频数据,osd标签后则是人脸识别osd数据,分别提取监控视频流数据和人脸识别osd数据。

基于上述实施例的内容,所述osd显示模块230具体用于:

每隔预设时间将所述当前渲染的视频帧图像的时间戳与所述osd缓冲池中各人脸识别osd数据的时间戳进行比对;

若存在时间戳与所述当前渲染的视频帧图像的时间戳相等的人脸识别osd数据,则获得与当前渲染的视频帧图像相匹配的人脸识别osd数据;

根据所述人脸识别osd数据中携带的坐标信息,在所述当前渲染的视频帧图像上相应位置处叠加绘制人脸框和眼睛。

具体地,osd显示模块230获取与当前渲染的视频帧图像相匹配的人脸识别osd数据是指每隔预设时间将当前渲染的视频帧图像的时间戳与所述osd缓冲池中各人脸识别osd数据的时间戳进行比对,若存在时间戳相等的人脸识别osd数据,则根据所述与当前渲染的视频帧图像相匹配的人脸识别osd数据中所携带的坐标信息,在所述当前渲染的视频帧图像的相应位置绘制人脸框和眼睛,相应位置是指与该坐标信息对应的位置。通过将人脸框和眼睛叠加在当前视频帧图像上从而实现了人脸检测和识别结果的同步显示。

基于上述实施例的内容,所述数据获取模块210具体用于:

对所述完整的消息数据包进行解析,根据所述完整的消息数据包的消息标签对h.264视频流数据和人脸识别osd数据进行区分,并分别提取所述h.264视频流数据和人脸识别osd数据。

具体地,h.264是网络视频传输编解码的主流格式,因此,对所述完整的消息数据包进行解析后,根据所述完整的消息数据包的消息标签区分h.264视频流数据和人脸识别osd数据,然后分别进行提取。

图3为本发明实施例提供的电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(communicationsinterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储在存储器330上并可在处理器310上运行的计算机程序,以执行上述各实施例提供的监控视频人脸识别osd的显示方法,例如包括:通过flash插件与流媒体服务器建立数据通道,通过所述数据通道从所述流媒体服务器获取监控视频流数据和人脸识别osd数据;通过flash插件将所述监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中,将所述人脸识别osd数据存储至osd缓冲池中;当所述视频缓冲池满时,通过flash插件对所述视频数据进行解码和渲染,每隔预设时间从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据,并将所述与当前渲染的视频帧图像相匹配的人脸识别osd数据绘制成图像后叠加在所述当前渲染的视频帧图像上;其中,所述人脸识别osd数据携带有人脸相关的坐标信息和时间戳。

此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例提供的监控视频人脸识别osd的显示方法,例如包括:通过flash插件与流媒体服务器建立数据通道,通过所述数据通道从所述流媒体服务器获取监控视频流数据和人脸识别osd数据;通过flash插件将所述监控视频流数据实时转码成flv格式的视频数据后缓存至视频缓冲池中,将所述人脸识别osd数据存储至osd缓冲池中;当所述视频缓冲池满时,通过flash插件对所述视频数据进行解码和渲染,每隔预设时间从所述osd缓冲池中筛选出与当前渲染的视频帧图像相匹配的人脸识别osd数据,并将所述与当前渲染的视频帧图像相匹配的人脸识别osd数据绘制成图像后叠加在所述当前渲染的视频帧图像上;其中,所述人脸识别osd数据携带有人脸相关的坐标信息和时间戳。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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