来源:互联网学术
ID: lingfengshan
前言
本文作者lingfengshan,感谢~github地址:https://github.com/lingfengsan/MillionHero
gitee仓库地址:https://gitee.com/lingfengsan/MillionHero
视频教程地址:https://www.bilibili.com/video/av18152515/
正文
《百万英雄》是一档全民知识互动游戏,在《百万英雄》里每场12道题目全部回答正确的人,将瓜分奖金。
游戏模式
一共12道题,全部答对就可以平分奖金
如果可以把直播中的问题和答案提取出来,然后百度,然后统计一下哪个更相关,就可以辅助你答题了。当然也可以直接把百度出来题目和答案都展示出来。算法还在优化,以代码中为准、
工具介绍
JAVA8
Android 手机
Adb 驱动
idea
原理说明
将手机点击到直播界面(在这里我们先打开一张图片);
用Adb 工具获取当前手机截图,并用adb将截图pull上来
adb shell screencap -p /sdcard/1.png adb pull /sdcard/1.png .
用tessOCR进行图像识别,提取文字;
将文字中的问题和答案提取出来;
使用百度搜索并统计搜索得到结果数量
问题+各个答案count(q&a);
问题 count(q);
答案 count(a);
计算匹配值pmi: pmi[i]=count(q&a[i])/(count(q)*count(a[i]))
-
选择pmi值最高的为答案。
步骤
安卓手机打开USB调试,设置》开发者选项》USB调试
电脑与手机USB线连接,确保执行adb devices可以找到设备id
打开百万直播
运行我们的java程序,当弹出题目时,输入1回车
注意程序中的adb驱动目录要更换成自己的目录
我的屏幕是1920*1080,如果是别的分辨率,暂时需要修改一下代码中的图片参数等。
实验结果
PS:
无奈本人在出差,笔记本速度和网速都比较慢,比较好的电脑和网速肯定能很大的提升。
TODO
1、可以增加一个图形化界面,分别对题目和答案进行搜索并进行展示。
常见问题
1、项目构建问题:
IDE建议用idea,从github导入后,在右侧的Maven project中添加目录根部的 pom.xml文件即可。
2、tessOCR:
只是调用了一下,在pom已经导入了使用的工具包,训练机在tessdata里面,不需要配置。
3、ADB驱动相关:
使用ADB需要对应的手机驱动的。最简单验证ADB的方法:
在adb目录里面打开命令行输入 adb devices 看下有没有设备,有的话即可。
点击下方“阅读原文”下载【同声译】 ↓↓↓