會計與記帳單位(客戶不公開) · 財會作業
台灣的收據與發票,直接讀進資料庫
台灣的單據格式太雜——電子發票、傳統三聯式、手寫收據混在一起,通用 OCR 經常抓不到品項與稅額。我們在地端跑 Qwen 視覺模型辨識,再直接寫進資料庫,會計只需要覆核。
Read in English問題
台灣的收據不是一種東西。
電子發票有 QR code 與固定欄位,傳統三聯式發票是印刷格線,手寫收據則是另一個世界——字跡、印章、螢光筆、折痕、拍照角度,每一項都會讓通用 OCR 出錯。
出錯的方式還很討厭:它不會說自己錯了。品項少抓一欄、稅額多一個 0,看起來都很正常,等到對帳才發現。
做法
1. 先把圖修好,再談辨識
影像前處理比模型更關鍵。歪掉的、逆光的、皺掉的單據,先做裁切、透視校正、對比增強,讓模型看到的是「一張正面的、乾淨的紙」。這一步做好,後面的辨識率差距非常明顯。
2. 地端 Qwen 做欄位抽取
模型直接輸出結構化欄位:日期、店家、統編、品項、數量、單價、稅額、總額。
跑在地端不只是為了省 API 費用,而是收據裡有客戶的消費明細,那是不能隨便送出去的資料。
3. 寫回資料庫,而不是丟一個 Excel
辨識完不是產出一份表格讓人工再貼一次。我們把輸出接上一個自動寫入的流程,直接寫進資料庫的對應欄位——會計打開系統,資料已經在裡面。
這個流程的技術形式,是我們替客戶的 AI agent 寫的一個「技能」(skill):它收到結構化資料後,先驗證統編與日期,再寫進對應的資料表。對使用者來說,它就是「不用再手動輸入」而已。
4. 信心分數決定誰要覆核
低信心的欄位會被標記出來,會計只需要看那幾欄。高信心的直接放行。
結果
人工的角色從「輸入」變成「覆核」。這件事的差別不只是快,而是錯誤會被看見——低信心的欄位一定有人看過,而不是像以前一樣,錯了也要等到月底對帳才爆出來。
我們沒有宣稱「全自動」。單據辨識在台灣的現實是:做得再好,還是會有一小部分需要人看。把它設計成「人看那一小部分」才是可維運的作法。
目前沒做的
- 沒有做手寫金額的專門模型,手寫比例高的單據仍以人工為主
- 沒有做多頁合併(一張收據拍成兩張照片)
- 準確率數字尚未做系統性量測,不敢寫在網站上
專案重點
- 地端
- 推論位置
- Qwen(視覺)
- 辨識模型
- 覆核,不重新輸入
- 人工角色