这两天冲顶大会之类的直播答题 APP 突然火了起来,不得不佩服互联网公司的想象力,那么程序员怎么用不同的方式玩转答题游戏呢。之前微信的跳一跳小游戏刷报朋友圈,已经有很多朋友写出了自动化的脚本辅助,一看到答题游戏就马上想到可以用类似的方式来写一个简单的脚本。我发现已经有朋友做了个调用百度 api 的,自己就再写个直接用识别库的吧,代码思路简单,可以用在各类答题游戏中。使用文字识别加搜索,只能辅助增加准确率,保证不了全对。
目前版本增加了截图传输效率,修改了识别参数,对图像进行灰度转化,去干扰增加了识别准确率。结果判断使用了三种方式,对不同问题可以参考不同结果。
具体代码和环境及使用请戳: https://github.com/Skyexu/TopSup
具体做法
- 使用 ADB 获取手机截屏
adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png .
- OCR 识别题目与选项文字
分别通过代码截取题目区域与选项区域,再进行文字识别

文字识别两个方法:
- 搜索判断
结果判断方式
-
直接打开浏览器搜索问题

-
题目+每个选项都通过浏览器进行搜索,从网页代码中提取搜索结果计数
-
只用题目搜索结果页面代码中包含选项的词频计数法
以下为两个示例结果,可以看出下面两道题,两个方法有不同的结果,可以更具问题类型进行不同的决策。


参考了 I Hacked HQ Trivia But Here ’ s How They Can Stop Me
写完简单版本想一想,怕是还没有 Hi ,Siri来的方便,不过好在识别准确,查询快,后来又加了几个方法辅助决策。不玩了,写 paper 去了