テッセラクトについていくつか質問があります
コンテクスト
私は現在、80 年代に開発された東ドイツ (GDR) の古い暗号化アルゴリズムに取り組んでいます。アルゴリズムを C# で実装しました。現在、チェックしたいテスト ケースが 30 ページほどあります。バイナリ/16 進文字列をすべて手動で入力したくないので、Tesseract (または動作する無料ソフトウェア) を使用して OCR 処理したいと考えています。
問題
満足のいく結果が得られません。詳細は以下で説明します。
現在のステータス
(申し訳ありませんが、画像を直接投稿することはできません) ドキュメントは次のようになります。 ページの一部/手紙の詳細
素朴なアプローチ
デフォルト設定(関連部分ではドイツ語を使用するので問題ないはずです)では、悲惨な結果になります。
tesseract -l deu input.tiff output pdf
結果は次のようになりますこれ
特にゼロは問題を引き起こします。単語、文字、1 は少しだけ認識されやすくなります。
試したこと(前処理)
- ページを回転する
- コントラストを上げます
- 画像を2値化する
- 文字間の小さな隙間を埋めるために画像を縮小/拡大します
最終結果は次のようになりますこれ私が知る限り、OCR によって状況が少し改善されるはずです。
試してみたこと(Tesseractの設定)
私の設定ファイルは次のようになります:
load_system_dawg F
load_freq_dawg F
language_model_penalty_non_dict_word 0
language_model_penalty_non_freq_dict_word 0
tessedit_create_pdf T
tessedit_char_whitelist 0123456789ABCDEF
基本的に、私は Tesseract に、文字から有用な単語を作ろうとせず、16 進文字列に必要な文字のみを許可するように指示します。
ご覧のようにこここれにより、わずかに良い結果が得られますが、すべての場合に当てはまるわけではありません。最後の行のいくつかのゼロは、大幅に適切に検出されます。F の間では、何も起こりません。
ニューラルネットワークと従来のOCR(--oem 0/1)の設定を試してみると、少し違いがあります。従来のアルゴリズムは、多くの0を9として検出しますが(0として検出することはありません)、一貫性ははるかに高くなります(ただし、良くはありません)。
質問
結果を改善するために、さらに何ができるでしょうか? ニューラル ネットをさらにトレーニングできることはわかっていますが、私が読んだ内容では、これには避けたい労力がかかります (自分で Tesseract を構築し、ML を動作させ、ラベル付きのテスト データを作成するなど)。
他に何か?
ご協力いただきありがとうございます。