当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]图像匹配指在已知目标基准图的子图集合中,寻找与实时图像最相似的子图,以达到目标识别与定位目的的图像处理技术。由于归一化互相关算法的实现方案简单,对灰度值的线性变化具有适应性、抗白噪声能力强,以及匹配性能稳定的特点,已成为图像匹配技术中应用最为广泛的匹配算法。该算法不仅可以应用于民用图像处理技术领域,也可以应用于SAR成像和红外成像制导系统等军事领域当中。虽然归一化互相关算法的匹配能力强,性能稳定,但该算法的计算量较大,不易应用于实时系统当中。针对这一现象,讨论了一种基于ADSP-TS201处理器,在保证全

0 引言

图像匹配指在已知目标基准图的子图集合中,寻找与实时图像最相似的子图,以达到目标识别与定位目的的图像处理技术。由于归一化互相关算法的实现方案简单,对灰度值的线性变化具有适应性、抗白噪声能力强,以及匹配性能稳定的特点,已成为图像匹配技术中应用最为广泛的匹配算法。该算法不仅可以应用于民用图像处理技术领域,也可以应用于SAR成像和红外成像制导系统等军事领域当中。虽然归一化互相关算法的匹配能力强,性能稳定,但该算法的计算量较大,不易应用于实时系统当中。针对这一现象,讨论了一种基于ADSP-TS201处理器,在保证全图遍历条件下,使用递推与多模板思想构建的归一化互相关快速算法。实验证实,该快速算法在保证算法性能的同时,有效地提高了算法的执行效率。

l 归一化互相关算法实现过程分析

归一化互相关算法是基于灰度图像匹配技术中最为经典的算法,具有抗白噪声能力强,匹配准确性高的突出特点,但该算法的计算量较大,严重影响了算法应用的实时性。

设F(x,y)为一幅M×N的基准图像,B(x,y)是一幅m×n的实时图像、Sx,y是一幅与实时图像做互相关运算的匹配子图,且m<M,n<N。

标准归一化互相关算法计算公式如下:

观察上述公式可知,对应数据的减法运算、乘法运算和累加运算占据了标准算法中绝大部分的计算量。针对TS20l处理器,可以借助其宽总线、大内存及并行指令的特点实现图像数据的高速存取和并发计算,提升标准算法的执行效率,但该处理器仅支持32位取值,计算单元不支持8位数据乘法的特性,也给提升标准算法的执行效率带来了一定的限制。实验发现,导致TS201执行归一化互相关算法效率下降的主要原因有两个:一个是标准算法本身计算量庞大;另一个是处理器32位取值的特性使匹配子图数据的获取困难。

2 递推多模板方案快速算法

2.1 递推方案

递推多模板方案快速算法首先要解决的问题就是归一化互相关算法本身计算量庞大的问题。观察式(1)可知,式(2)为匹配子图与实时图协方差计算过程,式(3)为匹配子图方差的计算过程,式(4)为实时图的方差计算过程。对于实时图的方差计算部分,在整个匹配过程中只需要计算一次,而对于匹配子图的方差计算和两张图像的协方差计算则需要多次重复执行,共需要约(M-m)x(N-n)×3×m×n次加乘计算,计算量庞大。本文采用匹配子图递推方案来减少计算量。

结合实际图像,最大互相关算法实际是将实时图在匹配基准图像上做逐点逐行平移,并与其覆盖的匹配子图做相关运算,求取相关系数并比对,以获取最佳匹配位置。在实时图平移的过程中,其覆盖的新匹配子图数据遵循如下递推原则:

(1)当实时图进行水平平行移动时,因Sx,y+1是Sx,y在基准图中右移1列的位置所对应的新匹配子图,即Sx,y+1的前n-1列是Sx,y的后n-1列,有:

(2)当实时图进行垂直平行移动时,因Sx+1,y是Sx,y在基准图中下移1行的位置所对应的新匹配子图,即Sx+1,y的前m-1行是Sx,y的后m-1行,有:

利用此递推原则,可以将归一化互相关式中的式(3)进行简化。观察式(3)中数据计算结果是以各个数据平方和的累加形式出现的,所以先将式(5)和式(6)进行平方运算,得到对应的式(7)和式(8)。

使用式(7)和式(8)对式(3)进行变换,得到全图遍历过程中使用的匹配子图递推方差计算:

在全图遍历的过程中,式(9)每次需要得到的计算结果只是在上次累加结果的基础上,减去移出数据的累加值和增加移人数据的累加值,中间重复数据的累加结果不再重复计算,从而减少了计算量。匹配子图递推方案将会使单次子图方差计算的计算量由2×m×n次加乘减少至2×m或者2×n次加乘。

2.2 多模板方案

递推多模板方案的快速算法需要解决的另一个重要问题是匹配子图的数据准备问题。有两个不利因素导致产生此问题,一个是匹配子图数据准备过程重复进行(M-m)×(N-n)次,占据了大量处理时钟;另一个由式(2)的分析可知,算法运行过程中,每次相关匹配运算需要将实时图数据块与匹配子图数据块中的像素一一对应进行乘法运算。由于TS201自身只支持32位取值(字取值),所以无法将直接获取数据的方法获得的起始像素不位于字首的匹配子图数据块用于计算,也即不能利用DMA使用双缓冲的常规方式准备数据。

本文采用多模板计算方案来解决匹配子图数据的准备问题。

多模板计算方案首先将处理器定位于4字取值工作模式,加载并行指令,使处理器的计算能力最大化;其次将实时图予以适当的横向放大,构建多个与匹配子图等高的大实时图块,并分别在大实时图块范围内将真实实时图像数据进行逐点平移,与预匹配子图像素相对应,非真实实时图像素位置零,如图1、图2所示。

以图2为例,上半部分图像为构建的大实时图块,大实时图块中连续像素“4”点集为起始像素不位于字位上的真实模板图像;下半部分图像为大实时图块对应的大匹配子图,大匹配子图中连续像素“4”点集为真实实时图对应的起始像素不位于字位上的真实匹配子图。将这两个扩大后的数据块各个像素对应相乘并累加,其结果即为真实实时图与真实匹配子图对应像素的乘累加结果。这样做不仅建立了两个图像数据块各个像素间的对应相乘关系,而且也解决了起始像素不位于字位数据块的数据获取问题。

构建的这些大实时图块可直接与基准图像上对应的放大子图进行相关计算,省去匹配子图数据的重复准备过程,以适当增加计算量的方式消去了多次重复数据准备占用的处理周期。配合4字处理工作模式,只需在算法运行的初期一次性地构建16个(m+16)×n的大实时图块,即可与全部匹配子图进行相关运算,而原有的匹配子图数据准备模式则需要构建(M-m)×(N-n)个m×n像素的图像块。

3 实验结果

对使用汇编语言和递推多模板方案构建的归一化互相关快速算法进行测试。输入由红外图像拉伸而来的128×128像素的8位基准图像和64x 64像素的实时图像,如图3所示。

使用TS201处理器的运行快速算法。可以精确获得实时图像匹配坐标,运算时间统计结果见表l。

4 结语

结合ADSP-TS201处理器特性,构建了递推多模板最大互相关快速算法。实验证明,该快速算法较常规算法的执行时间明显缩短,执行效率提升较高。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭