跳至內容。

如何在 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 版本 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' 腳本,當給定一個影像目錄和對應的 ground truth 文字以及 .traineddata 檔案時,該腳本將會 OCR 每個頁面並列印準確度,最後會列印平均摘要。