Tesseractに、ページセグメンテーション(OCR以前)の結果としてラベル付けされたバウンディングボックスを含むファイルを出力させようとしています。 ICDAR競技で出場者が分割しなければならない結果とさまざまな文書( 学術論文はこちら )で示された結果のため、この「箱から出して」行うことができるはずです。以下は、私が作成したいものを示すその論文の例です。
Brew _brew install tesseract --HEAD
_を使用してtesseractの最新バージョンを構築し、_/usr/local/Cellar/tesseract/HEAD/share/tessdata/configs/
_にある設定ファイルを編集してラベル付きボックスを出力しようとしています。 hocr
を設定として使用して受信した出力、つまり.
_tesseract infile.tiff outfile_stem -l eng -psm 1 hocr
_
すべてのバウンディングボックスを提供し、class
タグにいくつかのラベルを付けます。
_<p class='ocr_par' dir='ltr' id='par_5_82' title="bbox 2194 4490 3842 4589">
<span class='ocr_line' id='line_5_142' ...
_
しかし、これを視覚化することはできません。 hOCRファイルを視覚化する標準ツールはありますか、それともTesseractに組み込まれた境界ボックスを使用して出力ファイルを作成する機能はありますか?
現在のヘッドバージョンの詳細:
_tesseract 3.04.00
leptonica-1.71
libjpeg 8d : libpng 1.6.16 : libtiff 4.0.3 : zlib 1.2.5
_
コマンドラインツールを使用してこれを達成することを本当に探しています(上記の例のように)。 @nguyenqは APIリファレンス を教えてくれましたが、残念ながらc ++の経験はありません。唯一の解決策がAPIを使用することである場合、簡単なpythonの例を教えてください。
成功。 パターン認識および画像解析研究所(PRImA) の人々に感謝します。これを処理するツールを作成してくれました。それらは website または github で自由に入手できます。
10.10を実行し、 homebrew パッケージマネージャーを使用するMacの完全なソリューションを以下に示します。 wine を使用して、Windows実行可能ファイルを実行します。
brew install wine # takes a little while >10m
brew install gs # only for generating a tif example. Not required, you can use Preview
brew install wget # only for downloading example paper. Not required, you can do so manually!
cd ~/Downloads
wget -O paper.pdf "http://www.prima.cse.salford.ac.uk/www/assets/papers/ICDAR2013_Antonacopoulos_HNLA2013.pdf"
# This command can be ommitted and you can do the conversion to tiff with Preview
gs \
-o paper-%d.tif \
-sDEVICE=tiff24nc \
-r300x300 \
paper.pdf
cd ~/Downloads
# ttptool is the location you downloaded the Tesseract to PAGE tool to
ttptool="/Users/Me/Project/tools/TesseractToPAGE 1.3"
# Sudo chmod 777 "$ttptool/bin/PRImA_Tesseract-1-3-78.exe"
touch "$ttptool/log.txt"
wine "$ttptool/bin/PRImA_Tesseract-1-3-78.exe" \
-inp-img "$dl/Downloads/paper-3.tif" \
-out-xml "$dl/Downloads/paper-3-tool.xml" \
-rec-mode layout>>log.txt
# pvtool is the location you downloaded the PAGE Viewer tool to
pvtool="/Users/Me/Project/tools/PAGEViewerMacOS_1.1/JPageViewer 1.1 (Mac OS, 64 bit)"
cd "$pvtool"
dl=~
Java -XstartOnFirstThread -jar JPageViewer.jar "$dl/Downloads/paper-3-tool.xml" "$dl/Downloads/paper-3.tif"
オーバーレイを含むドキュメント(ロールオーバーしてテキストとタイプを表示) オーバーレイのみ(GUIボタンを使用して切り替え)
自分でtesseractを実行し、別のツールを使用してその出力をPAGE形式に変換できます。私はこれを機能させることができませんでしたが、あなたは大丈夫だと確信しています!
# Note that the pvtool does take as input HOCR xml but it ignores the region type
brew install tesseract --devel # installs v 3.03 at time of writing
tesseract ~/Downloads/paper-3.tif ~/Downloads/paper-3 hocr
mv paper-3.hocr paper-3.xml # The page viewer will only open XML files
Java -XstartOnFirstThread -jar JPageViewer.jar "$dl/Downloads/paper-3.xml"
この時点で PAGE Converter Java Tool を使用してHOCR xmlをPAGE xmlに変換する必要があります。次のようになります。
pctool="/Users/Me/Project/tools/JPageConverter 1.0"
Java -jar "$pctool/PageConverter.jar" -source-xml paper-3.xml -target-xml paper-3-hocrconvert.xml -convert-to LATEST
残念ながら、nullポインターを取得し続けました。
Could not convert to target XML schema format.
Java.lang.NullPointerException
at org.primaresearch.dla.page.converter.PageConverter.run(PageConverter.Java:126)
at org.primaresearch.dla.page.converter.PageConverter.main(PageConverter.Java:65)
Could not save target PAGE XML file: paper-3-hocrconvert.xml
Java.lang.NullPointerException
at org.primaresearch.dla.page.io.xml.XmlInputOutput.writePage(XmlInputOutput.Java:144)
at org.primaresearch.dla.page.converter.PageConverter.run(PageConverter.Java:135)
at org.primaresearch.dla.page.converter.PageConverter.main(PageConverter.Java:65)
そのAPIを使用して、さまざまなレベル(文字/単語/行/パラ)で境界ボックスを取得できます- API Example を参照してください。自分でラベルを描く必要があります。
ショートカット
PageViewerツールでHOCRファイルを直接開くこともできます。ただし、ファイル拡張子は.xmlにする必要があります。
Tesseract 4.0.0では、tesseract source/dir/myimage.tiff target/directory/basefilename hocr
のようなコマンドは、OCRされたテキストのブロック、段落、行、およびワードレベルの境界ボックスを持つbasefilename.hocr
ファイルを作成します。 hocr
configを使用しないコマンドでも、ブロックレベルのテキスト間に改行を含むテキストファイルが作成されますが、hocr形式はより明確です。
その他の設定オプション: https://github.com/tesseract-ocr/tesseract/tree/master/tessdata/configs
個々の文字レベルのHOCRファイルを作成する最も簡単な方法は、Tesseract 3.05のnickjwhiteのフォークを使用することです。 https://github.com/nickjwhite/tesseract/tree/hocrcharboxes
TesseractのWikiに従ってtessdataファイルをコンパイルおよびダウンロードします。インストールを確認したら、次を使用します。
tesseract {image file} -c tessedit_create_hocr=1 -c hocr_char_boxes=1 {output name}
タダム!