基于FPGA的实时图像边缘检测系统设计(附代码)sanxin005电子技术应用AET中国科技核心期刊

今天给大侠带来基于FPGA的实时图像边缘检测系统设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,话不多说,上货。

这里也超链接了中篇和下篇,方便各位大侠参考学习。

导读

随着科学技术的高速发展,FPGA在系统结构上为数字图像处理带来了新的契机。图像中的信息并行存在,因此可以并行对其施以相同的操作,使得图像处理的速度大大提高,这正好适合映射到FPGA架构中用硬件算法得以实现。

本篇阐述了基于FPGA设计一个能够实时采集、实时处理并实时显示的数字图像处理系统的设计思想和流程,分析了摄像头接口的时序;阐述了图像信息的捕获原理;详细介绍了图像边缘检测部分各模块的功能;重点介绍了具有去噪功能的中值滤波模块的设计;简单描述了边缘检测算子的选用;系统的介绍了SDRAM的工作原理以及控制方式;介绍了VGA时序;最后针对整个系统做了验证和总结,包括仿真波形的验证以及板级验证。

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

本篇为本人当年的毕业设计部分整理,各位大侠可依据自己的需要进行阅读,参考学习。

一、前言

1.1课题研究的背景和意义

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

目前,图像处理的算法研究已经日趋成熟,在这种背景下,有效提高图像处理的时效性,解决实际系统设计的瓶颈问题,便有了很大的应用前景。随着科学技术的高速发展,FPGA在系统结构上为数字图像处理带来了新的契机。图像中的信息并行存在,因此可以并行对其施以相同的操作,使得图像处理的速度大大提高,这正好适合映射到FPGA架构中用硬件算法得以实现。

数字图像处理技术包括图像增强、图像复原、模式识别等,图像中亮度变化明显的点可能就是边缘点,能够有效地检测出图像的边缘,将对图像的后续处理起到事半功倍的作用。通过边缘检测过程,我们可以保留图像中对象的边界信息,这在很大程度上减少了待处理的数据量,从而有效简化了图像的分析过程。

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

1.2.1图像边缘检测技术的主要应用

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

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

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

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

1.2.2FPGA技术在国内外的发展现状及应用

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

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

1.3课题研究的主要内容及方案

1.3.1题研究的主要内容

21世纪是一个高速的信息时代,在众多信息中,图像类信息是其中的一大类,对图像信息实时、高速、准确的处理一直都是学者们研究的一大热点。图像处理一般指数字图像处理:就其技术本身而言,包括图像增强、图像复原、图像匹配、模式识别等,无论是那一种技术,都脱离不开同一个话题——图像边缘检测,换言之,图像处理技术的好坏很大程度上就取决于是否能够对图像边缘的信息处理妥当;就其处理形式而言,包括静态处理和实时处理,所谓图像的静态处理,就是对静态图像的处理,而实时的图像处理,就是对持续更新的图像信息进行处理。

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

1.3.2系统的设计流程

本课题基于FPGA实现,主要涉及到以下内容:

1、摄像头接口的驱动;

2、图像数据的实时捕获;

3、彩色图像到灰度图像的转换;

4、中值滤波;

5、边缘检测;

6、图像数据实时存储;

7、图像信息实时显示。具体设计流程如图1-1所示。

二、基于FPGA实现图像的实时采集

2.1图像信息的实时采集

2.1.1摄像头型号及其参数

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

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

1)Ov7725CMOSSensor摄像头的参数及特点

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

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

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

(4)支持VGA、QVGA以及40*30到CIF(352*288)分辨率的图像尺寸;

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

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

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

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

2)Ov7725CMOSSensor摄像头的内部功能模块框架与说明

图2-1Ov7725CMOSSensor内部模块框架

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

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

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

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

2.1.2SCCB总线特点及其工作原理

1)SCCB总线特点

SCCB(SerialCameraControlBus)接口,即串行相机控制总线。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-2SCCB总线的体系结构

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

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

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

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

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

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

(2)应答信号ACK

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

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

(3)数据传输

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

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

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

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

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

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

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

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

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

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

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

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

SCCB读数据时序

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

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

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

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

2.1.3基于FPGA驱动摄像头接口

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

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

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

THE END
1.浅谈嵌入式系统论文(通用11篇)后来PC时代出现了许多信息电器,我们周围的嵌入式系统设备有很多,如掌上电脑、可视电话、传真机、手机、个人数字助理(PDA)、电视会议、TV机顶盒、数码相机等,嵌入式设备如果要上网就必需加上TCP/IP网络协议,由于8/16位的单片机的速度还不够快,内存也不够大,不容易满足嵌入式设备上网的要求。随着集成电路的发展,32位https://www.yjbys.com/bylw/qitaleilunwen/151547.html
2.汽车MiL(ModelintheLoop)测试:嵌入式系统开发中的模型驱动仿真MiL测试作为一种模型驱动仿真方式,对汽车嵌入式系统开发过程中的软件验证起到了重要作用。本文介绍了MiL测试的概念和作用,并详细阐述了MiL测试的流程和关键步骤。同时,探讨了MiL测试环境的优势和局限性,并提出了未来MiL测试的发展趋势和挑战。随着汽车技术的不断进步,MiL测试将在未来发展中扮演更加重要的角色,帮助保证汽https://www.auto-testing.net/news/show-118903.html
3.计算机硬件基础知识(五)操作系统发展史51CTO博客嵌入式系统使用非常广泛的系统(如VxWorks?、eCos?、Symbian OS?及Palm OS)以及某些功能缩减版本的Linux或者其他操作系统。某些情况下,OS指称的是一个内置了固定应用软件的巨大泛用程序。在许多最简单的嵌入式系统中,所谓的OS就是指其上唯一的应用https://blog.51cto.com/u_15431495/5642766
4.物联网嵌入式实训室解决方案由于嵌入式知识体系的庞杂性、应用性、实践性等特点,实验室和实训基地在教学过程中起的作用远比其他学科来的重要。在进行基本理论知识教学之后,实验室能够提供给学生动手实践的平台,将理论知识转为实际操作;为学生提供一个真实拟真的嵌入式环境,掌握各种嵌入式设备、部件、系统的原理技术,从基础、实训、创新、应用、科http://www.cqzzdjy.com/wap/Case/shixunshijianshe/55.html
5.嵌入式Linux应用开发完全手册内容提要 本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,进行嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了常见硬件,比如UART、I2C、LCD等),U-Boot、Linux内核https://www.epubit.com/bookDetails?id=N24331
6.高新技术企业认定管理资料汇编嵌入式图形用户界面技术;嵌入式数据库管理技术;嵌入式网络技术;嵌入式Java平台技术;嵌入式软件开发环境构建技术;嵌入式支撑软件层中的其他关键软件模块研发及生成技术;面向特定应用领域的嵌入式软件支撑平台(包括:智能手机软件平台、信息家电软件平台、汽车电子软件平台等)技术;嵌入式系统整体解决方案的技术研发等。 https://cxcyxy.xhu.edu.cn/6a/ec/c3946a92908/page.htm
7.芯片行业,需要怎样的工程师?系统架构方面的知识将变得越来越重要,特别是随着loT和工业4.0的发展。汽车应用也越来越需要具有系统/协同设计知识的工程师,通过减少分立元件的数量和倾向于使用标准化的微电子元件和嵌入式系统和平台来降低车辆架构成本和增加功能。 教育水平:提供从EQF5到EQF7的培训。 https://36kr.com/p/2643480606753030
8.招聘航天科技集团一院期待你的加入澎湃号·媒体澎湃新闻5. 有嵌入式系统开发经验或有相关研究院所从业经验者优先。 (十七)热控设计 岗位职责: 1. 承担航天器热控系统方案论证、设计及研制工作; 2. 承担热控新技术研发、关键技术攻关及热控产品开发工作; 3. 承担热控发展规划、课题申报及专业建设工作。 https://www.thepaper.cn/newsDetail_forward_15833677
9.嵌入式系统的未来发展趋势融合边缘计算与智能化嵌入式系统作为一种集成了硬件与软件的计算系统,已经在各行各业发挥着至关重要的作用。然而,随着技术的不断发展,嵌入式系统也在经历着巨大的变革。本文将探讨嵌入式系统的未来发展趋势,着重介绍融合、边缘计算与智能化这三个方面,并通过代码实例来展示其中的一些关键技术。 https://cloud.tencent.com/developer/article/2369621
10.嵌入式应用系统的兴起与发展在工业领域,嵌入式应用系统被广泛用于机器人技术、物流管理以及生产线上的自动化控制等方面。它们能够实时监控生产过程,及时调整参数以保证产品质量,同时也大幅度提高了生产效率。例如,一些汽车制造厂使用嵌入式系统来监控车辆组装线上的每个环节,从而确保最终出厂的汽车质量符合最高标准。 https://www.5wykqmrna.cn/bai-jia-dian/437473.html
11.淮北高新区企业2022年3月招聘信息1、负责编写嵌入式系统软硬件总体方案和详细方案,进行硬件选型及系统分析。 2、负责硬件详细设计及实现,包含原理设计、PCB layout、硬件调试。 3、负责软件详细设计及实现,包含软件开发、调试。 任职要求: 1、电子、自动化、通讯或相关专业,本科以上学历,3年以上相关专业工作经验优先。 https://www.huaibei.gov.cn/xwzx/gsgg/jye/61630251.html
12.?物联网应用技术专业2023级人才培养方案知识目标K3-专业综合知识:掌握物联网感知技术、单片机技术、嵌入式开发技术、物联网通信技术、传感网应用开发技术、物联网工程实施与管理、物联网应用平台开发等专业知识,综合运用所学专业知识解决物联网设备安装与维护、物联网项目规划与设计、物联网应用软硬件开发与测试。 https://www.cswu.cn/dsjyxxcy/2023/0619/c3737a71175/page.htm
13.深入浅出剖析“自主”操作系统从 1998 年底开始专注于 Linux 和嵌入式系统。主要作品为 MiniGUI。在创办飞漫软件的近十年时间里,作为企业创始人和研发负责人,组织研发团队持续开发 MiniGUI,开发了多个版本的嵌入式浏览器产品,也曾和美国公司合作,开发过类似 Android 这样的移动操作系统,还将 Android 运行在了 MeeGO 上(也就是国际上有点名气的https://www.kechuang.org/t/84062
14.地铁实习报告(精选17篇)地铁的自动售检票系统,简称afc系统,是实现轨道交通售票、检票、计费、收费、统计、清分、管理等全过程的自动处理。该系统通常包括自动控制、计算机网络通信、现金自动识别、微电子计算、机电一体化、嵌入式系统和大型数据库管理等高新技术运用。是一个计程计时封闭式全自动收费系统。 https://www.unjs.com/fanwenwang/shixibaogao/20220730093516_5365224.html
15.1.2操作系统发展Simple Batch Systems 简单批处理系统 Multiprogramming Batched Systems 多道程序批处理系统 Time-Sharing Systems 分时系统 Real -Time Systems 实时系统 Embedded SystemS 嵌入式系统 Parallel Systems 并行系统 Distributed Systems 分布式系统 操作系统的发展过程 https://www.jianshu.com/p/9a1cc3e2dd0d
16.英伟达(NVDA.US):重塑计算,世界AI的引擎(43000字深度报告)借助 CUDA 工具包,开发者可以在GPU加速的嵌入式系统、桌面工作站、企业数据中心、基于云的平台和HPC超级计算机上开发、优化和部署应用程序。CUDA工具包主要包括GPU加速库、调试和优化工具、C/C++ 编译器以及用于部署应用程序的运行环境库。不论是图像处理、计算科学亦或是深度学习,基于CUDA开发的应用都已部署到无数个https://m.jrj.com.cn/madapter/stock/2023/06/06080637604880.shtml
17.电子信息工程专业(信工)本科专业答:本专业设智能硬件方向、嵌入式系统设计方向、通信电路设计等3个专业方向。涵盖智智能硬件、智能仪器、物联网、嵌入式系统设计、通信、能源、现代医疗、汽车电子、电力系统等领域。它们都是当前发展快、应用广、有发展前景的领域,具有软硬结合,面向应用的特点。每个专业方向都有很大的就业市场和很好的发展前景。 https://dxx.cdutetc.cn/html/2c9082c93bcaface013d6cbceb550215.htm
18.单片机的参考文献内容.docx它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展https://m.book118.com/html/2022/0520/8101001071004102.shtm
19.铁路信号专业地铁实习报告(通用10篇)地铁的自动售检票系统,简称AFC系统,是实现轨道交通售票、检票、计费、收费、统计、清分、管理等全过程的自动处理。该系统通常包括自动控制、计算机网络通信、现金自动识别、微电子计算、机电一体化、嵌入式系统和大型数据库管理等高新技术运用。是一个计程计时封闭式全自动收费系统。 https://www.ruiwen.com/shixibaogao/5138078.html