1. はじめに
不動産管理や商業施設運営の現場では、日々大量の売上報告を確認する業務が発生します。現在弊社が管理している商業施設においては、1物件あたり平均約60テナント(2026年3月時点)から提出されるレシートと、自社システムに登録された売上データを突合する業務があり、担当者にとって大きな負担となっていました。
この業務の最大の課題は、レシートフォーマットの多様性です。テナントごとに使用しているレジロールの種類や印字レイアウトが異なり、表記方法も統一されていません。従来の座標指定型OCRではフォーマットごとに設定を作る必要があり、実運用では管理コストが大きくなります。
そこで本取り組みでは、マルチモーダルモデルな生成AIである Gemini 3 Flash と Python を組み合わせ、レシート画像の解析と売上データの自動突合を行うシステムを開発しました。本記事では、そのシステム構成と実装上のポイントを紹介します。
2. システム構成と技術スタック
本システムは大きく以下の3ステップで構成されています。
① データ収集
RPAがクラウド上の商業施設マネジメントシステムから売上データを抽出し、提出されたレシート画像とともにサーバーへ格納します。
② AI OCRと構造化
Pythonスクリプトが画像を読み込み、Gemini APIを利用して内容を解析し、マークダウン形式のテーブルデータとして構造化します。
③ 自動突合
OCR結果とシステムの売上データを突合し、結果をExcelレポートとして出力します。
----------
なお、主な利用技術は以下の通りです。
・Gemini API:レシート画像の認識とテキスト抽出
・pandas:データ加工および突合処理
・Pillow (PIL):画像のリサイズおよびEXIF補正
・openpyxl:Excelレポート生成
・Tkinter:現場担当者向けGUI
3. 実装のポイント
3.1 画像前処理とトークンコストの最適化
Gemini APIへ画像を送信する際は、認識精度とトークンコストのバランスが重要です。
本システムでは Pillow を用いて画像サイズを調整し、長辺を1600pxに制限しています。また、スマートフォン撮影画像の回転問題に対応するため、EXIF情報を利用した自動補正を行っています。
3.2 長尺レシートへの対応
精算機のログなど、レシート1枚に大量の情報が印字されているケースでは、1回の生成で出力が途中で切れてしまう場合があります。
そこで本システムでは、レスポンスの終了状態を確認しながら、未完了の場合は「前回出力の末尾」をプロンプトに含めて続きを生成する仕組みを実装しました。
3.3 多種多様なレシートへの対応
弊社の管理物件ではキャッシュレジスター(レジ)を統一していないため、テナントが採用しているレジによって出力されるレシートのフォーマットが異なります。
実際のレシート画像を調べると、フォーマットは大きく分けて「左に項目名、右に数値があるタイプ」と「『行』と『列』によって表現されるタイプ(マトリクス)」の2つであることが分かりました。そこで、2種類のプロンプトを用意してレシートタイプに応じて使い分けることで、汎用的なOCRを可能にしました。
また、「当日の消費税」を指すレシート上の項目名を1つとっても、テナントによって「消費税合計」「内税」「『消費税』と『税その他』の合計金額」など様々です。そこで、「このテナントはこの項目名を見る」という内容が整理されている「対応表」で各項目を紐づけるようにしました。
3.4 業務ルールに対応した計算ロジック
売上確認業務では、単純な数値一致だけでなく、複数の項目の数値を組み合わせた足し算や掛け算といった業務特有の計算ルールが存在します。
そこでシステム内に独自の式パースロジックを実装し、OCR結果から該当項目を抽出して、先述の「対応表」をもとに計算・照合できる仕組みを構築しました。また数値比較では、丸め誤差や入力誤差を考慮した許容範囲を設定し、誤判定を減らす工夫をおこないました。

4. 突合結果の可視化
突合結果は、担当者が直感的に確認できるよう 色分けされたExcelレポート として出力されます。従来は担当者が全ての数値を確認する必要がありましたが、このExcelレポートを参考に自動突合で数値が一致しなかった箇所のみを確認すればOKとなりました。

5. まとめ
Gemini 3 Flash のマルチモーダル機能を活用することで、従来は難しかった 非定型ドキュメントの自動処理 を比較的低コストで実現することができました。
今回の取り組みでは、AIによるOCRだけでなく、業務ルールを反映したデータ照合ロジックを組み合わせることで、実務に耐えうるシステムを構築しています。
現在はいくつかの物件で実証実験中であり、改善点を洗い出しつつ、より効果的に業務改善ができるように取り組んでいきます。
