基于FPGA的纸病检测预处理算法的实现

2014-08-15 06:44刘慧忠
中国造纸学报 2014年1期
关键词:质心灰度边缘

刘慧忠 汤 伟

(陕西科技大学电气与信息工程学院,陕西西安,710021)

现代造纸机的幅宽可以超过9 m,速度最高达到1800 m/min。纸机车速提高后将面临纸张出现更多缺陷的风险。与此同时,人们对纸张的要求也越来越高[1]。目前的机器视觉检测设备集合了高速CCD相机与计算机,但是纸病检测过程中处理的数据量非常大,而且实时性要求高。基于软件的方法,由于计算机是串行结构,在计算速度和算法效率方面存在局限性[2]。许多纸病图像处理操作本身是并行的,而FPGA提供的可编程硬件本身也是并行的[3- 4]。基于FPGA和计算机的纸病检测系统可以利用FPGA对图像进行预处理,“分拣”出有纸病的图像送到计算机再进行进一步的识别,即计算机只需对有纸病的图像进行识别,判断是何种纸病。

纸张生产过程中,各种外界因素造成的常见外观纸病有黑斑、尘埃、孔洞、亮斑、划痕、边缘裂缝、褶皱等[5]。因为工业现场环境的原因,CCD相机采集到的纸病图像会含有噪声,所以需要先对纸病图像进行滤波,然后检测经过滤波处理后的纸病图像的边缘,最后确定纸病位置。因此,纸病图像的预处理过程主要为:滤波→边缘检测→质心定位。

1 纸病检测算法

基于FPGA和计算机的纸病检测系统的图像预处理包括图像滤波、图像边缘检测和纸病质心定位。利用DSP Builder工具对图像预处理算法进行设计,可以通过Altera公司的FPGA实现。

1.1 3X3滑动窗口的设计

本研究采用串行流水的3X3滑动窗口采集图像每个像素点的灰度。3X3滑动窗口设计如图1所示,其中,Delay模块是延迟一个时间单位的寄存器,Memory Delay模块是640个时间单位的延迟(图片像素640×480)。r1~r3_d2代表滑动窗口中的9个像素点的灰度。

1.2 中值滤波算法的设计

中值滤波是一种非线性数字滤波器技术,用于去除图像中的噪声。中值滤波的基本原理是检查输入信号中的采样并判断它是否代表了信号,使用奇数采样组成的观察窗实现这项功能,让周围的像素接近真实值,从而消除孤立的噪声点[6]。方法是将窗口中的数值进行排序,用中值作为输出值,然后重复上述过程。基于DSP Builder的中值滤波算法模型如图2所示,将9个数值分为3组,分别求出每组的最大值、最小值、中值,再求出3个最大值中的最大值、3个中值中的中值、3个最小值中的最小值,最后求得上一步得出的3个数值中的中值,输出结果。

1.3 纸病边缘检测

图像边缘是图像的最基本特征,是指图像灰度局部变化显著的地方。一幅图像可以看作是图像灰度的连续函数的取样点矩阵,而图像边缘就是图像灰度函数变化较大的地方。梯度是描述函数变化的一种度量,函数在某点的变化最大,就是在该点的梯度最大。在一维情况下,阶跃边缘与图像的一阶导数局部峰值有关[7]。

图1 3X3滑动窗口模型

图2 中值滤波算法模型

图3为Prewitt边缘检测算子。图3中的Sx和Sy分别是Prewitt边缘算子在水平方向和垂直方向的卷积核,它们分别与P5邻域每个像素做卷积。虽然是对P5这个像素做卷积,却必须同时知道P1~P9这几个点的像素。

图3 Prewitt边缘检测算子

由此可以知道P5点在水平方向的梯度公式为:

Gx=x1×P1+x2×P2+x3×P3+x4×P4+x5×P5+x6×P6+x7×P7+x8×P8+x9×P9

(1)

P5点在垂直方向的梯度公式与上式基本相同,只是P5邻域上的每个像素与Sy上的每个点相乘。

图4 边缘检测算法模型

图5 质心定位算法模型

图6 对黑斑和划痕纸病的仿真分析

Prewitt算子的水平方向和垂直方向的梯度公式可以用式(2)表示:

Gx=(P3+P6+P9)-

(P1+P4+P7)

Gy=(P7+P8+P9)-

(P1+P2+P3)

(2)

由此可计算得出图像中P5每个邻域中点梯度,再将该点的水平方向和垂直方向的梯度取绝对值后相加得|Gx|+|Gy|。Threshold可通过对图像灰度作直方图分析,再借助一定的经验反复调整就可以得出。如果|Gx|+|Gy|大于Threshold,则该像素被定义为边界像素,像素的灰度替换为255(白色),否则为一般像素,像素的灰度替换为0(黑色),从而实现了边缘检测。图4为基于DSP Builder的边缘检测算法模型。

1.4 纸病质心定位

质心定位是将目标的质心作为表征目标的静态参量,目的是获得目标区域的质心位置,并将质心坐标输出。目标质心即目标区域的中心点。质心定位方法包括:二值化质心定位、灰度加权质心定位算法和灰度平方加权质心定位方法等。

二值化质心定位方法是较为简单的方法,它将目标成像点匹配窗口中的灰度图像,根据选定的阈值转换为二值图像。二值图像质心计算如式(3):

(3)

式中,xm和ym为目标质心坐标,xi和yi为第i个像素的坐标,n为要计算的质心窗口内的像素个数。

2 仿真分析

HIL(Hardware-in-the-Loop)硬件在环仿真测试系统是实际控制器加虚拟对象的半实物仿真系统[8]。它可以加快模型所生成代码的仿真速度,验证VHDL代码的实时性和所生成的VHDL代码在实际硬件中运行的正确性[8- 9]。常见的纸病有黑斑、划痕、孔洞和褶皱等。以黑斑和划痕纸病为例进行硬件在环测试实验。在原图中加入椒盐噪声,然后经过滤波、边缘检测、定位处理,结果如图6所示。

由图6可知,中值滤波对椒盐噪声有很好的去除效果,边缘检测可以清楚地检测出纸病的边缘,质心定位算法可以对纸病的位置进行定位。

由于ModelSim仿真结果与实际硬件的实现结果差别很小,所以可以通过ModelSim中的时间点间隔计算处理图像的大致时间。图像中值滤波部分所需处理时间为615552个周期,边缘检测部分处理时间为307204个周期,质心定位处理时间为928个周期,设计时钟周期为20 ns,预处理的总时间约为18.5 ms,能够满足实时性的要求。

3 结 语

利用DSP Builder工具设计,基于FPGA和计算机的纸病检测系统图像预处理算法,可以实现如黑斑、划痕等纸病图像的滤波、边缘检测和质心定位。利用FPGA计算速度快的特点可降低纸病检测系统的成本,而且,仿真实验结果表明,基于FPGA的纸病预处理可以满足纸病检测系统实时性的要求。

参 考 文 献

[1] 张 辉, 王淑梅, 程金兰, 等. 我国制浆造纸装备科学技术的发展[J]. 中国造纸, 2011, 30(4): 55.

[2] 刘 勇, 周 强, 刘 涛, 等. 基于FPGA的纸病预处理系统[J]. 中国造纸, 2013, 32(8): 47.

[3] 原 魁, 何文浩, 肖 晗. 基于FPGA的嵌入式图像处理系统设计[M]. 北京: 电子工业出版社, 2013.

[4] Richard Williams. Increase Image Processing System Performance with FPGAs[J]. Xcell Journal, 2004, 16(2): 10.

[5] 陈文凯. 基于机器视觉的纸病检测算法研究与集成[D]. 南京: 南京林业大学, 2009.

[6] 张旭明, 徐滨士, 董世运. 用于图像处理的自适应中值滤波[J]. 计算机辅助设计与图形学学报, 2005, 17(2): 295.

[7] 陈勇滨, 王永丽. 基于阈值分割与边缘检测的对象轮廓提取方法研究[J]. 成都信息工程学院学报, 2010, 25(3): 246.

[8] Tim Harriss, Richard Walke, Bart Kienhuis, et al. Compilation From Matlab to Process Networks Realized in FPGA[J].Design Automation for Embedded Systems, 2002(4): 385.

[9] 彭滋霖, 阳春华. Matlab/Simulink到VHDL代码的转换研究及其实验配置[J]. 微电子技术, 2007(4): 186.

猜你喜欢
质心灰度边缘
重型半挂汽车质量与质心位置估计
采用改进导重法的拓扑结构灰度单元过滤技术
基于GNSS测量的天宫二号质心确定
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于轨迹的平面气浮台质心实时标定方法
基于最大加权投影求解的彩色图像灰度化对比度保留算法
一张图看懂边缘计算
基于像素重排比对的灰度图彩色化算法研究
一种海洋测高卫星质心在轨估计算法
在边缘寻找自我