一个基于LSTM的鼠标轨迹生成项目,能够采集真实鼠标移动数据,并训练模型模拟人类鼠标移动轨迹。适用于用户行为模拟、人机交互研究等场景。

代码包:「鼠标模拟轨迹 (用LSTM pytorch)」
链接:https://pan.quark.cn/s/86556972e53a

项目结构 📁:

mouse-trajectory/
├── data_collector.py      # 数据采集程序
├── mouse_lstm.py          # 模型训练与生成程序
├── mouse_simulator.py     # 轨迹模拟器
├── mouse_data.pkl         # 采集的轨迹数据(运行时生成)
├── mouse_lstm.pth         # 训练后的模型(训练后生成)
└── README.md

功能特点 ✨

  • 数据采集:提供图形化界面采集从起点到终点的真实鼠标轨迹数据。

  • LSTM模型:使用PyTorch构建的LSTM神经网络,学习人类鼠标移动模式。

  • 轨迹生成:训练后的模型可生成逼真的鼠标移动轨迹。

  • 可视化模拟:提供GUI界面直观展示生成的轨迹

快速开始 🚀

环境要求

  • Python 3.7+

  • PyTorch

  • NumPy

  • Matplotlib

  • Tkinter(通常随Python自带)

安装所需依赖:

pip install torch numpy matplotlib pyautogui

1. 数据采集

运行数据采集程序,采集至少100条轨迹数据:

python data_collector.py

操作说明:

  • 绿色圆圈为起点,红色圆圈为终点

  • 从起点按住鼠标拖动到终点释放

  • 程序会自动保存有效轨迹到mouse_data.pkl

2. 模型训练

使用采集的数据训练LSTM模型:

python mouse_lstm.py train

训练过程将显示损失曲线,训练完成后生成mouse_lstm.pth模型文件。

3. 轨迹生成与模拟

运行模拟器可视化生成的鼠标轨迹:

python mouse_simulator.py

在窗口内依次点击起点和终点,程序将自动生成并显示模拟轨迹。

技术细节 🔧

模型架构

  • 输入特征:位移量(dx, dy)、时间间隔(dt)、当前位置到终点的向量

  • 网络结构:两层LSTM,隐藏层维度64,全连接输出层

  • 输出预测:下一步的位移量和时间间隔

数据预处理

  • 坐标归一化处理

  • 序列填充(Padding)处理变长轨迹

  • 时间间隔标准化

使用方法 💡

基本使用

  1. 按照"快速开始"流程采集数据并训练模型

  2. 调整mouse_simulator.py中的randomness参数控制轨迹平滑度

  3. 可通过pyautogui启用真实鼠标移动(代码中已注释)

参数调整

mouse_lstm.py中可调整:

  • BATCH_SIZE:批处理大小

  • HIDDEN_SIZE:LSTM隐藏层维度

  • EPOCHS:训练轮数

  • LEARNING_RATE:学习率

训练300轮的损失图

预测效果:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐