會讀統一發票的收據掃描 App
先說結論:ReceiptIQ 用 iPhone 掃描台灣的統一發票與香港的收據,讀出店名、日期,以及每一項商品和它的金額,不只是總計。繁體中文是直接辨識收據上的文字,不需要先去設定裡切換語言;沒有小數點的台幣、港幣金額都能正確處理;整個 App 介面也有完整的繁體中文。
為什麼台灣、香港的收據會難倒多數掃描 App
大部分收據 App 是拿英文收據做出來、也只在英文收據上測過的。換成台灣或香港的紙,問題會一次全部出現:
- 統一發票的版面。發票號碼、隨機碼、賣方買方統編、上方的 QR 區塊,全都是一長串數字,但沒有一個是金額。把它們當成價格讀進去,整張發票就毀了。
- 沒有小數點。台幣金額印的是
總計483、120元、NT$ 1,200。多數 App 的價格判斷只認得12.34這種形狀,於是整張收據一個金額都抓不到。 - 香港的收據常常只印一個 $。沒有 HK$、沒有國家、沒有任何標示。App 只好拿使用者手機設定的幣別去存,帳目就默默記成了別國的錢。
- 繁體中文辨識。文字辨識一次只會用一種語言模型。以英文為主的 App 讀繁體中文商品名,出來的常常是亂碼或條碼數字。
ReceiptIQ 怎麼處理
- 自動判斷收據上的文字。ReceiptIQ 看的是收據本身寫了什麼字,不是 App 設定成哪一國語言。所以你把介面留在英文,掃一張全中文的發票,商品名一樣會正確讀出來。
- 看得懂沒有小數點的金額。
483、120元、NT$1,200都會被當成金額;而發票號碼、隨機碼那種長數字串不會。 - 認得「統編」。台灣商家的收據一定會印統一編號。ReceiptIQ 看到統編就知道這是台幣,不會拿你手機的幣別去存。
- 依印刷位置配對商品與金額。商品名和價格是照它們印在紙上的位置配對的,不是從一堆文字裡用猜的——這正是兩欄式版面最容易出錯的地方。
- 每張收據都有自己的幣別。如果你的主要幣別不是台幣,每張發票會依當天的匯率換算,同時保留紙上印的原始金額,隨時看得到收據實際寫了多少。
- 完整繁體中文介面。介面、分類、月度預算、PDF 報表與 CSV 匯出都有繁體中文(另有英文、日文、西班牙文、荷蘭文)。
誠實的限制
- 只印一個 $、又沒有其他線索的香港收據,仍然可能判斷錯。我們是靠收據上其他的證據去推斷國別,證據不夠時就不會硬猜。真的判斷錯了,可以在編輯畫面直接改這張收據的幣別。
- 手寫的收據超出任何文字辨識的能力,請直接手動輸入。
- 熱感紙褪色得太嚴重會影響辨識——拍攝時把紙壓平、光線足夠,比什麼都有用。
- 存在手機載具裡的電子發票不是紙本,這個 App 掃的是實體收據。
- 密集的超市發票(每一項下面都還有一行折扣)仍然可能有一兩項金額配錯。總計和日期是穩的,個別品項請掃完看一眼。
測試方式
每次改版前,ReceiptIQ 都會用來自十個國家的 431 張收據做驗證——其中 391 張是真實收據的照片,另外 40 張是依官方版面產生的統一發票(目前還沒有公開的台灣收據照片資料集)。台灣與香港的規則就是這樣來的:一張台灣大哥大的電信收據推翻了我們原本判斷香港的做法,而「統編」則留了下來。
拿你手邊最近的一張發票試試看——前 30 次掃描免費,不需要註冊帳號。
從 App Store 下載