【スマホTermux】popplerとTesseractでOCR
今回は、AndroidアプリのTermuxで、OCR(光学文字認識)を行います。
目次
- 目次
- 実行環境
- 参考リンク
- インストールするソフト
- ソフトのダウンロード
- 日本語を読む為のソフトをダウンロード
- ダウンロードしたtraineddataを移す
- pdfをjpgに変換
- TesseractでOCR
- おわりに
実行環境
参考リンク
- Tesseractの公式ドキュメント
GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)
- Termux公式のOCRページ
- こちらのページ様を参考に行いました。
官報監視のAndroid Termux移植 - 資料室B3F
PythonでPDFを画像ファイル(JPEG、PNG)に変換する方法 - ガンマソフト株式会社
- PDF閲覧フリーソフトpoppler
Poppler : PDFのコマンドラインツール | PDF
このソフトのpdftoppmコマンドでpdfを画像に変換する。
- Tesseractをコマンドで操作
tesseractコマンドの使い方(Tesseract OCR 4.x) | テクノロジーで楽がしたい
インストールするソフト
OCRの有名なフリーソフトのTesseract
と、PDFファイル閲覧フリーソフトのpoppler
をインストールします。
それからソフトのダウンロード用にwget
も。
まさかスマホでtesseractが動くとは思わなかったぜぃ。
Tesseract
とpoppler
とwget
はPythonのライブラリではなくLinuxのソフトです。今回はTermuxシェルのコマンドで動かします。
ソフトのダウンロード
Termuxで行います。
$ pkg install wget $ pkg install poppler $ pkg install tesseract
上記のコマンドで、それぞれのソフトがダウンロード・インストールされます。
念のため、次のコマンドでソフトのアップデートを行います。
$ pkg update
Termuxを初めて使う場合は、次のコマンドでTermuxがAndroidのストレージにアクセスできるようにします。
$ termux-setup-storage
日本語を読む為のソフトをダウンロード
storage/downloadsフォルダに移動し、そこへ wgetで日本語認識用のソフトをダウンロードします。
$ cd ~/storage/downloads $ wget https://github.com/tesseract-ocr/tessdata_best/raw/master/jpn.traineddata $ wget https://github.com/tesseract-ocr/tessdata_best/raw/master/jpn_vert.traineddata
これでstorage/downloadsフォルダに2つのtraineddata
ファイルが保存されたかと思います。
確認するにはls
コマンド。あればOK。
ダウンロードしたtraineddataを移す
今ダウンロードした2つのtraineddataファイルを、usr/share/tessdata
フォルダにコピーします。
$ cp jpn.traineddata /data/data/com.termux/files/usr/share/tessdata $ cp jpn_vert.traineddata /data/data/com.termux/files/usr/share/tessdata
Termuxのホームディレクトリは/data/data/com.termux/files/home
です。次のコマンドで確認できます。
$ cd $ pwd
/data/data/com.termux/files/home
になっているはずです。
/usr/share/tessdata
ディレクトリに移動するには、
ホームディレクトリから
$ cd .. $ ls
で一階上がると、usr
ディレクトリがあるので、そこに移動して
$ cd usr $ ls
/share
ディレクトリに移動して、
$ cd share $ ls
Linuxコマンドのディレクトリがたくさん表示されます。その中にtessdata/
ディレクトリがある。中を見ると、
$ ls tessdata configs/ jpn_vert.traineddata eng.traineddata pdf.ttf jpn.traineddata tessconfigs/
2つのフォルダと、3つのtraineddata
ファイルと、pdf.ttf
ファイルが入っていればOK。
ホームディレクトリに戻っておきましょう。
$ cd
pdfをjpgに変換
TesseractでOCRするには、一旦pdfをjpg等の画像ファイルに変換してから行います。
変換方法は検索すればたくさん見つかりますが、今回は最初にダウンロード・インストールしたpoppler
というLinuxソフトのpdftoppmコマンド
を使ったやり方だけを書いておきます。
input.pdf
というファイルをoutfile.jpg
に変換する。
$ pdftoppm -jpeg input.pdf outfile
コマンドオプションがたくさんあります。
- 参考リンク
経産省のDXに関するpdfを画像変換してみる
試しにpdfをjpgに変換してみます。
適当にpdfをダウンロードします。URLはhttps://www.meti.go.jp/policy/digital_transformation/index.html
METI DX:経済産業省のデジタルトランスフォーメーション特設Webサイト
ここの「経済産業省主催“DX寺子屋”関連資料(更新日:2019/01/31)」の「講座①」のpdfを使います。course01.pdf
というファイル名です。
ホームディレクトリに保存して作業します。
1~3ページをjpgに変換する
ホームディレクトリに保存したcourse01.pdf
の1~3ページをjpg画像変換します。
$ pdftoppm -jpeg -f 1 -l 3 course01.pdf output
あっという間。output-01.jpg、output-02.jpg、output-03.jpgの画像ファイルがページごどに作成されました。
TesseractでOCR
ここからが今回の見せ場です。画像変換したファイルをOCRスキャンします。上手く行けば画像の文字が認識されてテキストファイルに変換されます。
- 1ページ目
$ tesseract output-01.jpg course-01 -l jpn
Tesseract Open Source OCR Engine v4.1.1 with Leptonica
と表示され、15秒ほどしてからホームディレクトリにcourse-01.txt
が作成されました。中身は…
に 経済 産業 衝 行政 デジ タル 化 に 関す る 政府 全体 の 動向 と 経 産 省 の 取組 経済 産業 省 情報 プロ ジェ クト 室 室長 補佐 吉田 泰 己
- 2ページ目
$ tesseract output-02.jpg course-02 -l jpn
こちらもTesseract Open Source OCR Engine v4.1.1 with Leptonica
の表示後に
course-02.txt
が作成されました。
中身は
1. 政府 全体 の 動き
色の薄い文字は読めてませんね。
- 3ページ目
ごちゃごちゃしています。難易度高いかな。
$ tesseract output-03.jpg course-03 -l jpn
今度はTesseract Open Source OCR Engine v4.1.1 with Leptonica
Detected 66 diacritics
と表示。スキャンし終わるまで2分ほど掛かった。
中身は(改行はそのまま残しています)
デジ タル ・ ガ バル メ ント 実行 計画 (平成 30 年 7 月 デジ タル ・ ガ バ メ ント 閣僚 会 議決 定 ) 横断 的 施策 に よる 「 行 政 サ ービス 改革 」 の 推進 [テッ タル ファ ニスト 】 し いつ ① 行 下 9ー ビ ス の 1009%z ッ タル ルー] [ユー プン デー タ の 推進 】 (2) 行政 保有 デー タ の 1009% オ ー フ ッ 化 | " 各種 手続 の オン ライ ン 原 則 の 徹底 画 オー プン デー タ ・ バ イ ・ デ ザイ ン の 推進 科 作 に 共 欠 放 委 CRPR3 ラス テム 故 半 を 拓 弧 の 上 、 ン メー プ ン デー タ を 前 提 と し た 業務 ・ シ ステ ム の 設計 ・ 運 用 の 推進 行政 サー ビス の デジ タル 化 を 徹底 する 天 ニー ズ の 把握 と 志 速 な 公開 ン 押 ED や 対面 等 の 本 人 確認 等 手法 の 在り 方 を 再 整理 〆 民間 事業 者 等 と の 直接 対話 を 通じ た 民間 ニー ズ の 把握 と こ れ に ン 多様 な 端末 で 利用 な 文字 環境 の 在り 方 を 再 整理 対応 し た オー プン 化 の 加速 民 - 民 手続 に つい て も オン ライ ン 化 に 向け た 見 直し を 実施 ン 推奨 デー タ セ ッ ト に 基づく < デー タ 公 開 の 推進 【 ワ ンス オン リー 】 ニー テー 一 男 行政 手続 に お ける 添付 書類 の 撤廃 行政 デー タ 標 準 の 確立 】 ルス の の 大寺 条 ンマ イナ ン バ ー 制 度 等 を 活用 し 、 既に 行政 が 保有 し て いる 情 行政 デー タ 連 携 標準 の 策定 報 は 、 添 付 書 類 の 提出 を 一 括 し て 撤廃 ン 日 付 ・ 住 所 等 の コア と な る 行政 デー タ 形式 に つい て 、 平 成 29 年 度 示 ン 深 は 箇 希 キー 導 し て 才 麻 す る た 6 法 迷 を 可能 な 胡 表 まで に デー タ 之 携 の 標準 を 策定 や か に 国会 に 提 画 語 渦 ・ コ ー ド ・ 文 字 等 の 標準 化 、 環 境 整 ・ 登記 事項 証明 書 、 住 民 票 の 写し ・ 戸 籍 騰 抄 本 等 の 提 メ パー 語 茶 ・ コ ー ド 、_ 出 不 要 化 等 の 体系 を 共通 語 沿 基盤 と し て 整理 【 ワ ンス トッ プ 】 ン _ デー タ 品 質 ま で 含ん だ デー タ 活用 、 流 通 の ルー ル を 整理 民間 サー ビス と の 連携 も 含め た ワン スト ッ プ 化 を 推進 | 甘 人 デ テッ タル ブ プラットフォーム の 浅 築 = 、 、 トー 、 ッ ト フ ォ ー ム の 構築 】 ン ^ 主要 ライ ブイ ベン ト で ある 以下 を 先行 分 野 と し て 推進 / 複数 手先 を 一 つの ID で 申請 で きる 認証 シス テム の 才 備 や 法人 イン フォ * 引 瑞 し , 介護 , 死亡 相続 メー ショ ン の 活用 等 を 通じ 、 デ ー タ が 官民 で 有効 活用 され る 基盤 を 構築 【 政 府 情報 シス テム 改革 の 着実 な 推進 】 て ン __ これ まで の 取組 に より 、 約 1,118 億 円 の 運用 コス ト の 削減 を 見 込ん で いる 。 改革 を 引き 続き 推進 し 、 シス テム 数 の 半減 、 運用 コス ト の 3 割 削減 を 達成 各 府 省 計画 の 策定 と 個別 分 野 の サー ビス 改革 【 各 府 省 中 長期 計画 の 策定 】 て 各 府 省 の IT ガバ ナン ス を 強化 し 、 各種 取 組 を 推進 する た め 、 各 府 省 に お ける デジ タル 改革 の 中 長期 計画 を 平成 30 年 上 半期 を 目途 に 策定 【 個 別 分 野 に お ける サー ビス 改革 】 Y 「 行 政 手続 等 の 棚卸 」 等 を 踏ま え 、 個 別 分 野 で 先行 的 に サー ビス 改革 を 推進 2
枠が空白に変換されたんだろうか。
おわりに
6割以上は読めてるかな。枠や絵が無くテキストだけの画像で試したらもっと精度が高かった。結構使える。まさかスマホで出来るとは。Pythonを使って書けばいろいろ自動化できてはかどりそうです。役所関係の文書や学術論文はpdfで読みにくくてしょうがないじゃない。コロナの都道府県別PCR検査数のデータとか。なんでpdfやねん!
以上です。
AndroidにTermuxとPythonをF-Droidから再インストールした(2021年12月 - よちよちpython