首页 图像边缘检测器的设计与 EDA技术综合应用实例与分析 谭会生 ppt 课件

图像边缘检测器的设计与 EDA技术综合应用实例与分析 谭会生 ppt 课件

举报
开通vip

图像边缘检测器的设计与 EDA技术综合应用实例与分析 谭会生 ppt 课件第12章图像边缘检测器的设计与分析12.1系统设计要求12.2系统设计方案12.3主要LPM原理图和VHDL源程序12.4系统仿真/硬件验证12.5设计技巧分析12.6系统扩展思路12.1系统设计要求在嵌入式图形系统处理领域,图像处理的速度问题一直是一个很难突破的设计瓶颈。一般情况下,控制领域及数据处理领域几乎是单片机和数字信号处理器的天下,但是在数据处理量大,实时性要求更为苛刻的场合,传统的MCU根本无法适应实时大批量数据处理场合,而DSP虽然具备指令流水线和很高的处理速度,但是由于其本质仍然是依靠串行执行指令来...

图像边缘检测器的设计与 EDA技术综合应用实例与分析 谭会生 ppt 课件
第12章图像边缘检测器的设计与 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 12.1系统设计要求12.2系统 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 12.3主要LPM原理图和VHDL源程序12.4系统仿真/硬件验证12.5设计技巧分析12.6系统扩展思路12.1系统设计要求在嵌入式图形系统处理领域,图像处理的速度问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 一直是一个很难突破的设计瓶颈。一般情况下,控制领域及数据处理领域几乎是单片机和数字信号处理器的天下,但是在数据处理量大,实时性要求更为苛刻的场合,传统的MCU根本无法适应实时大批量数据处理场合,而DSP虽然具备指令流水线和很高的处理速度,但是由于其本质仍然是依靠串行执行指令来完成相应的图像处理算法的,所以其处理速度依然很受限制。图12.1是一个DSP+FPGA/CPLD的图像处理系统的总体框图,其中图像传感器CCD的主要功能是获取外界图像的各个像素点灰度值;图像主处理器采用数字信号处理器DSP,主要负责对图像传感器传送的灰度信息进行存储,并负责调用协处理器进行边界像素判别,找出我们感兴趣的目标对象,从而得到该对象的运动信息,以便控制执行装置进行位置跟踪;边缘检测协处理器为FPGA/CPLD,主要完成主处理器传送过来的像素的边界判别,并把处理结果返回到主处理器中。图12.1DSP+FPGA/CPLD图像处理系统的组成框图在本系统中,系统的设计指标为:数据吞吐量>10Mb/s;动态响应时间<100ms/frame。主处理器初步选用德州公司的DSP芯片TMS320C5402,协处理器拟采用ALTERA公司的FLEX10K20。图像处理系统的接口关系如图12.2所示,其中FLEX10K20的接口说明如下:DATA:8位数据输入端口。WR:写有效信号输入端口。CLK:同步时钟输入端口。T_D:阈值/像素值选择端口,T_D=1时,表示输入的数据为像素阈值,为0时表示输入的数据为像素值。CS:片选信号,低电平有效。READY:状态查询位,为协处理器“准备好”信号输出端,低电平有效,当该协处理器处理完一帧图像后,该信号恢复有效电平,主处理器启动下一帧图像的边界处理。MAGOUT:像素边界判别信号输出,MAGOUT为1时,表示当前像素为边界像素,为0表示为非边界像素。图12.2图像处理系统接口关系图12.2系统设计方案12.2.1算法选择图像处理经常用于在连续图像中跟踪移动物体。它从传感器接收图像的连续流,根据输入图像的数据选择跟踪物体。初始图像不断被加强,然后进行分割,以定位物体或找出感兴趣的区域。定位物体或区域后,检查出可以最终划分物体的特征。Sobel算法包括带4个3×3掩码的输入图像数据,即Sobel算子,它设置权重来检测水平、垂直、左对角、右对角各个不同方向上密度幅度的不同。这个过程通常被称为过滤。下面我们来看一个3×3的像素窗口,如图12.3所示。图12.3像素窗水平、垂直、左对角、右对角各图像方向上密度幅度的变化可以用如下算子进行计算:H=(Q0+2Q3+Q6)?(Q2+2Q5+Q8)V=(Q0+2Q1+Q2)?(Q6+2Q7+Q8)DR=(Q1+2Q0+Q3)?(Q5+2Q8+Q7)DL=(Q1+2Q2+Q5)?(Q3+2Q6+Q7)H、V、DL、DR这四个 参数 转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应 用于计算梯度大小和方向。对梯度大小的一个普遍估计值为:Magnitude=Max(H,V,DR,DL)12.2.2算法实现 由前面所述可知,Sobel的滤波函数为 H=(Q0+2Q3+Q6)?(Q2+2Q5+Q8);V=(Q0+2Q1+Q2)?(Q6+2Q7+Q8)DR=(Q1+2Q0+Q3)?(Q5+2Q8+Q7);DL=(Q1+2Q2+Q5)?(Q3+2Q6+Q7)Magnitude=Max(H,V,DR,DL)为了减少设计的复杂度,上面式子中的乘法运算可以改写成加法运算: H=(Q0+Q3+Q3+Q6)?(Q2+Q5+Q5+Q8);V=(Q0+Q1+Q1+Q2)?(Q6+Q7+Q7+Q8)DR=(Q1+Q0+Q0+Q3)?(Q5+Q8+Q8+Q7);DL=(Q1+Q2+Q2+Q5)?(Q3+Q6+Q6+Q7)12.2.3总体设计方案 根据图像处理的知识及分析,我们可得到此边缘检测处理器的工作流程如图12.4所示。首先,DSP将从图像传感器中获取的灰度图(800×600)按照每三列划分为一帧的原则进行帧窗口划分。帧窗口的图形数据又按照每三行划分为一个像素处理窗口的原则逐一进行处理。图12.4图像处理流程示意图根据以上设计思路,我们可把整个系统的实现划分为四个大的模块,其总体结构如图12.5所示。其中:帧窗口接收模块(FIFO)负责接收DSP传送过来的一个帧窗口的数据,其本质为一个双端口先入先出栈FIFO,其数据宽度为8,深度等于一个帧窗口内的像素点个数(600×3=1800)。串入并出模块(SIPO)负责把FIFO内的数据转换成为像素处理窗口的列像素向量,便于像素处理窗口的数据刷新处理。像素窗口刷新模块(REFRESH)实现对需要处理的像素数据的刷新。数据处理模块(PROCESSOR)是本图形边缘处理器的核心部分,主要是实现Sobel算法,其性能的好坏对整个设计的成败有着关键的作用。图12.5图像边缘检测器总体结构图12.2.4主要功能模块的设计1.帧窗口接收模块FIFO由于高速设备与慢速设备之间处理速度的差别,它们之间的数据传输一般采用查询方式或中断方式,而数据同步传输则选择了帧同步方式。存储器的类型拟选用FIFO,堆栈空时向主机发出准备好信号,主机检测到它的数据传输请求时,传送一帧数据,由于FIFO的大小与一帧图像的大小是一致的,所以接收完毕后,堆栈满,Sobel处理器启动边缘检测进程,处理完一帧数据后,堆栈重新变为空,为下一帧数据处理作准备。其内部结构如图12.6所示。图12.6帧窗口接收模块FIFO的内部结构图2.串入并出模块SIPO串入并出模块的主要功能是负责一列像素的刷新,也就是把主处理器传送过来的像素值转换成3×3像素窗口的一列。该模块的实现主要是通过六个D触发器和一个三进制的计数器组成,当计数器产生进位溢出时,串行输入的三个像素点并行输出。其内部结构如图12.7所示。图12.7串入并出模块SIPO的内部结构图3.像素窗口刷新模块REFRESH像素刷新窗口的主要功能是接收串入并出模块的3个并行像素,把窗口中原有的第二列像素推入第三列,第一列推入第二列,新到的并行像素填入第一列。其本质为一个移位寄存器。其内部结构如图12.8所示。图12.8像素刷新模块REFRESH的内部结构图4.滤波模块FILTER对于Sobel算法的各个滤波器,H、V、DR、DL经变换后可得到:H=(Q0+Q3+Q3+Q6)?(Q2+Q5+Q5+Q8);V=(Q0+Q1+Q1+Q2)?(Q6+Q7+Q7+Q8)DR=(Q1+Q0+Q0+Q3)?(Q5+Q8+Q8+Q7);DL=(Q1+Q2+Q2+Q5)?(Q3+Q6+Q6+Q7)因此我们对于滤波模块FILTER的设计可采用两级并行流水方案,其内部结构如图12.9所示。图12.9滤波模块FILTER的内部结构图对于上述滤波数据的处理,在不采用流水线的情况下,像素从进入处理器到结果输出,需要经过两级加法和一级减法的时延,但是使用流水线技术后(其本质为对中间结果进行寄存),结果输出仅仅滞后三个时钟频率,但是增加了数据吞吐量,同时也提高了时钟频率。为提高加法运算的速度,本设计中的加法器采用超前进位加法器。下面对其作一个简单的回顾:SUM(I)=A(I)XORB(I)XORC(I?1)C(I)=(A(I)ANDB(I))OR(A(I)XORB(I)ANDC(I?1)令P(I)=A(I)XORB(I);G(I)=A(I)ANDB(I)其中P(I)、G(I)均与进位信号无关,则SUM(I)与C(I)可表达为SUM(I)=P(I)XORC(I?1);C(I)=G(I)OR(P(I)ANDC(I-1))5.数据处理模块PROCESSOR数据处理模块PROCESSOR的主要功能是求出四个方向的图像梯度数据绝对值的最大值,同时判别最大值出现的方向。其内部结构如图12.10所示,它包括滤波器FILTER、比较器COMPARE、边界判断器RESULT和寄存器等。图12.10数据处理模块PROCESSOR的内部结构图12.3主要LPM原理图和VHDL源程序12.3.1LPM兆功能块定制方法简介LPM模块的使用方式有两种:原理图调用方式和VHDL文本调用方式。下面以一个先进先出的存储缓冲器MYFIFO的设计为例介绍一下LPM兆功能块的定制方法。1.原理图调用方式先进入原理图编辑窗,再调入需使用的兆功能块(LPM_FIFO)(如图12.11所示),鼠标双击调出的兆功能块右上角的参数显示文字,然后在弹出的端口/参数编辑窗中,设定(Used)本设计要用的端口,去掉(Unused)本设计不用的端口,并对于一些需设定参数的端口,选择合适的参数(如图12.12所示)。这时基于兆功能块MYFIFO就已经定制好(如图12.13所示),在后面的设计中即可作为一个元件进行调用。图12.11调用兆功能块示意图图12.12兆功能块端口/参数设定示意图图12.13定制好的兆功能块示意图2.VHDL文本调用方式首先进入MAX+plusⅡ兆功能块定制管理器(如图12.14所示),并选择生成或修改一个定制的兆功能块(如图12.15所示);其次选择定制的功能块名称LPM_FIFO,输出文件的格式VHDL,输出文件的路径及文件名等(如图12.16所示);接着进行数据参数选择(如图12.17所示)、端口设置选择(如图12.18所示)、数据输出控制选择(如图12.19所示)、优化方式选择(如图12.20所示)等;最后单击“Finish”即完成了MYFIFO.VHD的定制(如图12.21所示)。图12.14进入兆功能块定制管理器图12.15生成或修改一个定制的兆功能块图12.16定制的功能块的路径及输出文件选择图12.17数据参数选择图12.18端口设置选择图12.19数据输出控制选择图12.20优化方式选择图12.21单击“Finish”后完成MYFIFO.VHD的定制MYFIFO.VHD的源程序如下:--MYFIFO.VHD(本程序已去掉程序前后的说明注释)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMYFIFOISPORT(DATA:INSTD_LOGIC_VECTOR(7DOWNTO0);WRREQ:INSTD_LOGIC;RDREQ:INSTD_LOGIC;CLOCK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);FULL:OUTSTD_LOGIC;EMPTY:OUTSTD_LOGIC);ENDMYFIFO;ARCHITECTURESYNOFMYFIFOISSIGNALSUB_WIRE0:STD_LOGIC;SIGNALSUB_WIRE1:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALSUB_WIRE2:STD_LOGIC;COMPONENTLPM_FIFOGENERIC(LPM_WIDTH:NATURAL;LPM_NUMWORD:NATURAL;LPM_WIDTHU:NATURAL;LPM_SHOWAHEAD:STRING;LPM_HINT:STRING);PORT(RDREQ:INSTD_LOGIC;EMPTY:OUTSTD_LOGIC;CLOCK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);WRREQ:INSTD_LOGIC;DATA:INSTD_LOGIC_VECTOR(7DOWNTO0);FULL:OUTSTD_LOGIC);ENDCOMPONENT;BEGINEMPTY<=SUB_WIRE0;Q<=SUB_WIRE1(7DOWNTO0);FULL<=SUB_WIRE2;LPM_FIFO_COMPONENT:LPM_FIFOGENERICMAP(LPM_WIDTH=>8,LPM_NUMWORDS=>4,LPM_WIDTHU=>2,LPM_SHOWAHEAD=>"OFF",LPM_HINT=>"USE_EAB=ON,MAXIMIZE_SPEED=5")PORTMAP(RDREQ=>RDREQ,CLOCK=>CLOCK,WRREQ=>WRREQ,DATA=>DATA,EMPTY=>SUB_WIRE0,Q=>SUB_WIRE1,FULL=>SUB_WIRE2);ENDARCHITECTURESYN;12.3.2一些模块的LPM原理图FIFO模块由定制的LPM模块CSFIFO、LPM_FF, 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 元件AND2、NOT以及用VHDL编程编译后生成的二进制计数器COUNTER2构成,如图12.22所示。SIPO的LPM原理图如图12.23所示。REFRESH的LPM原理图如图12.24所示。FILTER的LPM原理图如图12.25(略)所示。PROCESSOR的LPM原理图如图12.26(略)所示。图12.22FIFO的原理图图12.23SIPO的原理图图12.24REFRESH的原理图12.3.3RESULT的VHDL源程序边界判断器RESULT模块是数据处理模块PROCESSOR内部的一个子模块,其功能就是根据区分度阈值、四个滤波器的输出及其最大值进行边界的判断。其输入、输出端口如图12.27所示。图12.27RESULT模块的输入、输出端口图VHDL源程序如下。--RESULT.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYRESULTISGENERIC(SIZE:INTEGER:=11);PORT(CLK:INSTD_LOGIC;H,V,DR,DL:INSTD_LOGIC_VECTOR(SIZEDOWNTO1);THRESHOLD:INSTD_LOGIC_VECTOR(8DOWNTO1);MAX:INSTD_LOGIC_VECTOR(SIZEDOWNTO1);MAGOUT:OUTSTD_LOGIC;DIR:OUTSTD_LOGIC_VECTOR(3DOWNTO1));ENDENTITYRESULT;ARCHITECTUREARTOFRESULTISBEGINPROCESS(CLK,THRESHOLD)BEGINIF(CLK'EVENTANDCLK='1')THENIF(MAX(SIZE-1DOWNTO1)>"00"&THRESHOLD)THENMAGOUT<='1';IF(MAX=HANDH(SIZE)='0')THENDIR<="000";ELSIF(MAX=HANDH(SIZE)='1')THENDIR<="100";ELSIF(MAX=VANDV(SIZE)='0')THENDIR<="010";ELSIF(MAX=VANDV(SIZE)='1')THENDIR<="110";ELSIF(MAX=DRANDDR(SIZE)='0')THENDIR<="001";ELSIF(MAX=DRANDDR(SIZE)='1')THENDIR<="101";ELSIF(MAX=DLANDDL(SIZE)='0')THENDIR<="011";ELSIF(MAX=DLANDDL(SIZE)='1')THENDIR<="111";ENDIF;ELSEMAGOUT<='0';DIR<="000";ENDIF;ENDIF;ENDPROCESS;ENDARCHITECTUREART;12.3.4COMPARE的VHDL源程序 比较器COMPARE模块是数据处理模块PROCESSOR内部的一个子模块,其功能就是根据两个输入参数求出其最大值。其输入、输出端口如图12.28所示。图12.28COMPARE的输入、输出端口如图VHDL源程序如下。--COMPARE.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOMPAREISGENERIC(SIZE:INTEGER:=11);PORT(DAT1,DAT2:INSTD_LOGIC_VECTOR(SIZEDOWNTO1);MAX:OUTSTD_LOGIC_VECTOR(SIZEDOWNTO1));ENDENTITYCOMPARE;ARCHITECTUREARTOFCOMPAREISBEGINPROCESS(DAT1,DAT2)BEGINIF(DAT1(SIZE-1DOWNTO1)>DAT2(SIZE-1DOWNTO1))THENMAX<=DAT1;ELSEMAX<=DAT2;ENDIF;ENDPROCESS;ENDARCHITECTUREART;12.3.5系统的总体组装设计 请读者根据图12.5的总体结构图自行完成。12.4系统仿真/硬件验证12.4.1系统的有关仿真1.FIFO的仿真(1)仿真激励源:同步时钟CLK,写使能WE,八位数据输入端口DATA;(2)仿真期望结果:当主处理器向FIFO写完一帧像素点数据后,READY信号输出值为零,同时,FIFO封锁输入通道,外部数据不能再写入FIFO。(3)仿真结果及分析:FIFO的仿真结果如图12.29所示。从图中可以看出,主处理器写完四个像素点数据后,Q[8..1]按照先入先出的顺序,逐个输出获取的像素数据12、13、14。图12.29FIFO的仿真结果2.SIPO的仿真(1)激励源:同步时钟及外部输入像素的灰度信息。(2)期望结果:把串行数据转换为并行数据,而且输出的并行数据必须保持到第三个串行数据输入的时刻以前。(3)仿真结果及分析:SIPO的仿真结果如图12.30所示。由图中可以看出,如我们将串行数据每三个划分为一段,QA、QB、QC恰好是这一段的并行输出,符合设计期望。图12.30SIPO的仿真结果3.REFRESH的仿真REFRESH模块在系统中的主要作用是实现像素处理窗口的更新。在每一时钟上升沿,并行提供三个输入像素。(1)激励源:外部时钟CLK及并行像素DATA0、DATA1、DATA2。(2)期望结果:在每个时钟上升沿到来时,像素窗口最左端的一列像素(Q0,Q1,Q2)移出,第二列(Q3,Q4,Q5)移入第一列(Q0,Q1,Q2),第三列(Q6,Q7,Q8)移入第二列(Q3,Q4,Q5),输入像素直接移入第三列(Q6,Q7,Q8),同时,该窗口必须能并行输出8个像素给Sobel滤波模块。(3)仿真结果:REFRESH模块的仿真结果如图12.31所示。如波形图中箭头所示,该模块同时实现了并行输入、同步移位寄存、并行数据输出功能,符合设计期望。图12.31REFRESH的仿真结果4.FILTER的仿真滤波器的本质是实现并行流水加法操作。在调试过程中,为了观察到实际的延时,输出信号直接来自流水加法器的输出,而非流水寄存器输出。所以存在部分毛刺。(1)激励源:同步时钟(CLK)及并行像素输入(QA,QB,QC,QD,QE,QF)。(2)期望结果:输出的数据之间满足Sobel滤波关系式。(3)仿真结果及分析:图12.32是它的仿真波形,由图中可以看出:DATA[19..11]=QA+QB;DATA[29..21]=QB+QCDATA[39..31]=QD+QE;DATA[49..41]=QE+QFDATB1[10..1]=DATA[19..11]+DATA[29..21]DATB2[10..1]=DATA[39..11]+DATA[49..41]RESULT=DATB1[10..1]-DATB2[10..1]图12.32FILTER的仿真结果5.RESULT及COMPARE的仿真RESULT的仿真结果如图12.33所示;COMPARE的仿真结果如图12.34所示。图12.33RESULT的仿真结果图12.34COMPARE的仿真结果6.PROCESSOR的仿真图12.35是PROCESSOR的仿真图,我们先计算图中四个方向滤波器的绝对值大小:H_FILTER=422;V_FILTER=1950?1024=926DR_FILTER=242;DL_FILTER=478四者中的绝对值最大值是926,故最大的为V_filter。观察箭头所指的部分,正好为V_filter的值1950。经过验证,上述图中的所有输出满足输出期望。图12.35PROCESSOR的仿真结果12.4.2系统的硬件验证请读者根据自己所拥有的EDA实验开发系统自行完成。12.5设计技巧分析(1)本设计对于一些图像处理硬件的设计有较好的参考价值,特别是对并行流水技术、数据刷新技术分析得比较细致。(2)几乎所有的CPLD/FPGA供应商提供的软件开发工具中都会提供许多已经设计好的单元电路库,特别是ALTERA的开发软件提供的LPM_MEGAFUNCTION参数化设计库。12.6系统扩展思路该系统设计好后,可与DSP主处理器及其他相关设备进行联合调试,并测试有关结果。
本文档为【图像边缘检测器的设计与 EDA技术综合应用实例与分析 谭会生 ppt 课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
正方体
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:81
分类:
上传时间:2022-05-10
浏览量:0