南京信息工程大学吧 关注:225,941贴子:4,910,681
  • 25回复贴,共1

【水】摸鱼记录:小猿口算OCR脚本Yuuka开发日记

只看楼主收藏回复


邮箱镇楼


IP属地:江苏来自Android客户端1楼2024-10-11 08:12回复
    二楼备用:
    楼🐷为大一汉语言小登,小学学过一点单片机和C语言但算是连门都没入
    Python代码大部分是CSDN上Ctrl+C Ctrl+V的,不直接拿现成脚本是因为我保留了一点缝合的工作量,这样我才知道自己在编程


    IP属地:江苏来自Android客户端2楼2024-10-11 08:16
    收起回复
      2026-01-08 00:47:33
      广告
      不感兴趣
      开通SVIP免广告
      测试账号和v1.0版本
      大体的思路如下:
      ①截图屏幕特定区域(题干)
      ②对照片进行OCR扫描,输出结果
      ③对结果进行比较
      ④模拟鼠标拖动,输出笔画结果
      但在实际应用的时候发现OCR扫描的精度奇低,具体表现为如果数字字号太大就不能扫描出结果,即使对图像进行二值化弄成黑白也没用
      最后调出了一个可以稳定保持的窗口大小,然后发现所有的个位数也扫不出来
      好消息是两/三位数扫描效果很好。于是投机取巧,首先判断扫描结果是否可以转化为int。如果不能一般就是没扫出来,结果为空,所以直接赋值为0。两位数一定大于一位数,所以可以输出正确结果
      当然后果是两边都是一位数就判断不出来所以只能做100以内比大小(20以内比大小两边都是一位数的情况出现概率太大)
      此外由于扫描仍然有一定出错可能,因此将循环设成了11次,给了一次容错
      目前速度为1.89s/题,调整鼠标移动速度和循环节后的延时长短可以继续提升,但考虑到模拟点击的稳定性(太快小猿检不出来笔迹)暂时先这样




      IP属地:江苏来自Android客户端3楼2024-10-11 08:32
      回复
        v1.5版本期望的功能
        扫描结果存储出错检定:存储上一题的扫描结果,如果两次扫描左右侧数字都和上一次一样,则判定为上次出错,反转上次的计算结果


        IP属地:江苏来自Android客户端4楼2024-10-11 08:40
        回复


          IP属地:江苏来自Android客户端5楼2024-10-11 09:22
          回复


            IP属地:江苏来自Android客户端6楼2024-10-11 09:47
            回复
              鼓励,但是人工队也能0.5s一题,项目还是有些鸡肋。


              IP属地:江苏来自Android客户端7楼2024-10-11 10:45
              回复
                能不能抓包,别ocr了


                IP属地:江苏来自Android客户端8楼2024-10-11 10:59
                回复
                  2026-01-08 00:41:33
                  广告
                  不感兴趣
                  开通SVIP免广告
                  如果不用ocr,纯图像匹配可以快很多


                  IP属地:江苏来自Android客户端9楼2024-10-11 11:13
                  回复
                    3


                    IP属地:江苏来自Android客户端10楼2024-10-11 11:29
                    回复
                      APP在PK过程中是一定会存在类似获取试题的网络通讯过程的,而小猿口算的通讯流量包是明文的且已经给出了答案,所以只需要通过提取接口进行爬取,并筛选出答案然后模拟书写即可


                      IP属地:江苏来自Android客户端11楼2024-10-11 13:16
                      回复
                        v1.1版本(直接跳到1.5还是太跃进了
                        增加了利用存储前一题答案的自动纠错,如果存储的两个数有和上题一样的就会改变输出答案,避免一直卡在一道题上
                        目前的蓟县速度为1s/题,实际运用上如果出现单数就会拖慢速度,最终大概在1.1~1.5s/题左右




                        IP属地:江苏来自Android客户端12楼2024-10-11 16:36
                        回复
                          最新消息:据传数据包现已加密,抓包好像似了


                          IP属地:江苏来自Android客户端13楼2024-10-11 17:31
                          回复
                            上百度了()


                            IP属地:安徽来自Android客户端14楼2024-10-12 19:54
                            收起回复
                              2026-01-08 00:35:33
                              广告
                              不感兴趣
                              开通SVIP免广告
                              有当码农搬砖的潜力


                              IP属地:山东来自Android客户端15楼2024-10-12 22:39
                              收起回复