$( "#cnblogs_post_body" ).catalog()
团队项目链接
github 后端
github OCR文档-含部分所需测试代码目前private
API调用说明与文档
Alpha会议纪要目录
团队目标
设计一个OCR表单识别软件(Alpha阶段目标:开发一个OCR识别的核心API套件)
用户反馈后的新增功能
Alpha阶段原功能[1.0版本]:表单处理的API
用户的推荐: 希望有更加轻量级的展示格式
最近的新增功能[1.01版本]:可以从表单数据推导到csv等文件格式
用户需求满足情况
总表
| 用户类型 | 满足情况 |
|---|---|
| 学生 | 学生有尝试调用API的能力,已经可以完成使用 |
| 工作人员和老师 | 在我们的协助下可以使用API,后续可以使用APP |
| 用户信息 | 用户情况 |
|---|---|
| 姓名 | Prime21 |
| 用户身份 | 学生 |
| 用户动机 | 把做实验的到的数据表导入到电脑中。 |
| 用户困难 | 所测得数据较多,手动录入效率低且容易出错。 |
| 典型场景 | 做完实验撰写报告时需要根据得到的数据来计算对应结果,导入到电脑后操作很方便。 |
| 用户偏好 | 希望能有一个能快速、准确识别表单的软件来帮助自己。 |
| 用户比例 | 60%左右 |
实际用户反馈:
- 每次上传还需要的结果比较快
- 上传后识别有部分错误,如果可以直接在上面改动就好
| 用户信息 | 用户情况 |
|---|---|
| 姓名 | Prime22Prime22 |
| 用户身份 | 老师 |
| 用户动机 | 将学生的签到信息导入到电脑中,并对信息进行汇总。 |
| 用户困难 | 课程组学生较多,手动录入和汇总麻烦。 |
| 典型场景 | 同学们上课回答问题以后老师在纸质花名单上做记录,最后需要导入到电脑中进行汇总好计算同学们的平时成绩。 |
| 用户偏好 | 简单易使用,且识别准确的软件。 |
| 用户比例 | 20%左右 |
实际用户反馈:
- 功能正确,但是感觉交互还可以更加完善
| 用户信息 | 用户情况 |
|---|---|
| 姓名 | Prime23 |
| 用户身份 | 政府工作人员 |
| 用户动机 | 民意收集 |
| 用户困难 | 大量的纸质问卷表需要录入 |
| 典型场景 | 将回收得到的问卷录入电脑 |
| 用户偏好 | 高效、准确的软件。 |
| 用户比例 | 10%左右 |
实际用户反馈: (王先生)
- 可以批量导入上传的照片
- 可以批量下载照片
- 希望能对多页表格做合并
下载量和调用量
| 项目 | 数量 |
|---|---|
| API调用统计 | 1次/人~20次/人 |
| 用户统计 | 约54人 |
| github star | 约21人 |
可以看出github star的人数和我们推广出去的人数有不符,可能是我们推广的需求人群近期的表单处理需求还不够大(如学生)。软件下载量的突破可能还需要后续beta阶段的前端支持。
原因:开始在大班群推广,后续才在我们自己的软工班级推广,比较复杂。
文档和安装指导
我们的项目目前是一个完整的后端API项目。在项目网站上有详细的API使用/调用的参数设定和指导。
协作方式
- github pr 或者是 github kanban
- 使用腾讯会议开会讨论
用户反馈的截屏
X用户(隐私保护)的反馈,他是一名已经就业的软件开发工作人员。

效果展示
输入:多种文件,以及包含有异常的表单

输出结果(命令行log)

输出结果(csv表单)




OCR技术测试
JSON解析测试

pdf上传测试

jpeg上传测试

手写测试

后端单元测试

API调用测试


单元测试
历次单元测试记录

单元测试覆盖率

燃尽图


团队成员Alpha阶段贡献
| 成员 | 角色 | 工作 | 工作量(单位:天) |
|---|---|---|---|
| pmxm | PM | 第一次博客作业 | 2 |
| pmxm | PM | 第二次博客作业 | 3 |
| pmxm | PM | 第三次博客作业 | 2 |
| pmxm | PM | 共15次会议及会议记录 | 15 |
| pmxm | PM | 支援OCR train过程 | 4 |
| pmxm | PM | 支援backend 服务器处理工作 | 2 |
| pmxm | PM | 协调backend和OCR的工作 | 2 |
| pmxm | PM | 时间节点推进和监督 | 3 |
| pmxm | PM | 完善code review | 2 |
| pmxm | PM | 服务器和域名配置 | 1 |
| lzb | backend 组长 | 数据库表单设计 | 3 |
| lzb | backend 组长 | 技术相关的blog review | 2 |
| lzb | backend 组长 | 后端初步设计和规划 | 3 |
| lzb | backend 组长 | 接手OCR代码 | 3 |
| lzb | backend 组长 | 第二次接手OCR 代码 | 3 |
| lzb | backend 组长 | 协调数据库设计和OCR辅助设计 | 2 |
| lzb | backend 组长 | 负责写若干单元测试,测试其他组员的代码 | 4 |
| lzb | backend 组长 | 完善code review | 2 |
| ykh | backend 组员 | 完善用户注册登录机制 | 2 |
| ykh | backend 组员 | 完善用户管理系统 | 3 |
| ykh | backend 组员 | 服务器端部署 | 4 |
| ykh | backend 组员 | 服务器和域名配置 | 2 |
| ykh | backend 组员 | 历次组内工作总结报告 | 4 |
| ykh | backend 组员 | 文档编写和完善 | 2 |
| ykh | backend 组员 | 单元测试编写 | 2 |
| my | backend 组员 | OCR后端工作编写 | 2 |
| my | backend 组员 | 流程设计图编写 | 3 |
| my | backend 组员 | OCR后端单元测试 | 3 |
| my | backend 组员 | OCR流程跑通 | 1 |
| xsy | OCR 组长 | OCR文档阶段调研 | 1 |
| xsy | OCR 组长 | OCR数据生成表单 | 3 |
| xsy | OCR 组长 | OCR分析流程跑通 | 2 |
| xsy | OCR 组长 | OCR阶段测试分析 | 2 |
| xsy | OCR 组长 | OCR组内工作协调 | 2 |
| xsy | OCR 组长 | OCR 测试报告 | 3 |
| xsy | OCR 组长 | OCR和backend对接 | 2 |
| lzy | OCR 组员 | OCR文档阶段调研 | 1 |
| lzy | OCR 组员 | OCR测试分析 | 2 |
| lzy | OCR 组员 | OCR训练分析 | 2 |
| lzy | OCR 组员 | 尝试部署OCR在其他分析 | 2 |
| lzy | OCR 组员 | OCR设计报告 | 2 |
| zt | OCR 组员 | OCR文档阶段调研 | 1 |
| zt | OCR 组员 | OCR训练分析 | 2 |
| zt | OCR 组员 | OCR训练调试 | 2 |
| zt | OCR 组员 | OCR单元测试分析与调整 | 1 |
| zt | OCR 组员 | OCR设计分析报告和测试 | 2 |
| zt | OCR 组员 | OCR训练结果分析 | 2 |
|成员|pmxm|xsy|lzb|zt|my|lzy|ykh|
|得分|51|53|52|49|47|48|50|
核心功能
我们的核心功能是表单处理,现在可以导出成数字化的文字的位置数据,还有我们通过位置输出简易的表格生成API
用户暴露出的bug
- OCR识别率有一定问题的存在,数字识别率、文字识别率和位置识别率用户的测试和我们的测试反响不同。(正在调优)
- 域名使用暂时存在问题(原因:备案问题和国内的安全问题,之前提出的一次备案请求在5.6日又被撤销了,在重新上云备案)(后续使用APP版本可能没有这个问题)
- 特殊的表格:有特殊的制表结构(斜线格子、合并单元格)
- 手写表格识别困难
- 可能会有除0的bug,原因是表格分析的API产生了异常分析。
学习收获
- 感谢软工课程给了我们一次体验软工开发流程的机会
- 我们学习到了如何去分析和设计一个OCR应用、后端开发和设计的相关知识、学习了相关的网络服务器应用
- github相关的管理流程,用线上会议来解决协同工作
Beta阶段计划
- 易用便于操作的使用前端
- 特殊表格的定制化API(尝试)
- 多图表格合并
- 解决Azure的国内访问问题,需要一定国内线路备份