基于Verilog的模板匹配技术

2017-08-24 02:40宋绪勇陈宇泽
科技创新与应用 2017年21期
关键词:匹配图像处理

宋绪勇+陈宇泽

摘 要:本设计主要针对燃气表、水表等计量表在生产厂家或计量检测单位对其进行质量检验时的流量脉冲数检测环节,即计量表内通过的检测介质的整体积数采样环节。以FPGA为硬件平台,采用硬件描述语言(Verilog)完成软件设计。设计充分利用FPGA并行处理的优势,搭配高速时钟信号,实现了数据流实时处理,克服了传统图像处理响应慢的问题。着重介绍了图像二值化处理,模板采集与储存及模板匹配环节的设计。

关键词:FPGA;Verilog;图像处理;匹配

中图分类号:TP391.41 文献标志码:A 文章编号:2095-2945(2017)21-0043-02

1 总体流程

将装置的摄像头对准计量表盘的某一位数字后,接通电源,装置开始工作如图1所示,系统总体工作流程如下:前端的图像传感器采集到图像信息,经过模块内部的A/D转换,传输到FPGA芯片内部,经过二值化,将图像转换为黑白图片;通过点击功能切换按键,将装置切换到模板存储状态,此时根据图片的像素位置信息,选取指定大小的图像数据,按照顺序存储至SDRAM;點击图像实时对比按键,将装置切换至图像实时比对状态,此时图像传感器采集的图像数据跟存储的模板图像数据进行实时比对,当两个图像满足相似度阈值要求的时候,输出脉冲信号,传送至上位机,表示计量表转了一圈,上位机得到的脉冲数也就是燃气表的整十体积采样值。

2 图像采集

摄像头我们采用的是OV7670摄像头,主要因为它具有640*480的分辨率,性价比高,体积小,工作电压低,适合嵌入式应用;具有标准的SCCB接口,兼容IIC接口,可以输入整帧、子采样、取窗口等方式的各种分辨率8位影像数据;支持图像缩放,具备手动调焦功能。通过OV7670的行输出时序和帧时序图可以看到。在行同步信号HREF为高时,每一个PCLK时钟,输出一个字节。值得注意的是,在RGB565格式中每两个字节组成一个像素(高字节在前,低字节在后),因此每两个时钟信号输出一个像素。当VSYNC为高时,产生一个帧同步信号,因此每产生两个帧同步信号完成一帧数据的传输。这部分的程序和摄像头初始化的程序在市面上已经很成熟,这里直接采用,不再赘述。

3 图像二值化处理

为了便于进一步的图像数据处理,我们首先进行图像数据的二值化。这样做的目的是减少数据量,凸显目标区域的轮廓。实现方法如下:已知图像数据格式为RGB565,计量表盘数字为白色,底色为暗色。当某一像素点为白色时,其R值G值B值应几乎相等,即|R-G|≈0且|G-B|≈0且|R-B|≈0成立,程序实现如下:

if((((sys_data_in[15:11]-sys_data_in[10:6])<3)||((sys_data_in[15:11]-sys_data_in[10:6])>28))&&(((sys_data_in[15:11]-sys_data_in[4:0])<3)||((sys_data_in[15:11]-sys_data_in[4:0])>28))&&((sys_data_in[15:11]+sys_data_in[10:5]+sys_data_in[4:0])>50))

begin data_add <=16'b1111111111111111; end

else begin data_add <=16'd0;End

公式中的3和28是根据大量实验得到的最为合理的阈值选择。

4 模板采集与储存

为保证图像数据处理的快速性,设置了一个大小涵盖数字轮廓的框,只需对框内数据进行采集和储存即可。经过大量测试,最终确定框的大小为200*280。在模板储存方面,经过二值化后,每一个16位图像素点值均为0或1,只需取其中一位即可。因此设置了一个大小为65536的ram来储存模板数据。这部分的signaltap程序仿真如图2所示。从图中可以看到在ram使能信号(ram_enable)为高时,ram内的数据(ram_data)随着时钟信号(ram_clk)存取了1位二值化后的图像数据(data_add),同时ram地址(ram_waddr)叠加。仿真符合预期效果。

5 模板匹配

在SDRAM_CTRL内主要完成SDRAM的初始化和图像数据的写读操作,初始化包括时钟,使能,片选,行列地址等信号。由于摄像头和显示屏对数据速度要求不一样,SDRAM在这里起到数据缓冲作用。从SDRAM中读出的图像数据经过处理后与模板数据进行匹配,当满足一定阈值时,输出脉冲信号,表示当前图像与模板匹配。匹配算法设计如下:将检测初始时刻定为相似度由符合条件变为不符合条件的下降沿时刻,将数字表盘转动一圈后输出信号的时刻也定为相似度由符合条件变为不符合条件的下降沿时刻。中间的时间间隔就是表盘转动一圈再次达到初始位置所需的时间。同时发现将阈值设为88%时结果最为理想。这部分仿真如图3所示。从图中可以看出,当相同像素数量达到199*279*0.88=48858(199和279为框内数据行列数)时,输出信号(LED[0])变高,仿真符合预期效果。

6 结束语

相比于传统在计算机上建立滚轮数字模板库进行数字识别的方法,这种模板匹配方法与数字无关,只比较图像是否高度相似,不用考虑数字识别是否准确,图像初始位置不论在何处都可任意选取,实现了模板多样化,可以更多的应用到图像重复性检测领域。就系统响应速度而言,由于采用了数据流处理,所有数据均在FPGA内部完成,系统响应更快,抗干扰能力更强。

参考文献:

[1]夏宇闻.Verilog数字系统设计教程[J].单片机与嵌入式系统应用,2003(6):51.

[2]柴震海.图像并行处理技术[J].红外,2005(3):27-33.

[3]王德胜,康令州.基于FPGA的实时图像采集与预处理[J].电视技术,2011,35(3):32-35.

[4]付昱强.基于FPGA的图像处理算法的研究与硬件设计[D].南昌大学,2006.

[5]延明.FPGA在数字图像处理中的应用[J].电子技术,2005,32(1):76-78.

猜你喜欢
匹配图像处理
“课程思政”视域下职业学校《图像处理》课程教学改革实践
构建《Photoshop图像处理》课程思政实践教学路径的探索
基于图像处理与卷积神经网络的零件识别
基于新一代信息技术的Photoshop图像处理课程开发与建设
中职学生职业性向测评维度与就业岗位匹配研究
基于新型双频匹配电路的双频低噪声放大器设计
工程车辆柴油机与液力变矩器的功率匹配及优化分析
气质类型在档案工作中的应用