本記事では、2025年5月14日に開催されたオンラインイベント「【技術選定を突き詰める】Online Conference 2025」内のセッション「地に足の付いた現実的な技術選定から魔力のある体験を得るー『AIレシート読み取り機能』のケーススタディ」の内容をお届けします。同セッションでは、スマートバンク ソフトウェアエンジニアのmoznion(@moznion)さんに、「AIレシート読み取り機能」の開発における技術選定について、各選択肢の長所と短所に触れながらお話しいただきました。ぜひ本編のアーカイブ動画とあわせてご覧ください。
moznionさん:スマートバンクでソフトウェアエンジニアを務めるmoznionです。当社は、家計簿プリペイドカード事業を展開しており、ユーザーはVISAのプリペイドカードで決済すると、支出が自動的に記録され、手軽に家計簿がつけられます。「ワンバンク マイカード」のほか、パートナーとの家計管理が可能な「ワンバンク ペアカード」、親子で支払履歴を共有できる「ワンバンク ジュニアカード」も展開しています。われわれはAI家計簿アプリ「ワンバンク」を通じて、より簡単に家計管理を行い、お金の使い方を改善できる機能群を提供しています。
不可欠だが実装は難しい、レシート読み取り機能
今回は、AIレシート読み取り機能についてご紹介します。この機能では、スマートフォンでレシートの表面を読み取り、支出情報を記録するものです。同機能は生成AI技術を活用し、従来の方式と比較して約3倍の精度を実現しています。
レシート読み取り機能の開発における前提をご説明します。レシートは家計管理において重要かつ一般的なツールであり、家計管理に関する多くの入門書でもまずレシートを集めて支出状況を把握することが推奨されています。そのため、家計簿アプリを提供するならば、レシート読み取り機能は不可欠といえるでしょう。しかし、経験のある方は共感いただけるかもしれませんが、その実装は容易ではありません。
まず、レシート画像やテキストデータ、その内容に対するアノテーションなど、大量の学習データが必要です。そして、それらのデータを用いて深層学習などでモデルを構築する上では、モデルを運用するための環境を用意するとともに、モデルを定期的に更新しなければなりません。加えて、すでに多くの企業がレシート読み取り機能を提供しているため、独自の機能として差別化を図ることは困難です。
「それ、ChatGPTでできますよ」
当初は私もレシート読み取り機能の開発にどちらかというと反対の立場をとっており、なるべく作らないようにしていました。しかしあるとき、当社のアプリエンジニア@_rocknameさんから“それ、ChatGPTでできますよ”と、iOSアプリのプロトタイプが送られてきたのです。
レシート画像を読み込むと、アプリから直接ChatGPTが呼び出され、必要な情報が抽出されて支出情報として記録される仕組みでした。具体的には、レシート内容を光学文字認識(OCR)でテキスト化し、そのテキストをGPT-4oに渡すことで、店舗名、金額、日付などの情報を抽出し、構造化します。レシート全体の情報から支出カテゴリーを推定するタスクも行っていました。
これを見たとき、思わず“できてるじゃん”と言ってしまいました。もちろん、これで完成ではありませんが、LLMによってブレークスルーが起きたといえます。万能ではないものの、ゼロショット学習で7~8割程度の精度が得られたことは、特定の用途においては非常に有効だと感じました。
通常必要となるモデルの学習やLLM自体のファインチューニングが不要でありながら、未知のレシートに対しても一定の汎化性能を発揮できる点も“魔力がある”といえるでしょう。そして何より、当初懸念していたデータ不足という課題をクリアし、大量のレシートデータを事前に用意しなくても開発を始められる点が非常に魅力的でした。