[炒冷饭] 自己动手做的微信跳一跳机器人,分数 30 万+

2018-09-11 12:14:56 +08:00
 mrchi

项目地址: https://github.com/chiqj/WechatJump,Python 语言开发,使用 adb + pillow + opencv + sklearn 实现,目前只支持安卓手机。

这是一个年初就想动手的项目,期间因为时间原因、技术能力原因,到现在算是完成了。在前人的基础上做了些改进,理论上可以无限运行——只要有时间。

上个分数截图证明自己所言不虚:

特性

与年初的跳一跳机器人相比,进行了以下改进:

使用的技术和库

回归模型

线性回归

多项式回归(degree=7)

踩过的坑

  1. 由于图像坐标系从左上角开始,Y 轴在向下的方向上是递增的,所以斜率与普通直角坐标系相反。也就是说,从左下到右上方向的直线实际为负斜率。
  2. OpenCV 模版匹配对缩放图片处理效果不好,导致从小程序文件解包出来的棋子图像无法使用,必须获取当前分辨率下的棋子图像和中心点图像作为模版;

最后,反对一切使用外挂的行为,该项目只为学习目的,没有加入反作弊代码,以后也不会有:)

4029 次点击
所在节点    分享创造
20 条回复
ShineSmile
2018-09-11 13:31:34 +08:00
newbee.class
kethylar
2018-09-11 14:17:11 +08:00
newbee.jpg
mrchi
2018-09-11 14:21:59 +08:00
@ShineSmile
@kethylar

谢谢称赞,欢迎 star/fork/提 issue 哈 😏
ZiLong
2018-09-11 14:46:11 +08:00
interesting.rmvb
swkl86
2018-09-11 14:52:13 +08:00
Cool.avi
voidless
2018-09-11 15:00:52 +08:00
DIO.WRYYYYY
carpediemvv
2018-09-11 15:08:56 +08:00
地址挂了?
mrchi
2018-09-11 15:12:53 +08:00
@carpediemvv 没有,v2 的网址自动识别把逗号后面的也识别进去了。地址是: https://github.com/chiqj/WechatJump
xiangchen2011
2018-09-11 16:38:51 +08:00
Hilong
2018-09-11 16:47:49 +08:00
1949.js
zcjwxf
2018-09-11 16:56:14 +08:00
当年我做这个脚本的时候,边缘检测你知道怎么找的吗?没错!遍历像素点,判断颜色差别率,做出了边缘检测其他都是菜~
raycool
2018-09-11 17:01:51 +08:00
最开始的训练数据怎么来的?手动跳的么
mrchi
2018-09-11 17:25:53 +08:00
@zcjwxf 最早开始造轮子的兄弟么?致敬,能有今日的分数都是踩在你们的肩膀上:)
mrchi
2018-09-11 17:29:26 +08:00
@raycool 上一版的机器人是在另外地方进行线性回归模型训练,代码里只指定了 k 和 b 两个变量。那个时候 k 和 b 都是猜的,只要能跳的中且能确定位置,就有数据了。
sangmong
2018-09-11 17:44:37 +08:00
游戏中存在可疑行为,该结果不予显示。。。
xxxy
2018-09-11 17:53:44 +08:00
有用强化学习做的吗?
mrchi
2018-09-11 18:05:02 +08:00
@sangmong 是的,没有反作弊。
mrchi
2018-09-11 18:06:51 +08:00
@xxxy 目前还没有,机器学习我才刚刚入门,就只用了比较简单的回归算法。老哥要不要自己实现一个?
zcjwxf
2018-09-11 22:04:13 +08:00
@raycool 这种东西还要训练数据?单纯的线性关系,只要你找对 3 个点(小人底部中心、目标顶部边缘 xy、目标侧边 xy ),然后找出按压时间和距离的系数,我可以告诉你是 2 (不同算法可能是 10 的几次关系),你说的是训练找边缘?
mrchi
2018-09-11 22:15:34 +08:00
@zcjwxf 他指的训练数据应该是我项目里带的 training_data.txt ,是用来训练回归模型的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/488158

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX