/question-helper

链工宝自动答题器, 采用摄像头识别题目,自动答题,支持各种手机,经过改造试用各种答题系统。

Primary LanguagePython

自动答题引擎

wvv 20220614

看到不少朋友对这个项目有兴趣,关于环境搭建,我就再补充几句说明。

  • windows为例,建议采用anaconda进行环境搭建,在paddle官网有详细的搭建说明。
  • 摄像头就是采用的opencv读取usb摄像头方式实现的,对于ocr来说已经足够了,一般的usb摄像头都可以直接驱动。

  • 关于摄像头支架,支架的高度目的是让题目尽量拍清晰,而且不会有其他文字对ocr的干扰,所以视野范围看全题目就可以了。

  • 最近几次的更新做了个简单的未识别题目保存功能,便于题库的手动扩充,以及添加了tts语音播报功能,需要pip自己安装缺失的库,根据import就可以看出来了。

  • 这个框架可以很容易的迁移实现其他的答题系统,比如学习强国之类,只要更改题库就行了。

  • 代码里面采用了一些多线程技巧,是为了防止界面卡顿和代码解耦。

  • run.bat的目的是为了双击运行py脚本,里面实现了自动加载anaconda环境,进入当前路径,启动py脚本的功能,自己使用时需要将anaconda路径和虚拟环境替换为自己的环境路径。

    有疑问的可以issues,我尽量回答。

wvv 20220607

经常需要参加各种手机答题活动,所以半天时间做了本项目来完成自动答题,节约点答题时间。

本代码在 python3.8 + paddleocr cpu版本运行通过。

核心流程为:

通过摄像头读取屏幕图像

通过ocr引擎解析题目内容

将题目与题库进行匹配,得到答案

注意:考虑到ocr的准确性等问题,所以进行匹配的时候不能采用精确匹配模式,这里采用的是文字编辑Levenshtein算法距离进行匹配。

ocr引擎采用的paddleocr

根据paddleocr官方文档,搭建好python环境,连接好usb摄像头,就可以运行本代码了。

本代码非开箱即用,很多参数需要自己调节,仅供参考。

2

1