如何在 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 每個頁面並列印準確度,最後會列印平均摘要。