项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2020春季计算机学院软件工程(罗杰 任建) |
这个作业的要求在哪里 | 个人博客作业-软件案例分析 |
我在这个课程的目标是 | 完成一次完整的软件开发经历 并以博客的方式记录开发过程的心得 掌握团队协作的技巧 做出一个优秀的、持久的、具有实际意义的产品 |
这个作业在哪个具体方面帮助我实现目标 | 尝试着分析一个软件 学会规划分析软件的步骤和设计衡量方式 |
教学班级 | 006 |
简介
本文主要介绍邹欣老师团队的一项OCR识别表单的开源工作,并与同类型的轻量级OCR文本识别软件进行对比测试和分析。
本文将从以下几个方面进行比较:
- 安装(上手)的简易程度
- 识别正确率
- 识别速度
- 可扩展性
- BUG 比较
安装(上手)的简易程度
- 对于 MicroSoft 的OCR识别表单软件,有以下使用方式:
- 项目测试网站在线使用
- 使用官方提供的docker镜像
- 下载Github上源代码并在本地编译安装使用
后两种安装方式需要一定的计算机能力,具体安装步骤可参考MisTariano的博客
- 对于 ouyanghuiyu 的开源超轻量级中文 ocr,源代码即 python 文件,保存到本地进行运行即可。
踩坑细节
MicroSoft-OCR
- 首先体验的网站是部署在 Azure 上的,所以国内访问会延时较高,甚至会出现连接不上的情况,所以没有上网条件的朋友选择本地部署更佳,但是,本地部署需要一定的计算机能力,对于部分有需求的文字编辑来说又是一道门槛,所以如果能在国内的网站有部署上线的话受众范围更大。
- 其次,无论是网页版还是本地软件都是要通过 Azure 的云服务来实现进行文件操作的,这一点也是困扰了我和另外尝试的同学很久的点,Azure 的国际注册需要绑定 VISA 或 Master 来避免机器人注册或滥注册,所以这一步是不可跳过的,对于大部分没有这两种卡的学生而言,是一道门槛。在咨询 Azure 客服,告知我的目的之后,客服建议我在中国国内的Azure服务上进行注册,https://www.azure.cn/,国区的Azure支持支付宝,有一元体验活动。
- 但是,Azure 的配置稍微有点繁琐,包括 blob storage 和开通 OCR 服务等,比较难以找到,所以又是一个巨大的挑战。在这里感谢邹欣老师给我们几位测试同学提供的各种资料是我们免去了自己的配置工作,使得测试得以展开。~~这里立一个Flag,在测试完成之后,笔者将探索一下如何使用自己的账户进行配置,将在一周内进行答复(即:2020年03月27日前)。~~笔者和几位一同测评的同学都没有找到在国内的Azure开通MS的OCR的方法,在此希望尝试成功的读者能在评论下留言~
ouyanghuiyu-chineseocr_lite
- 源代码的生产和测试环境应该是在 linux 下进行的,所以笔者在 windows 下部署的时候遇到了一些问题,其中以下问题都可以在这个博客中找到答案,强烈推荐按照这个博客的流程走:
ModuleNotFoundError: No module named 'psenet.pse.pse'
RuntimeError: Cannot compile pse: : your\path\to\chineseocr_lite-master\psenet\pse
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xab in position 551: illegal multibyte sequence
- 遇到
AttributeError: module 'six.moves.urllib_parse' has no attribute 'unquote_to_bytes'
等 web.py 相关的问题的时候,大多数是因为版本装错了,可以先卸载当前的webpip3 uninstall web.py
并装上固定的版本pip3 install web.py==0.40.dev0
- 另外,该轻量级ocr是直接在本地进行利用神经网络做出预测,所以有一块GPU图形显卡是最好的,时间上会快很多。
- Windows 下
make
命令无法找到:这是由于make下载下来的时候叫做mingw32-make.exe
,只要找到自己的环境变量下的这个文件,将其复制改名为make.exe
然后重新打开cmd
即可。 - make 的时候找不到
Python.h
,这是由于自己的Python安装有遗漏,具体开源上网搜索解决方案,我这里是利用 Windows 下的 WSL2 进行 make, WSL2 中的 Ubuntu 直接sudo apt-get install python3-dev
和sudo apt-get install python3.x-dev
即可保证安装完所需的python模块,第二条语句的3.x
是具体的python版本,比如我的是python3.6.9
则执行sudo apt-get install python3.6-dev
即可,注意:编译时的python和后续运行的python最好版本号相同,具体不同会怎么样我也没有尝试过,欢迎留言告诉我。