掌桥专利:专业的专利平台
掌桥专利
首页

一种基于昇腾处理器的边端监控视频结构化存储方法

文献发布时间:2023-06-19 16:12:48



技术领域

本发明涉及嵌入式、深度学习、数据库等技术领域,特别是涉及了一种基于国产昇腾处理器的边端监控视频结构化存储方法,在边端对监控视频提取关键视频段和视频段中的行人外观和数量,并且对关键视频段提供本地存储和检索服务。

背景技术

瞬息万变的交通或安全事件要求城市的监控系统具有高度自动化、智能化的能力,能够完成事件预警,轨迹跟踪等任务。虽然经过近年来机器学习的高速发展,但是如何让它真正用于海量的城市监控数据的视频行为语义检测的具体场景,是目前需要突破的工程难题。

在城市监控应用中,更加高效的边缘计算平台成为未来的研究趋势。

以往的监控摄像头,由于边端的嵌入式处理器性能有限,不能运行算力需求较高的算法,所以边端只是进行了简单的存储。而如果将这些视频数据送到服务器中进行处理又会占用很多的网络带宽,而摄像头越多,服务器的并发需求越高,处理压力越大,而且处理有较大的延时。现在的解决办法是通过加强边端节点的计算能力,即摄像头在视频输入时就进行实时的处理,把识别出的关键图片、视频段和提取出的语义信息经过结构化的存储后在发送给服务器,这样就能将计算能力从集中式的云中心迁移到更靠近用户端的摄像头边缘,在边缘执行部分或者全部计算就可以减少延迟、提供实时响应、降低网络带宽负载、还能削弱隐私泄露风险和提高数据安全性。而现在兴起的深度学习算法推动着AI芯片的快速发展,华为海斯的昇腾310AI处理器其芯片内部内置了2个AI core,可支持128位宽的LPDDR4x,与GPU的并行运算不同的是,它的芯片内部通过集成ASIC硬件电路来加速矩阵运算,能实现22TOPS INT8的算力,可广泛应用于智能监控、无人机等等边端推理场景。通过AI芯片来加强边端的计算能力是当前的热点问题,它也象征着人工智能真正的开始由理论走向应用。

综上所述,本课题通过国产的昇腾处理器部署在边端进行监控视频的结构化存储装置对于监控系统的发展具有重要意义。

发明内容

为了克服传统视频监控数据中心的并发需求高、数据处理压力大、检索效率低的缺点,本发明提供一种基于昇腾处理器的边端监控视频结构化存储方法。在边端对监控视频提取关键视频段和视频段中的行人外观和数量,并且对关键视频段提供本地存储和检索服务。

一种基于昇腾处理器的边端监控视频结构化存储方法,包括以下步骤:

1)搭建基于国产昇腾处理器的边端硬件系统,由主控芯片(108)、EMMC 模块(101)、RTC模块(102)、调试接口(103)、MIPI接口(107)、千兆以太网接口(106)、USB3.0接口(105)和SDHC模块(104)组成;

2)根据监控摄像头视频流实时更新背景图像,其背景图像具体更新公式如式(1)所示:

矩阵B表示背景图像,矩阵Bi表示二值化判定矩阵,若该矩阵上的点为0,则更新对应像素点,为1则不更新,F表示相邻时刻的原始帧;

3)根据上一步得到的二值化矩阵Bi进行椒盐去噪,找出其像素点值为1的总点数c,设置阈值Tc,若c>Tc则表示存在运动目标,使用YOLOV3算法进行目标检测,将框选出来的行人图像分割出来,并且送入到行人外观提取网络提取外观标签;

4)对于步骤(3)的目标检测网络,如果提取到了行人目标则将该帧合并入H264文件,生成关于关键视频段和行人目标的标签信息;

P={p

T={t

C={c

P表示分布在不同地点的摄像头id,T表示不同的时刻,C表示行人的外观标签,对于关键视频段的存储信息可用摄像头id和开始时间和结束时间表示,其中我们将结束时间变为从开始时间到结束时间的总帧数:

其中p

end_fream=start_fream+f(n) (7)

f表示每个视频段的帧数,对于行人信息,可以用特征标签,关键视频段表示:

pedestrian_info={c

根据上面的公式(5)、(7)设计表结构并将其存储在数据库中;

5)将H264放在SD卡中,当缓存的数据达到SD卡存储上限后会定期向服务器进行备份。

优选地,所述的搭建基于国产昇腾处理器边端硬件系统具体包括:

主控芯片,使用华为海思的altas200模块,其上集成了昇腾310处理器,利用其强大的算力运行逻辑代码和部署深度学习算法,利用各种接口来驱动外设;

EMMC模块,固化嵌入式平台的启动文件,上电后自动加载linux文件系统;

RTC模块,为嵌入式平台提供精确的时间基准,即使意外断电和系统宕机重启后依旧拥有时间基准;

调试接口,主控芯片的uart模块利用RS232输出系统地启动信息、利用 LCD显示嵌入式平台的UI界面,通过调试按键来决定是否关闭LCD来保持低功耗运行,工作指示灯显示系统的不同工作状态;

SDIO接口连接SD卡,SD卡中缓存监控视频结构化数据;

MIPI接口和USB3.0接口可以用来连接不同类型的监控视频摄像头;

主控芯片的RGMII接口和MDIO接口连接PHY芯片,PHY芯片对外提供千兆网口,千兆网口能读取输入的网络视频流或者上传数据给服务端。

优选地,所述的步骤(2)中更新背景图像的具体方法为:

选取一张初始帧初始化背景图像B(x,y,z),对相邻的不同时刻的原始帧F上每个像素点减去背景图像得到差分图像矩阵:

MD(D,t)={D(x,y,z,t

矩阵MD表示差分图像矩阵,D表示每一帧减去背景图像后得到的差分帧,将差分图像矩阵转化为灰度图像矩阵:

MG(G,t)={G(x,y,t

矩阵MG表示灰度图像矩阵,G表示由差分帧转化而来的灰度帧,其中为了减少计算量,每个像素点值的转化公式为:

V=(76R+150G+30B)>>8 (11)

V为转化为灰度后每个像素点的值,R、G、B分别表示RGB三通道上的像素值,设置阈值Tb,将灰度图像矩阵转化为二值化矩阵,其转化公式为:

其中二值化矩阵Bi上像素点的值若为1,则表示该点可能是运动目标,则背景图像不更新该点,若为0,则背景图像更新该点。4.如权利要求1所述的一种基于昇腾处理器的边端监控视频结构化存储方法,其特征在于,步骤3)所述的外观标签,具体包括年龄、性别、衣服颜色,共有35类;外观标签P共35 个。

优选地,步骤3)所述的外观标签,具体包括年龄、性别、衣服颜色,共有 35类;外观标签P共35个。

边端硬件系统主要由主控芯片、USB接口模块、MIPI接口模块、千兆以太网模块、EMMC模块、SD卡模块、RTC模块、调试接口和电源模块等组成。

主控芯片需要有丰富的外设接口以及超强的算力,同时需要运行裁剪过后的Linux系统。丰富的外设接口能拓展各类外设接口。需要高算力来满足深度学习算法的部署条件同时运行我们的逻辑代码以及完成视频图片的软件编解码等。通过USB接口或者MIPI接口来接收各类监控摄像头数据的输入。千兆以太网提供网络通讯,能将数据发送到服务器,同时也能接收网络视频流的数据。 EMMC能固化板上的操作系统,确保即使遇到断电等可不控因素,再次断电重启的时候系统依旧能自动运行。SD卡可以存储结构化数据,并且能根据不同摄像头场景的需求进行扩容。RTC模块用于为系统提供实时时钟,存储结构化数据会用到数据库或者时间戳,这些信息都需要用到板载的实时时钟。调试接口不仅可以实时显示系统的工作状态,还能在系统宕机时能够第一时间定位到问题。电源模块则为主控芯片和各个外设模块供电。

边端硬件系统通过USB接口获取摄像头视频输入,通过linux系统自带的 V4L2的库来处理摄像头输入数据并将其转化为YUV的图像帧,为了保存系统低功耗的运行,不能使用深度学习算法对视频进行实时检测,需要先使用传统数字图像处理的方法检测运动目标。主要步骤如下:

选取一张初始帧初始化背景图像B(x,y,z),对相邻的不同时刻的原始帧F上每个像素点减去背景图像得到差分图像矩阵:

MD(D,t)={D(x,y,z,t

矩阵MD表示差分图像矩阵,D表示每一帧减去背景图像后得到的差分帧,将差分图像矩阵转化为灰度图像矩阵:

MG(G,t)={G(x,y,t

矩阵MG表示灰度图像矩阵,G表示由差分帧转化而来的灰度帧,其中为了减少计算量,每个像素点值的转化公式为:

V=(76R+150G+30B)>>8 (11)

V为转化为灰度后每个像素点的值,R、G、B分别表示RGB三通道上的像素值,设置阈值Tb,将灰度图像矩阵转化为二值化矩阵,其转化公式为:

其中二值化矩阵Bi上像素点的值若为1,则表示该点可能是运动目标,则背景图像不更新该点,若为0,则背景图像更新该点。则背景图像的更新公式为:

矩阵B表示背景图像,矩阵Bi表示二值化判定矩阵,若该矩阵上的点为0,则更新对应像素点,为1则不更新,F表示相邻时刻的原始帧。

根据上一步得到的二值化矩阵Bi进行椒盐去噪,找出其像素点值为1的总点数c,设置阈值Tc,若c>Tc则表示存在运动目标,使用YOLOV3算法进行目标检测,将框选出来的行人图像分割出来,并且送入到行人外观提取网络提取外观标签。如果提取到了行人目标则将该帧合并入H264文件,生成关于关键视频段和行人目标的标签信息。

P={p

T={t

C={c

P表示分布在不同地点的摄像头id,T表示不同的时刻,C表示行人的外观标签,总共有35个。对于关键视频段的存储信息可用摄像头id和开始时间和结束时间表示,其中我们将结束时间变为从开始时间到结束时间的总帧数:

其中p

end_fream=start_fream+f(n) (7)

f表示每个视频段的帧数,对于行人信息,可以用特征标签,关键视频段表示:

pedestrian_info={c

根据上面的公式(5)、(7)设计表结构并将其存储在数据库中。

将H264放在SD卡中,当缓存的数据达到SD卡存储上限后会定期向服务器进行备份。

数据中心的服务器作为服务端,架设在边端的监控视频结构化存储装置每隔一段时间上传结构化数据时会先作为客户端向服务端发起连接请求,服务端需要接收大量边端装置上传的数据,受到网络带宽和处理效率的限制,同一时间的连接数有限。当服务端回复可以连接后,那么客户端才会上传结构化数据。 H264文件存储在分布式文件系统中,而关键视频端的标签信息等结构化数据则会被存储在分布式数据库中。同时服务器也会提供Web检索服务,通过任意客户机上的浏览器访问Web页面,支持时间、摄像头id和人物特征的多维输入进行检索,服务器在本地检索的同时会每个边端装置发送检索人物。每个边端装置在接收到检索任务后也会进行本地检索,然后将查询结果发送给服务器进行显示。

本发明的优点是:搭建了基于国产昇腾处理器的边端硬件系统,获取监控摄像头视频流来实时更新背景图像,并通过多幅当前图像与背景图像的差分帧得到二值化判定矩阵来判断视频中是否存在运动目标,通过昇腾处理器的AI加速单元来运行目标检测网络和行人外观预测网络提取运动目标中的行人目标和行人的外观特征。在边端提取监控视频中出现行人目标的关键视频段和视频段中的行人数量以及外观特征。通过行人属性建立结构化存储方式,对关键视频段提供本地存储和检索服务。主要的计算任务通过边端节点完成,极大的加快了监控视频中突发事件处理的实时性和响应速度,减少了服务器的计算压力,结构化的数据存储方式提高了数据存储和检索的效率。

附图说明

图1是本发明的边端硬件系统的拓扑结构示意图。

图2是本发明的边端硬件系统结构的示意图。

图3是本发明的边端软件工作流程图。

图4是本发明的边端和数据中心连接时的整体工作流程图。

图5是本发明方法的流程图。

具体实施方式

结合附图对本发明进行详细介绍:

图1是边端硬件系统的拓扑结构。通过边端生成结构化数据,发送给数据中心的服务器进行备份存储。

图2是本装置的边端硬件系统结构。包括主控芯片(108)、EMMC模块 (101)、RTC模块(102)、调试接口(103)、MIPI接口(107)、千兆以太网接口(106)、USB3.0接口(105)和SDHC模块(104)组成。

主控芯片(108)是整个嵌入式硬件系统的核心。不仅需要运行边端的逻辑代码还需要有丰富的外设接口。采用华为昇腾的altas200模块,其上集成了8个 Cortex-A55的核,该模块还集成了海思的昇腾310AI处理器,其芯片内部内置了2个AI core,即可针对深度学习神经网络进行加速计算的硬件模块,能实现 22TOPS INT8的算力,可以轻松运行一些小中型的深度学习算法。同时它还可支持128位宽的LPDDR4x。使用华为官方提供的SDK开发包,重构linux内核和驱动,运行linux操作系统,可以使用pcie等外设接口和网络协议栈。在上面部署深度学习算法同时运行我们的逻辑代码。

EMMC(101)模块可以固化嵌入式平台的linux内核和文件系统,上电后主控芯片根据他的硬件选通管脚自动加载EMMC中的启动文件、linux内核及文件系统。他与SD卡相比有更长的寿命、更低的功耗和更快的数据读写速率。

RTC模块(102)可以为嵌入式平台提供精确的时间基准,采用精度较高的晶体振荡器作为时钟源,它提供实时时钟给嵌入式平台来保证本地数据库不会因为没有时间戳而数据错乱,它能在设备即使意外断电,系统宕机重启时依旧能提供时间基准。

调试接口(103)包括了RS232接口、LCD显示接口、工作状态指示灯和调试按键。主控芯片通过UART管脚来输出系统的启动信息,包括固化在altas200 模块内的ROM code、linux内核和开机自启服务的启动信息,并且提供了串口终端能操作linux系统。通过RS232芯片将主控芯片的UART引脚的TTL电平转换为RS232电平然后在和电脑进行通讯。通过LCD屏幕可以直接显示处理后的关键视频,并且通过调试按键来决定是否关闭LCD来保持低功耗运行。工作指示灯显示系统的不同工作状态。

主控芯片通过SDIO接口(104)连接SD卡,SD卡中用来缓存监控视频结构化数据。

MIPI接口(107)和USB3.0接口(105)可以用来连接不同类型的监控视频摄像头。

主控芯片的RGMII接口和MDIO接口连接PHY芯片,PHY芯片对外提供千兆网口(106),千兆网口能读取输入的网络视频流或者上传数据给服务端。

边端硬件系统通过USB接口获取摄像头视频输入,通过linux系统自带的 V4L2的库来处理摄像头输入数据并将其转化为YUV的图像帧,为了保存系统低功耗的运行,不能使用深度学习算法对视频进行实时检测,需要先使用传统数字图像处理的方法检测运动目标。主要步骤如下:

选取一张初始帧初始化背景图像B(x,y,z),对相邻的不同时刻的原始帧F上每个像素点减去背景图像得到差分图像矩阵:

MD(D,t)={D(x,y,z,t

矩阵MD表示差分图像矩阵,D表示每一帧减去背景图像后得到的差分帧,将差分图像矩阵转化为灰度图像矩阵:

MG(G,t)={G(x,y,t

矩阵MG表示灰度图像矩阵,G表示由差分帧转化而来的灰度帧,其中为了减少计算量,每个像素点值的转化公式为:

V=(76R+150G+30B)>>8 (11)

V为转化为灰度后每个像素点的值,R、G、B分别表示RGB三通道上的像素值,设置阈值Tb,将灰度图像矩阵转化为二值化矩阵,其转化公式为:

其中二值化矩阵Bi上像素点的值若为1,则表示该点可能是运动目标,则背景图像不更新该点,若为0,则背景图像更新该点。则背景图像的更新公式为:

矩阵B表示背景图像,矩阵Bi表示二值化判定矩阵,若该矩阵上的点为0,则更新对应像素点,为1则不更新,F表示相邻时刻的原始帧。

根据上一步得到的二值化矩阵Bi进行椒盐去噪,找出其像素点值为1的总点数c,设置阈值Tc,若c>Tc则表示存在运动目标,使用YOLOV3算法进行目标检测,将框选出来的行人图像分割出来,并且送入到行人外观提取网络提取外观标签。如果提取到了行人目标则将该帧合并入H264文件,生成关于关键视频段和行人目标的标签信息。

P={p

T={t

C={c

P表示分布在不同地点的摄像头id,T表示不同的时刻,C表示行人的外观标签,总共有35个。对于关键视频段的存储信息可用摄像头id和开始时间和结束时间表示,其中我们将结束时间变为从开始时间到结束时间的总帧数:

其中p

end_fream=start_fream+f(n) (7)

f表示每个视频段的帧数,对于行人信息,可以用特征标签,关键视频段表示:

pedestrian_info={c

根据上面的公式(5)、(7)设计表结构并将其存储在数据库中。

将H264放在SD卡中,当缓存的数据达到SD卡存储上限后会定期向服务器进行备份。

图4是边端和数据中心连接时的整体工作流程。数据中心的服务器作为服务端,架设在边端的监控视频结构化存储装置每隔一段时间上传结构化数据时会先作为客户端向服务端发起连接请求,服务端需要接收大量边端装置上传的数据,受到网络带宽和处理效率的限制,同一时间的连接数有限。当服务端回复可以连接后,那么客户端才会上传结构化数据。H264文件存储在分布式文件系统中,而关键视频端的标签信息等结构化数据则会被存储在分布式数据库中。同时服务器也会提供Web检索服务,通过任意客户机上的浏览器访问Web页面,支持时间、摄像头id和人物特征的多维输入进行检索,服务器在本地检索的同时会每个边端装置发送检索人物。每个边端装置在接收到检索任务后也会进行本地检索,然后将查询结果发送给服务器进行显示。

以上所述的具体实施方案对本发明的技术方案进行了详细说明,应理解的是以上所述实施方式为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的修改、替代、组合、裁剪,均应为等效的置换方式,都包含在本发明的保护范围之内。

技术分类

06120114743064