2011-02-10 59 views
9

我讀過一些其他帖子,建議他們在3.00中添加多線程支持。但我不確定是否在3.00發佈時添加它。是tesseract 3.00多線程?

除了多線程,運行多個tesseract過程是實現併發性的一個可行選項嗎?

謝謝。

+0

[Is Tesseract(OCR引擎)可重複?](http://stackoverflow.com/questions/4827924/is-tesseractan-ocr-engine-reentrant) – 2013-01-21 17:21:34

回答

8

我做過的一件事情是調用GNU並行來運行Tess *的多個實例,因爲多核系統可以運行多頁文件轉換爲單頁圖像。

這是一個簡短的程序,很容易在大多數Linux發行版上編譯(我正在使用OpenSuSE 11.4)。

下面是我用命令行:

/usr/local/bin/parallel -j 4 \ 
    /usr/local/bin/tesseract -psm 1 -l eng {} {.} \ 
    ::: /tmp/tmp/*.jpg 

的-J4告訴並行使用所有四個CPU核心,我有一臺服務器上。

如果您運行此操作,並在另一個終端中執行「頂部」操作,則一次最多可以看到四個進程,直到它翻閱指定目錄中的所有JPG文件。

您的負載不應超過系統中CPU內核的數量(如果您運行Linux)。

這裏的鏈接到GNU並行:

http://www.gnu.org/software/parallel/

2

我沒有使用parallel以及上一個CentOS,這種方式:

ls | parallel --gnu "tesseract {} {.}" 

我用--gnu選項從建議stdout日誌是:

parallel: Warning: YOU ARE USING --tollef. IF THINGS ARE ACTING WEIRD USE --gnu. 

{}{.}是並行的佔位符:在這種情況下,您要告訴tesseract使用列出的文件作爲第一個參數,並使用沒有擴展名的同一文件名作爲第二個參數 - 在並行手冊頁中很好地解釋了所有內容。

現在,如果你有 - 說 - 三個.tif文件並運行tesseract三次,每一個文件,總結了執行時間,然後運行命令上面timeparallel之前,你可以輕鬆地檢查加速。