APP下载

基于FPGA的刀具图像预处理系统研究

2018-10-13温佳静朱江泽赵子楚

网络安全与数据管理 2018年9期
关键词:双边像素点图像处理

温佳静,范 红,朱江泽,刘 荣,赵子楚

(东华大学 信息科学与技术学院,上海 201620)

0 引言

实时图像处理涉及大量的运算,通常需要很高的计算速度、存储速度和数据带宽。相对而言,现场可编程门阵列(Field-Programmable Gate Array,FPGA)是一种性能高、功耗低、开发周期短的“万能”芯片。采用FPGA来进行图像处理的主要优势是速度快、应用灵活。速度快的优势来源于FPGA的硬件逻辑,特别是FPGA的并行执行和流水线操作[1]。其灵活性体现在它可以通过编程灵活地修改其内部逻辑功能,从而实现高速的硬件技术和并行运算。

在机械加工过程中,刀具会在使用过程中出现磨损[2]。随着产品质量要求的提高,刀具的磨损程度影响着生产的利益。因此刀具磨损及破损状态的分析越来越引起人们的重视[3]。由于采集图像的过程中不可避免地存在着噪声以及磨损轮廓不明显、对比度不高等问题,因此必须进行滤波和图像增强处理[4]。本文研究了一种基于FPGA的刀具图像的预处理研系统,通过实时的双边滤波处理从而达到对图像的去噪和边缘保持的效果,为进一步的刀具表面缺陷检测做准备。

1 刀具图像预处理系统设计

整个系统主要由以下几个模块组成:图像采集模块,数据存储模块,图像处理模块和图像传输模块。其中DDR2 SDRAM用作数据的高速存储模块。DDR2是由JEDEC制定的新一代DDR内存技术标准[5],采用了在时钟的上升延和下降延同时进行数据传输的基本方式,可进行4 bit预读取,读取数据命令快。其内存均采用FBGA封装形式,使得它具有更好的电气性能与散热性。在图像传输模块采用了基于FPGA的千兆以太网的方案进行设计。以太网选择了MAC外接一个PHY芯片的模式,在此基础上选择了UDP协议作为传输层协议进行数据传输。目前传输层采用的协议主要是TCP/IP协议和UDP协议。TCP/IP协议是一种面向连接的传输协议,传输可靠但是延迟性大。而UDP协议是一种无连接的传输协议,虽然不可靠但是传输效率高,而且大多数成功商用的RTL级设计中,大部分使用Verilog或者VHDL来实现以太网传输,都是基于非常简单的UDP协议的,所以说UDP协议适合在实时图像传输中使用。

系统的整体框图如图1所示,可以看出整个系统的运作流程概述如下:首先在CMOS相机摄像头上电一段时间后开始初始化配置,然后在初始化完成后开始采集图像数据存入到DDR2 SDRAM中,从DDR2 SDRAM中读取数据存入到FIFO中,将图像数据从FIFO中读取出来,接下来就是对取出来的图像数据进行双边滤波处理,最后通过千兆以太网UDP协议发送到PC端,就可以通过PC端上位机软件看到实时图像。

图1系统整体框图

2 双边滤波原理

所谓双边滤波,就是在均值滤波或者是普通加权滤波操作(如高斯滤波)的基础上,通过距离权和颜色权这两种权值对图像进行带权平滑处理,既能去除噪声,又能进行边缘保护。同经典高斯滤波器一样,双边滤波器也仅仅利用了局部平均加权方法;不同的是双边滤波器在二维领域内的加权系数由两部分因子乘积组合而成[6]:一个同高斯滤波器一样,是关于领域像素点与中心像素点的距离的函数,也就是几何距离函数;而另一个是关于领域像素点与中心像素点像素差值的函数,也就是色彩距离。虽然滤波时都是采用了加权平均的方法,但是双边滤波在考虑位置对中心的影响的基础上还把辐射差异加入到了影响因子中。

双边滤波的算法原理如下:滤波算法中,目标点上的像素值通常是由其所在位置上的周围的一个小局部领域像素的值所决定的,也就是对周边的一定范围内的像素值分别赋予不同的高斯权重,并在加权平均后得到当前点的最终结果,如公式(1)所示:

(1)

(2)

式中,c表示为基于空间距离的权重,而kd(x)用来对结果进行单位化。

当考虑边缘信息的时候(这里的边缘信息即图像中的不同颜色区域),可以加入一个色彩距离的权重表示,如公式(3)所示:

(3)

(4)

式中,s表示为基于像素间相似程度的高斯权重,kr(x)同样用来对结果进行单位化。

双边滤波具有两个权重,分别与几何距离和色彩距离有关系,两者相结合,就可以得到基于空间距离和色彩距离综合考量的双边滤波,如公式(5)所示:

(5)

(6)

其中,权重c(ε,x)和领域素点ε与中心像素点x之间的几何距离相关,权重s(f(ε),f(x))和邻域像素点f(ε)与中心像素点f(x)之间的色彩距离相关。也就是说,随着ε与x之间几何距离和色彩距离改变,像素点的权重c(ε,x)和s(f(ε),f(x))也在跟着改变。即:当远离边界时(边界就是颜色反差极大的地方),颜色权基本一样,类似于高斯滤波,这样便可以平滑处理图像;当处在边界时,边界上的点颜色相近,取极大的权值,而边界外的点,颜色距离越远,权值取得越小(甚至可以忽略不计),这样就保护了边缘。

3 实验结果及分析

3.1 权重系数选取

图像的处理时间和效果受图像分辨率大小和颜色空间距离的约束。一方面由于坐标空间中滤波器的sigma值越大,意味着越远的像素值会相互影响,从而使更大的区域中足够相似的颜色获得相同的颜色。另一方面颜色空间滤波器的sigma值越大,就表明该像素领域内有更宽广的颜色被混合到一起,产生较大的半相等颜色区域。如图2所示,图(a)是在相机上进行采集未经过处理的刀具原图。图(b)是在像素领域直径d为25,颜色空间滤波器sigma值为 50,坐标空间滤波器sigma值为25/2下的滤波效果。图(c)是在像素领域直径d为25,颜色空间滤波器sigma值为75,坐标空间滤波器sigma值为25下的效果图。可以发现,权重系数的不同,会直接影响到噪点处理和边缘保持的效果,从而影响刀具头像预处理的性能。

图2 不同权重系数进行双边滤波的图像前后对比

3.2 基于FPGA的双边滤波处理

由于OpenCV程序算法都是在pc上通过软件运行的方式实现的,存在处理实时性差、适用范围有限等问题[7]。结果显示,在OpenCV上对刀具图像进行双边滤波的运算时间为82 ms。

使用FPGA进行双边滤波处理时,采用了并行流水线的设计,图像采集模块和控制存取模块之间以及控制存取模块与图像处理模块之间,都采用了异步FIFO用于行缓存,因此图像采集和图像处理可以实现并行执行,从而达到实时图像处理。

因此不需要采用表达式(5)给出的在空间上做无限积分的方法,而是采用一个模板扫描图像中的每一个像素的方法,用模板中确定的领域内像素的加权平均值去替代模板中心像素点的值。改进后的公式如(7)所示。

(7)

通过图3处理前后的图像可以发现,刀具经过双边滤波后不均匀的噪声黑点被滤除掉,而且通过采用选定的窗口系数与被窗口选中的子图像做卷积的方法,得到处理后像素点的像素值的方法,使得距离超过一定程度的像素值影响小,从而使整张图片处理效果更优良。在相机采集到数据到之后收到指令延迟只有几毫秒,在一帧图像传输结束的时候图像的处理也就结束了,也就是说在FPGA上图像处理运算时间基本可以忽略不计。

图3 使用FPGA进行双边滤波的图像前后对比

4 结论

FPGA本质上是大规模并行的,在运行相同的算法的时候,其性能显著提高。在一些分选设备中进行图像处理基本上用的都是FPGA,因为相机从看到物料图像到给出执行指令之间的延迟大概只有几毫秒,这要求图像处理必须快而且延时固定,只有FPGA进行的实时流水线运算才能满足这一要求。

在实际的生产应用中常常因为刀具的磨损导致产品质量和使用年限的下降,从而降低厂家利益。如果能够通过刀具磨损情况的分析进行改进的话,就能进一步延长产品使用寿命,从而达到利益最大化。在对刀具进行特征提取之前,采用双边滤波进行预处理,不仅去噪,还保护边缘,从而为缺陷检测和磨损分析做准备。因此基于FPGA的刀具图像预处理系统的研究具有很强的现实意义。

猜你喜欢

双边像素点图像处理
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
基于局部相似性的特征匹配筛选算法
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
电子产品回收供应链的双边匹配策略
基于不确定性严格得分下双边匹配决策方法
基于不确定性严格得分下双边匹配决策方法