首页 A1训练模型 Python图像识别实现加减法大师小程序答疑解惑 现在仍然有效 不需要慢手

Python图像识别实现加减法大师小程序答疑解惑 现在仍然有效 不需要慢手

标题:python图片识别实现加减大师小程序答题 现在还有效哦,手慢无

在现有的基础上,小编尝试了利用tesseract库来训练图像读取。识别率越高,根据自己喜好选择方法(因为有的软件是国外的,上传图片到头条很麻烦,我有相关资料,已经打包了,关注一下,回复加减法大师即可获取)

我见过别人用Python自动运行的微信小程序《跳一跳》,后来又看到别人用哈希码自动答题、收娃娃。我最近在研究深度学习,为什么不使用机器学习来实现呢?这不就是一个分类问题吗?

如何实现自动接听微信小游戏《加减大师》?

思考:

图像识别?如何设置特征工程?选择哪种算法? 1.图像特征工程

手机游戏如何获取图片?

使用adb命令截取手机屏幕;在PC和手机上同时运行APowerMirror软件,将手机屏幕投射到电脑上,然后使用Pillow包中的截图方法截取电脑上手机屏幕对应的区域。在PC和手机上同时运行APowerMirror软件,将手机屏幕镜像到电脑上,然后使用Python调用Windows原生API截取电脑上手机屏幕对应的区域。实验结果:三种截图方法所花费的时间差异较大。第一种方法每次截图大约需要0.7秒,第二种方法大约需要0.3秒,第三种方法大约需要0.04秒。

当然选择第三个选项,下载地址【https://www.apowersoft.cn/phone-mirror】,一个好的软件是成功的关键(够清晰)。

获取训练样本

相关步骤:

1、util.py中的shotByWinAPI函数:首先使用窗口自带的API获取全屏图像,然后自定义config.py的相关参数。

# 从PC端截图时,捕获该区域左上角相对于桌面的x坐标

\’投影_x\’: 32,

# 从PC上截图时,捕获该区域左上角相对于桌面的y坐标

\’投影_y\’: 278,

# 从PC端截图时,截取区域的宽度

\’投影宽度\’: 482,

# PC端截图时,截取区域的高度

\’投影高度\’: 854,

您可以使用窗口命令键PrtScSysRq(F12右侧),然后将其复制到Paint(1920×1080)。

使用绘图放大镜放大,图中(32×278)中红框内小方块的位置projection_x为32,projection_y为278。

确定像素位置后,不要再移动软件

在Paint中计算截图的宽度和高度,即projection_width和projection_height(482×854)

2、img_tool.py函数介绍:主要使用all(img, filename)函数进行图像分割。

srcImg=cv2.imread(os.path.join(\’ScreenShotForTrain\’, f), 0)

上面的代码是以灰度模式加载彩色图像

def all(img, 文件名):

\’\’\’封装了对图像的所有操作\’\’\’

img=作物Img(img)

img=二进制Img(img)

img1, img2=再次裁剪(img)

imgs=cutImg(img1, 文件名+ \’_1\’) + cutImg(img2, 文件名+ \’_2\’)

返回图片

defcropImg(img):

\’\’\’裁剪原始屏幕截图\’\’\’

高度=img.shape[0]

img2=img[int(config.config[\’exp_area_top_rate\’] * height):int(config.config[\’exp_area_bottom_rate\’] * height),]

#print(\’切割完成\’)

返回img2

CropImg(img)函数主要用于裁剪包含数字的区域。通过设置参数

#表情区域顶部位于整张图片的位置(307/854=0.359)

\’exp_area_top_rate\’: 0.36,

#表情区域底部位于整张图片的位置(478/854=0.559)

\’exp_area_bottom_rate\’: 0.56,

如果觉得设置比例太麻烦,可以直接写位置(img2=img[int(307):int(478),])。得到如下图:

自动问答模式开启

实现原理

1.截取游戏界面。该项目提供了三个选项。在PC和手机上同时运行APowerMirror软件,将手机屏幕镜像到电脑上,然后使用Python调用Windows原生API截取电脑上手机屏幕对应的区域。 2、提取截图中的表情区域,并进行文本识别,获取表情字符串。由于图片中的表情区域是固定的,而且人物也是有规律的,所以这一步并不是很难。我只训练了一个简单的逻辑回归模型,就得到了非常高的识别准确率。 3.根据第二步得到的表达式,调用Python的eval()函数获取表达式结果的正确性,然后点击手机屏幕对应区域。使用投屏方案进行截图时,点击手机屏幕,通过代码在电脑上点击手机对应区域。第一个操作,生成分类器模型

1.借用屏幕投影软件,使用绘图工具配置相关参数config.py。可以参考上面的《图像特征工程》。

2.对于新手机(我用的是honor8),必须重新训练模型,将config.py中的debug参数设置为True,打开“加减法大师”,然后运行main.py。这里必须手动回答问题,尽可能正确回答更多问题,以便扩大训练样本。

3. 步骤2将生成一个SingleCharForTrain文件夹,以消除重复样本和不相关样本。

4、运行img_tool.py文件,会生成一个SingleCharForTrain文件夹。

5、对步骤4得到的文件夹中的字符进行手动分类,保存到TrainChar文件夹中。

6. 运行ml.py文件生成分类器模型lr.pickle。

注意桌面上不要有任何东西遮挡手机的投影区域

基于分类器模型自动回答问题

1.修改config.py中的debug参数为False以及其他相关参数。

#使用PC截图时,点击手机屏幕正确区域的x坐标

\’pc_tap_true_x\’:117,

#使用PC截图时,点击手机屏幕错误区域的x坐标

\’pc_tap_false_x\’:365,

#使用PC端截图时,正确点击手机屏幕以及该区域的y坐标

\’pc_tap_y\’:760,

配置正确和错误选择的水平和垂直坐标。横坐标不同,纵坐标相同(同一高度)

2.打开加减大师,直接运行main.py。

2.打开加减大师,直接运行main.py。

遇到的问题

Q1: 达到约200步后停止?

A1: 如果是误判,则重新截图错误的图片,将获取到的字符添加到TrainChar文件夹中,重新训练模型。

A1: 如果上一张图片与这张图片相同,则再次运行即可。我不相信你的运气会这么差。

Q2: 我的积分达到了1000分,但是小程序无法评分。

A2: 一开始我以为是随机题,没有设定作答时间。我在main.py中设置了它。

one_tap(res)

# 设置随机休眠时间,防止微信后台被随机检测

如果(数到100):

time.sleep(0.1 * (random.randint(0, 9)))

elif(计数200):

时间.睡眠(0.05 * (随机.randint(0, 9)))

elif(计数300):

time.sleep(0.01 * (random.randint(0, 9)))

elif(计数400):

time.sleep(0.01 * (random.randint(0, 9)))

elif(计数500):

# 这个级别你可以控制gg

如果(计数==455):

时间.睡眠(3)

但是,没有软件。大概是背景设定吧(我个人认为当天的分数不可能比第一名高太多)。反正前500名就可以获得小卡了。你可以尝试比第一名多设置几个点或者少设置几个点。一点。

4.源码地址

记得打电话给我哥们的github

上传代码:https://github.com/Yiutto/WechatGame_jjds

如果有任何疑问请私信我yiutto@qq.com

最后我放开了我的娃娃,手机上显示的是这样的

热门文章