资讯详情

基于FPGA的实时图像边缘检测系统设计

随着科学技术的高速发展,FPGA它为系统结构中的数字图像处理带来了新的机遇。图像中的信息并行存在,因此可以平行操作,大大提高图像处理的速度,适合映射FPGA硬件算法可以在架构中实现。

本文阐述了基础FPGA数字图像处理系统的设计理念和过程可以实时收集、处理和显示,分析了摄像头接口的时序;阐述了图像信息的捕获原理;详细介绍了图像边缘检测部分各模块的功能;重点介绍了具有去噪功能的中值滤波模块的设计;简单描述了边缘检测算子的选用;系统的介绍了SDRAM介绍了工作原理和控制方法;VGA时间顺序;最后对整个系统进行了验证和总结,包括模拟波形验证和板级验证。

该系统以实体为基础FPGA开发板实现了图像数据的实时采集、实时边缘检测和实时显示,运行稳定,实时性能高FPGA它确实具有高速传输海量数据的能力。

本文整理了我当年的毕业设计部分,大侠可以根据自己的需要阅读,参考学习。

摘要:本文将介绍研究的背景和意义、国内外相关技术的发展现状和应用、图像边缘检测技术的主要应用,FPGA国内外技术的发展现状及应用,系统设计的主要内容及方案,系统设计流程。

介绍基础FPGA图像的实时采集部分,包括图像信息的实时采集、摄像头型号及其参数,SCCB基于总线的特点及其工作原理FPGA驱动摄像头接口、实时捕获图像信息等相关内容。

信息化是本世纪最重要的特征之一。在这样一个信息时代,计算机尤为重要,在各行各业发挥着重要作用。在图像处理领域,数字图像处理技术发展迅速,广泛应用于航空航天、电子通信、医学等领域。随着技术的不断发展,新开发的产品对图像质量、图像存储容量和图像处理速度也有了新的需求。数字图像处理通常基于像素进行操作,从而有效地提高图像质量。在图像处理过程中,处理算法往往相对简单。然而,由于大量的图像数据参与操作,大多数图像数据需要重复使用,因此图像处理的速度已成为整个系统设计的瓶颈。

目前,图像处理算法的研究越来越成熟。在此背景下,有效提高图像处理的及时性,解决实际系统设计的瓶颈,具有很大的应用前景。随着科学技术的快速发展,FPGA在系统结构上为数字图像处理带来了新的契机。图像中的信息并行存在,因此可以并行操作,大大提高图像处理的速度,适合映射FPGA硬件算法可以在架构中实现。

数字图像处理技术包括图像增强、图像恢复、模式识别等。图像中亮度变化明显的点可能是边缘点,可以有效检测图像的边缘,事半功倍。通过边缘检测过程,可以保留图像中对象的边界信息,大大降低待处理数据量,有效简化图像分析过程。

FPGA结构灵活,现场可编程,并行处理信息,兼顾速度和灵活性。此外,它通用性强,适用于模块化设计,易于维护和扩展,开发周期短,适用于实时图像处理。因此,基于FPGA基于设计VGA实时显示图像边缘检测信息的系统具有广阔的应用前景和深远的现实意义。

1)边缘检测在储粮害虫中的应用

农业是我国的主要根基,虫害是储粮的大敌,近年来,对储粮产生威胁的害虫种类和密度均呈上升趋势,导致国家的储粮损失日益严重。为了减少储粮损失,有效防治害虫,必须尽可能准确地分析其类型、数量、发展趋势及其潜在危害。利用计算机实时收集粮食储存害虫的相关图像、数字处理、分析和识别,自动提取粮食储存害虫的类型和数量,并由计算机系统输出数据并发出指令,构成当今的科学粮食保护专家系统。虫害图像处理算法是基于机器视觉实时监测害虫信息和智能处理的关键核心问题,其中图像边缘检测技术起着非常关键的作用。

2)电厂应用图像边缘检测技术

电厂的安全经济运行主要取决于锅炉燃烧的稳定性。20世纪80年代,出现了一种跨学科技术—锅炉图像火灾检测技术,将计算机技术、数字图像处理技术和燃烧学相结合。其原理是利用计算机分析火焰图像,从而获得大量关于炉内运行的原始信息。利用计算机对火焰图像进行数字处理,提取火焰亮度平均值、火焰燃烧中心和火焰边缘位置,分析和描述炉内燃烧的整体水平、火焰中心位置和火焰充满度。图像边缘检测技术是该技术的核心之一。

目前,边缘检测技术已渗透到医学细胞检测、产品外观检测、模型识别等各个领域。

FPGA即现场可编程门阵列(Field-Programmable Gate Array),是当前用于IC主流设计形式之一,现场编程结构近乎完善,发展潜力巨大。FPGA数据流的高速传输性能目前还没有任何技术可以与之竞争,在这个处处追求速度的社会中,FPGA几乎无处不在。随着信息产业和微电子技术的发展,可编程逻辑嵌入式系统设计技术已成为信息产业中最受欢迎的技术之一,广泛应用于航空航天、医疗、通信、网络通信、安全、 广播、汽车电子、工业、消费市场、测量测试等热门领域。在2008年北京奥运会的主舞台上,有4000幅画卷FPGA芯片,这是FPGA应用于图像领域;FPGA它已广泛应用于人脸、车牌等物体的检测,在航空航天领域实时监测导弹轨迹是必不可少的;奥迪选择了两个FPGA芯片用于其导航定位系统,这是FPGA应用于汽车电子领域。

FPGA主要优点有四点:①FPGA用硬件描述语言(VHDL或Verilog)除此之外,进行描述并发执行,FPGA在高速领域,内部集成相环可使外部时钟倍频,核心频率可达数百兆,FPGA无法被取代;②FPGA可现场编程,具有近乎完美的现场编程架构,可根据用户需求定制;③基于FPGA可以实现SOC设计(内部集成ARM);④FPGA可以内嵌CPU,多核甚至可以嵌入。

随着科学技术的发展,人们对数字图像处理技术的要求也越来越高,FPGA具有高速运算、微型体积、较低功耗等诸多优点,这使得FPGA该技术将在数字图像处理领域发挥不可替代的作用。

21世纪是一个高速信息时代。在众多信息中,图像信息是主要类别之一时、高速、准确地处理图像信息一直是学者研究的热点。图像处理一般指数字图像处理:就其技术本身而言,包括图像增强、图像恢复、图像匹配、模式识别等,无论哪种技术,都离不开同一主题——图像边缘检测。换句话说,图像处理技术的质量在很大程度上取决于图像边缘的信息处理是否正确;就其处理形式而言,包括静态处理和实时处理,即所谓的图像静态处理,是静态图像的处理,实时图像处理是不断更新图像信息的处理。

本研究的主要内容是基于VGA整个系统设计基于摄像头捕获的边缘信息实时显示,FPGA实现:首先是基础FPGA实现图像数据的实时采集;然后边缘检测捕获的信息,分为三个步骤(首先将捕获的彩色图像转换为亮度文件,然后使用中值滤波有效去除图像噪声,然后采用sobel对图像进行边缘检测的算子)FPGA驱动VGA接口实时显示检测到的图像边缘信息。

本课题基于FPGA实现,主要涉及到以下内容:1、摄像头接口的驱动;2、图像数据的实时捕获;3、彩色图像到灰度图像的转换;4、中值滤波;5、边缘检测;6、图像数据实时存储;7、图像信息实时显示。具体设计流程如图1-1所示。

图1-1 系统设计过程

人们对视觉的感知往往以图像的形式再现,图像可以通过光学设备或人工创作获得。随着数字采集技术和处理技术的发展,越来越多的图像以数字形式存储,即数字图像。数字图像以二维数字组的形式表示,每个像素灰度值的集合用数值表示,用于表示图像的数据体称为图像数据。数字图像处理的过程是利用计算机去噪、增强和提取获得的图像数据的过程。本课题的主要任务是实现图像的实时采集、实时处理和实时显示。因此,我们的主要任务是实现图像的实时采集。在这里,我选择相机作为我获取图像的设备FPGA按相应的时间顺序驱动摄像头接口。

该系统由豪威公司生产Ov7725 CMOS Sensor设计和调试摄像头。Ov7725 属于VGA分辨率的CMOS Sensor,最高分辨率为64*成像质量优良,功耗小,开发简单,受到众多中低端产品的青睐。Ov7725是一款集成1/4英寸单芯片VGA高性能传感器的相机和图像处理器。由于该型号相机的质量和性能可靠,因此在PC许多移动产品,如相机、玩具、手机等,都有很多应用。

1)Ov7725 CMOS Sensor相机的参数和特点

(1)可调节图像饱和度、锐度、噪声抑制等。

(2)自动调节边缘的增弱,自动调节噪声的抑制;

(3)有标准的SCCB(相机控制总线)接口可配置输出 RAW RGB、RGB422、RGB565、RGB444、YUV422等格式的视频流;

(4)支持VGA、QVGA以及4030到CIF(352288)图像尺寸分辨率;

(5)帧同步模式可以通过配置实现;

(6)高灵敏度,适用于低照度;

(7)自动曝光(AEC)、自动白平衡(AWB)、滤波自动带通(ABF)、自动黑白电平校准(ABLC);

(8)拥有640最高支持480感光阵列640480@60hz图像输出。

2)Ov7725 CMOS Sensor相机内部功能模块框架及说明

图2-1 Ov7725 CMOS Sensor 内部模块框架

如图2-1所示为Ov7725 CMOS Sensor摄像头的内部模块框架,从框架中可以看出,我们可以通过SCCB接口来配置Ov7725的寄存器。其工作原理如下:在XCLK的驱动下,首先由感光元件阵列进行相关图像的采样,并默认输出640*480阵列的原始模拟数据;然后通过12bit的A/D转换,将原始模拟数据转换成为数字信号(原始数字信号格式为 RAW RGB);最后通过DSP进行相关的算法处理,并最终输出10bit 视频流数据。

3)Ov7725传感器的控制信号接口及其功能描述

表2-1 Ov7725传感器控制信号的功能描述

4)Ov7725传感器的寄存器说明

Ov7725 CMOS Sensor一共有172个配置寄存器,在这172个寄存器中,有的只能读,有的只能写,有的则既可读又可写。在传感器正式工作之前,必须首先对寄存器进行正确的配置,否则将无法得到预期的工作模式,更别说得到较好的画质和相应的图像效果。然而这172个寄存器并非都需要我们配置,需要我们配置的只是个别重要的寄存器。其配置的方式就是通过SCCB总线进行相关操作,其余寄存器则采用默认值。表2-2中所介绍的寄存器主要与视频图像输出格式、采样画质、曝光参数等有关。

表2-2 Ov7725传感器的寄存器介绍

1)SCCB总线特点

SCCB(Serial Camera Control Bus)接口,即串行相机控制总线。Ov7725的SCCB总线实际上就是我们常用的IIC通信总线,用于完成对绝大多数OmniVision 系列图像传芯片功能的控制。Ov7725的SCCB接口有两根信号线:一根是时钟线SCL;一根是数据线SDA。通过这两根线我们就能够完成Ov7725寄存器的配置,从而驱动Ov7725使其实时采集到我们所需要的图像信息。

SCCB总线的控制方式简单,通信速率较高,具有以下特点:

(1)SCCB总线只需要两根线,一根数据线SDA,一根时钟线SCL;

(2)SCCB总线不需要片选信号就可以实现多个设备的链接,可以通过从机的唯一地址识别码来访问,最终实现器件信息的配置;

(3)SCCB总线上的所有器件都具有“自动应答”功能,从而保证了数据交换的正确性。同时SCCB总线还具有“时钟同步”功能,其时钟频率最大约为400KHz。

2) SCCB总线的接口时序

SCCB总线是由数据线SDA和时钟线SCL构成的串行总线,可以实现数据的发送和接收,SCCB总线的体系结构如图2-2所示。

图2-2 SCCB总线的体系结构

SCCB总线通过串行方式发送8位数据,基本时序如下:首先发送数据的最高位,最后发送数据的最低位;每发送完一组8bit的数据,都需要通过接收从机发送的一个响应信号来判断本次发送数据是否正确。官方手册所提供的使用SCCB总线发送8位串行数据的时序如图2-3所示,其中信号SCCB_E不需要我们关心。

图2-3 SCCB总线8bit数据串行发送的时序图

在我们按照SCCB协议发送或接收数据时,需要特别注意以下几点:

(1)开始信号和结束信号

当时钟信号SCL为高电平时,数据线SDA由高电平跳变到低电平的时刻即为开始信号,自此时起数据开始传输;当时钟信号SCL为高电平时,数据线SDA由低电平跳变到高电平的时刻即为结束信号,数据传输在此时结束。SCCB总线的开始信号和结束信号的体系结构示意图如图2-4所示。

图2-4 SCCB总线开始和结束体系结构

(2)应答信号ACK

每8位数据发送完毕之后,外围设备向发送数据的控制器(FPGA芯片)发出低电平应答信号表示已经接收到数据,这个信号叫做应答信号。控制器(FPGA芯片)接收到应答信号之后,会据此判断并作出是否继续传递信号的决定。如果控制器(FPGA芯片)没有接收到应答信号,控制器就会认为是受控制的外围设备出现故障,因此需要重新进行配置,直到成功接收到外围设备所发出的正确的应答信号。SCCB总线应答信号ACK如图2-5所示。

图2-5 SCCB总线数据传输图

(3)数据传输

SCCB总线在进行数据传输时,时钟信号SCL为高电平,同时数据线SDA上的数据必须保持稳定,只有这样才能够保证所传输数据的稳定性和可靠性。因此只有当时钟信号为低电平时,数据线上的高电平信号或者低电平信号才允许变化。SCCB总线数据传输图如图2-6所示。

图2-6 SCCB总线数据传输图

3)使用 SCCB总线配置Ov7725的寄存器

基于上述的分析,我们对SCCB总线时序已经有了一定的了解,接下来就可以按照指定的流程来配置Ov7725的寄存器:通过发送器件地址、寄存器地址、寄存器参数数据等参数的配置,最终完成寄存器的读操作和写操作。

(1)SCCB总线寄存器的写入时序

SCCB总线在给寄存器写数据的时候,需要按照一个严格的时序来执行:先写设备地址,再写寄存器地址,最后写入寄存器的参数,即可完成一个寄存器的配置,如图2-7所示。

图2-7 SCCB总线数据传输图

Phase 1:CMOS传感器的唯一ID地址。豪威(OmniVision)相机的设备地址是0x42,最后1bit是用来判断读/写的:写数据时ID地址是0x42,而读数据时ID地址是0x43;

Phase 2:传感器里面有许多的寄存器,这些寄存器都有着自己唯一的地址,这里我们只关心Sub-address;

Phase 3:在Phase中发送完寄存器的地址之后,该阶段发送的数据就是寄存器的配置数据。

由官网手册可以知道这里面的X代表低电平,也就是逻辑“0”。

(2)SCCB总线寄存器的读数据时序

SCCB总线从寄存器往外读数据的时候,也需要遵循一个严格的顺序:先写设备地址,再写寄存器地址,然后再写入一次设备地址,最后读出数据。读数据的时序如图2-8所示。

图2-8 SCCB读数据时序

Phase 1:CMOS传感器的唯一ID地址。豪威(OmniVision)相机的设备地址是0x42,最后1bit是用来判断读/写的,即写数据时ID地址是0x42;

Phase 2:传感器里面有许多的寄存器,这些寄存器都有着自己唯一的地址,这里我们只关心Sub-address;

Phase 3:CMOS 传感器的唯一ID地址。豪威(OmniVision)相机的设备地址是0x42,最后1bit是用来判断读/写的,即读数据时ID地址是0x43;

Phase 4:读取传感器发送的指定的寄存器的值。

由官网手册可以知道这里面的X代表低电平,也就是逻辑“0”,NA表示高电平,也就是逻辑“1”。

理解了SCCB总线的时序,我们就可以按照相应的时序编写控制代码,如图2-9所示为工程RTL级视图中的sccb_config_ctrl模块,其功能是实现摄像头接口的驱动,该模块代码及说明见附录。

图2-9 工程RTL级视图中的sccb_config_ctrl模块

通过摄像头的采集,我们得到了视频数据流,但是我们所要处理的是单帧的图像数据,因此需要实时捕获数据流中的图像数据,为后续的图像处理做准备。如图2-10所示为工程RTL级视图中的coms_capture_rgb565模块,其功能是实现图像信息的实时捕获,该模块代码及说明见附录。

图2-10 工程RTL级视图中的coms_capture_rgb565模块

本篇到此结束,下一篇带来基于FPGA的实时图像边缘检测系统设计(中),介绍FPGA实现图像的边缘检测模块及FPGA驱动VGA接口实现图像边缘信息的实时显示模块相关内容

标签: coms视觉传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台