多点触摸屏的分类算法

时间:2011-12-14 14:49:43

标签: algorithm computer-science computational-geometry classification

什么算法可用于解决以下分类问题? 我们有多点触摸屏,用户可以用两个或三个手指同时触摸它。

  1. 用户触摸屏幕后,我们会记住他手指的初始位置。每个手指从设备获得一组坐标。
  2. 当用户移动手指时,我们应该跟踪他手指的动作。
  3. 问题是当手指靠近彼此时。如何确定哪个手指属于哪个点?

    我知道这是一种某种分类问题。什么算法可以用来解决这个问题?

2 个答案:

答案 0 :(得分:2)

一个问题是从时间t处的N个位置的报告开始并且在时间t + 1处报告N个位置并且计算出在时间t处的位置1与在时间t + 1处的位置3相同的手指。军方经常以数据融合的名义看待这类事情。一种方法是记下在时间t将位置i与时间t + 1处的位置j相关联的成本,然后以最小总成本找到置换 - 这是http://en.wikipedia.org/wiki/Assignment_problem的实例。

如果设备实际上将两个手指非常靠近地报告为一个,那么您有一个更复杂的问题 - 但您肯定没有多少不同的位置需要考虑,因此您应该能够例如尝试各种方法将一个位置报告视为两个不同的报告,然后选择最高得分的可能性。

答案 1 :(得分:1)

考虑到你试图给三个手指分配三个点,解决分配问题是有点过头了。即使您尝试将五个点分配给五个手指,最好使用强力方法来确定手指点的最佳配置。请注意,对于三个手指和三个点,手指与点之间只有六种可能的唯一分配。因此,最好只计算每个分配配置的成本,并选择成本最低的配置。

但是,我认为这是你的问题所在。棘手的部分不是分配过程本身,而是为每个可能的分配选择合适的“成本”函数。如果成本函数没有考虑先前的指尖分配,那么将任何手指分配到任何点都有相同的成本,因此你没有任何“连续性”,其中手指被分配到同一个移动点。

因此,您的目标是确保您的作业模型“真实生活”。我建议的方法是:

定义手指运动的物理模型。一个非常简单的模型是动量模型,其中每个手指彼此独立并且假设具有一些惯性。如果手指在一帧中移动dx,dy,则可以预期它会在第二帧中移动dx,dy。这为您提供了期望手指接下来的期望值。现在,您可以定义将手指指定到点的成本,作为注册的实际点的位置与您预期的位置之间的距离的某种函数。

总结每个指点分配的成本,并找到成本最低的配置。

现在,如果你想要更复杂,你所要做的就是使用更复杂的模型。也许你不想假设手指独立移动。您可能希望手指运动之间存在某种相关性。在这种情况下,优化模型,计算新的点预期并像以前一样计算分配的成本。