一种基于Zynq-7000的行人检测系统的制作方法

文档序号:14444955阅读:973来源:国知局

本发明涉及计算机视觉及安防监控领域,尤其涉及一种基于zynq-7000的行人检测系统。



背景技术:

行人检测是在某段时间里对待检测图像采用一种特定方法来搜索确定行人的存在与否,如果存在,则返回检测到行人的数量,并计算区域范围内行人密度。近年来,随着网络技术的日新月异,行人检测的应用发展越来越广泛,由于行人个体之间的差异性、运动姿态的多样性、行人出现场景的复杂性和自遮挡、视角、光照、尺度等因素的影响,使得行人检测系统的实现难度较大。当前的行人检测系统大多基于pc机实现,存在成本高,体积大等缺点。在嵌入式平台上实现可靠性与实时性俱佳的行人检测系统,成为当前研究的热点。

zynq-7000是基于xlinux全可编程的可扩展平台结构,该结构在单芯片内集成了具有丰富特点的双核armcortex-a9多核处理器的处理系统(processingsystem,简称ps)和xilinx可编程逻辑单元(programmablelogic,简称pl),双核armcortex-a9多核cpu是ps的“心脏”,它包含片上存储器,外部存储器接口和一套丰富的i/o外设。zynq-7000中的pl采用xilinx7系列的fpga技术,用于扩展功能,以满足特定的功能需求,zynq-7000作为首款高性能armcortexa系列处理器与高性能fpga在单芯片内紧密结合的产品,与其他独立armcortex-a9与xilinxfpga在单板上相比,其可具如下优点:设计成本降低、设计整体功耗降低、设计体积减少、设计风险降低和设计灵活。为了实现这些优点,xilix在设计zynq-7000时不仅要将不同工艺特征的处理器和fpga融合在一个芯片上并保证其良品率,更要设计高效的片内高性能处理器与fpga之间互联通路,该互联通路通过axi总线来实现,axi是一种总线协议,该协议是arm公司的amba协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线,满足超高性能和片上系统的设计需求,axi是保证片内和片上互联高速通信的基础,zynq-7000的内部设备都有axi总线接口,通过axi总线协议,内部涉笔可以进行告诉低延迟的通信,即arm和fpga可以保证高速的数据传输。

传统的行人检测系统具有体积庞大、设备笨重、不便于安装、成本高等问题,开发一款行人检测率正确率高,体积小、安装方便、成本低的行人检测系统具有良好的应用于发展前景。



技术实现要素:

本发明的目的是正对现有技术的不足,而提供一种基于zynq-7000的行人检测系统。这种系统不仅具有嵌入式系统的小巧灵活,在处理性能上可同pc机相媲美,同时行人检测率正确率高、体积小、安装方便、成本低。

实现本发明目的的技术方案是:

一种基于zynq-7000的行人检测系统,包括异构嵌入式处理器zynq-7000soc(systemonchip,片上系统,简称soc,)和与之连接的带usb接口的摄像头、带usb接口的鼠标、带usb接口键盘和hdmi显示器,带usb接口的摄像头、带usb接口的鼠标和带usb接口键盘分别与异构嵌入式处理器zynq-7000soc的ps部分连接,hdmi显示器与异构嵌入式处理器zynq-7000soc的pl部分连接。

所述异构嵌入式处理器zynq-7000soc中设有硬件加速ip,硬件加速ip用于对图像进行预处理,包括图像缩放、灰度化,在zynq-7000的ps端用可编程逻辑实现。

所述带usb接口的摄像头用于采集行人图像信息。

异构嵌入式处理器zynq-7000soc中的vmda传输ip由可编程逻辑实现,利用axi总线完成pl端与pc端通信。

带usb接口的摄像头采集行人图像视频信息并通过usb接口上传至基于zynq-7000的zedboard开发板,zedboard开发板集成双核armcortex-a9处理器系统processingsystem和xilinx可编程逻辑programmablelogic,zedboard开发板的usb接口获取图像数据,通过可编程逻辑programmablelogic中的硬件加速ip对图像进行预处理操作并通过axi总线将图像信息上传至处理系统processingsystem,处理系统processingsystem运行linux操作系统,对经过硬件加速ip预处理完的图像进行行人检测,并将检测到的行人用矩形框标出,最后将检测结果通过hdmi显示器进行显示。

进一步地,行人检测算法由zynq-7000的ps端用linux应用程序模块实现。

进一步地,所述行人检测方法采用hog提取特征以及svm分类算法。

异构嵌入式处理器zynq-7000soc中的linux设备驱动为linux用户应用程序模块提供系统硬件及ip的配置与数据交互,linux用户应用程序模块实现行人检测算法并提供界面友好的人机交互界面,带usb接口的摄像头、带usb接口的鼠标、带usb接口键盘和hdmi显示器提供用户交互,本技术方案异构嵌入式处理器zynq-7000soc中采用axi总线进行内部数据传输,具有高效的行人检测能力。

这种系统不仅具有嵌入式系统的小巧灵活,在处理性能上可同pc机相媲美,同时行人检测率正确率高、体积小、安装方便、成本低。

附图说明

图1为实施例的结构示意图。

图中,1.带usb接口的摄像头2.硬件加速ip3.vmda传输ip4.linux设备驱动5.linux用户应用程序模块6.带usb接口键盘7.带usb接口的鼠标8.hdmi显示器。

具体实施方式

下面结合附图和实施例对本发明内容作进一步的阐述,但不是对本发明的限定。

实施例:

参照图1,一种基于zynq-7000的行人检测系统,包括异构嵌入式处理器zynq-7000soc和与之连接的带usb接口的摄像头1、带usb接口的鼠标7、带usb接口键盘6和hdmi显示器8,带usb接口的摄像头1、带usb接口的鼠标7和带usb接口键盘6分别与异构嵌入式处理器zynq-7000soc的ps部分连接,hdmi显示器8与异构嵌入式处理器zynq-7000soc的pl部分连接。

所述异构嵌入式处理器zynq-7000soc中设有硬件加速ip2,硬件加速ip2用于对图像进行预处理,包括图像缩放、灰度化,在zynq-7000的ps端用可编程逻辑实现。

所述带usb接口的摄像头1用于采集行人图像信息。

异构嵌入式处理器zynq-7000soc中的vmda传输ip3由可编程逻辑实现,利用axi总线完成pl端与pc端通信。

带usb接口的摄像头1采集行人图像视频信息并通过usb接口上传至基于zynq-7000的zedboard开发板,zedboard开发板集成双核armcortex-a9处理器系统processingsystem和xilinx可编程逻辑programmablelogic,zedboard开发板的usb接口获取图像数据,通过可编程逻辑programmablelogic中的硬件加速ip2对图像进行预处理操作并通过axi总线将图像信息上传至处理系统processingsystem,处理系统processingsystem运行linux操作系统,对经过硬件加速ip预处理完的图像进行行人检测,并将检测到的行人用矩形框标出,最后将检测结果通过hdmi显示器进行显示。

进一步地,行人检测算法由zynq-7000的ps端用linux应用程序模块5实现。

进一步地,所述行人检测方法采用hog提取特征以及svm分类算法。

异构嵌入式处理器zynq-7000soc中的linux设备驱动为linux用户应用程序模块5提供系统硬件及ip的配置与数据交互,linux用户应用程序模块5实现行人检测算法并提供界面友好的人机交互界面,带usb接口的摄像头1、带usb接口的鼠标7、带usb接口键盘6和hdmi显示器8提供用户交互,本技术方案异构嵌入式处理器zynq-7000soc中采用axi总线进行内部数据传输,具有高效的行人检测能力。

以下为实施例中几个模块的功能及实现:

带usb接口的摄像头1:用于视频采集,这部分在zynq-7000的ps端通过硬化的usb接口进行实现;

硬件加速ip2:对图像进行缩放、灰度化两个图像预处理算法操作,其中图像缩放是为了对处理的图像尺寸进行标准化,方便后续处理,对图像进行灰度化是为了减少计算量并方便后续的hog特征提取;

vmda传输ip3:是xilix为解决类似图像这样的大数据在外部存储器与内部fpga之间的高速数据传输问题而设计的,该ip通过ise套件中的xps工具进行添加;

linux设备驱动4:作为连接硬件和内核之间的桥梁,linux设备驱动是操作系统与硬件之间数据交互的通道,因此在完成了硬件ip的设计后,还需要选择或设计相应的设备驱动以及应用层程序接口,才能在系统用户空间对硬件ip或外设作配置与数据读写等操作,xilinx提供了多种类型的ip核驱动,根据本系统的需要,添加相应的驱动,在这里添加提供的视频流水线驱动,在配置linux内核时,需要使能参数config_video_xilix,并绑定到linux设备树中,xilixip的视频设备驱动基于v4l2实现,v4l2是内核中关于视频设备的内核驱动框架,为上层访问底层的视频设备提供了统一的接口,在用户空间,可通过ioctl命令与驱动程序进行交互。从用户空间对系统进行硬件的配置与访问;

linux用户应用程序模块5:分为两个部分,分别为行人检测算法的实现与人机交互界面的实现,其中行人检测算法采用hog特征提取和svm分类算法进行实现,其中算法步骤如下:

s1:计算梯度:图像中像素点(x,y)的梯度以及梯度幅值和方向为:

gx(x,y)=f(x+1,y)-f(x-1,y)

gy(x,y)=f(x,y+1)-f(x,y-1)

其中gx(x,y)和gy(x,y)分别表示输入图像中像素点(x,y)处的水平、垂直方向梯度值,m(x,y)表示梯度幅值,θ(x,y)表示梯度方向;

s2.将输入图像分割成相等大小的小格,并将几个小格合并为一个小块;

s3:方向通道的选取:将0°-180°或者0°-360°平均分成n个通道;

s4:直方图的获取:对每个小格中的每个像素统计它们的梯度方向直方图,直方图的横坐标为步骤s24中选取的n个方向通道,直方图纵坐标为属于某个方向通道的像素的梯度大小的累加和,最终得到一组向量;

s5:归一化处理:以向量对应的像素所在的小块为单位,对向量进行归一化处理,其公式如下:

其中,v*表示归一化之后的向量,v表示归一化之前的向量,表示向量的2阶范数,ε表示一个很小的常数,这里取0.01;它的值不会影响结果,目的是为了防止分母为0;

s6:形成hog特征:将上面处理过的所有n个向量连接起来,形成一组向量,即为hog特征。

s7:确定非线性支持向量机高斯核函数的参数σ={σ1},c={c1};

s8:使用经过hog特征提取后的行人检测数据集进行svm学习,得到一个基于高斯核函数的非线性svm分类器f(x);

s9:使用基于高斯核函数的非线性svm分类器f(x)进行行人检测。

人机交互界面使用了基于qt的图形用户界面,通过hdmi显示器进行显示,用户可以通过usb鼠标或者usb键盘输入的方式与系统进行交互。用户可以在显示窗口观察行人检测的效果以及总线使用情况,完成用户和系统之间的交互。

当打开行人检测系统的用户界面,通过鼠标使能行人检测系统,用户可观察此时的系统资源利用情况,如cpu利用率,处理系统端口的数据吞吐量,当摄像头监控范围内出现行人时,lcd显示器会将行人用矩形框标出。

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