APP下载

基于“选择性缓存处理机制”的FPGA纸病检测系统

2021-04-07赵睿轩王思琦

中国造纸学报 2021年1期
关键词:流水线纸张选择性

赵睿轩 周 强 王思琦

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

在纸张生产过程中,由于设备故障、生产原料污染、人工操作不当等原因,会产生一些影响纸张正常使用的缺陷,统称为纸病。纸病的存在不仅影响纸张的外观,而且会影响纸张的一些物理指标,严重时会使纸张成为废品。而且,纸病的周期性出现预示着造纸设备很可能出现了故障,需要及时检修设备;所以,对纸病进行检测十分必要。随着造纸技术自动化的提高,纸机车速越来越快,传统的人工纸病检测方法已难以满足工业生产需求。而机器视觉技术随着不断的发展现已趋于成熟,应用领域也越来越广[1],在纸病检测领域中也得到了越来越多的应用。

传统的基于机器视觉的纸病检测系统主要以电耦合器件“(Charge Coupled Device,CCD)+个人电脑(Personal Computer,PC)”结构模式为主[2-4],并常常使用数字信号处理(Digital Signal Process,DSP)或图形处理器(Graphics Processing Unit,GPU)进行加速,但都局限于使用计算机作为控制和处理数据核心。而随着纸机车速的提高、纸幅的加宽以及对纸病辨识精度要求的提高,CCD相机采集到的海量图像数据,给系统的处理速度带来了巨大冲击。以串行方式工作的计算机中央处理器(Central Processing Unit,CPU)在图像采集、预处理和纸病辨识的整个过程中越来越难以满足系统数据处理的实时性要求[5]。如何提高海量数据下的数字图像的处理速度一直是一个难题[6]。研究发现,使用现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)代替PC机作为纸病检测的控制处理核心更为合适[7-9]。相比于传统的CPU与GPU等图像处理器件,FPGA由于其结构特点,在图像处理方面具有速度上的优势[10-11]。

许多学者对使用FPGA进行纸病检测进行了研究并取得了一定的成果。党宏社等[8]使用FPGA将含有纸病缺陷的帧图像上传至计算机,一定程度上减轻了计算机的工作量。汤伟等[9]使用FPGA对采集到的纸病图像进行滤波去噪、边缘检测与质心定位,完成对纸病图像的预处理。刘勇等[12]提出使用包围盒分割纸病区域,但仅适用于单一纸病缺陷的情况。王伟刚等[5]提出使用分块包围盒分割多纸病区域,但需多次存储图像才能完成处理。以上方法虽然对算法有局部改进,但并没有改变以帧图像为固定单元进行处理的模式,都需要先缓存整幅图像,后进行图像处理。此类方法不但在处理过程中需多次对帧图像进行缓存,才能输出纸病区域图像,而且在遇到两帧图像交界处存在纸病缺陷等复杂情况时,还需进一步处理。缓存完整的帧图像再处理的方式会浪费大量的时间,无法满足实时硬件数据流的处理要求。

针对以上缺陷提取算法的不足,本课题提出了一种基于“选择性缓存处理机制”的算法。该算法利用“仅缓存纸病行图像并处理”的思想,在图像预处理的同时标记含有纸病缺陷的行图像,并进行特征提取等步骤。由于纸张生产过程中产生的纸病区域面积仅占整个纸张面积的万分之一左右,因此,仅对纸病区域进行缓存处理能大大减少系统的数据处理量,且流水线处理模式无需打断连续的数据流,可以在很大程度上提高处理速度。

“CCD+FPGA”模式通过引入选择性缓存处理机制并结合FPGA并行流水线的优势,可从根本上解决纸病检测系统海量数据的实时性处理问题。

图1 纸病检测系统硬件结构图Fig.1 Hardware structure diagram of paper defect detection system

1 CCD+FPGA硬件结构框架及FPGA工作模式的优化

1.1 “CCD+FPGA”纸病检测系统硬件框架介绍

纸张表面质量检测的硬件系统主要由光源、图像采集模块、FPGA处理系统以及显示器4部分组成,其结构如图1所示。

其中,系统光源为背光源,可以使待检测纸张的缺陷信息轮廓清晰可见。图像采集模块包括CCD线阵相机与编码器,线阵相机可以较好地拍摄到纸张在运行时的图像;编码器用来实时检测纸张运行速度、控制CCD线阵相机行频,实现图像数据的同步采集;FPGA处理系统主要由工业相机控制模块、低电压分差信号-晶体管罗辑(LVDS-TTL)电平转换模块、预处理模块、选择性缓存处理机制控制模块、同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)控制模块、支持向量机(Support Vector Machine,SVM)分类器模块与视频图形阵列(Video Graphics Array,VGA)显示控制模块组成,配合图像采集模块完成对纸病图像的采集处理与分类辨识。

1.2 FPGA工作模式的优化

1.2.1 传统状态机模式处理图像的不足

目前,传统的FPGA图像处理模式为先缓存整幅图像,再使用状态机分步处理图像。如图2所示,若一幅纸病图像需要滤波等7个步骤进行处理,则FP⁃GA对应搭建7个硬件逻辑块分步处理,只有状态机跳到相应的状态,对应的硬件逻辑块才开始工作。

图2 FPGA状态机模式Fig.2 FPGAstatemachinemode

1.2.2 并行流水线模式处理图像的优势

FPGA最大的优势在于其拥有并行流水线,无需缓存整幅图像即可直接对数据流进行流水线处理。如图3所示,FPGA并行流水线模式同样为7个步骤,FPGA搭建7级流水线模块,同一时刻不同功能模块同时在工作,图片数据流经多级处理完成。并行流水线大大提高了FPGA硬件模块的使用效率,也提高了处理速度。

1.2.3 流水线处理模板的实现

本系统生成3×3流水线处理模板需要利用移位随机存取存储器(Shift Random Access Memory,Shift RAM)来完成。如图4所示,先使用Shift RAM缓存2行图像,与当前输入行数据组成3行,即可得到3×3模板。本系统使用行像素为2048的8位CCD相机,则所需的Shift RAM深度为2048,数据宽度为8 bit。

图3 FPGA并行流水线模式Fig.3 FPGAparallel pipelinemode

图4 Shift RAM缓存3×3矩阵示意图Fig.4 Shift RAMbuffer 3×3 matrix diagram

2 选择性缓存处理机制研究

高速、高清的工业相机采集到的数据量过大所导致的检测系统速度较低,是当前纸病检测系统研究所遇到的瓶颈问题。为了突破由于待处理图像数据量过大所导致的检测速度慢的障碍,需通过算法以减少待处理图像的数据量。值得借鉴的是,人眼每秒钟所摄入的场景信息约为40~50 M,而人脑可以处理的信息则只有几百bit的量级。这样的量级差使得输入量与处理量不对等,所以产生了选择注意机制:人脑仅对最感兴趣的“视点”区域进行记忆处理,而不会去记忆“余光”区域[13-15]。参考人眼视觉中的选择注意机制,只关注含有纸病区域的部分,而无需注意大量的正常纸张区域,因此,本研究提出了“选择性缓存处理”机制。该机制可大量减少待处理图像数据量,从而提高纸病在线辨识的速度,以解决目前纸病检测技术中的瓶颈问题。如图5所示,传统方法处理模式需要缓存整幅图像,并对整幅图像进行特征值提取,待处理数据量巨大。而选择性缓存处理机制仅仅缓存极少部分的纸病图像,并进行特征值提取,极大地减少了待处理的图像数据量。

2.1 选择性缓存处理机制算法思想

传统的纸病检测系统都是针对一幅完整的图像进行包围盒分割或阈值分割等方法处理的[16],如图6(a)所示,若纸病区域存在于两帧图像交界处,还需进一步处理。而选择性缓存处理机制与传统方法最大的区别就是无需缓存整幅图像再按帧进行处理,而是直接在流水线上对行数据进行预处理、标记与检测,并仅缓存含纸病标记的行图像数据进行后续辨识,如图6(b)所示。该机制能极大地减少FPGA所需缓存处理的数据量,减少SDRAM的使用,并大大缩短数据读写延迟,从而提高运行速度。

2.2 选择性缓存处理机制算法原理

选择性缓存机制是以行像素为基本处理单元,在流水线上逐个像素地对每行数据进行检测。首先使用Shift RAM缓存一行像素,若发现像素点存在疑似纸病特征标记,则将整行图像缓存入SDRAM,拉高标志位并记录更新特征量及位置坐标。直到连续几行未检出疑似纸病特征标记则结束缓存,复位标志位并将提取到的纸病特征送入SVM分类器中进行分类辨识。选择性缓存机制的处理过程如图7所示。

2.2.1 纸病特征标记与检测

在一幅图像中,设每个像素点的灰度值为Px,y[7,0],其中x代表该像素点在行中的位置,y代表该像素点所在的行数,灰度值为8位。以flag_Px.y为每个像素Px,y的特征标记。设正常纸张的灰度均值为gray_mean,其中gray_mean∈(8'h00,8'hff)。以gray_mean为基准,认为以δ为半径的邻域内是正常纸张灰度。像素点特征标记公式见式(1)。

图5 传统方法(a)与选择性缓存机制(b)处理数据量比较Fig.5 Comparison of dataprocessingcapacity between traditional methods(a)and selectivebuffer mechanism(b)

图6 选择性缓存处理机制与传统方法对比Fig.6 Comparison between selectivebuffer processing mechanism and traditional methods

图7 选择性缓存机制处理过程Fig.7 Processof selectivebuffer processingmechanism

2.2.2 纸病区域选择性缓存

设纸病区域标志位为start_f,一行纸病中存在疑似纸病标记的像素点集记为Cy,则若某一行中存在像素被标记,即Cy∉∅,则拉高纸病区域标志位start_f,代表已检测到纸病区域上沿,开始缓存。若连续几行未检测到疑似纸病特征标记,即Cy∈∅,则将标志位start_f复位,代表纸病区域已结束。纸病区域上下沿标记如式(2)所示。

当纸病区域标志位被拉高,则开始向SDRAM中缓存图像,直到纸病区域标志位复位则结束缓存。此时,SDRAM中已缓存仅含纸病区域行图像,如图8所示。

图8 缓存纸病区域行图像Fig.8 Lineimageof paper defect area

设整个纸病区域图像左右边界为xmin与xmax,则纸病区域的左右边界可由式(4)求得。

确定纸病区域边界后,SDRAM中缓存仅含纸病区域图像,如图9所示。

图9 SDRAM中缓存的纸病区域Fig.9 The paper defect area in SDRAM

缓存完成仅含纸病区域图像的同时,纸病特征量也实时更新完成,之后将记录的纸病特征量与纸病坐标发送至SVM分类器中进行辨识,对SDRAM中缓存的纸病图像进行分类。分类完成后,将分类结果与纸病区域图像一同发送至上位机。

3 纸病检测算法流程

纸病检测算法流程如图10所示,主要包括图像预处理、选择性缓存处理机制、分类辨识3个部分。

3.1 图像预处理

为消除图像中的噪声,本系统首先使用中值滤波消噪,其次使用Sober算法提取纸病边缘,再使用腐蚀膨胀算法滤除孤立边缘噪点;最后将边缘信息与灰度图像叠加得到去噪增强的灰度图像,则可以获得无噪声的纸病边缘与纸病灰度图像信息,以供后续辨识处理。图像预处理流水线如图11所示。

3.2 选择性缓存处理

在纸张行图像预处理及边缘标记之后,选择性缓存处理机制会根据行像素中是否存在标记点作为缓存并处理该行图像或仅更新灰度的基准。若该行像素存在标记,则将该行图像缓存至SDRAM中,并记录该行像素各特征量;若该行像素不存在标记,则仅计算平均灰度,更新灰度基准,不缓存图像。当连续多行未标记,则认为缓存完成一幅纸病行图像。

图10 纸病检测算法流程图Fig.10 Flow chart of paper defect detection algorithm

3.3 纸病特征的选择与分类

常见的纸张缺陷包括黑斑、裂口、划痕、孔洞、边裂等。其中,依照形态特征可区分出条状缺陷与块状缺陷,结合位置与灰度特征即可将以上5种纸病区分,如图12所示。

本课题采集大量的纸病缺陷并对其进行特征提取,结合特征量计算难度与区分度的考虑,最终选取周长(T)、面积(A)、周长的平方与面积比(E)、灰度均值(m)作为特征参数。表1列出了5种常见外观纸病的特征值。

图11 图像预处理流水线Fig.11 Image preprocessing pipeline

其中,周长与面积像素点个数直接在流水线上进行标记与统计。通过Sober算法标记边界,边界像素点的数量记为周长;通过动态双阈值标记纸病部分,标记部分记为面积。通过计算E可以区分纸病的形态特征,再结合灰度均值进行纸病分类。纸张表面缺陷特征量提取完成后,使用SVM分类器对缺陷进行分类和识别。

图12 常见的纸病类型Fig.12 Common types of paper defects

表1 5种常见外观纸病的特征值Table 1 Eigenvalues of five common appearance paper defects

4 实验验证

4.1 实验条件

本系统开发平台为Quartus II 13.1,FPGA运行主频为100 MHz,CCD相机实时输出像素时钟为40 MHz,一行为2048个像素点。设计工程采用模块化设计。对项目编译布局布线后,FPGA片内资源占用情况如表2所示。由表2可知,该系统所占用的FPGA硬件资源极少,有效地减少了硬件成本。

4.2 实验过程

为了验证本算法的实验处理效果,选取行像素尺寸为2048且具有不同大小、形状以及位置纸张缺陷的多张纸幅进行了测试。使用选择性缓存处理机制进行纸病提取与检测,由于篇幅所限,仅给出了其中3张纸幅的测试结果,如图13所示。

图13(a)~图13(c)显示了具有不同复杂程度纸张缺陷的纸幅原始图像。图13(d)~图13(f)分别为选择性缓存处理机制缓存至SDRAM中的纸病区域行图像。

缓存的疑似纸病行图像经流水线识别定位处理后,提取纸病区域与纸病特征量,将纸病特征量送入SVM分类器中进一步分类,分类完成后,将分类结果与对应的纸病区域图像反馈回上位机(见图14)。

实验表明,纸幅上纸张缺陷的大小、形状以及位置并不会影响算法的执行效率和精准度,常见的纸张缺陷如黑斑、划痕、孔洞、边裂可以被准确地提取并分类。由于该方法将边缘检测后的二值图像与滤波后的灰度图像相叠加,因此在预处理中已经被边缘检测标记出的纸病缺陷均可以被完整地提取出来。

表2 FPGA片内资源占用情况Table 2 FPGA on chip resource usage

4.3 实验结果

本课题所提方法(基于选择性缓存处理机制的CCD+FPGA模式)及其他模式的处理效果对比如表3所示。由表3可知,在检出率与辨识准确率与其他模式大体相同的情况下,CCD+FPGA模式的处理速度比“CCD+PC”模式快了300倍,比“CCD+FPGA+PC”模式快了约2.5倍;而SDRAM占用相比于“CCD+PC”和“CCD+FPGA+PC”模式分别减少了3/4和2/3。由此可知,选择性缓存处理机制可以在保证检测精度的同时大幅提高检测速度,减少存储器资源占用。

图13 纸张选择性缓存处理区域数据与原数据对比Fig.13 Comparison between the data of paper selective buffer processing area and the original data

图14 CCD+FPGA模式所提取的纸病缺陷Fig.14 Paper defectsextracted by CCD+FPGA mode

表3 CCD+FPGA模式与其他模式处理效果对比Table 3 Comparison of the treatment effect between CCD+FPGA mode and other modes

5 结 语

本课题提出了一种基于选择性缓存处理机制的现场可编程逻辑门阵列(FPGA)纸病检测系统,该机制参考人眼视觉中存在选择性注意机制的特点,并结合FPGA的流水线并行优点,提出了一种无需缓存全部图像而直接在图片数据流上使用流水线模式进行纸病预处理、检测与辨识的方案。

选择性缓存机制解决了传统方法需要缓存整张图片再作处理的局限,极大地节约了存储器资源与存入读取的时间消耗,可以更加快速地实现纸病的提取。该方案具有处理速度快、算法效率高、占用资源少、适应能力强等优点,在现场实时性较强的应用中优势尤为明显,十分适合用于现代化高速纸机上的纸病缺陷检测。

基于流水线并行的选择性缓存处理机制不仅可用于纸病检测系统,因该机制检测速度快且占用资源少,所以也尤其适用于其他高速图像数据流的目标检测场合,如织物瑕疵检测等,具有广泛的应用前景。

猜你喜欢

流水线纸张选择性
倔强的纸张
Gen Z Migrant Workers Are Leaving the Assembly Line
薄如纸张的扬声器
近期国内市场纸张价格(2020年3月)
流水线
选择性听力
不用一张纸,NENDO就描述出了纸张形态的千变万化
报废汽车拆解半自动流水线研究
选择性应用固定物治疗浮膝损伤的疗效分析
选择性执法的成因及对策