(图片来源网络,侵删)
摘要:针对目前数字图像采集处理技术的实时性、大容量、小型化等特点,设计了一种基于FPGA的实时视频图像采集处理电路系统采用FPGA作为整个系统的控制和图像数据处理中心DDR2 SDRAM为高速储存模块核心器件,CMOS 7670为视频图像采集器件并通过Quratus II和Modelsim等软件对系统的边缘检测算法、控制过程、各个模块等进行硬件工程设计和仿真,实现了视频图像从采集、存储到处理、显示的整个过程实验表明,视频图像采集处理的动态画面流畅、清晰、实时性好中文引用格式:高俊岭,陈志飞,章佩佩. 基于FPGA的实时视频图像采集处理系统设计[J].电子技术应用,2018,44(2):10-12,19.英文引用格式:Gao Junling,Chen Zhifei,Zhang Peipei. Design of real time video image acquisition and processing system based on FPGA[J]. Application of Electronic Technique,2018,44(2):10-12,19.❖0 引言随着社会的不断发展,视频图像采集处理技术在许多行业领域中扮演着非常重要的角色,如军事、安全监控、工业视觉等领域,而各行各业对于视频图像采集和处理技术的要求也越来越高高速、实时性是主要发展趋势之一目前,视频图像采集与处理技术的发展主要分为两类:一是基于PC在相关特定的PCIe采集板卡的基础上,通过软件对视频图像进行处理;二是利用相关的集成硬件如DSP、MCU、FPGA等对视频图像进行采集处理[1]相对来讲后者的处理效果不如前者,但实时性好、体积小、方便使用,更适合于工业的需求FPGA现场可编程逻辑门列,采用并行运算模式,且工作频率较高,可对大量数据进行实时操作与处理,在通信领域、图像处理等方面上优势明显[2]因此,本设计选用FPGA作为系统的控制和数据处理中心1 系统总体概述基于FPGA的视频采集处理系统可分为:视频采集模块、图像存储模块、数据处理模块和图像显示模块工作过程为:首先,FPGA通过IIC总线协议对摄像头进行初始化配置,摄像头对焦工作拍摄采集图像,然后,采集的视频数据通过FIFO缓存器不断写入到DDR2 SDRAM中存储,再经过FIFO缓存器读出视频数据,接着,选择性对读出的视频图像数据进行处理,最后在VGA上显示视频图像系统的总体框图如图1所示2 中央控制单元2.1 FPGA从FPGA硬件开发的角度考虑,利用EDA开发软件和硬件描述语言Verilog编程,对FPGA芯片进行开发,得到其工程要求的硬件功能对比传统的硬件设计开发,减少了器件的浪费和多次焊接的工作量,设计过程也更加灵活、方便、高效另外,FPGA要实现对每个模块的控制和处理,除并行数据处理优点外,自身必须拥有较多I/O口,丰富的逻辑单元等鉴于此,选用了Alter公司研发的Cyclone IV系列的EP4CE617C8此款FPGA拥有179个I/O接口,62 792个逻辑单元,392个乘法器,且功耗低2.2 视频图像采集模块CMOS OV7670图像传感器,其体积小,工作电压小,640×380像素,可选用自带的降噪、数模转换、分频等功能,是较好的视频图像采集选择FPGA通过IIC总线协议与CMOS摄像头进行初始化配置IIC总线写入前,CMOS摄像头的SCLK和SDAT引脚必须带上拉电阻IIC总线写入时,首先写入设备地址,CMOS的初始地址为0x42,其次写入寄存器地址,最后写入数据其IIC总线数据写入流程如图2所示IIC总线与CMOS的数据通信后,配置CMOS摄像头控制寄存器时钟配置使用外部时钟即FPGA的工作时钟频率,目的是更好地控制CMOS摄像头PLL寄存器配置零分频、使能内部线性稳压器LDO,内部电压工作稳定配置的Verilog部分代码分别依次为:SET_OV7670+19 : LUT_DATA=16'h1180;SET_OV7670:5 : LUT_DATA=16'h6b00;其他相关控制寄存器中,配置了水平镜像、关闭彩条、视频格式RGB565等功能保证其能在系统高速运行下采集到可靠度大、信息性强的视频图像数据2.3 系统存储模块2.3.1 DDR2 SDRAMDDR2 SDRAM作为系统存储器,选用采用1 GB内存的DDR2 800系列 SDRAM作为存储器DDR2工作时钟频率为200 MHz[2],具有读写速度快、集成度高、存储容量大以及成本低等特点其操作速率是普通SDRAM的4倍,能够较好地达到系统实时性的要求DDR2不仅能在系统时钟控制下工作,也可以独立的进行操作,如自刷新、自预充电净化等,其控制复杂[3]因此,利用Quartus II自带的IP核构建DDR2 SDRAM控制器同时也生成了Altera数字PHYPHY是连接DDR2 内核控制器和外部DDR2器件的桥梁PHY拥有四层接口,分别为带local_类的用户逻辑接口、带mem_类的外部DDR2芯片接口、带ctl_和ctl_mem_的PHY与IP控制器相互连接的接口其功能框图如图3所示IP内核控制器的使用将DDR2复杂的控制操作转变成用户简单的读写时序操作,因此,DDR2存储模块可设计分为时钟、复位、初始化、控制、数据通道和仲裁等子模块其中数据通道子模块建立了DDR2连接FIFO缓存器的通道2.3.2 FIFOFIFO是一种先入先出的存储器,没有地址定义,使用简单FIFO只能顺序读写数据,确保了数据的安全性由此,在多数情况下作为系统数据缓冲器使用[5]在Quartus II的内核中,建立异步FIFO的控制器异步FIFO,即读写操作时钟信号不一致,有利于图像数据的缓冲wrusedw信号控制着数据的读写请求当wrusedwd等于FIFO深度值4时(为方便说明,仿真的FIFO深度为4),表示FIFO已空,Write_Req信号有效,只能写入数据wrusedw为0,表示FIFO已满,Read_Req信号有效,只能读出数据wrusedwd为其余值,则读、写数据请求都可执行如图4所示3 视频图像处理模块本文通过Sobel边缘检测对图像数据进行处理边缘检测意义在于能够获取目标物体的边缘信息,有利于目标识别和追踪[6]Sobel边缘检测算法具有计算量小、检测精度高等优点,也是最常用的图像边缘处理方法之一Sobel边缘检测算法过程:首先,确立Sobel算子模板,它包含了横纵向两组3×3运算算子矩阵模板如下式:其次,利用水平和垂直方向的矩阵算子与原始图像像素点进行平面卷积分运算,算出X、Y两个方向上的一阶导数梯度值[7],如下式:然后,把计算出的X、Y方向梯度值做平方求和后再开方,得到中心点的梯度值如下式:最后,中心点梯度值与设定的阈值互相比较,大于阈值的为边缘点,输出为黑色,小于阈值的为普通点,输出为白色[8-9]Sobel边缘检测的实现包括缓冲模块、计算卷积模块和门级处理模块其中,缓冲模块使用基于RAM的移位寄存器altshift_taps,卷积计算模块使用6个可编程乘加器aitmult_add和2个并行加法器parallel_add计算出水平和垂直的梯度值,再通过浮点平方根altfr_sqrt得到中心点值门级处理模块即阈值的比较[10]原理过程如图5所示4 实验完成系统硬件设计后,保存工程文件并绘制电路原理图和PCB图最后,制作电路板完成所有工作后,建立系统,进行实验实验一:实时视频图像采集显示实验首先,FPGA控制CMOS 7670采集图像;然后,FPGA对采集图像数据传输和存储;最后,通过VGA显示图像其画面清晰、流畅实验结果如图6所示实验二:Sobel边缘检测算法处理视频图像显示实验在实验一的基础上,增加了对图像数据的Sobel边缘检测处理,再通过VGA进行显示图像中物体轮廓提取明显,且实时性较好实验结果如图7所示5 结论实时视频图像采集与处理技术广泛用于监控、工业视觉等领域本系统以FPGA核心,充分利用其高速、大数据处理能力和硬件编程设计等特点,结合相关器件,实现了对视频图像的采集、处理和显示实验结果画面清晰、流畅,效果好同时在此基础上,增加了对物体的边缘检测,在物体追踪和识别方面也具有一定的实用意义参考文献[1] 田杰,玉广龙,乔中涛,等.基于FPGA高速视频图像实时采集与处理系统设计[J].电子器件,2016,39(3).[2] 王诚,蔡海宁,吴继华.Alter FPGA/CPLD设计[M].北京:人民邮电出版社,2011.[3] 李原.DDR/DRR2接口的FIFO设计[D].西安:西安电子科技大学,2009.[4] 吴厚航.例说FPGA:可直接用于工程项目的第一手经验[M].北京:机械工业出版社,2016.[5] 梅傲寒.基于FPGA的无线图像采集传输系统的设计与研究[D].合肥:安徽大学,2016.[6] 丁继生.基于FPGA的数字图像处理算法研究及实现[D].合肥:合肥工业大学,2015.[7] 罗琳.基于FPGA的快速图像处理算法的研究与实现[D].重庆:重庆交通大学,2015.[8] 马苗,樊养余,谢松元,等.基于灰色系统理论的图像边缘检测新算法[J].中国图像图形学报,2003,10(10):1136-1139.[9] 仝海峰.基于FPGA的视频图像边缘检测优化设计[D].淮南:安徽理工大学,2016.[10] 张丽红,凌朝东.基于FPGA的Sobel边缘检测应用[J].电子技术应用,2011,37(8).
0 评论