會計與記帳單位(客戶不公開) · 財會作業

台灣的收據與發票,直接讀進資料庫

台灣的單據格式太雜——電子發票、傳統三聯式、手寫收據混在一起,通用 OCR 經常抓不到品項與稅額。我們在地端跑 Qwen 視覺模型辨識,再直接寫進資料庫,會計只需要覆核。

Read in English
收據與發票辨識示意圖

問題

台灣的收據不是一種東西。

電子發票有 QR code 與固定欄位,傳統三聯式發票是印刷格線,手寫收據則是另一個世界——字跡、印章、螢光筆、折痕、拍照角度,每一項都會讓通用 OCR 出錯。

出錯的方式還很討厭:它不會說自己錯了。品項少抓一欄、稅額多一個 0,看起來都很正常,等到對帳才發現。

做法

1. 先把圖修好,再談辨識

影像前處理比模型更關鍵。歪掉的、逆光的、皺掉的單據,先做裁切、透視校正、對比增強,讓模型看到的是「一張正面的、乾淨的紙」。這一步做好,後面的辨識率差距非常明顯。

2. 地端 Qwen 做欄位抽取

模型直接輸出結構化欄位:日期、店家、統編、品項、數量、單價、稅額、總額。

跑在地端不只是為了省 API 費用,而是收據裡有客戶的消費明細,那是不能隨便送出去的資料。

3. 寫回資料庫,而不是丟一個 Excel

辨識完不是產出一份表格讓人工再貼一次。我們把輸出接上一個自動寫入的流程,直接寫進資料庫的對應欄位——會計打開系統,資料已經在裡面。

這個流程的技術形式,是我們替客戶的 AI agent 寫的一個「技能」(skill):它收到結構化資料後,先驗證統編與日期,再寫進對應的資料表。對使用者來說,它就是「不用再手動輸入」而已。

4. 信心分數決定誰要覆核

低信心的欄位會被標記出來,會計只需要看那幾欄。高信心的直接放行。

結果

人工的角色從「輸入」變成「覆核」。這件事的差別不只是快,而是錯誤會被看見——低信心的欄位一定有人看過,而不是像以前一樣,錯了也要等到月底對帳才爆出來。

我們沒有宣稱「全自動」。單據辨識在台灣的現實是:做得再好,還是會有一小部分需要人看。把它設計成「人看那一小部分」才是可維運的作法。

目前沒做的

  • 沒有做手寫金額的專門模型,手寫比例高的單據仍以人工為主
  • 沒有做多頁合併(一張收據拍成兩張照片)
  • 準確率數字尚未做系統性量測,不敢寫在網站上

專案重點

地端
推論位置
Qwen(視覺)
辨識模型
覆核,不重新輸入
人工角色

準備好讓 AI 真的開始工作了嗎?

聊聊你的流程,我們會告訴你哪些可以自動化、哪些還不行。

聊聊你的專案
← 案例