Repository navigation
v1.6.2 · 图片识别按表格结构解析
我的课表 v1.6.2
重写图片识别的表格结构解析:同一张教务导出截图此前会识别成 98 条垃圾课程,现在得到 14 条正确课程。
修复内容
- 不再把每个文本块当成一门课:同一单元格内的课名、教师、地点被视为一门课;单元格检测失效时才退回文本规则。
- 表头缺字自动补全:OCR 把“星期一”读成“星期”时,按位置补回缺失的星期,周一的课不再落到周二。
- 单/双 子列识别:“单”“双”子列标题写入单双周规则,不再变成课程名。
- 字段归类:课名(含折行)、教师(含“张三/李四”多人写法)、教学楼与教室(“紫金港东2-204”拆成楼名 + 房间号)、周次分别填入对应字段。
- 丢弃不可映射信息:
2027年01月10日(14:00-16:00)这类单次日期时间戳与N节/周计数直接舍弃,不再堆进备注。 - 修正两处误读:把“第1-8周2节/周”的“2节”当成节次、把“周2”当成周二。
- 时间轴不进课程:节次号、08:00 之类的时钟、早晨/上午/下午/晚上都不会再被识别成课程。
- 重复节次合并:同一门课按节重复出现的行会合成一条,并给出该次课的节次跨度。
为什么不上语义模型
表格结构(行、列、格、星期、节次)用几何与规则比模型更准,也不会臆造课程;行分类靠位置、关键词与排版形状(相对字号、是否紧跟周次行)已经足够,无法确定的字段会以未确认状态进入复核页让用户确认。本地识别仍是零额外下载、离线、可解释;需要更强兜底时可继续使用已支持的云端视觉接口。
安装与验证
要求 Android 7.0+。沿用原正式签名,可覆盖升级。附件只有 ARM64 与 ARMv7 两种 APK、对应源码与 SHA256SUMS.txt,不含 x86/x86_64 与 OCR 模型权重,开源协议 GPL-3.0-only。
新增「教务导出截图」形态的解析回归测试;单元测试 100 项、Android 15 设备测试 66 项(含表格网格检测、导入复核、课表与小组件回归)全部通过。详细范围与边界见 验证记录。