第12章 图像边缘检测器的设计与
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DL=(Q1+Q2+Q2+Q5)? (Q3+Q6+Q6+Q7)
第12章
图像边缘检测器的设计与分析
12.2.3 总体设计方案 根据图像处理的知识及分析,我们可得到此边缘检
测处理器的工作流程如图12.4所示。首先,DSP将从图
像传感器中获取的灰度图(800×600)按照每三列划分为 一帧的原则进行帧窗口划分。帧窗口的图形数据又按照
2.串入并出模块SIPO 串入并出模块的主要功能是负责一列像素的刷新, 也就是把主处理器传送过来的像素值转换成3×3像素 窗口的一列。该模块的实现主要是通过六个D触发器和 一个三进制的计数器组成,当计数器产生进位溢出时, 串行输入的三个像素点并行输出。其内部结构如图12.7 所示。
第12章
图像边缘检测器的设计与分析
第12章
图像边缘检测器的设计与分析
第12章 图像边缘检测器的设计与分析
12.1 系统设计要求 12.2 系统设计方案
12.3 主要LPM原理图和VHDL源程序
12.4 系统仿真/硬件验证
12.5 设计技巧分析
12.6 系统扩展思路
第12章
图像边缘检测器的设计与分析
12.1 系统设计要求
在嵌入式图形系统处理领域,图像处理的速度问 题一直是一个很难突破的设计瓶颈。一般情况下,控 制领域及数据处理领域几乎是单片机和数字信号处理 器的天下,但是在数据处理量大,实时性要求更为苛 刻的场合,传统的MCU根本无法适应实时大批量数据 处理场合,而DSP虽然具备指令流水线和很高的处理 速度,但是由于其本质仍然是依靠串行执行指令来完 成相应的图像处理算法的,所以其处理速度依然很受 限制。
界判别,并把处理结果返回到主处理器中。
第12章
图像边缘检测器的设计与分析
FPGA/CPLD 边缘检测协处理器
图像传感器 (CCD或CMOS)
像素获取
模式识别
速度计算
位置跟踪
DSP图像主处理器
图12.1 DSP+FPGA/CPLD图像处理系统的组成框图
第12章
图像边缘检测器的设计与分析
在本系统中,系统的设计指标为:数据吞吐量>10 Mb/s;动态响应时间<100 ms/frame。主处理器初步选 用德州公司的DSP芯片TMS320C5402,协处理器拟采 用ALTERA公司的FLEX10K20。图像处理系统的接口 关系如图12.2所示,其中FLEX10K20的接口说明如下: DATA:8位数据输入端口。 WR:写有效信号输入端口。 CLK:同步时钟输入端口。
并行流水方案,其内部结构如图12.9所示。
第12章
图像边缘检测器的设计与分析
CLKQA(Q0) QB(Q3) QC(Q6) QD(Q2) QE(Q5) QF(Q8) + D0 Q0 + D0 Q0 - FILTER(H_FILTER) Q1 + D1 Q1 + D2 Q2 + D1 + D3 Q3
拟选用FIFO,堆栈空时向主机发出准备好信号,主机
检测到它的数据传输请求时,传送一帧数据,由于 FIFO的大小与一帧图像的大小是一致的,所以接收完
毕后,堆栈满,Sobel处理器启动边缘检测进程,处理
完一帧数据后,堆栈重新变为空,为下一帧数据处理 作准备。其内部结构如图12.6所示。
第12章
图像边缘检测器的设计与分析
图12.2 图像处理系统接口关系图
第12章
图像边缘检测器的设计与分析
12.2 系统设计方案
12.2.1 算法选择 图像处理经常用于在连续图像中跟踪移动物体。 它从传感器接收图像的连续流,根据输入图像的数据 选择跟踪物体。初始图像不断被加强,然后进行分割, 以定位物体或找出感兴趣的区域。定位物体或区域后,
像的边界处理。 MAGOUT:像素边界判别信号输出,MAGOUT
为1时,表示当前像素为边界像素,为0表示为非边界
像素。
第12章
图像边缘检测器的设计与分析
CCD
Driver
D8~D15
D0~D7 WR
INT0
DATA WR READY FLEX10K20 CLK T_D CS MAGOUT
TMS320C5402 CLKOUT Executor (Buffered Serial Port) BSP A14 A15
数据刷新处理。
像素窗口刷新模块(REFRESH)实现对需要处理的 像素数据的刷新。
数据处理模块(PROCESSOR)是本图形边缘处理器
的核心部分,主要是实现Sobel算法,其性能的好坏对 整个设计的成败有着关键的作用。
第12章
图像边缘检测器的设计与分析
REG1 T_D DATA 8 WR CLK FIFO DATA REG2 WR READY Q SIPO PIXEL CLK QA QB QC REFRESH Q0 Q1 DATA0 Q2 DATA1 Q3 Q5 DATA2 Q6 Q7 CLK Q8 PROCESSOR THRESHOLD Q0 Q1 Q2 Q3 MAGOUT Q5 Q6 Q7 Q8 CLK
图12.9 滤波模块FILTER的内部结构图
第12章
图像边缘检测器的设计与分析
对于上述滤波数据的处理,在不采用流水线的情 况下,像素从进入处理器到结果输出,需要经过两级 加法和一级减法的时延,但是使用流水线技术后(其本 质为对中间结果进行寄存),结果输出仅仅滞后三个时 钟频率,但是增加了数据吞吐量,同时也提高了时钟 频率。为提高加法运算的速度,本设计中的加法器采 用超前进位加法器。下面对其作一个简单的回顾:
第12章
图像边缘检测器的设计与分析
Q0 Q3 Q6 Q2 Q5 Q8 Q0 Q1 Q2 Q6 Q7 Q8 Q1 Q0 Q3 Q5 Q8 Q7 Q1 Q2 Q5 Q3 Q6 Q7
FIFO WR DATA WR Data_ o u t RD Emp ty Data_ in CLK* 2 CLK CLKCO COUNTER2 CLK Fu ll Q
VCC DCLR Q CLK
READY
PROCESS_ EN
图12.6 帧窗口接收模块FIFO的内部结构图
第12章
图像边缘检测器的设计与分析
图像边缘检测器的设计与分析
Q0 Q1 Q2
Q3 [i , j ] Q5
Q6 Q7 Q8
图12.3 像素窗
第12章
图像边缘检测器的设计与分析
水平、垂直、左对角、右对角各图像方向上密度
幅度的变化可以用如下算子进行计算: H=(Q0+2Q3+Q6) ? (Q2+2Q5+Q8) V=(Q0+2Q1+Q2) ? (Q6+2Q7+Q8) DR=(Q1+2Q0+Q3) ? (Q5+2Q8+Q7)
SUM(I)=P(I) XOR C(I?1); C(I)=G(I) OR (P(I) AND C(I-1))
第12章
图像边缘检测器的设计与分析
5. 数据处理模块PROCESSOR
数据处理模块PROCESSOR的主要功能是求出四 个方向的图像梯度数据绝对值的最大值,同时判别最 大值出现的方向。其内部结构如图12.10所示, 它包括滤 波 器 FILTER 、 比 较 器 COMPARE 、 边 界 判 断 器 RESULT和寄存器等。
DL=(Q1+2Q2+Q5) ? (Q3+2Q6+Q7)
H、V、DL、DR这四个参数用于计算梯度大小和方向。 对梯度大小的一个普遍估计值为: Magnitude=Max(H, V, DR, DL)
第12章
图像边缘检测器的设计与分析
12.2.2 算法实现 由前面所述可知,Sobel的滤波函数为
H=(Q0+2Q3+Q6) ? (Q2+2Q5+Q8);
检查出可以最终划分物体的特征。
第12章
图像边缘检测器的设计与分析
Sobel算法包括带4个3×3掩码的输入图像数据, 即Sobel算子,它设置权重来检测水平、垂直、左对角、 右对角各个不同方向上密度幅度的不同。这个过程通 常被称为过滤。下面我们来看一个3×3的像素窗口, 如图12.3所示。
第12章
每三行划分为一个像素处理窗口的原则逐一进行处理。
第12章
图像边缘检测器的设计与分析
…
水平滤波器 存储器 缓 冲 像素处 理窗口 垂直滤波器 左斜角滤波器 右斜角滤波器 输出处 理模块
图12.4 图像处理流程示意图
…
第12章
图像边缘检测器的设计与分析
根据以上设计思路,我们可把整个系统的实现划 分为四个大的模块,其总体结构如图12.5所示。其中:
PIXEL
D
Q
D
Q
D
Q
CLK D COUNTER3 Q Q Q D D
QA
QB
QC
图12.7 串入并出模块SIPO的内部结构图
第12章
图像边缘检测器的设计与分析
3.像素窗口刷新模块REFRESH 像素刷新窗口的主要功能是接收串入并出模块的3
个并行像素,把窗口中原有的第二列像素推入第三列,
第一列推入第二列,新到的并行像素填入第一列。其 本质为一个移位寄存器。其内部结构如图12.8所示。
帧窗口接收模块(FIFO)负责接收DSP传送过来的一
个帧窗口的数据,其本质为一个双端口先入先出栈 FIFO,其数据宽度为8,深度等于一个帧窗口内的像素
点个数(600×3=1800)。
第12章
图像边缘检测器的设计与分析
串入并出模块(SIPO)负责把FIFO内的数据转换成 为像素处理窗口的列像素向量,便于像素处理窗口的
第12章
图像边缘检测器的设计与分析
T_D:阈值/像素值选择端口,T_D =1时,表示输
入的数据为像素阈值,为0时表示输入的数据为像素值。 CS:片选信号,低电平有效。 READY:状态查询位,为协处理器“准备好”信 号输出端,低电平有效,当该协处理器处理完一帧图
像后,该信号恢复有效电平,主处理器启动下一帧图
第12章
图像边缘检测器的设计与分析
DATA0 D
Q
D
Q
D
Q
DATA1 D
Q
D
Q
D
Q
DATA2 D
Q
D
Q
D
Q
CLK Q2 Q1Q0 Q5 Q3 Q8Q7Q6
图12.8 像素刷新模块REFRESH的内ຫໍສະໝຸດ Baidu结构图
第12章
图像边缘检测器的设计与分析
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的设计可采用两级
READY
CLK PROCESS_EN CNT3 CO CLK
MAGOUT
图12.5 图像边缘检测器总体结构图
第12章
图像边缘检测器的设计与分析
12.2.4 主要功能模块的设计
1. 帧窗口接收模块FIFO 由于高速设备与慢速设备之间处理速度的差别, 它们之间的数据传输一般采用查询方式或中断方式, 而数据同步传输则选择了帧同步方式。存储器的类型
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)
第12章
图像边缘检测器的设计与分析
为了减少设计的复杂度,上面式子中的乘法运算 可以改写成加法运算: 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);
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(I); G(I)= A(I) AND B(I)
第12章
图像边缘检测器的设计与分析
其中P(I)、G(I)均与进位信号无关,则SUM(I)与C(I) 可表达为
第12章
图像边缘检测器的设计与分析
图12.1是一个DSP+FPGA/CPLD的图像处理系统的 总体框图,其中图像传感器CCD的主要功能是获取外界 图像的各个像素点灰度值;图像主处理器采用数字信号 处理器DSP,主要负责对图像传感器传送的灰度信息进 行存储,并负责调用协处理器进行边界像素判别,找出 我们感兴趣的目标对象,从而得到该对象的运动信息, 以便控制执行装置进行位置跟踪;边缘检测协处理器为 FPGA/CPLD,主要完成主处理器传送过来的像素的边