基于F P G A的图像处理系统 |
来源:一起赢论文网 日期:2015-03-11 浏览数:3265 【 字体: 大 中 小 大 中 小 大 中 小 】 |
摘要 针对目前采用通用计算机、 多 C P U 并行、 D S P 等方法实现实时图像处理的不足, 研究了一种基于F P GA 的图像处理系统, 由图像采集和图像处理基本算法两部分组成 . 图像采集选用 OV 7 6 7 0 图像传感器, 其内部集成了传感器及图像处理单元, 可以直接输出数字信号给 F P GA. 图像处理选用 A l t e r a 公司的 C y c l o n e I I系列的 F P GA 芯片, 在芯片上完成了图像采集的控制, 模拟了 I2 C 总线协议, 通过设计 F P GA 的内部逻辑实现了图像灰度化、 中值滤波、 边缘检测等图像处理基本算法, 使处理速度远远快于软件方法 . 仿真结果显示:该系统实现了实时图像的快速采集和处理, 最高能达到 3 0 帧/ s , 并且分辨率为 6 4 0×4 8 0. 关键词 图像处理;图像采集;边缘检测;中值滤波; 算法图像采集与图像处理一直是比较热门的研究领域, 涉及到信号处理、 人工智能、 模式识别等多种学科, 主要应用在汽车电子、 消费电子、 安保监控、 国防军工以及3 D投影等领域 [1 ] . 随着信息技术的发展, 对于图像的获取与处理的方案越来越多, 例如专用模拟器件、 A S I C芯片、 D S P芯片及 ARM 芯片都能应用于图像处理领域. A S I C是专用集成电路, 比较适合解决实时图像处理并且其处理速度快于 F P GA , 但其具有开发周期长、 成本高以及设计出厂后不能根据需求进行修改、 灵活性差等缺点. ARM 和 D S P还是一种C P U , 其串行的结构并不适应某些实时性较强的图像处理算法 [2 ] . 而F P G A可根据需求, 通过设计完成不同功能的硬件电路, 在设计中可采用流水线和并行处理的技术, 使其在处理算法上具有高效性, 并且其开发周期相对于 A S I C短, 易于维护和拓展, 在实时图像处理方面具有很大的优势. 目前多种图像处理算法如图像缩放、 图像旋转、 图像压缩、 边缘检测、 直方图均衡化、 中值滤波都适合用F P G A处理, 并且相关算法也在不断完善. 综上所述, 在此研究基于 F P GA 的图像处理系统, 并提出快速中值滤波和s o b e l边缘检测算法的F P GA 实现. 1 系统总体结构和工作原理 系统采用 OV 7 6 7 0数字图像传感器采集图像, 图像处理以及其他控制模块采 A l t e r a公司的C y c l o n e I I 系 列F P GA 芯 片, 型 号 为E P 2 C 8 Q 2 0 8 C 8 , 速度等级为8 , 最高工作频率为3 2 0MH z , 有 8 2 5 6 个 逻 辑 单 元. 采 用 一 片 6 4M b i t的S D R AM 芯片存储图像, 将最后处理后的图像输入到 VGA 显示. 总体结构图如图1所示.图 1 系统总体结构图 系统采用5 0 MH z晶振, 上电后通过 F P GA内部逻辑模拟的I2 C协议对 OV 7 6 7 0 图像传感器进行控制寄存器的配置, 设定工作方式, 设置输出图像格式为 Y C b C r 4 : 2 : 2 , 即8b i t亮度信号和8b i t色度信号间隔输出. 系统参数初始化后, F P -GA 通过P L L分频为图像传感器提供2 5MH z的时钟, 实时读出行同步信号、 帧同步信号、8b i t图像数据和像素时钟. 格式转换模块接收 OV 7 6 7 0图像传感器传来的数据, 间隔取8b i t的亮度信号即 8b i t灰度图像数据, 再送至数据缓冲和存取控制模 块. 由 于 图 像 采 集 模 块 采 用 的 频 率 为 2 5MH z, 而S D R AM 控制 模块 采 用的频率为 1 0 0MH z , 所以利用异步F I F O将数据暂存, 并控制启动 S D R AM 存 储 器 的 上 电 刷 新 操 作, 然 后 对S D R AM 进 行 读 写,把 一 帧 图 像 数 据 先 写 入S D R AM , 同时将图像数据送至图像处理模块, 在该模块完成中值滤波或边缘检测. 中值滤波和边缘检测都是基于方形窗口操作的, 因此主要由三个模块实现: 边缘检测功能模块, 中值滤波功能模块,3×3方窗口生成模块. 本系统没有采用传统的中值滤波方法, 而且是利用一种快速中值滤波的算法, 通过多级流水的方式, 加快了运算速度. 边缘检测采用S o b e l算子来计算 x 方向和 y 方向的导数值, 然后将两个方向的导数值取绝对值相加, 得到中心像素点的近似梯度. 将处理完的图片数据再存入S D R AM ,最后利用乒乓操作, 采用F I F O行缓存的方式, 将S D R AM 中处理完成的图片输出到 VGA 显示. 系统中I2 C协议是一种串行通信总线, 主要的用途在于控制芯片. I2 C只使用两条双向线, 分别为串行数据 S D A 及串行时钟 S C L , 由一个主控制端( M a s t e r ) 控制多个从设备(S l a v e )[ 5 ]. 本系统中的主控制端是 F P GA , 从设备是 OV 7 6 7 0图像传感器. 2 核心模块设计及仿真用开发工具 Q u a r t u s I I 1 1. 0来完成模块设计 [3 - 4 ] , 用仿真工具 M o d e l s i m S E 1 0. 0 c来验证逻辑电路功能优越性. 2. 1 I2 C控制模块设计及仿真I2 C控制模块主要有三部分组成, 分别为控制模块、 功能模块和 R OM 模块, 其中: 功能模块主要完成数据的并串转换, 根据协议要求把控制模块输入的地址和数据转换成S D A / S C L电平的高低变化; 控制模块利用状态机的方式从 R OM中读取配置好的数据, 并将数据输给功能模块, 同时输出激励信号, 使功能模块工作.I2 C 控制模块仿真时序图如图2所示. 图中图2 I2 C 控制模块仿真波形是一次写操作, 地址是 0 2 H , 写入数据是 6 FH. 当S C L为高电平时,S D A 拉低电平, 即起始信号; 然后发送8b i t设备地址, 收到设备应答信号 A C K ;发送8b i t寄存器地址0 2 H , 收到应答信号; 写入数据6 FH , 收到应答信号; 最后当S C L为高电平时, 拉高S D A , 结束这次写操作. 2. 2 窗模块实现及仿真滑动窗操作是图像中值滤波和边缘检测的基础, 它使用一个窗口, 这个窗可以是一个点周围的特定长度或形状的邻域, 来计算算法的输出 [6 ]. 方形窗大小可自行确定, 通常采用奇数大小的滑动窗口, 本系统采用3×3方形窗. 对每点邻域内的8个点和自身一共9个点进行图像处理相关计算. 须要同一时刻将9个点的灰度数据输出, 采用行缓存和列同步的方法. 3×3方形窗生成模块结构图如图3所示.如图3所示, 图中 D [ 7 : 0 ] 是8b i t的图像灰度数据, L i n e- B u f f e r是固定深度的 F I F O , 本研究采用2个1 0 2 4b y t e深度的 F I F O 作为行缓存, 来缓存前2行的图像数据, 当第3行数据输入时, 通过列同步模块, 将3×3方形窗内的9个像素的灰度数据同一时刻输出, 以此类推, 通过控制读写F I F O , 使其中的数据始终是输出当前行的前2行的图像数据, 保证每一时刻有9个数据同时输出, 整体是一个流水的架构. 3×3方形窗生成模块仿真波形图如图4所示. 2. 3 快速中值滤波模块设计中值滤波是一种常见图像预处理方法, 能够有效地去除噪声, 平滑图像, 与均值滤波以及其他线性滤波器相比, 它能够在去噪的同时不模糊图像的边缘, 较好地保持图像的清晰度 [7 - 8 ] .中值滤波算法是将3×3方形窗模块输出的9个像素的灰度数据进行比较排序, 最后输出中间值. 最原始的方法是冒泡排序法, 通过计算, 每执行一次算法, 须要3 6次比较, 速度较慢. 因此,本系统设计时采用快速中值滤波的方法, 利用了并行和流水线的处理方法, 完成一次中值滤波须要1 9次比较, 经过9个时钟的潜伏期以后每个时钟计算出一个结果, 大大加快了中值滤波的计算速度. 计算原理如图5所示, 将窗模块输出的9个数据分3组(C 1 , C 2 , C 3 ) , 每组3个数据按从大到小输出排列, 然后分别并行比较 C 1 , C 2 和 C 3 中的 m a x , m i d和 m i d和 m i n , 得到 m a x组中的最小值, m i d组中的中间值,m i n组中的最大值, 最后将这3个值输入 C 中, 比较计算得出中间值, 即为3×3方形窗的中心像素点经过中值滤波的结果. 计算原理及过程如图5所示.出流水比较器, 潜伏期3个时钟. 采用冒泡排序,最后按从大到小输出. 2. 4 边缘检测模块设计边缘是指图像局部强度变化最显著的部分,主要存在于目标与目标、 背景与背景、 区域与区域之间, 边缘检测实质是采用某种算法来提取图像中对象与背景间的交界线 [9 - 1 0 ] .边缘检测方法众多, 本系统选用 S o b e l 算子边缘检测的方法 . S o b e l检测法的原理是通过卷积来估计每个像素点的 x 和 y 方向上的导数值,把中心像素点和离它最近的8个像素点即3×3方形窗输出的9个像素点, 每个乘以一个系数后相加. 该系数通常是一个的卷积表, 如表1和表2所示, 分别为计算 x 和 y 方向导数值的S o b e l卷积表.将上级 3×3 方形窗模块输出的 9 个像素点数据( P 1 ,P 2 , …, P 9 ) , 与表1和表2分别做卷积,得到 G ( x ) 和 G (y ) , 然后分别取绝对值, 再相加,得到最后结果 G ( x ,y ) , 即为3×3方形窗的中心像素点通过 S o b e l边缘检测后的结果. 整个计算的实现采用流水的方式, 分5级流水, 使每个时钟都能得到一个计算结果. 计算过程如下所示: G ( x ) =- P 1 + P 3 -2 P 4 +2 P 6 - P 7 + P 9 =[ (P 3 + P 9 ) + ( P 6 + P 6 ) ] -[ (P 1 + P 7 ) + ( P 4 + P 4 ) ] ; G ( y ) = P 1 +2 P 2 + P 3 - P 7 -2 P 8 - P 9 =[ (P 1 + P 3 ) + ( P 2 + P 2 ) ] -[ (P 8 + P 8 ) + ( P 7 + P 9 ) ] ;G ( x , y ) =| G ( x ) | + | G ( y ) |. 由上式可知: 第一级为8个加法运算, 第二级为4个加法运算, 第三级为2个减法运算, 第四级为2个取绝对值运算, 第五级为1个加法运算.3 仿真结果分析由于图像处理的数据量大, 采用 A l t e r a公司的E P 2 C 8 Q 2 0 8 C 8速度等级为8的 F P GA 芯片,利用硬件逻辑的方式来并行处理的图像数据, 相对于同等级或同工艺的 D S P和 ARM 等芯片, 具有运行效率高、 速度快等优点. 在中值滤波的实现中, 采用本文方案, 运行在5 0MH z就能快速实现该功能, 而采用同工艺9 0n m 的 D S P要达到同样的速度须要运行在1. 5GH z的频率下.在研究其他相关文献的基础上, 该系统在图像处理模块采用了并行流水线的设计, 并且在存取控制模块与图像处理模块之间、 存取控制模块与数据采集模块之间均采用了异步 F I F O , 用于行缓存, 因此图像采集和图像处理可并行执行, 可达到实时图像处理的效果. OV 7 6 7 0输出6 4 0×4 8 0分辨率3 0帧/ s的数据, 图像处理模块可实时完成中值滤波或边缘检测.该系统设置了命令字控制字寄存器, 外部处理器只须要给定系统合理的控制字命令字就能完成不同的功能, 如根据需求设置处理图像的大小.该系统灵活度高, 适用于多种不同要求的实时图像处理 .为验证图像处理模块功能的正确性, 对一幅6 4 0×4 8 0分辨率的8b i t灰度级的图像进行了仿真研究, 设置图像处理模块控制字, 采用中值滤波算法和边缘检测算法, 得出仿真前后的对比图像如图6所示.硬件处理方案中, 仿真用 M o d e l s i m S E 1 0.0 c得到逻辑电路运行算法所耗时间. 由仿真结果可知: F P GA芯片在5 0 MH z的频率下处理一幅6 4 0×4 8 0分辨率的8b i t灰度级的图像, 完成中值滤波运算耗时为6. 1 4 4m s , 完成边缘检测运算耗时为6. 1 4 4m s , 中值滤波潜伏期为2 5. 7 8 μ s ,边缘检测潜伏期为2 5. 7 0 μ s .下面给出软件方案的效率. 使用 C P U 为I n -t e l C o r e 2且频率为2. 2GH z , 内存2G B , 3 2b i tW I N 7 操作系统的 P C机, 利用 M a t l a b对同等分辨率的图像进行中值滤波和边缘检测仿真, 结果显示: 中值滤波运算时间为7 1 8m s , 边缘检测运算时间为 6 3 2m s , 相比而言, 本系统对图像处理的硬件解决方案比软件方案快1 0 0倍以上 .本研究设计的系统灵活, 运行效率高, 该系统为图像识别和其他高级图像算法的基础, 具有较强的现实意义. 参 考 文 献[ 1 ] S h i e h J e n y u , L i a o Y i l i n , H u a n g W e i c h e n g , e t a l .A p p l y i n g F P GA t o i m p l e m e n t r e a l- t i m e i n f r a r e dt r a c k i n g o f m o v i n g o b j e c t s [J ] . J o u r n a l o f S e l e c t e dA r e a s i n M i c r o e l e c t r o n i c s , 2 0 1 2 ( 1 1 ) : 1 2 - 1 8.[ 2 ]刘成岩 . 基于 F P GA 的图像采集处理系统设计[ D ] .哈尔滨:哈尔滨工程大学理学院, 2 0 1 2.[ 3 ] E D A 先锋工作室, 吴继华, 蔡海宁, 等 .A l t e r a F P -GA / C P L D 设计( 高级篇) [ M ] . 北京:人民邮电出版社, 2 0 1 1.[ 4 ]陈欣波 .A l t e r a F P GA 工程师成长手册[ M ] . 北京:清华大学出版社, 2 0 1 2.[ 5 ]夏宇闻 . V e r i l o g 数字系统设计教程[ M ] . 北京:北京航空航天大学出版社, 2 0 0 8.[ 6 ]吴艳 . 基于 F P GA 的数字图像处理基本算法的研究与实现[ D ] . 哈尔滨:哈尔滨工业大学自动化测试与控制系, 2 0 0 8.[ 7 ]李元帅, 张勇, 周国忠, 等 . 图像中值滤波硬件算法及其在 F P GA 中的实现[ J ] . 计算机应用, 2 0 0 6 ( 2 6 ) :6 1 - 6 2.[ 8 ] X u Y a n l i n g , Y u H u a n w e i , Z h o n g J i y o n g , e t a l . R e a l-t i m e i m a g e c a p t u r i n g a n d p r o c e s s i n g o f s e a m a n d p o o ld u r i n g r o b o t i c w e l d i n g p r o c e s s[ J ] . I n d u s t r i a l R o b o t :A n I n t e r n a t i o n a l J o u r n a l , 2 0 1 2 , 3 9 ( 5 ) : 5 1 3 - 5 2 3.[ 9 ]甘金来 . 图像边缘检测算法的比较研究[ D ] . 成都:电子科技大学电子工程学院, 2 0 0 5.[ 1 0 ]冈萨雷斯 . 数字图像处理的 MA T L A B 实现[ M ] . 2版 . 北京:清华大学出版社, 2 0 1 3. |
[返回] |