1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

YomiTokuをGoogle Colabで実行する

Posted at

YomiTokuは日本語に特化して学習したAI OCRです。Pythonパッケージとして公開されており、インストールすればCLIで簡単にOCR解析が可能です。APIもありますので、Pythonからの操作も可能です。

今回は、Jupyter NotebookのクラウドサービスであるGoogle ColabでYomiTokuを利用する手順を紹介します。今回はA100を使っているので、課金していなくとも高度なAI OCRを利用できます。

Google Colabの使い方

Google Colabでは、Googleアカウントがあれば無料でJupyter Notebookを使うことができます。無料ユーザーでもGPUを利用できますが、高性能なGPUを長時間使う場合には有料プランに移行する必要があります。

image.png

ただし、今回のA100であれば、無料ユーザーでも利用できます。YomiTokuは高性能なGPUを必要としませんので、A100で問題ありません。

YomiTokuをGoogle Colabで実行する

では、YomiTokuをGoogle Colabで実行する手順を紹介します。今回はGoogle Driveをマウントして実行します。コンテナ上にアップロードして実行もできますが、接続を解除するとデータが消えてしまうので、Google Driveを使ってデータを保存することをお勧めします。

Google Driveをマウントする

Google Driveは、Google Colabのファイルアイコンをクリックして、Google Driveのマウントをクリックするだけです。これで drive というディレクトリが作成され、Google Driveのファイルが参照できるようになります。

image.png

YomiTokuをインストールする

YomiTokuのインストールは、 pip コマンドで行います。

!pip install yomitoku

インストール後、セッションを再起動する必要があります。

YomiTokuを実行する

YomiTokuを実行する一番簡単な方法は、 yomitoku コマンドを使うことです。以下のように実行します。

!yomitoku /content/drive/MyDrive/path/to/dir -o /content/drive/MyDrive/path/to/results -f md

このコマンドで、 /content/drive/MyDrive/path/to/dir 内にある帳票データを解析し、 /content/drive/MyDrive/path/to/results に結果を保存します。フォーマットはMarkdownです。

他にフォーマットとして、 htmljsoncsv が指定できます。

APIを利用する

YomiTokuはAPIも提供しています。APIは、Pythonの中で利用し、既存のシステムやワークフローへ組み込む際に役立つでしょう。

インポートする

まずは、YomiTokuをインポートします。

from yomitoku import DocumentAnalyzer
from yomitoku.data.functions import load_pdf

DocumentAnalyzerを初期化する

DocumentAnalyzerを初期化します。このとき、GPUを使う場合は device="cuda" を指定します。

analyzer = DocumentAnalyzer(visualize=True, device="cuda")

ドキュメントを読み込む

ドキュメントを読み込みます。PDFファイルを読み込む場合は、 load_pdf を使います。

imgs = load_pdf("/content/drive/MyDrive/path/to/invoice.pdf")

今回利用したドキュメントは1ページしかないので、 imgs には1つの要素が入ります。複数ある場合にはループ処理を行ってください。今回は1ページ目を取り出しています。

img = imgs[0]

OCRを実行する

OCR処理を行う analyzer は非同期処理なので、 await を使います。

results, ocr_vis, layout_vis = await analyzer.run(img=img)

結果を出力する

解析結果を出力します。今回はHTML出力します。

out_path = "/content/drive/MyDrive/path/to/results/result.html"
html = results.to_html(out_path, img=img)

この時、 html に結果のHTMLが入ります。そして、解析結果の中に画像を含む場合には、1つ目の引数で指定したパスに対して figures というディレクトリが作成され、画像が保存されます。

image.png

HTMLの内容自体は別途、ファイルに出力します。

open(out_path, "w").write(html)

さらに、解析した結果のレイアウトファイルなども保存できます。この場合、cv2をインポートします。

import cv2
cv2.imwrite(f"/content/drive/MyDrive/path/to/results/result_ocr.jpg", ocr_vis)
cv2.imwrite(f"/content/drive/MyDrive/path/to/results/result_layout.jpg", layout_vis)

result_ocr.jpg

これで処理は完成です。

全体のコード

最終的なコードは以下のようになります。

# インストール
!pip install yomitoku

# コマンドでの利用
!yomitoku /content/drive/MyDrive/path/to/dir -o /content/drive/MyDrive/path/to/results -f md


# プログラミングからの利用
from yomitoku import DocumentAnalyzer
from yomitoku.data.functions import load_pdf

analyzer = DocumentAnalyzer(visualize=True, device="cuda")

imgs = load_pdf("/content/drive/MyDrive/path/to/invoice.pdf")

img = imgs[0]

results, ocr_vis, layout_vis = await analyzer.run(img=img)

out_path = "/content/drive/MyDrive/path/to/results/result.html"
html = results.to_html(out_path, img=img)
open(out_path, "w").write(html)

import cv2
cv2.imwrite(f"/content/drive/MyDrive/path/to/results/result_ocr.jpg", ocr_vis)
cv2.imwrite(f"/content/drive/MyDrive/path/to/results/result_layout.jpg", layout_vis)

これで、YomiTokuをGoogle Colabで実行する手順が完了です。ぜひ、試してみてください。

ライセンス

YomiTokuのライセンスはコモンズ証 - 表示 - 非営利 - 継承 4.0 国際 - Creative Commonsです。非商用での個人利用、研究目的においては、ご自由に利用できます。商用目的での利用に関しては、商用ライセンスが必要です。

まとめ

YomiTokuは決して高性能なGPUが必要な訳ではありませんが、CPUでの実行は時間がかかります。macOSのように cuda に対応していない場合も時間がかかります。

そうした時、Google Colabを使うことで、ローカルから実行するかのようにGPUを使ったAI OCRが実現できます。ぜひAI OCRを使って、既存資産のデジタル化や業務効率化を実現してください。

kotaro-kinoshita/yomitoku: Yomitoku is an AI-powered document image analysis package designed specifically for the Japanese language.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?