人才招聘

联系我们

公司地图

武汉艾崴为新疆研发一款FPGA的图像处理系统

2019-12-23 16:15:34

新疆针对目前采用通用计算机、多CPU并行、DSP等方法实现实时图像处理的不足,武汉艾崴研究了一种基于FPGA的图像处理系统,由图像采集和图像处理基本算法两部分组成.图像采集选用 OV7670图像传感器,其内部集成了传感器及图像处理单元,可以直接输出数字信号给FPGA.图像处理选用 Altera公司的CycloneII系列的 FPGA芯片,在芯片上完成了图像采集的控制,模拟了I2C总线协议,通过 设计FPGA的内部逻辑实现了图像灰度化、中值滤波、边缘检测等图像处理基本算法,使处理速度远远快于软件方法.仿真结果显示:该系统实现了实时图像的快速采集和处理,最高能达到30帧/s,并且分辨率为640×480。

1.jpg

图像采集与图像处理一直是比较热门的研究领域,涉及到信号处理、人工智能、模式识别等多种学科,主要应用在汽车电子、消费电子、安保监控、国防军工以及3D投影等领域。 随着信息技术的发展,对于图像的获取与处理的方案越来越多,例如专用模拟器件、ASIC 芯 片、DSP芯片及 ARM 芯片都能应用于图像处理领域.ASIC是专用集成电路,比较适合解决实时图像处理并且其处理速度快于FPGA,但其具有开发周期长、成本高以及设计出厂后不能根据需求进行修改、灵活性差等缺点.ARM 和 DSP还是一种 CPU,其串行的结构并不适应某些实时性较强的图像处理算法。而 FPGA 可根据需求,通过设计完成不同功能的硬件电路,在设计中可采用流水线和并行处理的技术,使其在处理算法上具有高效性,并且其开发周期相对于 ASIC短,易于维护和拓展,在实时图像处理方面具有很大的优势,新疆目前多种图像处理算法如图像缩放、图像旋转、图像压缩、边缘检测、直方图均衡化、中值滤波都适合用FPGA处理,并且相关算法也在不断完善。综上所述,武汉艾崴在此研究基于FPGA的图像处理系统,并提出快速中值滤波和sobel边缘检测算法的 FPGA 实现。

一、系统总体结构和工作原理

系统采用 OV7670数字图像传感器采集图像,图像处理以及其他控制模块采Altera 公司的CycloneII系列FGAP芯片,型号为EP2C8Q208C8,速度等级为8,最高工作频率为320MHz,有8256 个逻辑单元,采用一片64Mbit的SDRAM芯片存储图像,将最后处理后的图像输入到VGA显示.总体结构图如图1所示.

2.jpg

系统采用50 MHz晶振,上电后通过FPGA内部逻辑模拟的I2C协议对 OV7670图像传感器进行控制寄存器的配置,设定工作方式,设置输出图像格式为 YCbCr4:2:2,即8bit亮度信号和8bit色度信号间隔输出.系统参数初始化后,FPGA 通过PLL分频为图像传感器提供25MHz的时钟,实时读出行同步信号、帧同步信号、8bit图像数 据和像素时钟.格式转换模块接收 OV7670图像传感器传来的数据,间隔取8bit的亮度信号即8bit灰度图像数据,再送至数据缓冲和存取控制模块.由于图像采集模块采用的频率为25MHz,而 SDRAM 控制模块采用的频率为100MHz,所以利用异步 FIFO 将数据暂存,并控制启动 SDRAM 存储器的上电刷新操作,然后对SDRAM 进 行 读 写,把 一 帧 图 像数据先写入SDRAM,同时将图像数据送至图像处理模块,在该模块完成中值滤波或边缘检测.中值滤波和边缘检测都是基于方形窗口操作的,因此主要由三个模块实现:边缘检测功能模块,中值滤波功能模块,3×3方窗口生成模块.

本系统没有采用传统的中值滤波方法,而且是利用一种快速中值滤波的算法,通过多级流水的方式,加快了运算速度.边缘检测采用Sobel算子来计算x方向和y 方向的导数值,然后将两个方向的导数值取绝对值相加,得到中心像素点的近似梯度.将处理完的图片数据再存入SDRAM,最后利用乒乓操作,采用FIFO行缓存的方式,将SDRAM 中处理完成的图片输出到 VGA 显示.

系统中I2C 协议是一种串行通信总线,主要的用途在于控制芯片.I2C只使用两条双向线,分别为串行数 据 SDA 及串行时钟SCL,由一 个主控制端(Master)控制多个从设备(Slave).本系统中的主控制端是FPGA,从设备是 OV7670图像传感器.

二、 核心模块设计及仿真

2.1 IC控制模块设计及仿真

IC控制模块主要有三部分组成,分别为控制模块、功能模块和 ROM 模块,其中:功能模块主要完成数据的并串转换,根据协议要求把控制模块输入的地址和数据转换成 SDA/SCL电平的高低变化;控制模块利用状态机的方式从 ROM中读取配置好的数据,并将数据输给功能模块,同时输出激励信号,使功能模块工作.

IC控制模块仿真时序图如图2所示.图中是一次写操作,地址是02H,写入数据是6FH.当SCL为高电平时,SDA拉低电平,即起始信号;然后发送8bit设备地址,收到设备应答信号 ACK; 发送8bit寄存器地址02H,收到应答信号;写入数据6FH,收到应答信号;最后当SCL为高电平时,拉高SDA,结束这次写操作.

2.2 窗模块实现及仿真

滑动窗操作是图像中值滤波和边缘检测的基础,它使用一个窗口,这个窗可以是一个点周围的特定长度或形状的邻域,来计算算法的输出.方形窗大小可自行确定,通常采用奇数大小的滑动窗口,本系统采用3×3方形窗.对每点邻域内的8个点和自身一共9个点进行图像处理相关计算.须要同一时刻将9个点的灰度数据输出,采用行缓存和列同步的方法.3×3方形窗生成模块结构图如图3所示.

如图3所示,图中 D是8bit的图像灰度数据,Line- Buffer是 固 定深 度 的 FIFO,本研究采用 2 个 1024byte深 度 的 FIFO 作 为 行 缓 存,来缓存前2行的图像数据,当第3行数据输入时,通过列同步模块,将3×3方形窗内的9个像素的灰度数据同一时刻输出,以此类推,通过控制读写 FIFO,使其中的数据始终是输出当前行的前2行的图像数据,保证每一时刻有9个数据同时输出,整体是一个流水的架构.3×3方形窗生成模块仿真波形图如图4所示.

2.3快速中值滤波模块设计

中值滤波是一种常见图像预处理方 法,能 够有效地去除噪声,平滑图像,与均值滤波以及其他线性滤波器相比,它能够在去噪的同时不模糊图像的边缘,较好地保持图像的清晰度。

中值滤波算法是将3×3方形窗模块输出的9个像素的灰度数据进行比较排序,最后输出中间值.最原始的方法是冒泡排序法,通过计算,每执行一次算法,须要36次比较,速度较慢.因此,本系统设计时采用快速中值滤波的方法,利用了并行和流水线的处理方法,完成一次中值滤波须要19次比较,经过9个时钟的潜伏期以后每个时钟计算出一个结果,大大加快了中值滤波的计算速度.计算原理如图5所示,将窗模块输出的9个数据分3组(C1,C2,C3),每组3个数据按从大到小输出排 列,然 后 分 别 并 行 比 较 C1,C2 和 C3中 的 max,mid和 mid和 min,得到 max组中的最小值,mid组中 的中 间 值,min组中 的最大值,最后将这3个 值 输 入 C 中,比 较 计算 得 出 中 间 值,即 为3×3方形窗的中心像素点经过中值滤波的结果.计算原理及过程如图5所示.

3.jpg

图5中有7个比较器,为自定义3输入3输出流水比较器,潜伏期3个时钟.采用冒泡排序,最后按从大到小输出.

三、仿真结果分析

由于图像处理的数据量大,采用 Altera公司的 EP2C8Q208C8速度等级为8的 FPGA 芯 片,利用硬件逻辑的方式来并行处理的图像数据,相对于同等级或同工艺的 DSP和 ARM 等芯片,具 有运行效率高、速度快等优点.在中值滤波的实现中,采用本文方案,运行在50MHz就能快速实现该功能,而采用同工艺90nm 的 DSP要达到同样的速度须要运行在1.5GHz的频率下。

在研究其他相关系统的基础上,该系统在图像处理模块采用了并行流水线的设计,并且在存取控制模块与图像处理模块之间、存取控制模块与数据采集模块之间均采用了异步 FIFO,用 于行缓存,因此图像采集和图像处理可并行执行,可达到实时图像处理的效果.OV7670 输 出 640×480分辨率30帧/s的数据,图像处理模块可实时完成中值滤波或边缘检测.

该系统设置了命令字控制字寄存器,外部处理器只须要给定系统合理的控制字命令字就能完成不同的功能,如根据需求设置处理图像的大小.该系统灵活度高,适用于多种不同要求的实时图像处理.

硬件处理方案中,仿真用 Modelsim SE10.0c得到逻辑电路运行算法所耗时间.由仿真结果可知:FPGA 芯片在50 MHz的频率下处理一幅640×480分辨率的8bit灰度级的图像,完成中值滤波运算耗时为6.144ms,完成边缘检测运算耗时为6.144ms,中值滤波潜伏期为25.78μs,边缘检测潜伏期为25.70μs.

下面给出软件方案的效率.使用 CPU 为In-telCore2且 频 率为2.2GHz,内 存2GB,32bitWIN7操作系统的 PC 机,利用 Matlab对同等分辨率的图像进行中值滤波和边缘检测仿真,结果显示:中值滤 波 运 算 时 间 为718ms,边 缘 检测 运算时间为632ms,相比而言,本系统对图像处理的硬件解决方案比软件方案快100倍以上.

武汉艾崴研究设计的系统灵活,运行效率高,该系统为图像识别和其他高级图像算法的基础,具有较强的现实意义.

这篇文章有帮助吗?

已有 人觉得有帮助

还有其它问题? 请点击客服图标在线反馈

推荐产品

IWILDT™ AN-30002800L车辆后尾箱X光扫描安检系统

联系我们