日本旅行のレシートを、自分の通貨で
3 月の日本旅行で受け取った 11 枚のレシート。ファミリーマート、ダイソー、京都のドラッグストア、半分の商品に割引シールが貼られたスーパー、3 人分の吉野家の朝食。カナダの iPhone でスキャンすると、商品名はバーコードの数字になり、合計金額が 2 枚で間違っていました。その原因を突き止めて作ったのがバージョン 2.3.0 です。
日本語が見えなかったスマートフォン
レシート自体に問題はありませんでした。文字認識は Apple のもので、日本語の認識は非常に優秀です。落とし穴は言語の選び方にありました。認識エンジンは指定された言語リストの先頭だけを見て文字種を決め、画像全体にそのモデルを使います。英語設定の iPhone は「英語、次に中国語」を渡していたため、ページ上のかな・漢字がすべて消えていたのです。残るのは数字だけ。パーサーは名前のない価格の列を前に、唯一できること、つまり「でっち上げ」をしました。
私たちがこれに気づかなかったのは、日本語のテストセットを常に日本語優先で実行していたからです。実際の英語設定の iPhone で実際の日本のレシートをスキャンして初めて、この穴が見えました。
修正は簡単そうで簡単ではありません。リストに日本語を追加するだけでは効きません。日本 44 枚、オランダ 74 枚、マレーシア 40 枚、台湾 40 枚のレシートで測定したところ、日本語を末尾に追加しても結果は何も変わりませんでした。自動言語検出も日本語を選びませんでした。効いたのは、日本語優先のもう 1 回の認識と「投票」です。2 回目の認識結果に含まれる日本語・中国語の文字の割合が、日本のレシートではすべて 21% 以上、オランダやマレーシアのレシートではすべて 7% 以下でした。台湾のレシートはかなを含まずに高い割合になるので、中国語優先の認識に回します。2 回の認識は同時に走るため、英語のレシートが遅くなることはありません。
円はドルではない
レシートが読めるようになると、今度は ¥2,530 が 2,530 として保存され、$2,530.00 と表示されました。レシートごとの通貨という概念がそもそもなかったのです。2.3.0 で修正しましたが、設計にはかなり考えを使いました。
- 通貨は紙から読み取ります。 かなと一緒の ¥ は円、NT$ や統一發票の見出しは新台湾ドル、€ と £ は見た目どおり。単独の「$」はあなた自身の通貨のままです。AI に推測させることはありません。
- レシートは換算した状態で保存します。 その日の為替レートで換算するので、予算・グラフ・エクスポートは 1 つの通貨で合計されます。¥2,530 のランチは月の支出に約 22 ドルとして加わります。2,530 ではなく。
- 印字金額は失われません。 外貨のレシートはすべて、元の合計、使用したレート、そのレートの日付を保持します。詳細画面には両方が表示され、「JPY で表示」ボタンでレシート全体を、明細 1 行ずつ、紙に印字されたとおりの金額に切り替えられます。
- 一覧に何を表示するかは選べます。 「設定 → 通貨」のスイッチで、換算後の金額(印字金額を下に添える)か、印字金額(換算後を下に添える)かを切り替えられます。
- オフラインでもスキャンできます。 通信がない場合はレシートを外貨のまま未換算で保存し、次にオンラインになったときに自動で換算します。
11 枚のレシート、修正後
| レシート | 印字合計 | 結果 |
|---|---|---|
| ファミリーマート、お茶 2 本 | ¥276 | 正解。2 本が別々の明細に |
| INGNI、ニット 1 点と外税 10% | ¥2,530 | 正解。レート 0.008856 で $22.41 |
| ドラッグストア、3 点(うち 1 点は数量行あり) | ¥448 | 正解。日本の数量行レイアウトのルールを追加後 |
| WEGO、内税の衣料品レシート | ¥1,320 | 正解。内税を差し引かないようパーサーを修正後 |
| 吉野家、5 品 | ¥3,429 | 正解。全品 |
| ライフ、10 品に割引シール 8 枚 | ¥2,644 | 合計は正解。明細 1 行の価格がまだずれる |
| 空港のドラッグストア | ¥2,140 | 正解。全価格の末尾 1 桁を切り落としていたトリミングを修正後 |
スーパーのレシートが正直な限界です。10 品それぞれの下に割引行が続くレイアウトは私たちが見た中で最も密で、価格と商品を結びつける処理がまだ乱れます。合計と日付は正しく、明細 1 行が間違うことがあります。次はここです。
旅行する人にとっての意味
旅先で、あるいは帰りの飛行機で、アプリの言語設定はそのままでスキャンしてください。レシートはあなたのカテゴリに、あなたの通貨で、円の金額を添えて保存されます。日本に住んで英語で家計を管理している方には、これまで「アプリの言語を日本語に切り替える」という回避策をお勧めしていましたが、もう不要です。
バージョン 2.3.0 は App Store で公開中です。旅先のレシートが正しく読めなかったときは、レシートの「報告」ボタンから写真を(同意のうえで)送っていただければ、次のリリースのテストケースになります。