使用Tesseract训练lang文件并OCR识别集装箱号

在某产品的规划中,想要通过监控视频进行 “集装箱计数” 与 “集装箱号” 识别,以便与舱单数据进行自动化的对比,发现潜在的监管风险。在研究了不少商用的集装箱号识别系统后,发现为了保证识别准确率几乎都采用了 固定角度 + 多位置识别 的原始图像获取方式以降低图片质量干扰,提高识别准确率。
考虑到用户业务的应用场景,不能在像“卡口”这样的位置进行三机位的固定场景的集装箱号识别。

所以,为了做这方面尝试,首先从集装箱号的OCR识别开始研究,理论上,集装箱编号就是“英文字母+数字”的组合,但是实践验证利用Tesseract自带的eng词库进行识别,准确率有限,还是要考虑自己做针对性的训练,生成专用词库。

在这里记录下Tesseract训练集装箱号词库过程。

1.环境准备

1.1系统环境

之前在Ubuntu 16.04 下跑过一遍完整的流程,最近又收集了一些样本图片,所以再训练看看效果,本次准备在Mac环境下进行。

所以,本文的所有操作,没有特殊说明都是在macOS 10.12.6下,Mac下与Ubuntu下过程、命令都一样,唯一不同的就是最后lang文件保存的位置了。

另外,建议Mac党准备一个Windows电脑,虚机没测试,但是理论上应该不会有问题,为什么需要下面会进行说明。

1.2基础环境安装

1.2.1 brew 安装

Homebrew 是macOS下的包管理工具,教程很多,自行搜索就好,基本就是终端执行一句话:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1.2.2 imagemagick 安装

imagemagick 是一个牛逼到“奇葩”

猜你喜欢

转载自blog.csdn.net/qq_37674858/article/details/80365914