Tesseract での UNLV テストの実行方法
はじめに
Tesseract 2.0 以降では、第4回OCR精度テストで公開されたUNLVテストの一部を実行できるスクリプトが提供されています。AT-1995.pdf(元のURL: http://www.isri.unlv.edu/)を参照してください。これらのテストスクリプトを提供する主な目的は、Tesseract ユーザーがインストールが正しく行われていること、およびアーキテクチャ固有の問題によって認識精度が悪くなっていないことを確認できるようにすることです。また、各バージョンの精度向上を示すベンチマークとしても機能します。Tesseract の開発者は、実験的な新しいモジュールの測定にこれらのベンチマークツールが役立つ場合があります。
アーキテクチャ固有の差異が**ある程度**発生することは留意してください。これらのほとんどは、コンパイラ間の浮動小数点演算の処理と最適化の違いによって引き起こされるはずです。もちろん、アーキテクチャ間の違いとして現れるメモリ初期化エラーの可能性もありますが、ユニコード化のプロセスですでにほとんどのエラーは発見したと主張しています。
注意
UNLV の画像は G4 圧縮されているため、TIFF サポートを有効にして Tesseract をビルドする必要がありますが、最近のバージョンでは libtiff がデフォルトで含まれています。
Windows ユーザーは、cygwin または同等のツールを使用して、UNIX シェルスクリプト機能を用意する必要があります。
画像
現在のスクリプトは、3B テストセット(つまり、300 dpi バイナリ)のテストのみを対象としています。オープンソース版 Tesseract の適応的閾値処理は、元の適応的閾値処理がオープンソース版に含まれていなかったため、オリジナルのものとは異なり、8ビットグレースケール画像テストは正しく比較されません。また、他の解像度は興味深いものの、実際には役に立つ回帰テストの目的には役立ちません。
テストの実行
Tesseract 4 のテストの実行方法については、UNLV テストの README ファイルを参照してください。
結果例
以下は、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 の結果 by Tom Morris
すべて、ターゲット x86_64-apple-darwin14.3.0 で Apple C コンパイラ Apple LLVM version 7.0.2 (clang-700.1.81) を使用してコンパイルされています。
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を行い、精度と平均サマリーを最後に表示します。