最近一直在研究模板匹配方法的过程,起先一直对模板匹配的过程不能够有一个充分的理解,开始时是对模板序列和样本序列的组织不能够理解,后期又是对其中的关系不能够有清醒的认识,再之后又对Bellman的最优化原理不能够很好的理解,总之是没完没了的看书,找方法。现在对这个过程做一个个人的总结:
一、基于最优路径搜索技术的侧度
在我进行的工作当中主要是针对相对简单的测试样本波形和参考模板波形进行对比,获取他们的匹配程度。
。(如何能够使两个序列依据最小路径进行转换还没有找到明确的方法)也就是说,在模板匹配的第一前提是获取当前两个序列的最优路径,从而获得测试样本与参考模板的完整对应序列。
2、为了获得可能的最优路径,必须寻找所有可能的路径,这可是一个力气活,计算量会是非常高。在实际的应用中会利用Bellman原理的动态规划算法来解决计算量的问题。Bellman的基本原理是:经过(i,j)的从(i0,j0)到(if,jf)的最优路径是一条由原点(0,0)到结点(i,j)到终点(if,jf)的最优路径的串联。
原则确定好了之后我可以使用全局约束定义和局部约束来搜索各个结点,而不是全部搜索所有的结点,只是在各个节点的子集中进行,这个过程就是动态规划算法。算法的过程可以进行如下描述:
a、明确全局和局部约束的内容,全局约束表明路径的起止点分别为(0,0)和(i,j);局部约束为路径经过各个节点时的斜率选择范围,根据书了的例子我们可以定义只关心相同横坐标的3个后驱节点,选择为,(i,j),(i,j+1),(i,j+2)。
b、在当前节点到3个后驱节点计算过程要考虑本身节点与其前驱节点的最小间距,即在获取最小间距的过程中要判断其后驱节点的距离,要分别对本节点的三个点以及前驱的三个节点进行计算,然后决定当前节点是否转移,上一个确定的节点不用转移,如果需要转移则依据上一节点到本横坐标的某个节点再到前驱节点进行连接确定其最小距离。(现在是这样理解的)
c、循环操作一直到二维表格的(i,j)位置即可。
(如何回溯还没有总结好)