「Docker」实测超轻量中文OCR开源项目,总模型仅17M


机器之心报道
参与:肖清、思
想要试试中文 OCR?这个项目可以考虑 , 轻量模型 , 不需要 GPU 也能跑得动 。
「Docker」实测超轻量中文OCR开源项目,总模型仅17M
本文插图
光学字符识别(OCR)现在已经有很广泛的应用了 , 很多开源项目都会嵌入已有的 OCR 项目来扩展能力 , 例如 12306 开源抢票软件 , 它就会调用其它开源 OCR 服务来识别验证码 。 很多流行的开源项目 , 其背后或多或少都会出现 OCR 的身影 。 如果要说到中文 OCR , 像身份证识别、火车票识别都是常规操作 , 它也可以实现更炫酷的功能 , 例如翻译笔在书本上滑动一行 , 自动获取完整的图像 , 并识别与翻译中文 。 目前比较常用的中文 OCR 开源项目是 chineseocr , 它基于 YOLO V3 与 CRNN 实现中文自然场景文字检测及识别 , 目前该项目已经有 2.5K 的 Star 量 。 而本文介绍的是另一个新 开源的中文 OCR 项目 , 它基于 chineseocr 做出改进 , 是一个超轻量级的中文字符识别项目 。 项目地址:https://github.com/ouyanghuiyu/chineseocr_lite该 chineseocr_lite 项目表示 , 相比 chineseocr , 它采用了轻量级的主干网络 PSENet , 轻量级的 CRNN 模型和行文本方向分类网络 AngleNet 。 尽管要实现多种能力 , 但 chineseocr_lite 总体模型只有 17M 。 目前 chineseocr_lite 支持任意方向文字检测 , 在识别时会自动判断行文本方向 。 我们可以先看看项目作者给出的效果示例:

「Docker」实测超轻量中文OCR开源项目,总模型仅17M
本文插图
「Docker」实测超轻量中文OCR开源项目,总模型仅17M
本文插图
可以看到 , chineseocr_lite 在横排文字和竖排文字的识别上都有不错的效果 , 而且它提供的交互式网页端能直接在页面插入图像与调用识别模型 。 为了进一步挖掘该轻量级模型的效果 , 机器之心也上手测试了一番 。 项目实测由于Docker能够提供一个不依赖主机操作系统的隔离空间 , 并且兼具良好的安全性与可移植性 , 我们决定在Docker下对该轻量级模型进行测试 。 至于测试过程中的环境配置与采坑过程 , 后文会一一道来 。 先看看使用作者项目里自带图片的测试效果 。 识别结果与项目里提供的类似 , 这里耗时较长主要是由于我们测试时没有使用 GPU 的缘故 。
「Docker」实测超轻量中文OCR开源项目,总模型仅17M
本文插图
下面我们找一些其它图片来测试一下它的效果 。
「Docker」实测超轻量中文OCR开源项目,总模型仅17M
本文插图
可以看到该模型对于常规印刷字体的识别效果还是很好的 。 接下来我们决定找一个书法图片为难一下它 , 竟然一个也没有识别对?不过对于这样一个主打超轻量 , 总模型大小不超过 20M 的 OCR 项目来说 , 还要啥自行车 。
「Docker」实测超轻量中文OCR开源项目,总模型仅17M
本文插图
Docker 环境搭建我们的运行环境

  • Ubuntu 18.04
  • Python 3.6.9
  • Pytorch 1.5.0.dev20200227+cpu(作者推荐 1.2.0)
首先下载 Docker 镜像 。 这里推荐使用咱们中国人自己做的镜像 deepo , 一行代码傻瓜式安装 tensorflow、pytorch、darknet 等目前最新的深度学习框架 。 deepo 链接:https://hub.docker.com/r/ufoym/deepo当安装好 Docker 后 , 用以下代码获取包含所有深度学习框架的镜像:
docker pull ufoym/deepo 在这里我们使用猪厂提供的国内源来加速下载:
docker pull hub-mirror.c.163.com/ufoym/deepo


推荐阅读