如何在 Tesseract 上运行 UNLV 测试
介绍
Tesseract 2.0+ 提供了一些脚本,可以运行第四届 OCR 准确性测试中发布的一些 UNLV 测试。参见 AT-1995.pdf(最初可在 http://www.isri.unlv.edu/ 获取)。提供这些测试脚本的主要目的是让 Tesseract 用户能够验证其安装是否正确,以及是否存在导致识别精度下降的特定于架构的问题。它还用作基准,以展示每个版本的精度改进。开发 Tesseract 的开发人员可能会发现基准测试工具对测量实验性新模块很有用。
请注意,某些特定于架构的差异是必然会发生的。其中大多数应该是由编译器之间浮点运算的处理和优化不同造成的。当然,也有可能存在内存初始化错误,这些错误表现为架构之间的差异,但我们声称已经在 Unicode 化过程中找到了其中大部分错误。
免责声明
UNLV 图像为 G4 压缩,因此您必须使用 TIFF 支持构建 Tesseract,但所有最新版本默认情况下都包含 libtiff。
Windows 用户还必须具有一定的 Unix shell 脚本功能,例如通过 cygwin 或等效工具。
图像
当前脚本仅涵盖 3B 测试集(即 300 dpi 二值图像)的测试。开源 Tesseract 中的自适应阈值与原始版本不同,因为原始自适应阈值未包含在开源版本中,因此 8 位灰度图像测试将无法正确比较,而其他分辨率虽然有趣,但实际上没有起到有用的回归测试目的。
运行测试
请参阅 UNLV 测试的 README 文件,了解有关如何为 Tesseract 4 运行测试的最新说明。
示例结果
以下是 1995 年测试的一些结果,取自 AT-1995.pdf 并重新格式化以匹配 Tesseract 测试工具的输出
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
1995 bus.3B 5959 98.14% 0.00% 1631 96.83% 0.00% 1293 95.73% 0.00%
1995 doe3.3B 36349 97.52% 0.00% 7826 96.34% 0.00% 7042 94.87% 0.00%
1995 mag.3B 15043 97.74% 0.00% 4566 96.01% 0.00% 3379 94.99% 0.00%
1995 news.3B 6432 98.69% 0.00% 1946 97.68% 0.00% 1502 96.94% 0.00%
(“更改”列用于最近的测试,并衡量与这些 1995 年结果的更改。)
使用 gcc 4.0.3-1ubuntu5 编译的 Tesseract 2.00 的结果为
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
gcc4.0 bus.3B 6259 98.04% 5.03% 1691 96.71% 3.68% 1313 95.66 1.55%
gcc4.0 doe3.3B 28850 98.03% -20.63% 7863 96.32% 0.47% 6688 95.13 -5.03%
gcc4.0 mag.3B 14815 97.78% -1.52% 4396 96.16% -3.72% 3124 95.37 -7.55%
gcc4.0 news.3B 7533 98.47% 17.12% 1758 97.91% -9.66% 1220 97.51 -18.77%
gcc4.0 Total 57457 - -9.92% 15708 - -1.63% 12345 - -6.59%
“更改”列显示了与 1995 年结果相比,精度存在巨大的差异,doe3.3B 测试集的字符错误率降低了 20%,而 news.3B 测试集的字符错误率增加了 17%。由于该引擎自 1995 年测试以来已经完全重新训练,并且现在在具有不同编译器的不同处理器上运行,因此很难确定这种巨大差异的原因。(这也可能部分归因于缺少 Aspirin 包。)
为了说明编译器带来的差异,以下是使用 gcc 4.1.1 编译的相同代码的结果
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
gcc4.1 bus.3B 6258 98.04% 5.02% 1690 96.72% 3.62% 1312 95.67 1.47%
gcc4.1 doe3.3B 28589 98.05% -21.35% 7864 96.32% 0.49% 6692 95.12 -4.97%
gcc4.1 mag.3B 14800 97.78% -1.62% 4394 96.16% -3.77% 3123 95.37 -7.58%
gcc4.1 news.3B 7524 98.47% 16.98% 1759 97.91% -9.61% 1220 97.51 -18.77%
gcc4.1 Total 57171 - -10.37% 15707 - -1.64% 12347 - -6.58%
错误率没有太大区别,但存在细微的差异。相反,使用 VisualC++ Express 构建的相同代码给出以下结果
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
vc++exp bus.3B 6270 98.04% 5.22% 1695 96.71% 3.92% 1315 95.66 1.70%
vc++exp doe3.3B 29098 98.01% -19.95% 8246 96.14% 5.37% 7038 94.87 -0.06%
vc++exp mag.3B 14981 97.75% -0.41% 4435 96.12% -2.87% 3157 95.32 -6.57%
vc++exp news.3B 7548 98.47% 17.35% 1763 97.90% -9.40% 1224 97.51 -18.51%
vc++exp Total 57897 - -9.23% 16139 - 1.06% 12734 - -3.65%
这显示了错误率的相当大的增长,这是在从代码中消除了一些浮点运算的使用之后的结果。更显著的差异是 Visual C++6,它在单词精度方面略好,但在字符精度方面更差
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
vc6 bus.3B 6298 98.03% 5.69% 1696 96.70% 3.99% 1317 95.65 1.86%
vc6 doe3.3B 29745 97.97% -18.17% 8105 96.20% 3.57% 6894 94.98 -2.10%
vc6 mag.3B 15036 97.74% -0.05% 4448 96.11% -2.58% 3165 95.31 -6.33%
vc6 news.3B 7531 98.47% 17.09% 1745 97.92% -10.33% 1210 97.53 -19.44%
vc6 Total 58610 - -8.11% 15994 - 0.16% 12586 - -4.77%
未来的工作可能集中在使这些差异更小,如果不能完全消除的话,理由是存在差异的地方,就有改进的空间…
Tesseract 更新版本的测试结果 由 Tom Morris 提供
所有版本均使用 Apple C 编译器 Apple LLVM version 7.0.2 (clang-700.1.81) 编译,目标为 x86_64-apple-darwin14.3.0。
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
3.04.01 bus.3B 8816 97.24% 47.94% 2221 95.68% 36.17% 1629 94.62 25.99%
3.04.01 doe3.3B 48306 96.70% 32.89% 9903 95.36% 26.54% 9020 93.43 28.09%
3.04.01 mag.3B 30860 95.37% 105.15% 7034 93.85% 54.05% 5228 92.25 54.72%
3.04.01 news.3B 19073 96.12% 196.53% 3432 95.92% 76.36% 2685 94.53 78.76%
3.04.01 Total 107055 - 67.84% 22590 - 41.46% 18562 - 40.45%
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
3.03rc1 bus.3B 8816 97.24% 47.94% 2221 95.68% 36.17% 1629 94.62 25.99%
3.03rc1 doe3.3B 48306 96.70% 32.89% 9903 95.36% 26.54% 9020 93.43 28.09%
3.03rc1 mag.3B 30860 95.37% 105.15% 7034 93.85% 54.05% 5228 92.25 54.72%
3.03rc1 news.3B 19073 96.12% 196.53% 3432 95.92% 76.36% 2685 94.53 78.76%
3.03rc1 Total 107055 - 67.84% 22590 - 41.46% 18562 - 40.45%
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
3.02.02 bus.3B 6039 98.11% 1.34% 1541 97.01% -5.52% 1240 95.90 -4.10%
3.02.02 doe3.3B 35988 97.54% -0.99% 8482 96.03% 8.38% 7640 94.43 8.49%
3.02.02 mag.3B 14367 97.84% -4.49% 3891 96.60% -14.78% 3024 95.52 -10.51%
3.02.02 news.3B 7148 98.55% 11.13% 1484 98.23% -23.74% 1152 97.65 -23.30%
3.02.02 Total 63542 - -0.38% 15398 - -3.58% 13056 - -1.21%
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
3.01 bus.3B 22384 93.00% 275.63% 2253 95.62% 38.14% 1863 93.85 44.08%
3.01 doe3.3B 301312 79.41% 728.94% 13924 93.48% 77.92% 11665 91.50 65.65%
3.01 mag.3B 160024 75.98% 963.78% 10698 90.65% 134.30% 7261 89.24 114.89%
3.01 news.3B 43454 91.17% 575.59% 3469 95.87% 78.26% 2380 95.15 58.46%
3.01 Total 527174 - 726.51% 30344 - 90.02% 23169 - 75.31%
Testid Testset Character Word Non-stopword
Errors Acc Change Errors Acc Change Errors Acc Change
2.04 bus.3B 6422 97.99% 7.77% 1750 96.60% 7.30% 1361 95.51 5.26%
2.04 doe3.3B 29514 97.98% -18.80% 7963 96.27% 1.75% 6762 95.07 -3.98%
2.04 mag.3B 14568 97.81% -3.16% 4289 96.25% -6.07% 3053 95.47 -9.65%
2.04 news.3B 7655 98.44% 19.01% 1730 97.94% -11.10% 1208 97.54 -19.57%
2.04 Total 58159 - -8.82% 15732 - -1.48% 12384 - -6.30%
如何使用 Nick White 的 OCR 评估工具
介绍
Nick White 已经分叉了 ISRI OCR 评估工具的存储库,使其能够轻松地与 UTF-8 一起使用,并且还包含一些辅助脚本。
git clone https://ancientgreekocr.org/ocr-evaluation-tools.git
Tools to test OCR accuracy.
这里特别值得一提的是“tessaccsummary”脚本,当给定图像目录和相应的真实文本以及 .traineddata 文件时,它会对每个页面进行 OCR 并打印出准确率,并在最后给出平均摘要。