「レシートの入力が面倒で家計簿が続かない」「撮影するだけで自動的に支出を記録してくれるアプリを作りたい」「Google Cloud VisionとGPT-4を組み合わせたOCRシステムの実装方法を知りたい」——そんな相談に応える記事です。本記事では、スマホでレシートを撮影するとAIが自動で文字を読み取り・カテゴリ分類・家計簿記録・グラフ表示まで行うアプリの開発手順を、実際に動くデモを交えながら解説します。Google Cloud Vision API・OpenAI GPT-4・Python FastAPI・React Native・PostgreSQLを組み合わせた本格的な構成で実装します。
なぜ「撮影するだけ」の家計簿アプリが求められるか
家計簿アプリが続かない最大の理由は「入力の手間」です。レシートを見ながら1件ずつ品目・金額・カテゴリを入力する作業は、毎日続けると大きな負担になります。OCRとAIを組み合わせることで、撮影後は全自動で記録でき、入力の手間をほぼゼロにできます。
| 従来の家計簿 | OCR+AI家計簿の改善 |
|---|---|
| 1件の入力に3〜5分かかる | 撮影から記録完了まで10秒以内 |
| カテゴリ分類を手動で選ぶ | 店舗名・商品名からAIが自動判定 |
| レシートを見ながら転記ミスが発生 | OCRで正確に読み取り転記不要 |
| 面倒で3日坊主になりがち | 習慣化しやすく継続率が高い |
実際に動かしてみる(デモ)
以下は実際に動作するデモです。「コンビニレシート」「スーパーレシート」「レストランレシート」「ドラッグストア」のいずれかをクリックすると、AI解析プロセスをシミュレートして店舗名・日付・合計金額・カテゴリ・品目一覧と今月の支出グラフを表示します。
レシート家計簿
撮影するだけでAIが自動で読み取り、家計簿に記録
開発手順(8ステップ)
STEP 1:開発環境とアーキテクチャ設計
画像認識・AI処理・データ管理を組み合わせた技術スタックを選定します。OCRはGoogle Cloud Vision API(高精度・日本語対応)またはAWS Textract(レシート特化・構造化データ抽出)、画像前処理はOpenCV + Pillow(Python)、バックエンドはPython + FastAPI、データベースはPostgreSQL、フロントエンドはReact Native(iOS/Android対応)、レシート画像ストレージはAWS S3が推奨構成です。pip install fastapi uvicorn google-cloud-vision pillow opencv-python openai sqlalchemy python-multipartでまとめてインストールできます。
STEP 2:OCR(文字認識)の実装
レシート画像をAPIに送信する前に前処理を行います。OpenCVでグレースケール化→コントラスト調整(CLAHE)→ノイズ除去→二値化(Otsu法)の順で画像を最適化することで認識精度が大幅に向上します。Google Cloud Vision APIの`document_text_detection`メソッドでテキストブロックの座標情報付きで文字を抽出します。信頼度スコアが低い場合はユーザーに手動修正を促すUIを実装します。撮影ガイド(グリッド線・枠線表示)をアプリに組み込むことで傾きを防ぎ認識精度を高めます。
STEP 3:AIによるレシート情報の構造化
OCRで得られた生テキストをGPT-4に送り、店舗名・日付・時刻・品目一覧(商品名・価格・数量)・小計・消費税・合計をJSON形式で返してもらいます。プロンプトには「温度パラメーター0.1」を設定して安定した出力を確保します。JSONの抽出失敗時は正規表現でフォールバック処理します。GPT-4は1回5〜20円のコストがかかるため、初期はgpt-4o-miniで費用を1/10に抑え、精度が不足する場合のみGPT-4を使う戦略が有効です。
STEP 4:自動カテゴリ分類エンジン
店舗名と商品名の2段階でカテゴリを自動判定します。まず店舗名マスター(セブンイレブン→食費、ENEOSガソリンスタンド→交通費、マツモトキヨシ→日用品など)でパターンマッチングし、一致しない場合は商品名キーワード(おにぎり→食費、シャンプー→日用品)でスコアリングします。確信度が低い場合はユーザーに確認を促します。ユーザーが修正したカテゴリをデータベースに記録してパーソナライズ学習させることで精度が向上します。
STEP 5:データベース設計と家計簿管理
PostgreSQLで5テーブルを設計します。usersテーブル(認証・設定)・receiptsテーブル(画像URL・OCR結果・解析データJSONB)・expensesテーブル(日付・カテゴリ・金額・支払方法)・budgetsテーブル(カテゴリ別月次予算)・recurring_expensesテーブル(家賃など固定費)です。expensesテーブルの`(user_id, expense_date DESC)`と`(user_id, category, expense_date)`に複合インデックスを設定して集計クエリを高速化します。月次集計はDATE_TRUNCを使ったカテゴリ別GROUP BYで実装します。
STEP 6:グラフ・分析機能の実装
React NativeのPieChart・BarChartコンポーネント(react-native-chart-kit)でカテゴリ別支出円グラフ・月次推移棒グラフ・予算達成率プログレスバーを実装します。予算達成率は予算額と実支出をSQLで集計し、予算超過の場合は赤色で表示します。毎月1日に「先月の振り返りレポート」をプッシュ通知するとアプリを開く頻度が上がります。AIが「外食費が先月より20%増加しています」のようなテキストアドバイスを生成することでユーザーの行動変容を促せます。
STEP 7:予算管理・アラート機能
カテゴリ別の月次予算を設定し、達成率が80%・100%を超えた時点でプッシュ通知を送ります。cronジョブで毎日深夜に全ユーザーの予算超過チェックを実行し、Firebase Cloud Messagingでプッシュ通知を配信します。月末の支出予測は「今日までの支出÷経過日数×月の総日数」の日割り計算で実装できます。通知疲れを防ぐため、アラートが多すぎる場合はユーザーが通知頻度・種類をカスタマイズできる設定画面も必要です。
STEP 8:本番環境デプロイと運用
AWS ECS Fargate(APIサーバー・OCRワーカー・分析ワーカーの3コンテナ)+ RDS PostgreSQL + ElastiCache Redis + S3 + CloudFrontの構成が1万ユーザー規模で月2〜4万円の費用感です。初期はHeroku + Supabaseで月5,000円以下からスタートし、ユーザーが1,000人を超えたらAWSに移行するのが現実的です。Sentryでエラー監視、CloudWatch Logsでパフォーマンス監視を設定します。S3のレシート画像はライフサイクルポリシーで90日以上経過した画像をGlacierに移行してコストを最適化します。
開発・運用コストの目安
Google Cloud Vision + GPT-4 + Python FastAPI + PostgreSQLの構成なら、撮影→OCR→AI構造化→グラフ表示を備えたMVPを10万円程度から開発できます。
| フェーズ | 内容 | 費用目安 |
|---|---|---|
| フェーズ1(MVP) | 撮影→OCR→AI分類→記録→グラフ | 10万〜30万円 |
| フェーズ2(機能追加) | 予算管理・アラート・比較分析 | 10万〜20万円 |
| フェーズ3(収益化) | 課金機能・AIアドバイス・クレカ連携 | 10万〜50万円 |
| Google Cloud Vision API | 1,000枚あたり約1,500円 | 月0円〜15,000円 |
| OpenAI API(GPT-4) | 1回約10円×枚数 | 月0円〜20,000円 |
| サーバー・DB(月額) | AWS ECS + RDS + S3 | 月5,000円〜40,000円 |
月額480円のプレミアムプランで課金率10%を達成すると、3,000ユーザーで月144万円・10,000ユーザーで月480万円の売上になり、初期投資を6ヶ月〜1年で回収できる見込みです。
よくある質問
OCRの認識精度が低いレシートはどう対処しますか?
感熱紙の色あせ・手書きメモ・複雑なレイアウトのレシートは認識精度が下がります。対策は3段階あります。まず撮影前処理(グレースケール・コントラスト調整・二値化)で画像品質を向上させます。次に信頼度スコアが低い項目にはユーザーが手動修正できるUIを用意します。最後にユーザーが修正したデータを蓄積してモデルの精度向上に活用します。認識精度の目標は95%以上で、それを下回る場合はGoogle Cloud VisionからAWS Textractへの切り替えも検討します。
銀行・クレジットカードとの連携はできますか?
可能ですが、FinTech系の口座連携サービス(MoneyForward API・Zaim API・家計簿Robot)を利用する場合は金融庁への電子決済等代行業者の登録が必要で審査に時間がかかります。MVPではレシート撮影のみに特化して市場を検証し、ニーズが確認できてからAPI連携を追加する方が現実的です。クレジットカードの明細メール転送での自動取り込みであれば規制の対象外で実装しやすいです。
React Native以外で作ることはできますか?
FlutterまたはSwift/Kotlin(ネイティブ)でも実装できます。FlutterはDartでiOS/Androidを同時開発でき、カメラ連携ライブラリも充実しています。ネイティブの場合はiOSのVisionFrameworkまたはAndroidのML Kitで端末内OCRが無料で使えるため、APIコストを削減できます。PWA(Webアプリ)でも基本機能は実装できますが、カメラ起動の操作性がネイティブアプリより劣ります。
まとめ
Google Cloud Vision + GPT-4 + Python FastAPI + PostgreSQLの構成でレシートOCR家計簿アプリをMVP10万円程度から開発できます。「撮影→全自動記録」という体験の質がアプリの継続率を直接左右するため、OCR精度の向上・手動修正UIの充実・カテゴリ自動学習の3点をコアに設計することが成功の鍵です。家計管理アプリは日本で根強い需要があり、SaaSとして月額480〜980円で提供すれば安定した収益モデルを構築できます。
開発のご相談や見積もりはお気軽にお問い合わせください。要件定義からリリースまで一貫してサポートします。
