张尚坤, 宋树祥
(广西师范大学 电子工程学院,广西 桂林 541004)
基于DSP和FPGA的竹片图像采集与处理系统设计
张尚坤, 宋树祥
(广西师范大学 电子工程学院,广西 桂林 541004)
针对图像采集需要实时、高速的要求,本文提出的基于DSP(TMS320C6416)和FPGA(EP2C35)图像采集系统的设计方案。该设计通过前端FPGA控制OV9650摄像头进行图像采集,预处理,然后通过FPGA的FIFO进行数据缓存,利用DSP的EMIFB接口实现数据的传输,最后对采集的图像进行Sobel算子的边缘检测,灰度共生矩阵的纹理分析、图像标准差运算以及基于相关函数的图像配准。
TMS320C6416; FPGA; 边缘检测; 纹理分析; 图像标准差; 图像配准
由于现代科技的进步,技术的革新,对图像采集设备要求越来越高。传统图像采集设备速度慢,实时性差,处理要求简单,不能满足大容量数据的处理要求。据此,设计高速、实时的图像采集系统。该系统采用TI公司的TMS320C6416芯片和以Altera CycloneII 的EP2C35系列芯片为系统的核心硬件。以DSP和FPGA组成的图像采集系统,广泛应用于各种军事、科研、医疗卫生等各种领域[1-9],此类系统编程灵活,算法实现较简单,且在开发过程中适合模块化设计,系统通用性强,可以大大缩短开发周期。
本系统由前段图像采集预处理部分、后端的图像算法处理部分和图像显示部分,如图1所示。
图像采集预处理部分主要由OV9650 CMOS摄像头和FPGA逻辑控制部分组成。摄像头主要是完成图像的采集,FPGA负责产生系统所需的逻辑控制信号和各芯片的时钟信号,并对图像进行滤波预处理。图像算法处理部分,则主要是负责将FPGA预处理后的图像二值化处理、边缘检测、纹理特征分析、图像匹配等图像处理运算。图像显示部分由FPGA控制VGA接口的显示器,显示经DSP处理后的图像。
图1 系统的总体框图
图像的算法处理部分是整个系统的核心部分。本系统软件主要实现对采集的图像进行边缘检测、纹理分析以及图像识别等以确保硬件系统能够对图像进行处理。首先获取图像数据,对比较完整的竹片存库,以用来作后续的识别处理,然后对图像进行二值化处理,边缘检测,判断其轮廓是否在一定的误差范围内与预先保存的数据符合,符合的则继续进一步的纹理分析,计算该图像的标准差,然后根据阈值判断是否在一定范围内与预先存取在数据库的竹片数据符合,符合的则进一步实现图像配准,完成图像的识别处理,并存入相应的数据库。其软件实现的流程图如图2所示。
图2 竹片处理流程图
2.1 系统的主要器件
系统采用的FPGA是Altera公司的Cyclone II系列的EP2C35芯片。该芯片是一款基于90 nm工艺制造、低成本、适合复杂逻辑、带存储缓冲功能的FPGA芯片。EP2C35拥有33 216个逻辑单元,483 840位RAM,35个乘法器模块,是CycloneII系列处理能力较强的芯片之一。
图像处理器则选用的是TI公司近年推出的高性能定点DSPTMS320C6416芯片,其时钟频率可达1 GHz,运算能力达8 000 MIPS,采用先进的甚长指令结构(VLIW),内部有6个ALU(32/40 bit),每个时钟周期可以执行8条指令。该芯片采用两级缓存结构,一级缓存(L1)由128 kbit的程序缓存和128 kbit的数据缓存组成,二级缓存(L2)为8 Mbit;内部有2个扩展存储器接口,为EMIFA(64 bit)和EMIFB(16 bit)。可与同步存储器或异步存储器进行无缝连接。
2.2 FPGA与DSP的连接
DSP通过EMIFB接口的片选信号线、时钟信号线、数据线、地址线以及其他信号线与FPGA的IO口连接。该电路的主要功能是实现FPGA内存储器直接映射到DSP的地址空间,以实现DSP与FPGA之间的数据交换。DSP通过EDMA中断信号,实现DSP从FPGA里读取数据或将处理完的数据发送给FPGA,最终灵活的实现FPGA与DSP之间的控制通信。其电路连接结构如图3所示。
2.3 图像显示接口设计
图像显示电路主要由芯片ADV7123与VGA接口构成,ADV7123是一款高速的RGB D/A转换芯片,内部集成了3路10 bit精度的D/A转换器,分别用于RGB数字信号的D/A转换,数据吞吐率可达240 MSPS,适合高分辨率彩色视频生成。3路数字输入接口R[0:9]、G[0:9]、B[0:9]以及同步控制信号(BLANK、SYNC)和时钟信号分别于FPGA的IO口连接,3路输出接口(IOR、IOG、IOB)分别与VGA的红基色接口、绿基色接口、蓝基色接口连接。另外VGA的行同步接口(VGA_HS)与场同步接口(VGA_VS)分别与FPGA的IO口连接。其他不用的输入输出端口做接地处理。其电路连接结构如图3所示。
3.1 图像的边缘检测
Sobel算子是一个梯度算子[10-12]。该算法是通过2个3×3的模板,其中一个模板对水平边缘的响应最大而另一个模板对垂直边缘的响应最大,对二维图像中同样大小的窗口进行卷积,得到图像的梯度,然后再根据梯度值的大小与设定的阈值进行比较,如果得到的阈值大于255的就用255代替该值。由于Sobel算子的是一种各向同性的算子,通常情况下,分别沿水平方向和垂直方向求其梯度,并对它们的平方和开根号。
图3 系统的主要硬件原理图
以下是Sobel算子计算方法。
模板:
(1)
梯度的计算公式为:
(2)
其中:Gx表示水平方向的梯度;Gy表示垂直方向的梯度,程序运行时,计算平方和平方根需要大量计算。通常用下面的公式来代替上面的梯度公式:
(3)
这个公式的计算量更小,而且它仍保持着与灰度级的相对变化。
3.2 纹理分析
对边缘检测符合要求的竹片进行纹理分析,分析其纹理特征。本文采用共生矩阵的方法对竹片的纹理进行计算分析。因此,本文先将图像数据转化为矩阵,然后分别对不同类型的竹片分别从0°、45°、90°、135° 4个方向计算其能量、熵、惯性矩、相关性4个表征量,最后求4个表征量在各个方向的平均值,表示纹理特征。以下是其描述方法。
能量:
(4)
熵:
(5)
惯性矩:
(6)
相关性:
(7)
其中:共生矩阵P是N×N的,N为灰度阴影级的划分数目;P(i,j)表示该图像的共生矩阵P的(i,j)位置处的元素值,等于灰度级i和j在图像内沿该方向(0°、45°、90°、135°),相距该指定距离(此距离取为1)的两个像素上同时出现的次数。
3.3 图像的标准差
在图像进行纹理分析之后,对图像进行轮廓缺陷匹配,模板匹配进而识别竹片的好坏[13-15]。首先,对不同类型的竹片进行图像标准偏差的计算,取平均值,作为阈值判决的标准。然后根据模板以及纹理分析的特征对竹片进行识别,最终识别竹片的好坏。以下是图像标准差的计算方法:
(8)
其中:xi为图像的像素值;E(x)为图像的均值。其判断的标准是若竹片的标准差σ≥Tr,则竹片通过检测,反之,则不通过。
3.4 图像配准
图像配准是指图像之间的比较、得到不同图像之间的相似度。本文针对图像的相关性,利用图像相关的特性对图像进行模板匹配。模板匹配的基本原理是通过相关函数的计算找到它和被搜索图像的坐标位置。如图4所示,假设模板T的大小为m×n,搜索图S的大小为W×H。模板T叠放在搜索图S上平移,模板覆盖下的那块搜索图叫做子图Si,j,(i,j)为子图上的像素点在S图上的坐标,叫参考点,其中,1≤i,j≤n-m+1。比较T和Si,j的内容,若两者一致,则T和Si,j之差为零。否则继续比较知道找到匹配的对象为止。其测试方法为:
(9)
图4 模板匹配图
本文软件设计是基于TI公司的软件开发平台CCS上进行的。CCS软件相比Matlab软件,具有实时性强,实用性高,只要配置好硬件的IO口,就很容易将代码移植到硬件上调试检验,对产品的开发具有很高的实用价值。
边缘检测算法的结果如图5所示,分别是原始图像、二值化处理以及边缘检测结果。由图可知,其达到良好的边缘检测效果,符合本文设计的要求。
图5 边缘检测图
纹理分析的结果如表1所示。本实验,分别挑选正常、破损比较严重、斑纹、表面刮伤、表面有细长线、表面比较暗淡的等类型的竹片经行检测分析。由于图像采集受光照、设备等的影响,结合表1的数据表明,不同类型的竹片,其纹理特征存在较大差异,图像的亮度、位置、走向、尺寸和形状都与纹理特征有关,与平均灰度级无关。
表1 竹片纹理分析的数据对比
图像标准差算法的效果如图6、7所示。图7是图6对应图像的效果图。本实验采用100片竹片样本测验,求平均值,得出标准差的阈值为Tr=69.5。由图7可知,其模板轮廓与被检测竹片的轮廓存在一定的偏差。在一定的误差范围内,可以达到图像的识别效果。图中,颜色较深的是模板轮廓,颜色较淡的是被检测竹片的轮廓,表面的灰度区域则表示竹片表面的纹理特征。
图像配准的结果如图8所示,原图尺寸为400×300,模板为112×74。如图所示,运用比较方法能够简单的实现图像的配准,根据模板可以准确的搜索到原始图像,实现一对图像区域的空间配准。
图6 原始图像
图7 处理后的效果图
图8 配准效果图
本文从硬件和软件两方面介绍了竹片图像采集与处理卡的设计,为竹片的识别检测提供了一种自动化设计的方法。通过CCS软件对图像进行软件算法的处理,实现图像的边缘检测,纹理分析,图像标准差以及图像配准的计算处理,达到良好的效果。利用CCS软件进行算法处理,能满足实时性要求,易于与硬件连接调试验证。另外,本文对部分竹片图像标准差的处理效果不太明显,还有待进一步的改进。
[1] 丁幼春,陈 红.基于Bayes的竹片颜色检测分级方法[J].华中农业大学学报,2009,28(6):767-770.
[2] 马秀娟,考 丽,赵国良.基于 FPGA和DSP的高速数据采集实时处理系统的设计[J].电子器件,2007,30(3):1009-1013.
[3] 高丽燕.基于DSP+FPGA的图像识别系统设计与实现[D].南京:南京理工大学,2006.
[4] 宋 昕,秦现生,刘 琼,等.竹地板选片工艺的机器视觉化研究及实现[J].计算机工程与应用,2010,46(16):221-225.
[5] 王业琴,王克奇,白雪冰,等.计算机视觉木材表面色差检测的研究[ J].林业科技,2005,30(2): 36-38.
[6] Kurdthongmee W. Colour classification of rubber wood boards for fingerjoint manufacturing using a SOM neural network and image processing[J].Computers and Elect ronics in Agriculture, 2008(64):85-92.
[7] 陈炳权. 基于DSP+FPGA的实时图像识别系统硬件与算法设计[J]. 衡阳师范学院学报,2008,29(3):106-109.
[8] 司孝平.基于SDRAM的FPGA实时图像采集系统的设计[J].西南大学学报(自然科学版),2011,33(1):128-132.
[9] 朱奕丹,方怡冰.基于FPGA的图像采集与VGA显示系统[J].计算机应用,2011, 31(5): 1258-1260.
[10] 冯新宇, 方伟林,杨 栋. 基于中值滤波与Sobel,Canny算子的图像边缘检测研究[J].黑龙江水利学报,2009,36(1):101-103.
[11] 潘东杰,邓 涛.一种基于阈值分割的红外图像边缘检测方法[J].电子科技,2010(6): 52-54.
[12] 赵慧民,朱 立. 基于DSP CCS2.2实现指纹识别预处理系统[J].电子技术应用,2005 (7):65-66.
[13] 田 娟,郑郁正.模板匹配技术在图像识别中的应用[J].传感器与微系统,2008(27):112-114.
[14] 李建华,马小妹,郭成安.基于方向图的动态阈值指纹图像二值化方法[J].大连理工大学学报,2002(5):627-628.
[15] 杨骏进,王佳琳.图像快速匹配算法研究及DSP实现[J].测控技术,2008(8):29-32.
Design of Bamboo Image Acquisition and Processing System Based on DSP and FPGA
ZHANGShang-kun,SONGShu-xiang
(College of Electronic Engineering, Guangxi Normal University, Guilin 541004, China)
The image acquisition often needs real-time and high speed, the paper proposed an image acquisition system based on DSP (TMS320C6416) and FPGA (EP2C35). This design applied FPGA to control OV9650 camera and obtain image acquisition and pre-processing, and then applied the FIFO FPGA data cache. DSP EMIFB was used as an interface to realize the data transmission, the acquisition of image edge detection, the texture analysis, image standard deviation calculation, and image registration based on the correlation function.
TMS320C6416; FPGA; edge detection; texture analysis; image standard deviation; image registration
2015-04-16
张尚坤(1974-),男,广西永福人,工程师,主要研究方向模拟集成电路设计、信息处理。
Tel.:13977393994;E-mail:zhangsk@mailbox.gxnu.edu.cn
TP 391
A
1006-7167(2016)01-0106-05