第12章 图像边缘检测器的设计与ppt.ppt

上传人:创****公 文档编号:1594158 上传时间:2019-10-19 格式:PPT 页数:81 大小:1.63MB
返回 下载 相关 举报
第12章 图像边缘检测器的设计与ppt.ppt_第1页
第1页 / 共81页
第12章 图像边缘检测器的设计与ppt.ppt_第2页
第2页 / 共81页
点击查看更多>>
资源描述

《第12章 图像边缘检测器的设计与ppt.ppt》由会员分享,可在线阅读,更多相关《第12章 图像边缘检测器的设计与ppt.ppt(81页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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

2、限制。,图12.1是一个DSP+FPGA/CPLD的图像处理系统的总体框图,其中图像传感器CCD的主要功能是获取外界图像的各个像素点灰度值;图像主处理器采用数字信号处理器DSP,主要负责对图像传感器传送的灰度信息进行存储,并负责调用协处理器进行边界像素判别,找出我们感兴趣的目标对象,从而得到该对象的运动信息,以便控制执行装置进行位置跟踪;边缘检测协处理器为FPGA/CPLD,主要完成主处理器传送过来的像素的边界判别,并把处理结果返回到主处理器中。,图12.1 DSP+FPGA/CPLD图像处理系统的组成框图,在本系统中,系统的设计指标为:数据吞吐量10 Mb/s;动态响应时间100 ms/fr

3、ame。主处理器初步选用德州公司的DSP芯片TMS320C5402,协处理器拟采用ALTERA公司的FLEX10K20。图像处理系统的接口关系如图12.2所示,其中FLEX10K20的接口说明如下: DATA:8位数据输入端口。 WR:写有效信号输入端口。 CLK:同步时钟输入端口。,T_D:阈值/像素值选择端口,T_D =1时,表示输入的数据为像素阈值,为0时表示输入的数据为像素值。 CS:片选信号,低电平有效。 READY:状态查询位,为协处理器“准备好”信号输出端,低电平有效,当该协处理器处理完一帧图像后,该信号恢复有效电平,主处理器启动下一帧图像的边界处理。 MAGOUT:像素边界判别

4、信号输出,MAGOUT为1时,表示当前像素为边界像素,为0表示为非边界像素。,图12.2 图像处理系统接口关系图,12.2 系统设计方案,12.2.1 算法选择 图像处理经常用于在连续图像中跟踪移动物体。它从传感器接收图像的连续流,根据输入图像的数据选择跟踪物体。初始图像不断被加强,然后进行分割,以定位物体或找出感兴趣的区域。定位物体或区域后,检查出可以最终划分物体的特征。,Sobel算法包括带4个33掩码的输入图像数据,即Sobel算子,它设置权重来检测水平、垂直、左对角、右对角各个不同方向上密度幅度的不同。这个过程通常被称为过滤。下面我们来看一个33的像素窗口,如图12.3所示。,图12.

5、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这四个参数用于计算梯度大小和方向。 对梯度大小的一个普遍估计值为: MagnitudeMax(H, V, DR, DL),12.2.2 算法实现 由前面所述可知,Sobel的滤波函数为 H=(Q0+2Q3+Q6) ? (Q2+2Q5+Q8); V=(Q0+2Q1+

6、Q2) ? (Q6+2Q7+Q8) DR=(Q1+2Q0+Q3) ? (Q5+2Q8+Q7); DL=(Q1+2Q2+Q5) ? (Q3+2Q6+Q7) MagnitudeMax(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 总体设计方案 根据图像处理的知识及分析,我们可得到此边缘

7、检测处理器的工作流程如图12.4所示。首先,DSP将从图像传感器中获取的灰度图(800600)按照每三列划分为一帧的原则进行帧窗口划分。帧窗口的图形数据又按照每三行划分为一个像素处理窗口的原则逐一进行处理。,图12.4 图像处理流程示意图,根据以上设计思路,我们可把整个系统的实现划分为四个大的模块,其总体结构如图12.5所示。其中: 帧窗口接收模块(FIFO)负责接收DSP传送过来的一个帧窗口的数据,其本质为一个双端口先入先出栈FIFO,其数据宽度为8,深度等于一个帧窗口内的像素点个数(60031800)。,串入并出模块(SIPO)负责把FIFO内的数据转换成为像素处理窗口的列像素向量,便于像

8、素处理窗口的数据刷新处理。 像素窗口刷新模块(REFRESH)实现对需要处理的像素数据的刷新。 数据处理模块(PROCESSOR)是本图形边缘处理器的核心部分,主要是实现Sobel算法,其性能的好坏对整个设计的成败有着关键的作用。,图12.5 图像边缘检测器总体结构图,12.2.4 主要功能模块的设计 1. 帧窗口接收模块FIFO 由于高速设备与慢速设备之间处理速度的差别,它们之间的数据传输一般采用查询方式或中断方式,而数据同步传输则选择了帧同步方式。存储器的类型拟选用FIFO,堆栈空时向主机发出准备好信号,主机检测到它的数据传输请求时,传送一帧数据,由于FIFO的大小与一帧图像的大小是一致的

9、,所以接收完毕后,堆栈满,Sobel处理器启动边缘检测进程,处理完一帧数据后,堆栈重新变为空,为下一帧数据处理作准备。其内部结构如图12.6所示。,图12.6 帧窗口接收模块FIFO的内部结构图,2串入并出模块SIPO 串入并出模块的主要功能是负责一列像素的刷新,也就是把主处理器传送过来的像素值转换成33像素窗口的一列。该模块的实现主要是通过六个D触发器和一个三进制的计数器组成,当计数器产生进位溢出时,串行输入的三个像素点并行输出。其内部结构如图12.7所示。,图12.7 串入并出模块SIPO的内部结构图,3像素窗口刷新模块REFRESH 像素刷新窗口的主要功能是接收串入并出模块的3个并行像素

10、,把窗口中原有的第二列像素推入第三列,第一列推入第二列,新到的并行像素填入第一列。其本质为一个移位寄存器。其内部结构如图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的设计可采用两级并行流水方案,

11、其内部结构如图12.9所示。,图12.9 滤波模块FILTER的内部结构图,对于上述滤波数据的处理,在不采用流水线的情况下,像素从进入处理器到结果输出,需要经过两级加法和一级减法的时延,但是使用流水线技术后(其本质为对中间结果进行寄存),结果输出仅仅滞后三个时钟频率,但是增加了数据吞吐量,同时也提高了时钟频率。为提高加法运算的速度,本设计中的加法器采用超前进位加法器。下面对其作一个简单的回顾: SUM(I)=A(I) XOR B(I) XOR C(I?1) C(I)=(A(I) AND B(I) ) OR (A(I) XOR B(I) AND C(I?1) 令 P(I)=A(I) XOR B(

12、I); G(I)= A(I) AND B(I),其中P(I)、G(I)均与进位信号无关,则SUM(I)与C(I)可表达为 SUM(I)=P(I) XOR C(I?1); C(I)=G(I) OR (P(I) AND C(I-1),5. 数据处理模块PROCESSOR 数据处理模块PROCESSOR的主要功能是求出四个方向的图像梯度数据绝对值的最大值,同时判别最大值出现的方向。其内部结构如图12.10所示, 它包括滤波器FILTER、比较器COMPARE、边界判断器RESULT和寄存器等。,图12.10 数据处理模块PROCESSOR的内部结构图,12.3 主要LPM原理图和VHDL源程序,12

13、.3.1 LPM兆功能块定制方法简介 LPM模块的使用方式有两种:原理图调用方式和VHDL文本调用方式。下面以一个先进先出的存储缓冲器MYFIFO的设计为例介绍一下LPM兆功能块的定制方法。,1原理图调用方式 先进入原理图编辑窗,再调入需使用的兆功能块(LPM_FIFO)(如图12.11所示),鼠标双击调出的兆功能块右上角的参数显示文字,然后在弹出的端口/参数编辑窗中,设定(Used)本设计要用的端口,去掉(Unused)本设计不用的端口,并对于一些需设定参数的端口,选择合适的参数(如图12.12所示)。这时基于兆功能块MYFIFO就已经定制好(如图12.13所示),在后面的设计中即可作为一个

14、元件进行调用。,图12.11 调用兆功能块示意图,图12.12 兆功能块端口/参数设定示意图,图12.13 定制好的兆功能块示意图,2VHDL文本调用方式 首先进入MAX+plus 兆功能块定制管理器(如图12.14所示),并选择生成或修改一个定制的兆功能块(如图12.15所示);其次选择定制的功能块名称LPM_FIFO,输出文件的格式VHDL,输出文件的路径及文件名等(如图12.16所示);接着进行数据参数选择(如图12.17所示)、端口设置选择(如图12.18所示)、数据输出控制选择(如图12.19所示)、优化方式选择(如图12.20所示)等;最后单击“Finish”即完成了MYFIFO.

15、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 (本程序已去掉程序前后的说明注释)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MYFIFO ISPORT(DATA:IN STD_LOGI

16、C_VECTOR (7 DOWNTO 0); WRREQ:IN STD_LOGIC ; RDREQ:IN STD_LOGIC ; CLOCK:IN STD_LOGIC ; Q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0); FULL:OUT STD_LOGIC ; EMPTY:OUT STD_LOGIC );,END MYFIFO;ARCHITECTURE SYN OF MYFIFO ISSIGNAL SUB_WIRE0:STD_LOGIC ;SIGNAL SUB_WIRE1:STD_LOGIC_VECTOR (7 DOWNTO 0);SIGNAL SUB_WIRE2:S

17、TD_LOGIC ;COMPONENT LPM_FIFOGENERIC (LPM_WIDTH:NATURAL;LPM_NUMWORD:NATURAL;LPM_WIDTHU:NATURAL;LPM_SHOWAHEAD:STRING;LPM_HINT:STRING);PORT (RDREQ:IN STD_LOGIC;,EMPTY:OUT STD_LOGIC; CLOCK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0); WRREQ:IN STD_LOGIC; DATA:IN STD_LOGIC_VECTOR (7 DOWNTO 0); FULL:

18、OUT STD_LOGIC);END COMPONENT;BEGINEMPTY = SUB_WIRE0;Q = SUB_WIRE1(7 DOWNTO 0);FULL 8, LPM_NUMWORDS = 4, LPM_WIDTHU = 2, LPM_SHOWAHEAD = OFF, LPM_HINT = USE_EAB=ON, MAXIMIZE_SPEED=5)PORT MAP (RDREQ = RDREQ, CLOCK = CLOCK, WRREQ = WRREQ, DATA = DATA, EMPTY = SUB_WIRE0, Q = SUB_WIRE1, FULL = SUB_WIRE2)

19、;END ARCHITECTURE SYN;,12.3.2 一些模块的LPM原理图 FIFO模块由定制的LPM模块CSFIFO、LPM_FF,标准元件AND2、NOT以及用VHDL编程编译后生成的二进制计数器COUNTER2构成,如图12.22所示。 SIPO的LPM原理图如图12.23所示。REFRESH的LPM原理图如图12.24所示。 FILTER的LPM原理图如图12.25(略)所示。PROCESSOR的LPM原理图如图12.26 (略)所示。,图12.22 FIFO的原理图,图12.23 SIPO的原理图,图12.24 REFRESH的原理图,12.3.3 RESULT的VHDL源程

20、序 边界判断器RESULT模块是数据处理模块PROCESSOR内部的一个子模块,其功能就是根据区分度阈值、四个滤波器的输出及其最大值进行边界的判断。其输入、输出端口如图12.27所示。,图12.27 RESULT模块的输入、输出端口图,VHDL源程序如下。-RESULT.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY RESULT IS GENERIC(SIZE:INTEGER:=11); PORT(CLK:IN STD_LOGIC; H, V, DR, DL:IN STD_LOGIC_VECTOR(SIZE DOWNTO 1); THRE

21、SHOLD:IN STD_LOGIC_VECTOR(8 DOWNTO 1); MAX:IN STD_LOGIC_VECTOR(SIZE DOWNTO 1);,MAGOUT:OUT STD_LOGIC; DIR:OUT STD_LOGIC_VECTOR(3 DOWNTO 1);END ENTITY RESULT;ARCHITECTURE ART OF RESULT IS BEGIN PROCESS(CLK, THRESHOLD) BEGIN IF(CLKEVENT AND CLK=1) THEN IF(MAX(SIZE-1 DOWNTO 1)00,ELSIF(MAX=H AND H(SIZE)=

22、1) THEN DIR=100; ELSIF(MAX=V AND V(SIZE)=0) THEN DIR=010; ELSIF(MAX=V AND V(SIZE)=1) THEN DIR=110; ELSIF(MAX=DR AND DR(SIZE)=0) THEN DIR=001; ELSIF(MAX=DR AND DR(SIZE)=1) THEN DIR=101; ELSIF(MAX=DL AND DL(SIZE)=0) THEN DIR=011; ELSIF(MAX=DL AND DL(SIZE)=1) THEN DIR=111; END IF; ELSE MAGOUT=0;DIR DAT

23、2(SIZE-1 DOWNTO 1) ) THEN MAX=DAT1; ELSE MAX=DAT2; END IF; END PROCESS;END ARCHITECTURE ART;,12.3.5 系统的总体组装设计 请读者根据图12.5的总体结构图自行完成。,12.4 系统仿真/硬件验证,12.4.1 系统的有关仿真 1FIFO的仿真 (1) 仿真激励源:同步时钟CLK,写使能WE,八位数据输入端口DATA; (2) 仿真期望结果:当主处理器向FIFO写完一帧像素点数据后,READY信号输出值为零,同时,FIFO封锁输入通道,外部数据不能再写入FIFO。,(3) 仿真结果及分析:FIFO的

24、仿真结果如图12.29所示。从图中可以看出,主处理器写完四个像素点数据后,Q8.1按照先入先出的顺序,逐个输出获取的像素数据12、13、14。,图12.29 FIFO的仿真结果,2SIPO的仿真 (1) 激励源:同步时钟及外部输入像素的灰度信息。 (2) 期望结果:把串行数据转换为并行数据,而且输出的并行数据必须保持到第三个串行数据输入的时刻以前。 (3) 仿真结果及分析:SIPO的仿真结果如图12.30所示。由图中可以看出,如我们将串行数据每三个划分为一段,QA、QB、QC恰好是这一段的并行输出,符合设计期望。,图12.30 SIPO的仿真结果,3REFRESH的仿真 REFRESH模块在系

25、统中的主要作用是实现像素处理窗口的更新。在每一时钟上升沿,并行提供三个输入像素。 (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所示。如波形图中箭头所示,该模块同时实现了并行

26、输入、同步移位寄存、并行数据输出功能,符合设计期望。,图12.31 REFRESH的仿真结果,4FILTER的仿真 滤波器的本质是实现并行流水加法操作。在调试过程中,为了观察到实际的延时,输出信号直接来自流水加法器的输出,而非流水寄存器输出。所以存在部分毛刺。 (1) 激励源:同步时钟(CLK)及并行像素输入(QA, QB, QC, QD, QE, QF)。 (2) 期望结果:输出的数据之间满足Sobel滤波关系式。 (3) 仿真结果及分析:图12.32是它的仿真波形,由图中可以看出:,DATA19.11=QA+QB;DATA29.21=QB+QCDATA39.31=QD+QE;DATA49.

27、41=QE+QFDATB110.1=DATA19.11+DATA29.21DATB210.1=DATA39.11+DATA49.41RESULT=DATB110.1-DATB210.1,图12.32 FILTER的仿真结果,5. RESULT及COMPARE的仿真 RESULT的仿真结果如图12.33所示;COMPARE的仿真结果如图12.34所示。,图12.33 RESULT的仿真结果,图12.34 COMPARE的仿真结果,6PROCESSOR的仿真 图12.35是PROCESSOR的仿真图,我们先计算图中四个方向滤波器的绝对值大小: H_FILTER=422;V_FILTER=1950?

28、1024=926 DR_FILTER=242;DL_FILTER=478 四者中的绝对值最大值是926,故最大的为V_filter。观察箭头所指的部分,正好为V_filter的值1950。经过验证,上述图中的所有输出满足输出期望。,图12.35 PROCESSOR的仿真结果,12.4.2 系统的硬件验证 请读者根据自己所拥有的EDA实验开发系统自行完成。,12.5 设计技巧分析,(1) 本设计对于一些图像处理硬件的设计有较好的参考价值,特别是对并行流水技术、数据刷新技术分析得比较细致。 (2) 几乎所有的CPLD/FPGA供应商提供的软件开发工具中都会提供许多已经设计好的单元电路库,特别是ALTERA的开发软件提供的LPM_MEGAFUNCTION参数化设计库。,12.6 系统扩展思路,该系统设计好后,可与DSP主处理器及其他相关设备进行联合调试,并测试有关结果。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 校园应用

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com