我对SSDA方法的理解

来源:互联网 发布:windows平板电脑哪个好 编辑:程序博客网 时间:2024/06/07 18:10

SSDA序贯相似性检测算法


 SSDA是一种基于模板匹配的图形匹配算法,目前的匹配方法主要有,基于灰度相关的匹配,基于特征的匹配灯。
优点:方法简单,抗干扰性能好,易于硬件实现。
缺点:计算量大。
所以该文章通过一系列方法来改进算法。


基本的SSDA算法


目标图像记为S,大小为K*L,待搜索图像记为W,大小为M*N。匹配时选择目标图像的左上角为参考点,当前待匹配点位于W上的(u,v)处时,在W中所选取的待匹配区域是以点(u,v),(u,v+L-1),(u+K-1,v),(u+K-1,v+L-1)组成的区域。相当于参考点位置(i,j)的点的匹配误差定义为:



  在目标图像和带匹配区域中随机抽取n个点,计算这些点引起的误差和序列,记为:




与预先设定好的一个阈值进行比较,如果大于这个阈值的话,结束这个待匹配点的匹配过程,记下当前的k值。

如果小于这个阈值的话,则抽取下一个点做计算。直到大于这个阈值,或者k=n,记下k值。

阈值的设定,最大匹配点数n=150.


对不同的待匹配点进行上述匹配计算,最后取最大k值对应的待匹配点位置,认为这就是需要找的匹配点。


改进的SSDA算法


减少噪声的影响


在每个带匹配区域中,计算第k点的误差时,首先将计算结果与预定义的噪声阈值T2比较,如果大于该阈值,则认为词典产生的误差是由于噪声引起的,将该点结果丢弃,不加入误差和中,但要对此噪声点计数。如果在一个待匹配区域内噪声计数值超过预定义的噪声计数阈值T3,则停止本次计算,记录下本次的k值。


如果第k点的误差小于T2时,则认为此时的误差不是由于噪声而引起的,沿用原来的基本的SSDA算法。



进行梯度处理
由于在一些非匹配点中,但图像中相似部分比较多的时候,一些点之间的误差可能会相当小,在该点处停止计算的时间将往后退,道济计算量大规模的增大。
所以采用梯度处理的方法,首先分别计算目标图像和待搜索图像的灰度梯度,并以阈值T1对他们进行量化处理,大于阈值的为1,小于阈值的为0.其中点1的为图像的特征点,然后随机抽取部分特征点对图像进行匹配。


算法基本流程


计算目标图像与待搜索图像各自某个方向的图像梯度。
选取用于计算误差的点:将梯度图像中梯度大于阈值T1的点作为计算匹配误差的特征点,在其中随机抽取n点,为了保证匹配算法的准确性,所取得的数目占模板内总点数的比例不能太小。
设置待匹配点(u,v)=(0,0)
初始化设置:k=1,e(u,v,0)=0

计算,如果小于噪声阈值  ,进行下一步


结合金字塔法


把模板图像和目标图像进行等比例降采样,一般根据图像具体分辨率定。最多8倍降采样,2倍为一个单位。
从最小分辨率开始进行SSDA算法。
但因为分辨率较低可能只能得出几个粗匹配位置,所以在上一层分辨率上对应的一个或多个粗匹配位置附近进行,获得概率更大的几个采样点。
依次类推下,直到最大分辨率 S0,即整个匹配过程结束。
比较各个k,支出最大k值对应的位置(u,v),这就是要找到的匹配点。

效果

结果:


模板:



0 0
原创粉丝点击