一种视觉图像处理系统及其设计方法与流程

文档序号:11524590阅读:260来源:国知局
一种视觉图像处理系统及其设计方法与流程

本发明涉及机器视觉硬件领域,尤其涉及一种高速单目视觉处理系统及其设计方法。



背景技术:

机器视觉是人工智能正在快速发展的一个分支。简单来说,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

德国siliconsoftware公司推出过一款基于pci-e总线的用户可fpga(fieldprogrammablegatearray)编程的高性能图像采集卡microenableivvd4-cl,该产品对应的视觉处理平台基于fpga+pc架构。采集卡为有实时图像预处理要求的用户定制开发,将相机图像以一定的帧频采集进来,对输入的图像进行实时的fpga图像预处理后,通过pcie接口把结果图像再传输到计算机内存,供pc上配套的图形化visualapplet开发平台作后续的软件分析和处理。

siliconsoftware的视觉处理平台方案将图像采集和图像预处理的功能固化到fpga中自动完成,而后续的图像处理算法在pc上实现。带来的问题是当图像的分辨率和传输频率提高时,图像的处理带宽显著增加,pc处理架构的串行处理模式会出现计算瓶颈,计算耗时大大增加,处理效率较低。而且这种方案视觉功能集成度低,要在fpga图像采集卡和pc上分开实现,pc与fpga之间通讯速度较慢,信息传递结构复杂。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种通用高速的视觉处理解决方案,为此本发明提供了一种视觉图像处理系统,其包括片上集成的处理器模块和可编程模块,所述处理器模块与所述可编程模块连接,用于对所述可编程模块进行设置及与其数据交互;所述可编程模块用于图像数据的接收、处理和输出。

进一步地,所述可编程模块包括存储控制模块、图像处理模块、图像输出模块;所述存储控制模块用于数据的存储、读取控制;所述图像处理模块接收来自所述存储控制模块的图像数据,并将经其处理后的图像数据输出到所述图像输出模块和/或所述处理器模块。

进一步地,所述处理器模块与所述可编程模块通过总线方式连接。

进一步地,所述图像处理模块包括图像数据格式转化模块,所述图像处理模块将接收到的图像数据先由所述图像数据格式转化模块进行格式转化处理。

进一步地,所述图像数据格式转化模块包括bayer转rgb模块、rgb转灰度模块和灰度转梯度模块。

进一步地,所述灰度转梯度模块采用3个首尾相连的fifo(firstinputfirstoutput)作为灰度数据的缓存区,并使用3组长度为8*3的寄存器暂存每个时钟周期的数据,在每个时钟周期进行梯度计算得到8个像素点的梯度。

进一步地,所述存储控制模块还包括连接内部或外置存储器的数据接口。

进一步地,所述可编程模块还包括相机配置模块,用于解码以及保存相机配置信息。

进一步地,所述可编程模块还包括数据传输接口,用于向外部设备提供数据信息。

进一步地,所述片上集成的处理器模块和可编程模块采用赛灵思公司的zynq系列soc(systemonchip)器件。

本发明还提供了一种视觉图像处理系统的设计方法,其特征在于,选用具有处理器模块和可编程模块的soc器件,所述处理器模块用于对所述可编程模块进行设置及与其数据交互;将所述可编程模块设置用于图像数据的接收、处理和输出。

进一步地,所述可编程模块包括存储控制模块、图像处理模块、图像输出模块;所述存储控制模块用于数据的存储、读取控制;所述图像处理模块接收来自所述存储控制模块的图像数据,并将经其处理后的图像数据输出到所述图像输出模块和/或所述处理器模块。

进一步地,所述处理器模块与所述可编程模块通过总线方式连接。

进一步地,所述图像处理模块包括图像数据格式转化模块,所述图像处理模块将接收到的图像数据先由所述图像数据格式转化模块进行格式转化处理。

进一步地,所述图像数据格式转化模块包括bayer转rgb模块、rgb转灰度模块和灰度转梯度模块。

进一步地,所述灰度转梯度模块采用3个首尾相连的fifo(firstinputfirstoutput)作为灰度数据的缓存区,并使用3组长度为8*3的寄存器暂存每个时钟周期的数据,在每个时钟周期进行梯度计算得到8个像素点的梯度。

进一步地,所述存储控制模块还包括连接内部或外置存储器的数据接口。

进一步地,所述可编程模块还包括相机配置模块,用于解码以及保存相机配置信息。

进一步地,所述可编程模块还包括数据传输接口,用于向外部设备提供数据信息。

进一步地,所述具有处理器模块和可编程模块的soc器件采用赛灵思公司的zynq系列soc(systemonchip)器件。

本发明具有以下有益效果:

1、将图像采集、缓存、处理、输出等功能集成在单芯片上,集成度高,片内通信速度快,功耗低;

2、系统具有高速实时性,最高图像采集频率可达1000fps,最短处理周期1ms;

3、ip核模块化,方便集成和调用;

4、支持rgb、灰度、梯度三种图像格式输入供图像处理使用;

5、灰度转梯度图像格式转化完全由硬件可编程逻辑实现;

6、bayer转rgb图像格式转化支持8路数据并行处理。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的视觉图像处理系统的一个较佳实施例的设计框图;

图2中图1中ddr3控制模块的整体框架图;

图3是图1中灰度转梯度模块的数据处理流程图;

图4是采用图1中视觉图像处理系统的一种视觉伺服系统的设计框图;

图5是图4的视觉伺服系统的图像预处理和定位效果图。

具体实施方式

在本发明的实施方式的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“垂直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。附图为原理图或者概念图,各部分厚度与宽度之间的关系,以及各部分之间的比例关系等等,与其实际值并非完全一致。

图1是本发明的一种视觉图像处理系统的设计框图,该设计基于具有arm+fpga架构的赛灵思(xilinx)公司zynq系列soc作为载体,其中包括在单个模组上集成的双armcortexa9处理器和fpga,两者间通过高带宽的总线互连,这样可以极低的功耗支持数据传输。fpga中设置的硬件逻辑部分包括:

相机配置模块,配置信息包括分辨率、通道、帧率等;

ddr3控制模块,连接ddr3存储器;

图像数据格式转化模块,其中包括bayer转rgb模块、rgb转灰度模块和灰度转梯度模块;

图像算法处理模块;

hdmi输出模块,用于hdmi格式配置与输出控制;

axi_uart接口、插入式接口、预留自定义接口。

本实施例的系统支持cameralinkfull相机接口,通过高速相机采集bayer格式原始图像序列,依次在fpga端实现图像数据的ddr缓存、图像预处理(数据格式转化)、图像处理、hdmi输出和相机配置等功能。整个系统的工作原理及过程包括:

1、在pc端完成相机的配置后,arm端对pc端下发的数据进行解码,一部分传递给fpga端使用,另一部分通过axiuart接口直接发送给相机。

2、相机配置模块对arm端传递的数据进行解码获取相机配置信息,供ddr3控制模块、图像数据格式转化模块和hdmi输出模块使用。

3、根据相机配置模块中的配置信息,如分辨率、通道、帧率,以及hdmi平均显示采样帧间隔,通过ddr3控制模块完成相机以及平均采样的帧图像这两个通道数据的ddr存储和读取控制。

4、对读取的两路数据分别进行图像数据格式转化,其中平均采样的帧图像完成bayer转rgb格式转化后通过已经配置好的hdmi输出模块输出进行显示;相机图像数据依次进行bayer转rgb、rgb转灰度、灰度转梯度的转化,每一步转化得到的rgb、灰度、梯度三种格式图像数据都可供后续图像算法处理模块使用。

5、图像算法处理模块实现机器视觉领域相关的图像处理算法,并可将得到的结果传递给arm端,由其运行后续运算和控制或是输出显示。

图2示出了ddr3控制模块的整体框架,在本实施例中ddr3控制模块实现图像数据的接收、传输、存储、读取等控制操作,其包括三个子模块:分别为经过配置的ddr3存储器接口解决方案mig_7series_v1_9模块、ui_signal_gen模块和caminctrl模块。其中,ui_signal_gen模块实现四通道的数据(二读二写)同时工作,其采用轮询的方式,每个通道执行完当前通道单次的数据量操作后,便进入下一通道的操作,以此循环执行。caminctrl模块完成相机数据读写通道的控制操作,同时完成对相机图像数据的帧抽取,作为对hdmi通道的读写控制操作。这两个模块共同组成ddr3控制模块的内部控制逻辑,通过已配置ip核mig_7series_v1_9提供的接口快速地与外设ddr3sdram存储器建立访问连接。

相机拍摄的图像以bayer格式进行传输,但其无法直接用于图像处理算法中,需要对图像格式进行转换,格式转换的过程构成了图像的预处理,即图像数据格式转化模块,此模块包含串行连接的bayer转rgb、rgb转灰度和灰度转梯度三个子功能模块。

bayer转rgb模块采用插值运算的方法(现有技术,在此不再赘述)将bayer格式转换为rgb格式,本实施例中,设置相机在一个时钟周期输入8个像素点,bayer转rgb模块也在同一个时钟周期内同时并行处理8个像素点,从而实现8*8bitbayer到8*24bitrgb的格式转化。

rgb转灰度模块的处理过程中,为了避免浮点运算和除法运算,以及对于精度方面的考虑,采用算法gray=(r*76+g*151+b*28)>>8,这样处理既保证了处理的精度在允许的范围内,又加快了硬件处理速度。

灰度转梯度模块需要同时使用前后共3行的数据,设计流程如图3所示。为了从图像数据流还原出图像的二维平面信息,使用3个首尾相连的fifo来作为灰度数据的缓存区,并且使用3组长度为8*3的寄存器暂存每个时钟周期的数据,在每个时钟周期进行梯度计算得到8个像素点的梯度,将梯度计算的结果存入双端口ram中。由此实现了梯度计算与读入的并行,节约了存储图像所需要的空间。

hdmi输出模块通过iic接口完成对hdmi芯片的配置,如将其配置为rgb444、8bit的数据格式。hdmi通道的bayer转rgb模块输出信号为8*32bit的rgb图像,通过hdmififo将其转化为1*32bit的rgb图像逐个输出。用户根据vga接口时序,产生1920*1080的输出时序,在对应的区域将读hdmififo使能,从而使得相机的输入图像在hdmi显示器中显示。

图4示出了的一种视觉伺服系统,其中包括上述实施例中的视觉图像处理系统,以及与其互连的相机、pc端和云台,该系统可实现图像采集、缓存、预处理、处理、hdmi输出显示、相机配置以及编码器反馈等功能。

以一个具体的操作过程为例,ddr3控制模块以每秒1000帧的速率从相机获取图像并在ddr3sdram中进行缓存;图像数据格式转化模块对来自相机的原始图像数据依次进行bayer转rgb、rgb转灰度、灰度转梯度格式的转化;图像算法处理模块植入了圆拟合的定位算法并以每秒1000帧的速率对图像目标进行定位;hdmi输出模块以每秒60帧的速率将图像发送给pc端的显示器显示;相机配置模块对pc端发送来的相机配置信息进行解码供其它模块使用;上述实施例中的视觉图像处理系统的预留自定义接口,在此被设置为编码器反馈模块,用于从云台编码器获取当前图像拍摄时刻的云台状态。

arm端在本实施例的视觉伺服系统中实现数据传输、三维定位以及云台控制功能。数据传输部分一方面从fpga获取定位结果、并通过串口把图像定位结果和后续计算的三维定位结果发送到pc端软件界面,另一方面从pc端获取相机配置信息将其通过axiuart转发给cameralink相机配置端口;三维定位部分预先对系统的参数进行标定,采用基于射线交汇法的三维重建算法将图像定位结果转化为世界坐标结果;云台控制部分结合目标的三维坐标和云台编码器反馈的结果,计算出能够将目标维持在图像中心附近的云台控制指令,通过串口将指令分别发送给云台的回旋和俯仰驱动器。从而可在pc端的显示界面实现对跟踪效果的展示,并且还可以将图像与图像定位结果一同显示在界面上。

图5示出了本实施例的视觉伺服系统的图像预处理和定位效果图,从左至右依次为原始图像、梯度图像和圆拟合定位效果图。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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