Tesseract 版本规划
在这里我们可以规划 Tesseract 的下一个版本。
未来版本
以下是一些关于未来 Tesseract 版本的想法。
-
使用 llvm 的工具:clang-format、clang-tidy、scan-build、sanitizers。
-
用 C++ 标准类型替换更多 Tesseract 数据类型(
GenericVector
等),尤其是 API。 -
添加 json(或 xml)输出格式。它将用于完整的 OCR 和 psm 2 - 仅布局信息。
-
添加使用来自 leptonica 的备选二值化方法的选项。
-
添加一个选项来为多页输入输出单独的文件(out1.hocr、out2.hocr 等)。
-
在命令行中添加多线程选项(在这种模式下,openmp 将在运行时被禁用)。
-
探索使用 Protocol Buffers 或 FlatBuffers 用于训练数据的选项。
-
改进错误处理,不要忽略来自函数的返回值(参见 讨论)。
-
用具有日志级别的高级日志 API 替换 tprintf 等。
5.0.0
高级日志
要求(另见 讨论)
日志级别
- 跟踪
- 调试
- 信息
- 警告
- 错误
- 严重
相关问题
- https://github.com/tesseract-ocr/tesseract/issues/1338
有用链接
4.0.0
参见 发行说明。
另见 问题 #1423 的讨论。
应该修复的未解决问题
-
带有“bug”标签的问题(参见 这里的列表)
-
带有整个页面作为 bbox 的噪声字符被识别 #1192
-
使用整数模型进行 LSTM 训练时出现分段错误 #1573
-
当 Tesseract 初始化代码检测到不受支持的区域设置时报告警告。(参见 评论)
-
无法创建输出文件时的错误信息不足 问题 1424
-
混合语言(fra+ara)项上的“no best words!!”(参见 问题 235)
-
mgr_.Init(traineddata_path.c_str()):Error:Assert failed: #1075(参见 问题 1075)
此版本想要的功能
-
用于从 github 安装仅选定语言的脚本(参见 问题)
https://github.com/zdenop/tessdata_downloader
待讨论
根据可用资源和意见,这些建议将被添加到下一个或未来版本的计划中,或者被放弃。
-
增强 -list-langs 以显示脚本和语言的附加信息,如 legacy / LSTM、版本
这将使命令变慢,因为每个文件都必须打开和解析。将此添加为 -list-langs-details 或基于 lang-code 为一种语言文件添加为 -list-lang-details?
-
-list-langs 还应显示它正在使用的目录
-
修复 autotools 构建,以便调试模式按预期使用 -O0
-
添加一个选项来可选地选择点积的实现(CPU、SSE、AVX 等)
-
训练数据的相对包含
tessedit_load_sublangs 应搜索相对于父级的子语言,而不是从 tessdata 目录开始。
-
更多针对 Coverity Scan 报告的编译器警告和问题的修复
-
添加一个简单的 bash 脚本用于构建 tesseract
-
新的训练数据格式
除了当前的专有格式,Tesseract 还可以支持 ZIP 档案(参见 讨论)。
使用 libarchive 的一个可能的实现 可用,但需要更多测试。
-
“训练之光” - 学会做(参见 问题)
-
修改 text2image 以使用 PrepareDistortedPix() #1052
-
计划日期
来自 3.0x 版本的功能回归
Tesseract 4.0 应该是 Tesseract 3.05 的完整替代品,并且在与旧 OCR 引擎 (--oem 0
) 一起使用时具有相同的功能。以下回归仍然需要验证(它们确实是回归,还是只是 LSTM 缺少的功能)
来自 3.0x 版本的 LSTM 缺少的功能
这些功能仍然可以使用旧的 OCR 引擎 (--oem 0
) 工作,但在 LSTM 中缺失,并且需要。
-
#### 黑名单 / 白名单(参见 问题)。这是一个 解决方法.在 4.1.0 中修复. -
hOCR 字体信息(参见 评论)
未来版本
在这里,我们收集了 4.0.0 之后版本的重要问题和功能。
-
新的基于 LSTM 的 OSD 检测器(参见 评论)。
-
删除 Legacy Tesseract 引擎(参见 问题)
-
改进训练的多语言实现(参见 评论)
-
ARM SIMD 对点积的支持 #519
-
使用 OpenMP 进行点积 #983
-
删除弃用的代码
这不包括 OpenCL 或旧的 Tesseract 引擎。
-
Tesseract 为缺失的输入创建输出(参见 问题 1023)。
基本解决,但可以改进。
-
问题 1353:针对 /training/tessopt.cpp 的补丁(参见 拉取请求 13)
看起来无法在同一个进程中运行多个训练。拉取请求描述了一个可能的修复,但不包括完整的实现(低优先级)。