Profile - CN265


CN265

基于FPGA的图像边缘检测算法的设计与实现

东北大学
电子信息工程


Finals


[print]


Project

Name of Project:基于FPGA的图像边缘检测算法的设计与实现

Contact Information

Name:李亮
E-Mail:liliang4856886@163.com
Telephone:024-83678543
Mobile Phone:15942355246
Mailing Address:辽宁省沈阳市和平区文化路东北大学信息楼505

Contest Advisor

Name:李晶皎
E-Mail:lijingjiao@ise.neu.edu.cn
Telephone:024-83678543

Members

No.NameE-MailEnglish Name
1李亮liliang4856886@163.comliliang
2王吉敏jmwang@163.comwangjimin

Project Paper - view as Preliminary(2009/06/15), Final(2009/09/14), Draft, Latest

1. 设计概述 (Preliminary Paper)

 

一、设计概述
1、设计意图
在图像处理的问题中,图像的边缘图作为图像的一种基本特征,经常被应用到较高层次的特征描述。如图像识别、图像分割、图像增强以及图像压缩等图像处理和分析的技术中,从而可以对图像作进一步的分析和理解。但是图像处理的速度问题一直是很难突破的设计瓶颈。一般情况下,控制领域及数据处理领域几乎是单片机和数字信号处理器的天下,但是在数据处理量大、实时性要求更为苛刻的场合,传统的MCU无法适应。而DSP虽然具备指令流水线和很高的处理速度,但是由于其本质仍然是依靠串行执行指令来完成相应的图像处理算法,所以其处理速度依然很受限制。因而基于速度、系统集成和产品升级等角度考虑,采用现代电子设计的最新EDA技术,使用高速可编程逻辑器件CPLD/FPGA自行开发有关处理芯片成了一种全新的解决方案。
最初基于FPGA的图像处理是在FPGA上构建控制系统,而用外接DSP来处理数据,新一代的FPGA集成了CPUDSP内核,可以在一片FPGA上进行软硬件协同设计,为实现SOPC提供了强大的硬件支持。而且在利用FPGA进行DSP系统的开发应用上,已有了全新的设计工具和设计流程。例如ALTERA公司推出的DSP Builder就是面向DSP开发的系统级工具。
由于图像处理的数据量相当大,所以在实时处理的时候需要更高的速度且有足够的运算资源。便携式图像处理设备中比如便携式视频监控系统、无线传感器网络中的多媒体传感器等往往会进行诸如分割、压缩、传输等等的高层图像处理,所以在便携式设备中利用嵌入式系统实现边缘检测的处理是迫切需要的。这些需要也是这方面研究的动力,也是本文研究的意义所在。利用以SOPC为基础的基于FPGA可重配置的嵌入式系统进行图像处理的开发,在资源、速度、灵活性、成本等各方面都能满足要求。
2、适用范围
图像边缘检测是图像分割中最重要的内容之一,是图像进一步处理的基础。在医学方面,图像分割在临床诊断、病理分析以及治疗方面具有重要意义,例如:测量人体器官、组织或病灶的体积;医学图像的3D重建方面;基于图像分割结果的生物医学图像的分析等。除医学应用方面外,图像的边缘检测还在形态学方面有所应用,例如盲语手势识别等。
3、采用本款ALTERA芯片的优势
本设计是在Cyclone II EP2C20 DE1开发板上实现的。在此开发板上可以实现如下的功能:
1DSP Builder丰富的功能模块和IP核。有了在DSP Builder,使得我们能在Simulink下进行算法级的系统开发。并且可以将算法设计成自定义用户指令,利用SOPC BuilderQuartusII软件集成至Nios II嵌入式系统处理器中,通过软件调用该自定义指令完成DSP算法。这是本设计的主要部分。采用这种方法来实现算法可以大幅度提高实时性。
2NIOS II软核可以根据自己的需要进行剪裁,自行配置。NIOS II处理器系统的外设配置具有很大的灵活性。
3SOPC Builder系统开发工具允许设计者在很短的时间内创建高度定制的可编程片上系统(SOPC)。设计者使用SOPC Builder可以将IP核、存储器、接口和微处理器等复杂系统组件简单又快速地集成到ALTERA高密度FPGA中,缩短设计周期。
4Cyclone II EP2C20芯片资源如下表所示。它是本设计片上功能设计与实现的前提与基础。
1 Cyclone II EP2C35的内部功能电路的组成。
功能组成
数量
Logic Elements (LEs)
18,752
M4K RAM blocks
52
Embedded Multipliers
26
PLLs
4
Total RAM bits
240K
User I/O pins
315
5DE1开发板提供的如下资源使得整个设计成为可能。
  •        Cyclone II 2C20 FPGA
  •         EPCS4
  •         512K SRAM
  •         8M SDRAM
  •         4M FLASH
  •         按键开关和LED
  •         4VGA视频接口
  •         JTAG调试接口
 
(Revision: 4 / 2009-09-02 19:18:19)

2. 功能描述 (Final Project Paper)

二、功能与实现

图像边缘检测是图像分割中最重要的内容之一,是图像进一步处理的基础。对于某些实时性要求较高的场合,如CT机中的图像实时3D重建,普通的PC机进行图像处理无法满足实时性的要求。而基于FPGA的图像边缘检测可以满足实时性的要求。

基于FPGA的边缘检测系统是利用硬件完成图像的边缘检测,整个系统主要有四个功能:

1、图像数据的输入。图像数据的输入是把图像数据从内存传输到边缘检测处理接口。

2、图像数据的模糊增强协处理器和局部熵边缘检测协处理器。本设计在硬件上设计并实现了图像的模糊增强算法和局部熵边缘检测算法,在软件上进行编程对所实现的算法进行调用。这一部分是整个系统设计的核心。

3、图像数据DMA传输。本设计采用DMA控制器实现数据的并行传输。提高系统的实时性。DMA控制器在本设计中的应用如图1所示。

 

1 采用DMA控制器实现图像数据的示意图

4、图像处理结果的VGA显示。本设计将编写好的VGA显示代码做成SOPC里的IP核添加到AVALON总线上,通过NIOS II软核处理器把经过边缘检测算法处理后的结果在VGA显示出来。VGA IP核结构框图如图2所示。

 

2 VGA IP核结构框图

 

(Revision: 4 / 2009-09-07 13:29:02)

3. 性能参数 (Final Project Paper)

三、性能参数 

        本系统中利用MATLAB测试该算法在PC机上运行所用的时间,利用SOPC中的性能计数器IP核来测试系统的处理时间。性能计数器核是一个可以实时监控程序运行性能的嵌入式核,利用性能计数器,用户可以通过简单的代码精确地获得某段程序的执行时间。表2是边缘检测处理在PC机上和Altera CycloneII EP2C20开发板上处理时间对比。

2 边缘检测算法的运行时间表

 

                                                          

PC机上的实现

(ms)

Altera Cyclone II EP2C20 开发板实现(ms)

模糊增强算法(图像大小为256×256)

模糊增强算法(图像大小为245×245)

256.002

224.049

21.9193

21.8956

局部熵边缘检测算法(256×256)

局部熵边缘检测算法(245×245)

928.321

835.538

21.9235

21.9122

 

PC机上实现的开发环境为:Intel(R) Core(TM)2 Duo E8400 3.0G双核处理器,DDR2 800 (PC6400) 4096Mbyte 内存,使用的软件是Matlab 2008a

CycloneII EP2C20开发板上实现的开发环境为:Nios II软核时钟为100 MHz,边缘检测协处理器,时钟为100MHz,使用的软件为Quartus II 8.0Matlab2008a/SimulinkDSP Builder 8.0Nios II 8.0。图3是系统工程编译之后各种资源的占用情况:

 

 

 

3 系统资源利用情况图

    从结果中我们可以清楚的发现FPGA在此领域的巨大优势。

(Revision: 3 / 2009-09-04 16:32:38)

4. 设计结构 (Preliminary Paper)

四、系统层次设计

本系统在结构设计上分为两个层次,一是系统硬件设计,一是系统软件设计。系统硬件设计主要完成图像边缘检测算法的硬件实现。系统软件设计主要完成系统集成和功能测试。

9是边缘检测系统总体结构图,所有的这些组件全都是在Cyclone II EP2C20 DE1开发板上完成。如图9所示,包括以下几个组件:

(1) JTAG控制器:JTAG控制器实现了PCNIOS II系统间的串行通信,用于程序的下载和调试;

(2) I/O控制器:I/O控制器为用户逻辑或外部器件提供了简单的直接I/O操作,可以直接完成位操作(例如控制led、外接控制按钮开关量的读入等)

(3) 系统性能计数器:系统性能计数器是一个可以实时监控程序运行性能的嵌入式核,利用性能计数器,用户可以通过简单的代码精确地获得某段程序的执行时间;

(4) On-chip RAM(片上RAM):片上存储器模块,可以提供片上高速缓存,系统配置4KB的片上RAM

(5) 系统IDSOPC Builder 生成NIOS II系统时,将为每个NIOS II系统生成一个标识符。该标识被写入System ID寄存器中,供编译器和用户识别所运行的程序是否与目标系统匹配。

(6) Avalon MM Tri-state Bridge是三态桥核,用于连接片外存储器(像Flash)的连接,这些存储器在PCB(Printed Circuit Board)中采用共享地址总线和数据总线的物理连接关系,这样双向数据总线必须支持三态功能,允许其他设备驱动数据总线,避免总线冲突。
图9 系统总体设计框图
    图10所示为系统的硬件结构框图。

10 系统硬件结构框图

        图11是软件设计总体流程图,系统软件设计主要完成以下功能:系统初始化(I/O初始化、DMA控制器初始化、系统性能计数器初始化、VGA显示初始化)、读取图像数据,DMA数据传输控制、VGA显示控制。
   
图11  软件设计整体流程图
        本系统设计融合了硬件设计和软件设计。主要是边缘检测协处理器的模块设计。整个系统运行过程是从图像存储器中读取一幅图像,让数据流经过边缘检测协处理模块的处理,最后通过VGA控制器显示处理结果。利用Nios II 处理器来控制整个系统的运行。DMA控制器控制实现数据在SDRAM存储器和边缘检测协处理器之间的高速存取。
 
(Revision: 5 / 2009-09-05 19:06:13)

5. 设计方法 (Final Project Paper)

 五、设计方法及步骤

1、基于DSP Builder的模糊增强算法协处理器的设计
Clock组件,用来仿真时模拟硬件时钟的,需要和硬件时钟一致。因为在SOPC Builder中系统集成时,设置的硬件时钟频率为100MHz,因此在此时钟为100ns
SignalCompiler组件是仿真模型和硬件实现的桥梁,通过SignalCompiler组件可以把Simulink的模型文件转化为通用硬件描述语言,甚至可以把设计文件下载到FPGA开发板上。
Avalon-MM Write FIFOAvalon-MM Read FIFO组件具有Avalon总线接口,Avalon-MM Write FIFO组件可从其他Avalon-MM接口接收数据,其他Avalon-MM接口可以从Avalon-MM Read FIFO取得数据。
siminsimout用于仿真测试时数据的输入和输出。
11是根据第二部份内容中讲到的硬件电路结构建立的仿真模型的顶层图。
11 DSP Builder中模糊增强算法顶层模型图
       12是模糊增强算法在DSP Builder中实现逻辑关系图。
12 模糊增强算法实现模型图
2、基于DSP Builder的局部熵边缘检测算法协处理器的设计
根据前面讲述的局部熵硬件边缘检测算法硬件结构图实现的局部熵边缘检测算法的顶层图及各层原理图如下所示。
13 局部熵边缘检测算法顶层图
14 局部熵边缘检测算法实现模型图
15 熵值计算模块实现图
16 均值滤波模块的实现图
17缓冲电路实现图
3、算法级系统测试结果
18是原始图像与模糊增强处理后的图像对比图,图19的左边是原始图像,右边是增强处理后的图像,通过对比可以发现,经过模糊增强处理后,灰度值对比更加明显了,尤其对于两幅医学图像来说,它的细节更加明显了,这样,更利于边界的提取。
 
18 Lena图像模糊增强效果对比
19 胆囊图像模糊增强效果对比
20.121.1分别是采用局部熵边缘检测算法对未经模糊增强处理的图像的边缘检测结果,图20.221.2是分别是采用局部熵边缘检测算法对经模糊增强处理的图像的边缘检测结果。从图中可以看出,该算法可以很好的检测出图像边缘,而且检测效果的好坏和阈值有关,在硬件实现中,我们选取检测效果好的阈值,进行硬件设计实现。对于图像lena.bmp图像来说,通过对比可知,是否经过增强处理边缘检测效果不明显,而对胆囊图像来说,通过对比可以发现,经增强处理后检测效果明显比未经增强处理后检测效果好。
1、 lena.bmp图像的测试结果:
a 阈值为5900              b 阈值为6000                c阈值为6100              d 阈值为6200
20.1 lena.bmp图像未经增强处理的不同阈值时的边缘检测结果
 
a 阈值为5900              b 阈值为6000             c阈值为6100                 d 阈值为6200
20.2 lena.bmp图像经增强处理后的不同阈值时的边缘检测结果
2 、胆囊图像的测试结果:
a 阈值为5900             b 阈值为6000            c阈值为6100               d 阈值为6200
21.1 胆囊图像未经增强处理的不同阈值时的边缘检测结果
a 阈值为6000               b 阈值为6100                 c阈值为6200             d 阈值为6300
21.2 胆囊图像经增强处理后的不同阈值时的边缘检测结果
4SOPC架构的实现
边缘检测系统的硬件实现主要是由SOPC Builder完成系统集成,然后在QuartusII中完成系统的综合和仿真,编译成边缘检测系统的硬件配置文件,最后将生成的配置文件下载到目标器件中,完成边缘检测系统的硬件实现。
利用SOPC Builder工具,根据系统硬件设计,在Nios II系统中加入必要的外围接口模块,确定系统的地址分布和中断分配,并产生系统综合需要的Nios II系统文件的过程即是系统集成。
根据前面介绍的系统总体结构图,添加NiosII软核处理器、DMA控制器和边缘检测模块等外围设备完成的Nioss II系统的配置,图22是配置Nios II系统的软件界面。
22 SOPC架构图
5、系统原理图
       下图23所示为本设计的系统原理图,即最终形成的系统。
23 系统原理图

 6、系统实物图

图24 系统实物图

(Revision: 6 / 2009-09-07 15:00:25)

6. 设计特点 (Preliminary Paper)

 

 六、本设计的特色

1、基于AlteraDSP Builder技术使我们能方便的生成我们需要的算法处理模型,并转化为硬件语言,生成用户自定义指令,通过软件调用,提高了我们的开发进程。

2、本设计采用DSP Builder设计模糊增强和局部熵边缘检测算法协处理器,以硬件形式实现此算法,而不是软件。这样可以大幅度提高数据的处理实时性。

3、在系统中设计了两个协处理器--模糊增强协处理器和局部熵边缘检测协处理器。在对原始图像进行边缘检测前先进行模糊增强处理,这样做大大地提高了边缘检测的准确度和质量。

4、借由Cyclone II提供了足够的逻辑单元资源,采用2DMA控制器实现流水线方式的数据并行传输。在同一时刻有多步不同处理过程同时进行,硬件设计只需对单个像素处理的流程进行设计,以流水线方式处理可以达到多路并行的效果。

5、整个处理过程只涉及两次内存读取控制,数据输入和数据输出,采用的是直接内存读取方式,整个数据处理过程不再受CPU控制,加快了数据的处理速度。

6、基于硬件设计的局部熵边缘检测算法,因为在软件实现中,在数组中查找所需要的数据是比较费时的,而硬件实现完全不需要查找数据,这也是硬件实现比软件实现速度快的原因之一。

7、本系统的显示部分采用VGA实现,通过在NIOS II软核处理器中加入VGA控制器,尽可能的利用开发板资源实现相应图像的显示。

8Nios II提供可配置的处理器,用户可以针对本身系统的需求,创建一个在处理器、外设、存储器和I/O接口方面的方案,这样,既能提供最优的性能组合,也能节省系统开发成本。

 

(Revision: 4 / 2009-09-05 19:11:55)

7. 总结 (Final Project Paper)

七、总结

我们这次设计的作品利用了ALTERASOPC技术较好的完成设计任务,开发实现了边缘检测的硬件平台功能,并和PC机上的算法实现进行了性能对比,证明了硬件平台的优越性能。然而,我们依然有不足之处,遗憾的受限于DE1的资源有限,我们未能在此基础上给系统添加更为实用的功能,虽然我们在DE2-70上弥补了这一缺憾,但显然还需要继续努力。

总的来讲,参加ALTERA的创新设计大赛是我们难得的一次锻炼机会。我们也因此受益良多。

首先,这是我们锻炼利用ALTERAFPGA技术进行系统设计的绝佳途径,设计过程中FPGA的独特性能特点给我们留下了很深的影响,更加激发了我们在今后的研究中要继续深入开发FPGA的兴趣。

其次,QuartusSOPC Builder简介明了的界面与方便实用的功能高度集成性以及Nios IDE软件集成开发环境的稳定性给了我们很深的印象,也让我们很快的上手并作出自己的设计,并使调试变得十分方便。设计过程中,我们学到了很多Nios的应用,都大大提高设计的效率和程序运行的速度。

再次,SOPC技术是一个内容丰富,对于系统开发者来讲十分方便且又功能强大的系统开发技术;但我们在设计过程中感受到,这个技术的背后包含着众多技术人员的辛勤劳动。就拿QuartusSOPC Builder这样的开发软件来说,它后台的操作过程一定是极其复杂的;那么能将如此复杂的开发过程做到让使用者一目了然的人一定非常了不起,想到这里我们不得不对Altera的开发人员肃然起敬。

    最后,我们参赛小组很感谢Altera公司为提供这次机会,在学习中开阔了视野,锻炼了我们的动手能力。

(Revision: 3 / 2009-09-05 19:12:32)