コンテンツへスキップします。

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を行い、精度と平均サマリーを最後に表示します。