Geminiを活用してテーブル形式の画像から情報を抽出してみた

 2024.12.01 Yudai Imai

はじめに

今回は「Gemini」を使ってテーブル形式の画像から情報をJSON形式で抽出する方法についてご紹介します。日常の業務の中で、画像ファイルに格納されたテーブルデータを手動で入力するのは時間がかかり、ミスが発生しやすい作業です。そんな時、この生成AIの「Gemini」が大いに役立ちます。

本ブログでは、特にエクセルやスプレッドシートのようなテーブル形式の画像から情報を効率的に取得するためにGeminiをどのように活用するかに焦点を当て、その基本的な操作方法を詳しく説明します。これにより、皆さんが日々の業務効率を向上させ、データの抽出や管理を楽にするための手助けとなることを目指しています。

Geminiとは

Geminiは、Googleが開発したマルチモーダル生成AIモデルです。テキスト、画像、音声、動画を入力として受け取り、テキストや画像を生成できます。今回のGeminiに対してテーブル形式の画像を与えて、高精度な情報を抽出することを目指します。

Geminiはいくつかのプラットフォームで利用することが可能となりますが、今回はGoogle CloudのVertex AI上で提供されているGeminiを利用して検証を行います。従って、本ブログにて実施している内容を再現する場合はGoogle Cloudのプロジェクトが必要になることをご認識いただければと思います。

Geminiを使った情報の抽出デモ

ここでは、Geminiを使ってテーブル形式の画像から情報を抽出する具体的な手順をご紹介します。初めての方でも安心して進められるよう、ステップごとに説明します。

実行手順

ステップ1: 画像の準備

今回はテストデータとして以下のようなデータを作成しました。画像の中にあるデータはテストデータを作成できるサイトにて作成したものとなっています。もし今回のデモをご自身の環境でも実施してみる方はこちらの画像をダウンロードいただいて利用することが可能です。

demo

ステップ2: Geminiのサービスへアクセス

今回はGoogle CloudのVertex AIサービスで提供されているGeminiの「自由形式」にてデモを行います。Google Cloudの環境がない場合はGoogle AI Studioでもほぼ同じことが行えることは確認しておりますが、Google AI Studioの場合は画像やプロンプトの内容がGoogleの学習に利用されてしまうことを認識の上で利用してください。

ステップ3: Geminiの設定とプロンプト

Geminiでは生成内容を作成するためのモデルや生成内容を出力するときのリージョン、Temperatureや出力トークンの上限を設定することができます。今回のデモではモデルとリージョンのみ変更して、他の設定についてはデフォルトから変更せずに利用します。

モデル:gemini-1.5-flash-001
リージョン:asia-northeast1(東京)

そしてプロンプトには以下の内容で記載します。

プロンプトの内容は生成AIが理解しやすい形で記載します。今回であれば1行目に生成する内容を大まかな命令文を記載して、その文章に続く形で出力内容を縛るのかや出力例を記載することで生成内容を望む形で出力させることができるようになっています。

画像に表示されているテーブル情報をJSON形式に変換してください。

JSONフォーマット例:
「名前」、「生年月日」、「性別」、「メールアドレス」、「電話番号」は必ず含めてください。

例:すべての要素が存在する場合
[
  {
    "名前": "田中 太郎",
    "生年月日": "2024/6/24",
    "性別": "男",
    "メールアドレス": "mail@test.jp",
    "電話番号": "080-1234-5678"
  }
]

ステップ4: Geminiに画像をアップロード

Geminiのプロンプトを記載する画面の中に「メディアを挿入」というボタンがあるので、このボタンから今回のデモ用の画像をアップロードします。

demo2

ステップ5: Geminiの実行

Geminiで用意したプロンプトと画像を使って、情報の抽出を実行します。プロンプト記載画面の右下の矢印から生成を実行します。10秒くらいでデータが生成されると思います。

demo3

生成された内容の一部を以下に貼ります。生成されている内容はアップロードした画像上の情報を正確に抽出して文字起こしできていると思います。

オプション: GeminiをAPIから実行するためのコードの取得

Vertex AIでのGeminiはAPIからも実行することが可能です。コードの取得を行うことで、Python、Node.js、Java、cUrlからGemini APIを実行するためのサンプルとなるコードを取得することが可能となるため、もし別のシステムで実行するときにはこちらのコードを使って実装するといったことが可能となります。

実際の使用例

今回のようなデータの抽出は以下のような使用例が考えられると思います。

オフィスでのデータ管理:
ネットワークにつながっていない端末上にある会議記録や営業報告書のテーブルデータを抽出して、迅速にデータベースに登録したい場合に、この機能は非常に有用です。

医療現場での活用:
手書きのカルテや処方箋、検査結果のテーブルデータを電子カルテシステムに変換することで、医療データの管理が容易になります。

製造業での品質管理:
手書きの検査記録や生産管理シートからデータを抽出し、生産の効率化や品質管理のデータベースに統合できます。

教育機関での成績管理:
紙ベースの試験結果や成績表をデジタルデータに変換し、簡単に分析や共有ができるようになります。

最後に

今回は、生成AI「Gemini」を活用してテーブル形式の画像から情報を効率的かつ正確に取得する方法についてご紹介しました。日常業務や個人のプロジェクトの中で、手動でのデータ入力は時間がかかり、ミスが発生しやすい作業です。しかし、Geminiを活用することで、それらの課題を解決し、データ処理の効率を大幅に向上させることができます。

今回のブログで紹介した基本的な使い方に加えて、Geminiには多くの応用機能があります。例えば、複雑なテーブルデータや異なる言語の文書に対応する方法、自動化スクリプトを用いた高度なデータ抽出プロセスなど、さらなるステップに進むことで、より高度なデータ処理が可能です。ぜひ、公式ドキュメントやサポートリソースを活用し、更なる可能性を探ってみてください。

お忙しい中、お読みいただきありがとうございました。Geminiを活用して、皆さんの業務やプロジェクトがさらに効率的で効果的になることを期待しています!


Geminiを活用してテーブル形式の画像から情報を抽出してみた

BACK TO LIST