国内外许多学者都在研究关于目标跟踪的算法,在手势识别方面相关的算法已经有过许多的研究,其中Spring算法与改良Spring的应用较为广泛。
1 SPRING算法69506
(1) 算法核心思想
SPRING是用于从输入时间序列数据与模板数据对比的算法。简单来说就是通过事前采集每一个手势在每一帧下手指的相对坐标,然后将这些数据储存起来,当有手势变化时,通过数学公式计算出当前手势的手指坐标变化与事先储存在计算机中的数据的相似度,从而完成对这个手势的识别。
(2) 算法的实现
SPRING算法伪代码
SPRING算法事先输入数据数列X={X1……Xt}(目标手势的坐标数据),然后与模板数据(储存手势的坐标数据)计算出两者之间的相似距离,将相似度最高的模板手势作为最终的结果,当出现连续手势时会通过比较检测数据流中相邻数据段之间的相似距离d来分割手势序列。论文网
(3) 算法的优点与缺点
优点:这个算法精确度高,通过手的变化规律来判断出是哪一种手势,不会因为手的振幅变化而有所误差。
缺点:由于无法识别连续的相似手势变化,所以无法切割连续相同手势序列,因为相同手势之间的相似度距离很小无法识别出来。
2 改良SPRING算法
(1) 算法核心思想
改良spring算法是为了弥补经典spring算法对于连续两个相同的手势无法识别的问题。
(2) 算法的实现
改良SPRING算法伪代码
大体上还是SPRING算法改进的是设置一个阈值在检测邻近的两个数据模块时,如果数据的相似距离小于阈值时,会默认认为两个数据模块是相同的手势,从而避免两个连续的相同手势无法识别的问题。
(3) 算法的优点与缺点
优点:这个算法精确度高通过手的变化规律来判断出是哪一种手势,不会因为手的振幅变化而有所误差,连续相同的手势可以清楚识别。
缺点:这个算法需要事先采集大量数据,每一个手势的变化数据要采集精确,如果采集的数量较少会影响算法的精确度。