基于PYNQ的神经网络的识别视频监控报警系统及方法与流程

专利2024-07-12  52


本发明涉及环境安全监控技术领域,尤其是涉及基于pynq平台的软硬相结合的神经网络加速器以及在智能监控上的应用。



背景技术:

安全一直以来都是人类所关注的首要话题之一,过去是人类的站岗放哨,到现在的摄像头密布,一张安全监控的大网保障着我们人身财产的安全,也使得犯罪率下降。随着经济社会的发展,人们对于住宅等私人领域的隐私和安全以及果园等一些产业财产监控也越加看中,而单靠人力去监守显然是有较大的局限性的,智能监控的出现正好提供了这方面的需求。随着科技的发展,传统的监控手段已经逐渐被淘汰,基于深度学习的智能监控正在蓬勃发展,向着更低廉,更便捷,更智能,更人性化,更服务人类的方向迅猛前进。

zynq是xilinx(赛灵思公司)推出的zynq平台,pynq是python和zynq的组合,是使用python在xilinx的zynq平台上进行开发。zynq分为ps和pl两个部分,ps有两个arm的核,在上面运行linux操作系统,在操作系统上再运行python,pl部分就是fpga的逻辑资源。

神经网络的兴起,越来越得到市场的认可,可以通过训练后的神经网络来提高视频监控过程中的识别性能。

如何能够更好的结合神经网络在pynq上的应用,从而提高监控报警系统的性能,以便能够及时处理异常情况是目前相关领域关注的焦点。



技术实现要素:

为解决现有技术的不足,实现神经网络与pynq更好的结合并应用于监控报警系统的目的,本发明采用如下的技术方案:

基于pynq的神经网络的识别视频监控报警系统,包括视频采集模块、控制模块、通信接口模块、无线通信模块、上位机模块,其中通信接口模块分别与采集模块、控制模块、无线通信模块连接,无线通信模块与上位机模块连接,还包括与通信接口模块连接的卷积神经网络加速器,所述卷积神经网络加速器是通过训练好的卷积神经网络分类模型实现的,在pynq的pl部分,所述控制模块,包括arm芯片,在pynq的ps部分,控制模块通过总线实现对pl部分的控制及通信;

所述视频采集模块,将采集到的监控环境的特征图输入ddr;

所述arm芯片,从ddr读取特征图经预处理,生成卷积神经网络分类模型的输入格式,并存入ddr中;

所述卷积神经网络加速器,读取ddr数据,采用卷积神经网络分类模型的权重利用fpga的低功耗、并行计算特性等独特优势,在卷积神经网络分类模型的各层采用重复分配计算资源、数据复用、多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存,对训练模型进行硬件加速,并根据特征差异实现识别;

无线通信模块,将卷积神经网络加速器识别到的异常情况上传到上位机模块,最终实现终端(摄像头)数据上传到客户端平台,达到危险预警的作用。

针对环境异常情况识别模型的训练,将训练好的模型在pl上实现并加速,通过摄像头采集监控环境信息,经arm预处理成网络加速器特征图输入格式后,存储的ddr中,然后pl端通过dma读取ddr数据到卷积神经网络加速器,通过设计的神经网络加速器识别分类,从而判断是否存在对安全造成威胁的异常情况,如果有异常情况,系统将实时的异常情况通过通信接口模块,再经无线通信模块发送到服务器平台,达到预警的同时,能及时处理异常,预防意外,及时止损。

系统综合了软件与硬件,利用了arm软件的灵活性和fpga的独特优势,采用重复分配计算资源、数据复用、任务分段,在卷积层、池化层上采多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存,以实现卷积神经网络加速器。

进一步的,所述通信,是通过总线将arm芯片与pl部分进行参数传输,配置核大小、步长;将监控的检测结果经通信接口模块通过无线通信模块将检测异常发送给上位机模块。

进一步的,所述控制,是检测各层网络的计算完成情况,以及控制神经网络的各层能够有序的进行,包括启动神经网络的各层。

进一步的,所述卷积神经网络分类模型的训练,将采集的数据作为训练集,对训练集中的特征进行标注,采用特征算法进行特征提取,然后用训练集进行训练,并在验证集上进行验证,卷积神经网络分类模型保存最优的权重,用于后续读取,并记录训练集和验证集的精度,便于调参。

进一步的,所述视频采集模块,通过在pl部分上的iic驱动实现对摄像头的iic配置,用于配置摄像头的工作参数,并利用摄像头将采集到的监控环境的特征图输入ddr。

进一步的,所述预处理包括锐化、裁剪操作。

基于pynq的神经网络的识别视频监控报警方法,包括如下步骤:

s1,将采集到的监控环境的特征图输入ddr;

s2,pynq的ps部分的控制模块,包括arm芯片,所述arm芯片,从ddr读取特征图经预处理,生成卷积神经网络分类模型的输入格式,并存入ddr中;控制模块通过总线实现对pl部分的控制及通信;

s3,pynq的pl部分的卷积神经网络加速器,对训练好的卷积神经网络分类模型进行加速;包括如下步骤:

s31,卷积神经网络加速器,读取ddr数据;

s32,读取卷积神经网络分类模型的权重;

s33,在卷积神经网络分类模型的各层采用重复分配计算资源、数据复用、多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存,对训练模型进行硬件加速;

s34,根据特征差异实现识别;

s4,无线通信模块,将卷积神经网络加速器识别到的异常情况上传到上位机模块。

针对环境异常情况识别模型的训练,将训练好的模型在pl上实现并加速,通过摄像头采集监控环境信息,经arm预处理成网络加速器特征图输入格式后,存储的ddr中,然后pl端通过dma读取ddr数据到卷积神经网络加速器,通过设计的神经网络加速器识别分类,从而判断是否存在对安全造成威胁的异常情况,如果有异常情况,系统将实时的异常情况通过通信接口模块,再经无线通信模块发送到服务器平台,达到预警的同时,能及时处理异常,预防意外,及时止损。

系统综合了软件与硬件,利用了arm软件的灵活性和fpga的独特优势,采用重复分配计算资源、数据复用、任务分段,在卷积层、池化层上采多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存,以实现卷积神经网络加速器。

进一步的,所述加速器的加速包括流水线分段计算,将多条指令的不同步骤重叠操作,实现几条指令并行处理,所述重叠操作,是将一个卷积n×n窗口分为n步操作,每一步对卷积窗口的一列数据进行乘操作,即一级流水,然后将结果累加,即二级流水,实现了乘累加操作,n步并行,最终产生n个值,然后再将这n个值进行累加,即三级流水,从而完成一个卷积窗口的卷积操作;当有m个通道,便同时操作m个n×n卷积窗口,实现多通道并行处理;完成一次n×n大小的卷积窗口时,如果是重叠卷积,将重叠部分的数据用于下次卷积,实现了复用计算资源。

进一步的,所述加速器的加速包括线性缓存,在卷积神经网络加速器输入特征图时,用ram进行缓存,数据每输入一个,存储模块向前移动一位,利用ram可以随意读写的特性,实现数据复用以及卷积核的并行处理。

本发明的优势和有益效果在于:

本发明采用软硬件相结合的资源利用方式,采用pl端实现深度学习推理部分的神经网络加速器以及实时无线传输监控结果到终端,利用硬件来实现神经网络加速器,这样的设计计算速度快,系统反应迅速,无线传输能及时反馈异常信息等优点。

附图说明

图1是本发明的模块结构示意图。

图2是本发明中基于pynq的卷积神经网络加速器的系统框图。

图3是本发明中卷积神经网络的流程图。

图4是本发明中缓存移位的示意图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

开发者在pl中实现卷积神经网络加速器,卷积神经网络加速器通过axi总线连接到ps端,pynq有一个特有的库叫overlay,使用这个库可以对连接到ps端的接口进行解析,进而控制fpga逻辑资源及io。

如图1-3所示,一种基于pynq的卷积神经网络加速器的识别视频监控报警系统及方法,包括视频采集模块、控制模块、通信接口模块、无线通信模块、上位机模块,其中通信接口模块分别与采集模块、控制模块、无线通信模块连接,无线通信模块与上位机模块连接,还包括与通信接口模块连接的卷积神经网络加速器,所述卷积神经网络加速器是在pynq的pl部分,通过训练好的神经网络分类模型实现的;

所述视频采集模块,通过在fpga(pl部分)上的iic驱动实现对摄像头的iic配置,用于配置摄像头的工作参数,并利用摄像头,将采集到的监控环境的特征图输入ddr;

所述控制模块,在pynq的ps部分,包括arm芯片,arm芯片从ddr读取特征图经预处理(锐化、裁剪操作),生成resnet卷积神经网络的输入格式(即所需的特征图大小,例如8位三通道的224*224像素的特征图),并存入ddr中;控制模块通过axi总线实现对pl部分的控制及通信,控制是检测各层网络的计算完成情况,以及控制神经网络的各层能够有序的进行(启动网络的相应层,如卷积层、池化层、全连接层),通过axi总线将arm芯片与fpga进行通信是传输参数配置核大小、步长,经通信接口模块通过无线通信模块将检测异常发送给上位机模块;

所述卷积神经网络加速器,pl部分通过dma(directmemoryaccess,一种不经过cpu而直接从内存了存取数据的数据交换模式)读取ddr数据到卷积神经网络加速器,卷积神经网络加速器采用resnet卷积神经网络分类模型根据人与物的特征差异实现人与物的区分,检测所监控的环境是否有人存在;

resnet卷积神经网络分类模型的训练,需要将采集的环境信息作为训练集,对训练集中人体特征进行标注,用surf算法、hog特征算法、lbp特征算法、haar特征算法等都可以进行特征提取;然后用训练集进行训练;在验证集上进行验证;模型可以保存最优的权重,并读取权重;记录下训练集和验证集的精度,便于调参;

卷积神经网络加速器,特征读取模块采用线性缓存的方法实现输入数据的复用,在做卷积时可以通过流水线分段计算的方法,用乒乓球缓存的方式实现卷积部分的加速。主要是对卷积层的加速,神经网络加速器的输入是8位三通道224*224像素的特征图,①将读入的数据用用ram进行缓存,如图4所示,数据每输入一个,存储模块向前移动一位,而ram的特性是可以随意读写的,这样就可以实现数据复用,以及卷积核的并行处理。②流水线(pipeline)技术是一种将每条指令拆分为多个步骤,多条指令的不同步骤重叠操作,从而实现几条指令并行处理的技术。一个卷积n×n窗口可以分为n步操作,每一步对卷积窗口的一列数据进行乘操作(一级流水),然后将结果累加(二级流水),这样就实现了乘累加操作,n步并行,最终产生n个值,然后再将这n个值进行累加(三级流水)即可完成一个卷积窗口的卷积操作。如果是m通道,那么就将上述的操作同时操作m个n×n卷积窗口操作即可,实现多通道并行处理。做完一次n×n大小的卷积窗口时,如果是重叠卷积,那么重叠部分的数据可以用于下次卷积,这样就实现了复用计算资源。

pl上实现卷积神经网络加速器模块,根据得到的resnet神经网络模型的网络权重,利用fpga的低功耗、并行计算特性等独特优势,对训练模型进行硬件加速,在卷积层、池化层上、全连接层等,采用重复分配计算资源、数据复用、多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存以实现resnet卷积神经网络的加速。

无线通信模块,通过将卷积神经网络加速器识别到的异常情况上传到上位机模块(客户端平台),最终实现终端(摄像头)数据上传到客户端平台,达到危险预警的作用;

通信接口模块,用于iic、无线通信、ps与pl的通信协议转换和接口的匹配,实现ps部分和pl部分通过axi通信,摄像头和ps部分arm芯片的通信,以及无线通信模块的传输,通过iic通信协议将视频数据接入pl部分。

所述上位机模块,即客户端平台,采用qt编写,用高级语言来实现无线通信模块发送的信息的接收。

系统综合了软件与硬件,利用了arm软件的灵活性和fpga的独特优势,采用重复分配计算资源、数据复用、任务分段,在卷积层、池化层上采多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存,以实现卷积神经网络加速器。

针对环境异常情况识别模型的训练,将训练好的模型在pl上实现并加速,通过摄像头采集监控环境信息,经arm预处理成网络加速器特征图输入格式后,存储的ddr中,然后pl端通过dma读取ddr数据到卷积神经网络加速器,通过设计的神经网络加速器识别分类,从而判断是否存在对安全造成威胁的异常情况,如果有异常情况,系统将实时的异常情况通过通信接口模块,再经无线通信模块发送到服务器平台,达到预警的同时,能及时处理异常,预防意外,及时止损。

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


技术特征:

1.基于pynq的神经网络的识别视频监控报警系统,包括视频采集模块、控制模块、通信接口模块、无线通信模块、上位机模块,其中通信接口模块分别与采集模块、控制模块、无线通信模块连接,无线通信模块与上位机模块连接,其特征在于还包括与通信接口模块连接的卷积神经网络加速器,所述卷积神经网络加速器是通过训练好的卷积神经网络分类模型实现的,在pynq的pl部分,所述控制模块,包括arm芯片,在pynq的ps部分,控制模块通过总线实现对pl部分的控制及通信;

所述视频采集模块,将采集到的监控环境的特征图输入ddr;

所述arm芯片,从ddr读取特征图经预处理,生成卷积神经网络分类模型的输入格式,并存入ddr中;

所述卷积神经网络加速器,读取ddr数据,采用卷积神经网络分类模型的权重,在卷积神经网络分类模型的各层采用重复分配计算资源、数据复用、多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存,对训练模型进行硬件加速,并根据特征差异实现识别;

无线通信模块,将卷积神经网络加速器识别到的异常情况上传到上位机模块。

2.如权利要求1所述的基于pynq的神经网络的识别视频监控报警系统,其特征在于所述通信,是通过总线将arm芯片与pl部分进行参数传输,配置核大小、步长;将监控的检测结果经通信接口模块通过无线通信模块将检测异常发送给上位机模块。

3.如权利要求1所述的基于pynq的神经网络的识别视频监控报警系统,其特征在于所述控制,是检测各层网络的计算完成情况,以及控制神经网络的各层能够有序的进行,包括启动神经网络的各层。

4.如权利要求1所述的基于pynq的神经网络的识别视频监控报警系统,其特征在于所述卷积神经网络分类模型的训练,将采集的数据作为训练集,对训练集中的特征进行标注,采用特征算法进行特征提取,然后用训练集进行训练,并在验证集上进行验证,卷积神经网络分类模型保存最优的权重,用于后续读取,并记录训练集和验证集的精度。

5.如权利要求1所述的基于pynq的神经网络的识别视频监控报警系统,其特征在于所述视频采集模块,通过在pl部分上的iic驱动实现对摄像头的iic配置,用于配置摄像头的工作参数,并利用摄像头将采集到的监控环境的特征图输入ddr。

6.如权利要求1所述的基于pynq的神经网络的识别视频监控报警系统,其特征在于所述预处理包括锐化、裁剪操作。

7.基于pynq的神经网络的识别视频监控报警方法,其特征在于包括如下步骤:

s1,将采集到的监控环境的特征图输入ddr;

s2,pynq的ps部分的控制模块,包括arm芯片,所述arm芯片,从ddr读取特征图经预处理,生成卷积神经网络分类模型的输入格式,并存入ddr中;控制模块通过总线实现对pl部分的控制及通信;

s3,pynq的pl部分的卷积神经网络加速器,对训练好的卷积神经网络分类模型进行加速;包括如下步骤:

s31,卷积神经网络加速器,读取ddr数据;

s32,读取卷积神经网络分类模型的权重;

s33,在卷积神经网络分类模型的各层采用重复分配计算资源、数据复用、多级流水数据处理方法,并行的进行数据处理,通过数据移位的方法实现数据缓存,对训练模型进行硬件加速;

s34,根据特征差异实现识别;

s4,无线通信模块,将卷积神经网络加速器识别到的异常情况上传到上位机模块。

8.如权利要求7所述的基于pynq的神经网络的识别视频监控报警系统,其特征在于所述加速器的加速包括流水线分段计算,将多条指令的不同步骤重叠操作,所述重叠操作,是将一个卷积n×n窗口分为n步操作,每一步对卷积窗口的一列数据进行乘操作,即一级流水,然后将结果累加,即二级流水,n步并行,最终产生n个值,然后再将这n个值进行累加,即三级流水,从而完成一个卷积窗口的卷积操作;当有m个通道,便同时操作m个n×n卷积窗口;完成一次n×n大小的卷积窗口时,如果是重叠卷积,将重叠部分的数据用于下次卷积。

9.如权利要求7所述的基于pynq的神经网络的识别视频监控报警系统,其特征在于所述加速器的加速包括线性缓存,在卷积神经网络加速器输入特征图时,用ram进行缓存,数据每输入一个,存储模块向前移动一位。

技术总结
本发明公开了一种基于PYNQ的神经网络的识别视频监控报警系统及方法,属于卷积神经网络与FPGA的结合以及应用,先利用算法进行训练得到网络模型,根据得到的网络模型在FPGA上搭建一个深度神经网络加速器,利用FPGA的低功耗和运算的并行特性,运用流水线输入,数据复用等方法对卷积神经系统的加速,并利用该神经网络加速器利用拍摄头采集到的图片进行特征提取和目标分类,实现监控环境中是否有陌生人。此外,利用无线通信模块将检测结果发送给客户端平台。本发明能够实现自动监控的功能,实时监控环境,并将异常情况反馈给监控者,无需人工观察,方便且极大节省了人力。

技术研发人员:施先广;何增;岳克强;马德
受保护的技术使用者:杭州电子科技大学
技术研发日:2020.12.22
技术公布日:2021.04.06

转载请注明原文地址:https://xbbs.6miu.com/read-20337.html