如何学习鼠标移动?

时间:2011-08-14 18:36:44

标签: java machine-learning biometrics

过去几周,我一直试图在我的应用程序中开发一种合成人类鼠标移动的方法。在开始时,我使用了多项式和样条插值等简单技术,但即使有一点点噪音,结果仍然不能像人类一样显示。

为了解决这个问题,我一直在研究如何将机器学习算法应用于真实的人体鼠标移动生物识别技术,以便通过学习记录的真实人体动作来合成鼠标移动。用户将编辑记录的动作的轮廓,这将记录为合成目的的程序。

我已经搜索了几个星期并阅读了几篇关于逆生物识别技术应用于生成小鼠动力学的文章,例如Inverse Biometrics for Mouse Dynamics;然而,他们倾向于关注从随机生成的动态生成实际时间,而我希望生成从特定 A到B.另外,我仍然需要提出一条路径,而不仅仅是从一条路径测量的一些动力学。

有没有人有一些指导来帮助一个菜鸟?

目前,通过录制动作并让我和其他几位开发人员观看播放来完成测试。理想情况下,该机芯将能够同时使用自动生物识别分类器,以及真实,真实,呼吸的Homo sapien。

7 个答案:

答案 0 :(得分:14)

Fitt's law可以很好地估计定位鼠标指针所需的时间。在derivation部分中有一个简单的解释,我认为您可以将其用作应用程序的基本构建块之一。从大运动开始,在运动的方向和长度上都有一些不准确,然后进行较小的校正运动等等......

答案 1 :(得分:10)

首先,我猜你会记录从A到B的人体鼠标移动。因为否则,试图合成这种移动的模型对我来说似乎不可能。

其次,如何测量与“直接”路径的偏差,可能与时间有关。我实际上怀疑不同角度,路径长度等的动作看起来不同,但也许你可以先尝试一个标准化模型,你只需要伸展(在空间和时间)并按需要旋转。

第三,学习。最简单的方法就是拥有一系列真正的动作(我在上面讨论过的形式)和该系列的样本。评估它的外观。如果你真的想要一个概率模型,那么你必须评估哪种模型适合。是否足以模糊高斯噪声的直接路径,你从训练集中学习参数?或者一些(sin-)波浪偏差?或者单独模型“靠近按钮”和“最终修正”。 Fitts法可能对评估有用。

答案 2 :(得分:2)

这个问题让我想起了几年前我所知道的一个网站,所以我访问了它并找到this in-depth discussion on the topic

时机非常相似,让我觉得这个问题在某种程度上是相关的。事实上,线程中有人链接到您所做的同一篇文章。如果它没有关系,那么很多人都会链接到你正在考虑的内容。

答案 3 :(得分:1)

我认为这个问题没有明确定义。到目前为止还没有提到一个重要的概念,即背景。当Chrome有焦点时,我的屏幕上的鼠标移动与Vim聚焦时的动作大不相同。

答案 4 :(得分:1)

鼠标移动的方式因设备类型,操作类型,涉及的UI元素,熟悉UI,用户尝试完成任务的速度,用户的技能而异,用户的初始失败(例如,错失点击),用户的情绪状态(以及许多其他因素)。您是否计划创建几种与不同背景相对应的路径策略?你也知道你试图愚弄的算法有多好?我没有广泛地假设,或者你只是直接针对该算法进行编程。

如果人正在查看路径,他们可能能够识别与路径策略相关联的状态,并且如果他们将其识别为人类状态可能更倾向于被愚弄(例如,用户匆忙,错失点击,快速关闭弹出的弹出窗口,再次尝试慢一点)。用户界面不仅仅是大小和位置。我经常快速指向工具栏,然后滑过选项直到我到达目标。另一个例子是,当我正在扫描目标或将鼠标悬停在正在阅读的文本上时,我通常会暂停菜单项。你是试图模仿人类行为还是只是模仿他们的老鼠动作(因为我认为他们是在时髦的时候加入)?

答案 5 :(得分:1)

您是否希望模拟类似人类的鼠标移动,因为您正在为您的游戏进行实时在线培训?如果您的训练序列是静态的,只需单击鼠标按钮即可记录鼠标移动并播放鼠标单击声音效果。没有鼠标移动对你来说比你自己感觉更“真实”。

就个人而言,我觉得软件专家在培训视频时过快地移动鼠标。我更喜欢我所见过的截屏视频软件采用的方法,它总是从A点线性移动鼠标 - > B.诀窍是,视频中的每次鼠标移动总是花费相同的时间而不管距离,比如3/4秒,然后是鼠标点击声音效果。

我相信他们以这种方式移动鼠标,因为观察者可以通过鼠标在开始时移动的方向和速度来预测鼠标的着陆区域。在训练情况下,我认为像这样的常规动作在眼睛上更温和,也许更容易保留/回忆。

答案 6 :(得分:0)

您是否考虑过在应用程序中添加鼠标跟踪功能,以便基本记录用户如何移动鼠标然后分析录音?

我最近没有看过这个,但我相信Swing应用程序中的MouseListener可以获得所需的信息。