【Tesseract+Poppler+Python】Windows環境で実行すると日本語テキストが消え失せる件と対策

わーいpythonでOCR出来るようになったぞー、と思って色んなデータ突っ込んでみたら早速、テキストがあるはずなのに「テキストが空っぽやで~」って言われる、という事件が発生したので対処をまとめます。

日本語テキストデータが入っているPDFはWindows環境のPopplerが画像化出来ない

中間データを追っていったところ、ここが悪さをしていました。
PDFをjpg化する時点でテキストが全部消えます。
なんでやねん、と思ったら、Windows向けに配布されているPopplerには「日本語テキストを理解して画像化する為のライブラリ」が欠損しているそうです。まじかー。

言語データを用意する

ここで配布されている、「poppler-data-0.4.11」(バージョンは2022年9月1日時点)をダウンロードして、Popplerをインストールしたフォルダの「Shere」というフォルダの中に「poppler」という名前でまるごと置いておきます。
これで日本語テキストもちゃんと画像化してくれます。

注意点

PDFで使われているフォントがPC内にない等の場合、popplerが適当なフォントに置き換えてしまうので、例えばPDF開いて見るとちゃんと日付が表示されているのに、poppler噛ませてjpeg化したファイル見て見ると、フォントが変わった影響で文字送りが変になって、文字同士が癒着してる(そのせいでちゃんとOCRができない)、とかがたまに起きます。この現象の対処方は検討中です。どうしたらいいんじゃ。

ところで日本語テキスト取れるならわざわざOCRなんかしないでそっち取れば良いんじゃない?

そう思うけど、日本語テキストが取れるならテキストを取って、出来なかったらOCRって処理を分岐させるところまで作り込む時間が今なくて……

この記事が気に入ったらサポートをしてみませんか?