よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

【スマホTermux】popplerとTesseractでOCR

今回は、AndroidアプリのTermuxで、OCR(光学文字認識)を行います。

目次



実行環境




参考リンク


  • Tesseractの公式ドキュメント

GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)

  • Termux公式のOCRページ

OCR - Termux Wiki

  • こちらのページ様を参考に行いました。

官報監視のAndroid Termux移植 - 資料室B3F

PythonでPDFを画像ファイル(JPEG、PNG)に変換する方法 - ガンマソフト株式会社

Poppler : PDFのコマンドラインツール | PDF
このソフトのpdftoppmコマンドでpdfを画像に変換する。

  • Tesseractをコマンドで操作

tesseractコマンドの使い方(Tesseract OCR 4.x) | テクノロジーで楽がしたい



インストールするソフト


OCRの有名なフリーソフトTesseractと、PDFファイル閲覧フリーソフトpopplerをインストールします。
それからソフトのダウンロード用にwgetも。

まさかスマホでtesseractが動くとは思わなかったぜぃ。



TesseractpopplerwgetPythonのライブラリではなく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

コマンドオプションがたくさんあります。

  • 参考リンク

Poppler:pdftoppm の使い方 | PDF



経産省の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ページ目

f:id:chayarokurokuro:20210408030259j:plain

$ tesseract output-01.jpg course-01 -l jpn

Tesseract Open Source OCR Engine v4.1.1 with Leptonicaと表示され、15秒ほどしてからホームディレクトリにcourse-01.txtが作成されました。中身は…

に 経済 産業 衝

行政 デジ タル 化 に 関す る
政府 全体 の 動向 と 経 産 省 の 取組

経済 産業 省 情報 プロ ジェ クト 室
室長 補佐 吉田 泰 己



  • 2ページ目

f:id:chayarokurokuro:20210408030332j:plain

$ tesseract output-02.jpg course-02 -l jpn

こちらもTesseract Open Source OCR Engine v4.1.1 with Leptonicaの表示後に course-02.txtが作成されました。 中身は

1. 政府 全体 の 動き

色の薄い文字は読めてませんね。



  • 3ページ目

f:id:chayarokurokuro:20210408030401j:plain

ごちゃごちゃしています。難易度高いかな。

$ 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