【FPGA/图像处理】局部滤波器-二值模板匹配

少女dtysky

世界Skill

时刻2015.05.25

图像处理理系列文章基本都是我本科毕设论文同步发布,这个项目以LGPL许可被发布在F-I-L。二值模板匹配也可以看做是一种形态学操作,比起腐蚀膨胀它的目的更为极端和明确,如果一个窗口与模板完全一致,则保留中心像素,否则消除。这种效果适用于一些细化算法[21,24],比如在某些迭代算法中作为最后迭代结束的一个参照。本节将会说明一个二值模板匹配模块的实现。
这个IP核的资源在这里:
MatchTemplateBin


3 算法实现

明确了设计和架构,便可以进行算法的实现。本章将会说明如何实现图像处理的算法,以及如何运用它们。

3.14 局部滤波器-二值模板匹配

二值模板匹配也可以看做是一种形态学操作,比起腐蚀膨胀它的目的更为极端和明确,如果一个窗口与模板完全一致,则保留中心像素,否则消除。这种效果适用于一些细化算法[21,24],比如在某些迭代算法中作为最后迭代结束的一个参照。本节将会说明一个二值模板匹配模块的实现。

3.14.1 原理

二值模板匹配的基本原理很简单,如式3-14-1所示,如果窗口和模板完全一致,则中心像素保留,否则置0,效果如图3-14-1。

Q=i,jTI[x+i,y+j]        (3141)Q=\bigwedge_{i,j \in T}I[x + i, y + j]\ \ \ \ \ \ \ \ (3-14-1)

图3-14-1 模板匹配效果
图3-14-1 模板匹配效果

3.14.2 设计

根据原理可知,MatchTemplateBin核(以下简称MTB核)需要的配置参数和端口如表3-14-1与表3-14-2。

名字 类型 范围 默认值 说明
work_mode 无符号 0为流水线模式,1为请求响应模式 0 工作模式
window_width 无符号 2 - 15 1 窗口宽度和高度。
表3-14-1 配置参数


名字 端口 类型 范围 默认值 说明
clk 输入 无符号 Clock.
rst_n 输入 无符号 复位,低有效。
template 输入 无符号 window_width * window_width - 1 : 0 用于操作的模板。
in_enable 输入 无符号 输入数据使能,在流水线模式下,它是另一个复位信号,在请求响应模式下,只有在它有效的时候in_data才会被真正地改变。
in_data 输入 无符号 color_width * in_window_width * in_window_width - 1 : 0 输入数据,必须和in_enable同步输入。
out_ready output 无符号 输出数据有效,在两种模式下,这个信号都会在out_data可以被读取的时候有效。
out_data output 无符号 color_width - 1 : 0 输出数据,将会和out_ready同步输出。
表3-14-2 端口

3.14.3 实现

根据3.14.2的设计便可以实现一个MTB核,流水线模式和请求响应模式实现如下。

3.14.3.1 流水线模式

输入使能后1个周期第一个结果被输出,开始流水化工作,波形如图3-14-2。

图3-14-2 流水线模式时序
图3-14-2 流水线模式时序

3.14.3.2 请求响应模式

基本与3.14.3.1一致,但只有in_enable的上升沿时才会有窗口被输入,波形如图3-14-3。

图3-14-3 请求响应模式时序
图3-14-3 请求响应模式时序

3.14.3.3 IP核GUI

完成功能后对MTB核进行了封装,封装如图3-14-4。

图3-14-4 MTB核的GUI
图3-14-4 MTB核的GUI

3.14.4 仿真

MTB核只对二值图像有意义,我选取了两张二值图像闭运算的二值图像作为仿真源,分别测试了两套模版,原始图像如图3-14-5。

图3-14-5 原始测试图像
图3-14-5 原始测试图像

使用HDL功能仿真和软件仿真的结果进行PSNR的计算,仿真结果如图3-14-6所示。

图3-14-6 仿真结果
图3-14-6 仿真结果,左侧为流水线模式下的HDL功能仿真结果,中间为请求响应模式下的HDL功能仿真结果,右侧为软件仿真结果

仿真结果的清晰图像如图3-14-8,可见模板匹配在适当的情况下的确可以满足一些效果。

图3-14-7 部分仿真结果
图3-14-7 部分仿真结果,左侧为模板为000010000,右侧为111111111

3.14.5 资源和时序

最终实现与窗口大小关系很大,此处只对窗口为3x3的状况分析,根据Vivado生成的报表,主要资源耗费如表3-14-3。

Slice LUTs* Slice Registers
5 2
表3-14-3 主要资源耗费

同时根据时序报告,最大的Data Path Delay(数据路径延迟)为2.199ns,即:

FMax = 454.75MHz

即说明,MTB核在流水线模式下,理论上在处理1080p全高清图像时可以达到219帧。
由于数据路径延迟和应用的最终约束设置强相关,所以仅供参考。

3.14.6 分析与结论

PSNR如表3-14-5。

1-000010000 1-111111111 2-000010000 2-111111111 Total
1000000.00 1000000.00 1000000.00 1000000.00 1000000.00
表3-14-5 PSNR

PSNR均值为最大值,MTB核与软件等效,同时可以达到很高的FMax,设计成功。


参考文献

[21] 施启乐,王从军,黄树槐等.数学形态学图像细化算法在RE中的应用研究[J].华中科技大学学报(自然科学版),2004,32(7):37-39.DOI:10.3321/j.issn:1671-4512.2004.07.013.
[24] 曹玉龙. 线划图像的细化算法研究[D].长安大学,2011.


感谢

仿真图像来源:
LM7-アイカツ
ぜろきち-Blue star

如果不是自己的创作,少女是会标识出来的,所以要告诉别人是少女写的哦。