2026.09.26(土) / 00:54
スマホでレシートを撮影して家計簿へ自動入力する機能を作ろうとしている
- 最終更新
- 2026.09.29
自作しているお金管理アプリに、スマートフォンでレシートを撮影して、支出情報を自動入力する機能を追加した。
Codexにレシート撮影したら支出登録される機能を作成してもらった
Codexとのやりとり
Codexに、
スマートフォンからレシートを撮影し、画像から支出情報を抽出して、既存の入出金登録フォームへ自動入力できる機能を追加してください。
と依頼した。

UIの様子
「入出金 → 新しく登録」に「レシートから入力」というエリアが追加された。

スマホからMacのローカル環境を開けた
次にやりたかったのは、実際にiPhoneでレシートを撮影して試すこと。
Macとスマホを同じWi-Fiにつないだ

既存の動いているサーバーを削除した

スマホのブラウザに打ち込むURL

Mac上では、
127.0.0.1:3001
でアプリを動かしている。
ただし、127.0.0.1はその端末自身を意味するため、そのままではiPhoneからMacのRailsアプリへアクセスできない。
そこでRailsを、
0.0.0.0:3001
で待ち受けるようにして起動した。
MacとiPhoneを同じWi-Fiに接続して、
192.168.110.104:3001
へアクセス。
これでスマホから、自分のMacで動いているMoneyAppを開くことができた。
最初の実機テストは「読み取りに失敗」
実際のバローのレシートをスマホから選択してみた。
画像自体はきちんとプレビューされた。
ただ、その下に表示されたのは、
読み取りに失敗しました。通信環境を確認するか、明るい場所で撮り直してください。手入力も利用できます。
というメッセージ。

AIを組み込むとうまくいきますか?
ここで、
AIを組み込むとうまくいきますか?
と考えた。
画像を理解できるAIを使えば、傾いたレシートや複雑なレイアウトでも読み取りやすくなる。
ただし、AIを使うとなると、
- APIキー
- 従量課金
- 外部サービスへの画像送信
なども発生する。

今回の仕組みは、レシート画像を外部に送信せず、端末内でOCRする設計だった。
なので、いきなりAIを追加するのではなく、まず現在のOCRがなぜ失敗しているのかを調べることにした。
原因はOCRライブラリの読み込み方だった
調査してもらうと、最初のエラーの原因が判明した。
OCRライブラリの読み込み方法のミスだった。
修正後、OCRエンジンそのものでは日付や金額を抽出できることが確認できた。

読み取りが時間内に完了しなかった
同じレシートを使って、もう一度iPhoneから試した。
今度は前回と明らかに挙動が違った。
画像を選択すると、
読み取り中… 0%
と表示された。

OCR処理そのものは動き始めている。
読み取り中… 39%
まで進んだ。

最初の「即エラー」からは一歩前進した。
ただし、しばらく待っても39%付近から進まない。
最終的に、
読み取りが時間内に完了しませんでした。
通信環境や画像を確認して再度お試しください。
というメッセージが表示された。

自宅のWi-Fiが原因か?
今回のスマホ実機テストでは、最終的な読み取りにはまだ成功していない。
ただ、最初と2回目では問題が違う。
最初は、
OCRライブラリ自体が正しく動いていなかった。
修正後は、
OCRは起動し、0% → 39%まで処理が進んだものの、スマホ上では時間内に終了しなかった。
という状態になった。
「読み取りに失敗した」という一つの現象でも、原因は毎回同じとは限らない。
自宅のWi-Fiの通信環境が途切れるタイミングがあることが原因かもしれない。(この問題は以前から継続している)