基于FPGA的瓶盖边缘在线视频检测装置的设计
2015-03-01刘东辉佟丽娜王家硕孙晓云左晓英杜亚昆王震洲
刘东辉,佟丽娜,王家硕,孙晓云,左晓英,杜亚昆,王震洲
(1.河北科技大学电气工程学院,河北石家庄 050018;2.同济大学电子与信息工程学院,上海201804;3.石家庄铁道大学电气与电子工程学院,河北石家庄 050043;4.河北科技大学信息科学与工程学院,河北石家庄 050018)
基于FPGA的瓶盖边缘在线视频检测装置的设计
刘东辉1,佟丽娜1,王家硕2,孙晓云3,左晓英1,杜亚昆1,王震洲4
(1.河北科技大学电气工程学院,河北石家庄 050018;2.同济大学电子与信息工程学院,上海201804;3.石家庄铁道大学电气与电子工程学院,河北石家庄 050043;4.河北科技大学信息科学与工程学院,河北石家庄 050018)
设计并实现了一个采用OV7670视频模块,以FPGA作为控制单元的瓶盖边缘在线视频检测装置。运用Verilog语言编程,该装置实现了外接VGA显示器菜单式参数设置,完成了实时视频图像的Roberts边缘检测,提高了图像处理速度。通过改进检测算法,有效地抑制了噪声,获得了清晰、连贯的边缘图像。该设计改善了工作环境,避免了对人体的损害。
图像处理;FPGA;图像采集;边缘检测;Roberts算子;菜单显示
刘东辉,佟丽娜,王家硕,等.基于FPGA的瓶盖边缘在线视频检测装置的设计[J].河北科技大学学报,2015,36(3):286-292.
LIU Donghui,TONG Lina,SUN Xiaoyun,etal.Design ofan online video edge detection device for bottle caps based on FPGA[J].Journal of Hebei University of Science and Technology,2015,36(3):286-292.
现代工业自动化中,产品外观检测是必不可少的环节,而瓶盖具有尺寸小、质量极轻,形状和花纹多变等特性,使得传统工业检测方法已无法满足用户的需求。目前,瓶盖边缘检测方法是目视检测,基本上全是工人为增强对比度在强光环境下的裸眼检测。由于疲劳、走神、脱岗或缺乏责任心,漏检经常存在[1-2]。而且,工人的视力会受到严重损害,眼部疾病高发,不可长期从事这项工作。这一难题长年困扰着人们,亟待解决。
1 原理与硬件设计
随着FPGA器件的技术进步,其具有的并行处理机制,适于完成高速、简单、重复处理,因此本文选取FPGA器件设计了瓶盖边缘视频检测装置。系统整体框图见图1。
图1 瓶盖边缘检测系统拓扑图Fig.1 Topology of the bottle cap’s edge detection system
由图1可知,系统采用OV7670数字摄像头[3-5]进行视频采集;FPGA芯片和64 Mbits的SDRAM数据存储器,高速DAC转换芯片组成瓶盖边缘检测控制器;外部可连接VGA显示器进行人机对话和处理过程显示。系统可以通过外接键盘、触摸屏或单片机系统进一步丰富人机对话方式,保持扩展潜力。
1.1 视频采集模块
OV7670摄像头拥有每秒30 MHz的带宽,可实现每秒30帧,分辨率为640×480的视频图像读取。结合光学系统进行设计,若每像素对应观测面积为0.1 mm×0.1 mm,可满足生产线在线视频检测分辨率的硬性指标。
1.2 瓶盖边缘检测控制器
瓶盖边缘检测控制器主要由型号为CycloneⅡ[6-7]EP2C5Q208C8的FPGA芯片与64 Mbits SDRAM缓存协调工作实现其功能。
在实时视频采集系统中,通常采用存储器的乒乓操作以确保数据的稳定性和连续性。本设计采用1片SDRAM的不同逻辑存储空间[8](L-BANK)间的存取操作来实现乒乓操作。由于1片SDRAM总共有4个LBANK,所以,读取第1帧图像时,使用SDRAM的1,2 L-BANK作为读缓存,3,4 L-BANK作为写缓存;读取第2帧图像时,SDRAM的3,4 L-BANK切换为读缓存,1,2 L-BANK切换为写缓存[8-10]。即在SDRAM带宽允许范围内,实现SDRAM内部2个L-BANK的乒乓操作,使得输入输出视频流读写无冲突。
1.3 参数设置显示模块
本设计将PCtoLCD2002字模提取软件与C2Mif v1.0转换软件配合使用,生成Mif文件,再经FPGA控制处理,完成VGA对设置参数的菜单显示,见图2中图2 a)。利用键盘与FPGA对应端口相连接,经过软件编程,可实现按键控制单项参数的选取(见图2 b))和设置。本装置还可通过串口与外部单片机、ARM、触摸屏等装置相连,改变参数的设置。
2 瓶盖边缘检测算法
图像边缘是指其周围像素灰度有急剧变化的像素点的集合,它是图像最基本的特征[11]。现有多种边缘检测技术可实现对图像边缘的提取。例如,Roberts算子、Sobel算子、Prewitt算子、Laplace算子等。本设计针对瓶盖图像进行边缘检测,图形相对简单,但对检测速度及图像检出边缘的完整性和精细度有一定的要求。Roberts算子是一种利用局部差分算子寻找边缘的算子,具有计算简单、快速,边缘较精细,定位精度较高[12-13],可并行处理等优点,因此本文选择Roberts算子进行边缘提取。
图2 参数菜单显示Fig.2 Menu display of parameters
2.1 Roberts边缘检测算法
任意一对相互垂直方向上的差分可以看成是梯度的近似求解。利用这一原理,Roberts算子用对角线方向相邻两像素之差近似梯度幅值,实现瓶盖边缘检测,公式如式(1)所示。
Roberts算子的2个2×2卷积模板和图像区域见图3。
图3 Roberts卷积模板和2×2区域Fig.3 Roberts convolution template and 2×2 area
由上述卷积模板可知,算子Gx,Gy分别以水平方向和垂直方向排列,若以A代表系统获取的图像(即上述选定的2×2区域),Dx,Dy分别代表图像与模板卷积所得的水平梯度和垂直梯度,即图像在水平方向和垂直方向上的边缘检测灰度值,其公式如式(2)所示。
2.2 Roberts边缘检测算法的HDL实现
本设计运用FPGA在QuartusⅡ[14-15]编程环境下编写Verilog HDL硬件描述语言[15-16]程序实现Roberts边缘检测算法的移植。为实现FPGA的快速运算,发挥其并行流水线的特性,本设计运用以下步骤实现Roberts算法的边缘检测。解析与实现分别如下:
1)计算Gx,Gy与选定区域A每行的乘积;
2)图像与算子模板进行卷积运算,求得图像2个方向上的灰度值Dx,Dy,如式(2)所示;
3)求得Dx与Dy的平方和,即Dx,Dy通过式(4)结合,计算得出该区域的梯度值(即区域的灰度值)|D|。的值,此步直接通过Verilog HDL中乘法器[16]描述实现,当各模块进行综合时,会自动布线为片内乘法器;
5)利用设定的阈值T,判断并实现图像的边缘检测,若Dim>T,视为有效,赋1;反之,赋0。
SQRT程序调用:
FPGA在实现Roberts边缘检测算法过程中需要注意一点,即在以上步骤中设计编程共消耗了5个时钟,因此,程序需对行、场像素的有效时钟进行5个时钟的偏移。
到此,设计实现了对在线视频检测系统中获取图像的边缘检测。利用ModelSim软件得到的波形仿真见图4。
图4 Roberts边缘检测仿真波形图Fig.4 Simulation waveform of Roberts edge detection
检测系统获取的图像与经Roberts算子处理后的图像分别见图5中的图5 a)、图5 b)。
图5 瓶盖图像Fig.5 Images of bottle caps
由图5可知,本装置有效地获取了瓶盖的边缘,可以明显地看出边缘缺损的瓶盖。但瓶盖的一些花纹与光线投影问题致使瓶盖边缘的检测存在着一定的误差。
2.3 图像边缘检测算法的改进
数学形态学[17]是一种非线性滤波方法,连续的开和闭运算可以有效地除噪。
膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。腐蚀是一种消除边界点,使边界向内收缩的过程[18-20]。利用它可以消除小而无意义的物体。
在操作过程中,输出图像里某像素的状态是用一定的规则对输入图像的对应像素和邻域进行处理而确定的。当膨胀操作时,采用最大值原则,即在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1,用3×3像素阵列解释见图6。
图6 3×3像素阵列形式的膨胀算法Fig.6 Expansion algorithm in the form of3×3 pixel array
该算法的实现用式(5)表示,即为3×3像素的或运算:
在HDL中,为了提高运算速度,将式(5)改写为
由式(6)可知,先分别对每行的3个像素进行或计算,再对所得结果进行或运算,以实现膨胀算法。
腐蚀算法与膨胀算法相对,在操作中,采用最小值原则,即在二进制图像中,如果任何像素值为0,那么对应的输出像素值为0。用3×3像素阵列解释见图7。
图7 3×3像素阵列形式的腐蚀算法Fig.7 Corrosion algorithm in the form of 3×3 pixel array
该算法的实现用式(7)表示,即为3×3像素的与运算:
可改写为
通过两步与运算实现HDL中的腐蚀运算。
图8 改进处理后图像Fig.8 Processed image is improved
图8 a)为经过膨胀运算后所得到的边缘图像,对其进行腐蚀运算,得到图8 b)。膨胀运算相当于将有效的图像边缘进行了加粗,而后的腐蚀运算使边缘检测后的图像变得更加细腻,去除噪点。对比图5 b)与图8 b)可以看出,改进算法后得到的边缘图像很好地抑制了噪声,图像变得很清晰、连贯,边缘更加明晰,很容易判断瓶盖的缺损情况。
3结论
本装置以EP2C5Q208C8 FPGA作为控制单元,利用摄像头OV7670很好地实现了对瓶盖实时视频图像的采集,并结合Roberts边缘检测算法与形态学开、闭运算,在QuartusⅡ编程环境下编程进行实验和仿真,有效地完成了瓶盖图像的边缘检测、除噪及参数菜单的可视化设计。
在FPGA上进行图像处理,由于FPGA的并行性及HDL的编程模块化,本设计有效地避免了程序代码的繁琐,而且便于系统功能的移植、改进和扩展,大大提高了系统的处理速度及检测效率。
改进的检测算法中采用开闭运算,完全删除了不能包含结构元素的图像区域,在一定程度上消除了噪声,平滑了图像检测边缘的轮廓,为以后更多更复杂的图像处理系统的实现奠定了基础。
采用本装置,现场工作人员与被检测对象可实现零接触,能够有效地避免对人体的损害,十分安全可靠,可广泛地长时间应用于恶劣的工作环境。
[1] 柳叶青.基于机器视觉的药瓶检测系统的研究[D].长沙:中南大学,2009.
LIU Yeqing.The Research of the Bottle Detection System Based on Machine Vision[D].Changsha:Central South University,2009.
[2] 任毅,程耀瑜.基于DSP的印刷品质量在线检测系统设计[J].传感器世界,2011(2):32-34.
REN Yi,CHENG Yaoyu.Print quality on-line detection system design based on DSP [J].SensorWorld,2011(2):32-34.
[3] 李德明,韩剑,江国强.基于OV7670的图像采集及显示系统设计[J].仪器仪表学报,2010,31(8):30-33.
LIDeming,HAN Jian,JIANGGuoqiang.Image acquisition and display system design based on OV7670[J].Chinese Journal of Scientific Instrument,2010,31(8):30-33.
[4] 王健,张翔.PC104对OV7670寄存器的读写[J].电子设计工程,2012,20(6):135-137.
WANG Jian,ZHANG Xiang.PC104 read and write for the register of OV7670 [J].Electronic Design Engineering,2012,20(6):135-137.
[5] 李志阔,孟志永,魏泽鼎.基于图像传感器的片烟规格测量方法[J].河北工业科技,2011,28(3):208-211.
LIZhikuo,MENG Zhiyong,WEIZeding.Measurementof strips size based on image sentor[J].Hebei Journalof Induestrial Science and Technology,2011,28(3):208-211.
[6] 吴厚航.深入浅出玩转FPGA[M].北京:北京航空航天大学出版社,2010.
WU Houhang.Fun Layman FPGA[M].Beijing:Beijing University of Aeronautics and Astronautics Press,2010.
[7] 路而红.电子技术自动化应用技术——FPGA应用篇[M].北京:高等教育出版社,2010.
LU Erhong.Electronics Automation Technology:FPGA Application Papers[M].Beijing:Higher Education Press,2010.
[8] 孙佳郡,刘子龙,何明军.基于FPGA的高效率SDRAM读写双口控制器设计[J].制造业自动化,2013,35(10):115-117.
SUN Jiajun,LIU Zilong,HE Mingjun.A high efficiency SDRAM controller design based on FPGA [J].Manufacturing Automation,2013,35(10):115-117.
[9] 张阳,王中阳,王红胜,等.基于FPGA的多端口存储控制器设计[J].河北工业科技,2010,27(6):401-405.
ZHANG Yang,WANG Zhongyang,WANGHongsheng,etal.Design ofmultiportmemory controller based on FPGA[J].Hebei Journal of Induestrial Science and Technology,2010,27(6):401-405.
[10]张文涛,王琼华,李大海,等.实时视频采集系统的SDRAM控制器设计[J].现代电子技术,2009(20):57-59.
ZHANGWentao,WANG Qionghua,LIDahai,et al.Design of SDRAM controller for real-time video acquisition system[J].Modern Electronic Technology,2009(20):57-59.
[11]李正明,刘春国,安明建.基于FPGA的Sobel图像边缘检测的设计[J].现代科学仪器,2012(4):84-86.
LIZhengming,LIU Chunguo,AN Mingjian.The design of Sobel image edge detection based on FPGA [J].Modern Scientific Instruments,2012(4):84-86.
[12]祁佳,刘紫燕.实时图像双边缘检测算法及FPGA实现[J].器件与应用,2014,38(3):64-65.
QIJia,LIU Ziyan.Double-dege detection of real-time image based on FPGA[J].Arts and Applications,2014,38(3):64-65.
[13]康牧,许庆功,王宝树.一种Roberts自适应边缘检测方法[J].西安交通大学学报,2008,42(10):1240-1244.
KANGMu,XU Qinggong,WANG Baoshu.A Roberts adaptive edge detection method[J].Journal of Xi’an Jiaotong University,2008,42(10):1240-1244.
[14]王传新.FPGA设计基础[M].北京:高等教育出版社,2007.
WANG Chuanxin.The FPGA Design Basis[M].Beijing:Higher Education Press,2007.
[15]潘松,黄继业,陈龙.EDA技术与Verilog HDL[M].北京:清华大学出版社,2010.
PAN Song,HUANG Jiye,CHEN Long.EDA Technology and Verilog HDL[M].Beijing:Tsinghua University Press,2010.
[16]夏宇闻.数字系统设计——Verilog实现[M].北京:高等教育出版社,2006.
XIA Yuwen.Digital System Design:Verilog Implementation[M].Beijing:Higher Education Press,2006.
[17]段培超,周春平.基于小波变换和数字形态学的航空图像边缘检测[J].河北科技大学学报,2006,27(2):158-161.
DUAN Peichao,ZHOU Chunping.Aerial image edge detection based on wavelet transform and mathematicalmorphology[J].Journal of HebeiU-niversity of Science and Technology,2006,27(2):158-161.
[18]王慧峰,战桂礼,罗晓明.基于数学形态学的边缘检测算法研究的应用[J].计算机工程与应用,2009,45(9):223-226.
WANG Huifeng,ZHAN Guili,LUO Xiaoming.Research and application of edge detection operator based onmathematicalmorphology[J].Computer Engineering and Applications,2009,45(9):223-226.
[19]高薪,胡月,杜威,等.腐蚀膨胀算法对灰度图像去噪的应用[J].北京印刷学院学报,2014,22(4):63-65.
GAO Xin,HU Yue,DUWei,etal.Application of decreasing noise of gray image by corrosion and expansion algorithm[J].Journal of Beijing Institute of Graphic Communication,2014,22(4):63-65.
[20]杨琨,曾立波,王殿成.数学形态学腐蚀膨胀运算的快速算法[J].计算机工程与应用,2005(34):54-56.
YANG Kun,ZENG Libo,WANG Diancheng.A fast arithmetic for the erosion and dilation operations ofmathematicalmorphology[J].Computer Engineering and Applications,2005(34):54-56.
Design of an online video edge detection device for bottle caps based on FPGA
LIU Donghui1,TONG Lina1,WANG Jiashuo2,SUN Xiaoyun3,ZUO Xiaoying1,DU Yakun1,WANG Zhenzhou4
An online video edge detection device for bottle caps is designed and implemented using OV7670 videomodule and FPGA based control unit.By Verilog language programming,the device realizes themenu type parametric setting of the external VGA display,and completes the Roberts edge detection of real-time video image,which improves the speed of image processing.By improving the detection algorithm,the noise is effectively suppressed,and clear and coherent edge images are derived.The design improves the working environment,and avoids the harm to human body.
image processing;FPGA;image acquisition;edge detection;Roberts operators;menu display
TN911.73
A
1008-1542(2015)03-0286-07
10.7535/hbkd.2015yx03010
2014-11-17;
2014-12-23;责任编辑:李 穆
国家自然科学基金(51274144);河北省科技支撑计划项目(14210302D)
刘东辉(1971—),男,山西晋城人,教授,博士,主要从事电器信息检测与信息处理技术方面的研究。
E-mail:liudh@hebust.edu.cn