一种基于fpga的木料分类识别系统
技术领域
1.本发明涉及数字图像处理技术领域,具体涉及一种基于fpga的木料分类识别系统。
背景技术:2.在传统的木料分拣流程当中,流水线上的木料主要靠大量的人力物力来完成工作,从而导致人工分拣效率低、耗时长;而随着机器视觉的快速发展,利用数字图像处理技术可以高效的对流水线上的木料进行快速识别,降低了工业生产对人力的消耗和依赖程度。
3.目前,对于不同的应用场合主要的图像处理平台包括arm处理器、数字信号处理器(dsp)、专用集成电路(asic)以及现场可编程门阵列(fpga)。arm处理器支持高级编程语言,在视频图像处理方面应用广泛,但是其片上资源和处理速度有限;dsp拥有较强数字信号处理能力,在实时图像处理领域的应用也更为广泛,但是其拥有的io接口较少;asic芯片能够满足运行速度高、性能好、功耗低的特点,但是asic移植性差的问题导致其研发周期会较长、开发成本也较高;对比以上不同的图像处理平台,fpga芯片是目前具有很高前景的可编程逻辑器件,它不仅弥补了asic芯片的灵活性差的问题,而且还拥着大量的io接口,能够满足对更多外围模块的驱动需求。丰富的逻辑资源和高速的并行处理能力使得fpga在视频图像处理领域大放异彩。
4.成熟的目标检测技术包括光流法、帧间差分法和背景差分法等:1)光流法是利用动态图像序列中各像素点矢量特征来确定背景和目标的运动情况,但缺点就是光流矢量对噪声引起的像素变化非常敏感,且需要计算每一个像素点的矢量特征,计算复杂耗时,不适合实时性要求高的情况;2)背景差分法主要用来检测背景静止区域,其基本思想是将静止背景图像事先存储好,紧接着用当前图像与背景图像作差分,得到一幅差值图像,利用阈值来判断图像中的运动目标,该方法实现简单,但在实际应用中任何与预先设置的背景图像的不同差异都可被视为噪声干扰,从而影响检测的准确性,同时其算法可以对背景模板进行实时更新处理,从而便会导致算法复杂程度较高,不易在fpga上实现;3)帧间差分法是利用图像序列中相邻几帧图像之间的时间差分,使用阈值化方法来提取出运动目标,该算法具有计算简单,受光线影响小,检测速度快等特点,而且其算法不涉及乘除和浮点运算,程序设计简单,对fpga实现较为合适。
技术实现要素:5.发明目的:本发明的目的是提供一种基于fpga的木料分类识别系统和识别方法,来解决帧间差分算法对于移动规则物体在相对平行方向上边缘缺失的问题,进而实现对不同木料的纹理进行识别的功能,解决传统pc机结构复杂和实时性差的问题。
6.技术方案:本发明提供一种基于fpga的木料分类识别系统,包括图像采集组件、图像处理组件、图像缓存组件和图像显示组件;所述图像采集组件,包括图像传感器、fpga硬
件处理平台中的图像采集模块和iic模块;所述fpga硬件处理平台与图像传感器相结合,通过编程实现fpga硬件处理平台对图像传感器的驱动以及数据的传输;所述图像处理组件,包括fpga硬件处理平台中的格式转换模块、四帧差分模块以及目标识别模块;所述fpga硬件平台对图像传感器采集并传输的数据进行图像处理;所述图像缓存组件,包括外部sdram存储器和fpga硬件处理平台中的fifo模块和sdram模块;所述fpga硬件处理平台将实时的图像数据传输到外部sdram存储器中进行缓存处理;所述图像显示组件,包括图像显示器和fpga硬件处理平台中的vga显示模块;所述fpga硬件处理平台与图像显示器相连接,通过图像传输接口协议将fpga硬件平台处理后的数据传输到图像显示器上进行显示。
7.进一步的,所述图像采集组件采用iic驱动程序对图像传感器进行初始化,并配置相应寄存器使其在预设模式下进行采集,然后将采集到的图像数字信号通过图像采集模块传输给格式转换模块。
8.进一步的,所述格式转换模块将图像传感器输出的rgb颜色空间转换为yuv颜色空间。
9.进一步的,所述四帧差分模块将格式转换之后的灰度图像进行帧间差分操作,包括中值滤波操作、形态学操作和四帧差分操作;
10.所述中值滤波操作是对灰度图像数据进行3
×
3窗口的卷积操作,从而实现对窗口内的中值进行获取,将获取的中值作为二值化自适应阈值;
11.所述四帧差分操作,包括以下步骤:
12.步骤一、首先从图像序列中提取连续四帧的灰度图像p
k-3
(x,y),p
k-2
(x,y),p
k-1
(x,y),pk(x,y),其中,p(x,y)为像素点坐标为(x,y)的值,k-3、k-2、k-1、k分别代表为第k-3帧、第k-2帧、第k-1帧、第k帧灰度图像。
13.步骤二、然后将连续四帧的灰度图像进行间隔差分,从而获得差分图像e
(k-3,k-1)
(x,y)、e
(k-2,k)
(x,y),e
(k-3,k-1)
(x,y)为第k-3帧和第k-1帧灰度图像的差分值,e
(k-2,k)
(x,y)为第k-2帧和第k帧灰度图像的差分值,可以表示为:
[0014][0015]
步骤三、将式中差分图像e
(k-3,k-1)
(x,y)和e
(k-2,k)
(x,y)与二值化自适应阈值t进行比较,从而获得差分图像的二值化信息,可以表示为:
[0016][0017]
其中,b
(k-3,k-1)
(x,y)为表示两帧差分二值化图像,为e
(k-3,k-1)
(x,y)二值化阈值分割后的二值化图像;若b
(k-3,k-1)
(x,y)为1,表示两帧图像序列中存在运动目标;若b
(k-3,k-1)
(x,y)为0,表示两帧图像序列中无运动目标;
[0018]
步骤四、将两次的差分结果进行逻辑“或”运算,提取出运动目标,可以表示为:
[0019]
[0020]
其中,r
(k-3,k-2,k-1,k)
(x,y)表示四帧差分二值化图像,为b
(k-3,k-1)
(x,y)和b
(k-2,k)
(x,y)二值化图像逻辑“与”之后的二值化图像;若r
(k-3,k-2,k-1,k)
(x,y)为1,表示四帧图像序列中存在运动目标;若r
(k-3,k-2,k-1,k)
(x,y)为0,表示四帧图像序列中无运动目标。
[0021]
进一步的,所述目标识别模块包括运动区域提取、边缘检测以及多目标识别,其中:
[0022]
所述运动区域提取首先是对视频内的运动目标进行区域定位,然后对定位出的运动目标进行区域选择,从而实现对运动区域的提取;
[0023]
所述边缘检测是将提取出的运动目标区域与sobel边缘检测相融合,实现仅对运动目标区域内的目标进行边缘检测;
[0024]
所述多目标识别是将处理之后的运动目标进行多目标框选,从而实现对多目标的定位功能。
[0025]
进一步的,所述图像缓存组件中,所述fifo模块是作为数据流和外部sdram存储器数据交换的通道,通过对fifo模块的建立,实现数据流的多通道多空间的存储;所述sdram模块设有对外部sdram存储器的控制模块,所述sdram模块对sdram存储器进行功能初始化和配置操作,实现对sdram存储器多空间的划分。
[0026]
进一步的,所述图像显示组件中,所述vga显示模块采用vga传输协议实现数据流到vga接口的数据转换,从而实现vga接口的视频显示。
[0027]
本发明还提供一种基于fpga的木料分类识别系统的识别方法,包括如下步骤:
[0028]
步骤1、在fpga控制单元中配置iic通讯协议,通过iic驱动程序将图像传感器采集的数据流传输给fpga硬件处理平台;
[0029]
步骤2、将图像传感器传输到fpga硬件处理平台的数据流送到格式转换模块,格式转换模块是将彩色图像的rgb格式转换为yuv格式,然后通过对yuv格式中y的分量进行提取,从而获得视频的灰度图像;
[0030]
步骤3、采用中值滤波算法提取出灰度图像的中值,然后将提取出的中值作为帧间差分的自适应阈值;
[0031]
步骤4、将步骤2中的灰度图像采用“四通道八端口”的sdram缓存操作,对灰度图像进行三帧缓存,然后将缓存的三帧图像与当前帧图像进行间隔四帧差分操作,从而获得两帧二值图像信息,然后将该两帧二值图像信息进行“或”操作;
[0032]
步骤5、将步骤4获得的二值图像进行形态学“腐蚀”操作,从而去除步骤4中二值图像的噪声干扰;
[0033]
步骤6、将步骤5的二值图像进行运动目标区域的识别,从而可以提取出视频内的运动目标区域;
[0034]
步骤7、将步骤2中的灰度图像进行sobel边缘检测,从而获得灰度图像的边缘信息;
[0035]
步骤8、将步骤6提取出的运动目标区域与步骤7获得的边缘图像信息进行“与”操作,从而得到完整的运动目标二值图像,并能够清晰的获取木料的纹理信息;
[0036]
步骤9、将步骤8获得的二值图像进行多目标算法识别,然后对图像中不同的运动目标进行矩形框的包围,形成运动目标区域包围盒,从而实现对不同木料的识别。
[0037]
进一步的,步骤4中,所述“四通道八端口”的sdram缓存操作,首先利用sdram模块
对外部sdram存储器进行四个缓存区域的划分,然后将sdram芯片与8个fifo缓存模块进行对应连接,接着将8个fifo缓存模块进行“四输入四输出”的端口定义,最终实现sdram“四通道八端口”的四个空间独立缓存操作。
[0038]
进一步的,步骤9中:
[0039]
所述多目标算法识别采用的是基于图像区域的分割方法,具体操作为:利用步骤8获得的二值图像判断每个像素点在其邻域内是否存在其他有效像素值,若存在其他有效像素值,即判断该像素点与中心像素点为同一目标对象,否则判断为新的目标对象;依次原则,遍历整个视频区域,从而获得不同运动目标的位置信息;
[0040]
所述包围盒是将运动目标的边界进行矩形框叠加标记,对多目标算法识别得到的位置信息进行判断,位于运动目标边界像素点的值将rgb格式中的r分量置为255,g、b分量置为0,反之,不改变r、g、b的值,最终实现对不同运动目标定位识别。
[0041]
本发明相比现有技术,具有以下有益效果:
[0042]
本发明采用优化的四帧差分算法,利用间隔帧间差分的方式,将运动目标区域提取出来与边缘检测相融合,同时利用fpga中多端口sdram图像缓存技术对实时图像进行缓存和输出。该算法不仅解决了在传统帧间差分法中移动规则物体在相对平行方向上边缘缺失的问题,同时能够有效的实现对不同木料的纹理进行识别的功能。
附图说明
[0043]
图1为本发明系统的结构示意框图;
[0044]
图2为本发明研究传统帧间差分算法对于移动规则物体效果示意图;
[0045]
图3为本发明系统中改进的四帧差分算法框图;
[0046]
图4为本发明实施例中结果示意图。
具体实施方式
[0047]
为了使本发明申请的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0048]
本发明提供的一种基于fpga的木料分类识别系统,如图1所示,包括图像采集组件、图像处理组件、图像缓存组件和图像显示组件。所述图像采集组件,包括图像传感器、fpga硬件处理平台中的图像采集模块和iic模块;所述fpga硬件处理平台与图像传感器相结合,通过编程实现fpga硬件处理平台对图像传感器的驱动以及数据的传输;所述图像处理组件,包括fpga硬件处理平台中的格式转换模块、四帧差分模块以及目标识别模块;所述fpga硬件平台对图像传感器采集并传输的数据进行图像处理;所述图像缓存组件,包括外部sdram存储器和fpga硬件处理平台中的fifo模块和sdram模块;所述fpga硬件处理平台将实时的图像数据传输到外部sdram存储器中进行缓存处理;所述图像显示组件,包括图像显示器和fpga硬件处理平台中的vga显示模块;所述fpga硬件处理平台与图像显示器相连接,通过图像传输接口协议将fpga硬件平台处理后的数据传输到图像显示器上进行显示。
[0049]
本发明基于fpga的木料分类识别系统,采用的是由altera公司推出的cycloneivfpga系列芯片,核心芯片是ep4ce10f17c8。
[0050]
所述图像采集组件采用iic驱动程序对图像传感器进行初始化,并配置相应寄存器使其在预设模式下进行采集,然后将采集到的图像数字信号通过图像采集模块传输给格式转换模块。
[0051]
所述格式转换模块是将图像传感器输出的rgb颜色空间转换为yuv颜色空间,rgb颜色空间是由r(red)、g(green)、b(blue)三个颜色通道组成,其着重于视觉对色彩的感应;而yuv颜色空间是由y(明亮度)、u和v(色度)的色彩空间组成,其着重于视觉对亮度的敏感程序。通过颜色空间的格式转换可以降低对彩色数字图像的运算量,同时便于灰度图像数据的提取。
[0052]
所述四帧差分模块是将格式转换之后的灰度图像进行帧间差分操作,包括中值滤波、形态学操作、四帧差分等操作,其中:
[0053]
所述中值滤波操作是对灰度图像数据进行3
×
3窗口的卷积操作,从而实现对窗口内的中值进行获取,将获取的中值作为二值化自适应阈值;
[0054]
所述四帧差分操作,包括以下步骤:
[0055]
步骤1、首先从图像序列中提取连续四帧的灰度图像p
k-3
(x,y),p
k-2
(x,y),p
k-1
(x,y),pk(x,y),其中,p(x,y)为像素点坐标为(x,y)的值,k-3、k-2、k-1、k分别代表为第k-3帧、第k-2帧、第k-1帧、第k帧灰度图像。
[0056]
步骤2、然后将连续四帧的灰度图像进行间隔差分,从而获得差分图像e
(k-3,k-1)
(x,y)、e
(k-2,k)
(x,y),e
(k-3,k-1)
(x,y)为第k-3帧和第k-1帧灰度图像的差分值,e
(k-2,k)
(x,y)为第k-2帧和第k帧灰度图像的差分值,可以表示为:
[0057][0058]
步骤3、将式中差分图像e
(k-3,k-1)
(x,y)和e
(k-2,k)
(x,y)与二值化自适应阈值t进行比较,从而获得差分图像的二值化信息,可以表示为:
[0059][0060]
其中,b
(k-3,k-1)
(x,y)为表示两帧差分二值化图像,为e
(k-3,k-1)
(x,y)二值化阈值分割后的二值化图像;若b
(k-3,k-1)
(x,y)为1,表示两帧图像序列中存在运动目标;若b
(k-3,k-1)
(x,y)为0,表示两帧图像序列中无运动目标;
[0061]
步骤4、将两次的差分结果进行逻辑“或”运算,提取出运动目标,可以表示为:
[0062][0063]
其中,r
(k-3,k-2,k-1,k)
(x,y)表示四帧差分二值化图像,为b
(k-3,k-1)
(x,y)和b
(k-2,k)
(x,y)二值化图像逻辑“与”之后的二值化图像;若r
(k-3,k-2,k-1,k)
(x,y)为1,表示四帧图像序列中存在运动目标;若r
(k-3,k-2,k-1,k)
(x,y)为0,表示四帧图像序列中无运动目标。
[0064]
所述目标识别模块包括运动区域提取、边缘检测以及多目标识别等操作,其中:
[0065]
所述运动区域提取首先是对视频内的运动目标进行区域定位,然后对定位出的运
动目标进行区域选择,从而实现对运动区域的提取;所述边缘检测是将提取出的运动目标区域与sobel边缘检测相融合,实现仅对运动目标区域内的目标进行边缘检测;所述多目标识别是将处理之后的运动目标进行多目标框选,从而实现对多目标的定位功能。
[0066]
所述图像缓存组件中,所述fifo模块是作为数据流和外部sdram存储器数据交换的通道,通过对fifo模块的建立,实现数据流的多通道多空间的存储;所述sdram模块设有对外部sdram存储器的控制模块,所述sdram模块对sdram存储器进行功能初始化和配置操作,同时实现对sdram存储器多空间的划分。
[0067]
所述图像显示组件中,所述vga显示模块采用vga传输协议实现数据流到vga接口的数据转换,从而实现vga接口的视频显示。
[0068]
一种基于fpga的木料分类识别系统的识别方法,包括如下步骤:
[0069]
步骤1、在fpga控制单元中配置iic通讯协议,通过iic驱动程序将图像传感器采集的数据流传输给fpga硬件处理平台;
[0070]
步骤2、将图像传感器传输到fpga硬件处理平台的数据流送到格式转换模块,格式转换模块是将彩色图像的rgb格式转换为yuv格式,然后通过对yuv格式中y的分量进行提取,从而获得视频的灰度图像;
[0071]
步骤3、采用中值滤波算法提取出灰度图像的中值,然后将提取出的中值作为帧间差分的二值化自适应阈值;
[0072]
步骤4、将步骤2中的灰度图像采用“四通道八端口”的sdram缓存操作,对灰度图像进行三帧缓存,然后将缓存的三帧图像与当前帧图像进行间隔四帧差分操作,从而获得两帧二值图像信息,然后将该两帧二值图像信息进行“或”操作;
[0073]
步骤5、将步骤4获得的二值图像进行形态学“腐蚀”操作,从而去除步骤4中二值图像的噪声干扰;
[0074]
步骤6、将步骤5的二值图像进行运动目标区域的识别,从而可以提取出视频内的运动目标区域;
[0075]
步骤7、将步骤2中的灰度图像进行sobel边缘检测,从而获得灰度图像的边缘信息;
[0076]
步骤8、将步骤6提取出的运动目标区域与步骤7获得的边缘图像信息进行“与”操作,从而得到完整的运动目标二值图像,并能够清晰的获取木料的纹理信息;
[0077]
步骤9、将步骤8获得的二值图像进行多目标算法识别,然后对图像中不同的运动目标进行矩形框的包围,形成运动目标区域包围盒,从而实现对不同木料的识别。
[0078]
为了研究传统帧差算法导致的移动规则物体在相对平行方向上边缘缺失的问题,本发明通过水平向右移动正六边形进行了效果图说明,如图2所示,左上角图为第k-1帧图像(即前一帧图像),右上角图为第k帧图像(即后一帧图像),将第k-1帧图像和第k帧图像做差分,从而得到差分结果图像。从两帧差分之后的图像结果可以看出,正六边形在水平方向上(即上底和下底)的边缘信息出现了明显缺失。
[0079]
所述步骤4-8为本发明进行改进后的四帧差分算法,如图3所示,相较于传统的两帧差分算法,改进四帧差分算法采用的是对相邻四帧的图像信息进行间隔差分操作,同时对间隔差分操作获得的二值图像进行运动目标区域的提取,然后将提取出的运动目标区域与边缘检测相融合,从而获取运动目标的完整信息,即运输系统当中木料的边缘和纹理信
息。
[0080]
步骤4中,所述“四通道八端口”的sdram缓存操作,首先利用sdram模块对外部sdram存储器进行四个缓存区域的划分,然后将sdram芯片与8个fifo缓存模块进行对应连接,接着将8个fifo缓存模块进行“四输入四输出”的端口定义,最终实现sdram“四通道八端口”的四个空间独立缓存操作。
[0081]
步骤9中,所述多目标算法识别采用的是基于图像区域的分割方法,具体操作为:利用步骤8获得的二值图像判断每个像素点在其邻域内是否存在其他有效像素值,若存在其他有效像素值,即判断该像素点与中心像素点为同一目标对象,否则判断为新的目标对象;依次原则,遍历整个视频区域,从而获得不同运动目标的位置信息。
[0082]
步骤9中,所述包围盒是将运动目标的边界进行矩形框叠加标记,对多目标算法识别得到的位置信息进行判断,位于运动目标边界像素点的值将rgb格式中的r分量置为255,g、b分量置为0,反之,不改变r、g、b的值,最终实现对不同运动目标定位识别。
[0083]
为了分析本发明设计的一种基于fpga的木料分类识别系统,测试选取工业裁切机运输系统中移动木板作为运动目标的视频。测试过程利用ov5640摄像头采集移动目标区域中的运动信息,然后传输给fpga硬件处理平台进行处理。检测结果如图4所示,图4(a)为待测试视频的一帧原始图像,图4(b)为传统帧间差分算法的结果图,图4(c)为本发明改进后的四帧差分算法的结果图,图4(d)为本发明检测的结果图,从图中可以很明显的看出,解决了传统帧间差分算法对于移动规则物体在相对平行方向上边缘缺失的问题,同时能够有效的实现对不同木料的纹理进行识别的功能。
[0084]
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上作出各种变化。