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摄像头,就可以运行本代码了。
本代码非开箱即用,很多参数需要自己调节,仅供参考。