space ocr
指南文章價格文件

最適合處理收據與發票的 OCR 軟體

收據與發票 OCR 軟體選購指南:可驗證的準確度、明細項目、匯出、API、Webhook、稽核軌跡與透明定價——並以即時 Demo 實際驗證。

凡是要處理紙本的公司,都免不了要處理收據和發票——而這兩種文件用手一筆一筆輸入,實在折磨人。OCR 的價值不言而喻:把文件拍下來,拿到結構化資料,然後就能繼續做下一件事。問題在於,多數 OCR 工具只做到看起來像對的。它丟給你一個廠商名稱、一筆總額,剩下的就要你自己選擇相信。如果只是記個人開銷,這樣沒問題;但換成應付帳款、費用核銷,或任何會被稽核的場景,「模型說是這樣」並不是你能扛得住的答案。

這篇指南就是一份選購檢查清單。它會帶你看清楚:真正把收據與發票 OCR 軟體做到頂尖,跟一個華麗的 Demo 之間,差別到底在哪——可驗證的準確度、明細項目擷取、乾淨的匯出、附帶 Webhook 的真正 API、稽核軌跡,以及你能事先預估的定價——接著示範 space-ocr 如何逐一做到,而且是用一個可即時點選驗證的 Demo,而不是一張截圖。

先看證據:一個你可以親自驗證的真實擷取結果

在列出任何功能之前,先給你看多數廠商不會給你看的東西:一個每個值都能指回它在頁面上原始位置的擷取結果。把滑鼠移到下方任一欄位上——收據上框起來的地方,就是這個值被讀出來的位置。

Receipts with extracted-field bounding boxes
Verified fields
KINSHO · 合計 2,045
ライフ · 合計 4,286

Each value with a box carries a verified on-page location — bbox + 4-point vertices + match_ratio — on a 0–1000 normalized grid (0,0 top-left → 1000,1000 bottom-right), the same shape the live API returns. Hover a field to trace it back to the pixels it came from.

收據與發票 OCR 該看哪些重點

收據和發票是最難搞的「簡單」文件。版面隨廠商而異,總額藏在小計和稅額之間,明細項目會換行折行,而手機拍出來的照片往往歪斜又帶著反光。一個能完美處理乾淨 PDF 的工具,遇到下一張皺巴巴的感熱紙收據可能就崩潰了。用以下這些標準,看穿行銷話術。

重點為什麼重要弱工具強工具
可驗證的準確度一個無法追溯的數字,反正你還是得重打一次回傳一個值,頂多附個信心分數回傳每個值連同它在頁面上的位置,可一鍵跳轉
明細項目發票和收據是表格,不是一堆扁平欄位抓到總額,整列卻丟掉擷取重複的明細列,每個儲存格都帶位置
匯出資料得離開工具才有用只能複製貼上,或鎖在它自家的檢視器裡透過 API 提供 CSV(Excel/中日韓相容)與 JSON
API + Webhook真正有量時靠的是自動化,不是一直點只有 UI,或一個簡陋的同步端點帶非同步工作與簽章 Webhook 的 REST API
稽核軌跡審核者需要看到改了什麼默默覆蓋掉 OCR 輸出把原始值保留在人工修改值旁邊
透明定價編預算最怕意外什麼都要「聯絡我們」公開的單張價格,外加免費方案

本文接下來會逐列拆解。

可驗證的準確度,勝過一個信心分數

信心分數告訴你的是:模型覺得自己很確定。它並沒有告訴你 total: 2,045 到底是不是收據上實際印著的那個數字。space-ocr 回答的是一個更嚴格的問題——在每個值旁邊一併回傳:

  • bbox——一個軸對齊的矩形 { xmin, ymin, xmax, ymax },建立在 0–1000 normalized 的網格上(0,0 = 左上,1000,1000 = 右下),與影像的實際像素尺寸無關。
  • vertices——四個有序的頂點,組成一個跟著文件傾斜角度走的有方向定界框,所以歪斜的手機照片也能框得乾淨俐落。
  • match_ratio——這個值有多少比例的字元真的在頁面上被定位到(0–1)。當欄位達到 ≥ 0.85 時即視為高信心命中;1.0 代表每一個字元都被找到了。

因為位置資訊是隨值一起帶出來的,你可以直接畫出框、引用座標,或者重新檢查一個被標記的欄位,完全不必重跑一次 OCR。這正是 OCR 稽核軌跡 的基礎——也是為什麼上面那個 Demo 不是擺拍出來的假畫面。

✓ Verified

這些座標不是聽模型一面之詞得來的。 語言模型只回傳每個欄位的文字——外加它用到了哪些 word token 的提示——但從不自己給出那些框。引擎接著拿這段文字,去跟視覺 OCR 在頁面上實際偵測到的符號做字元層級的比對,於是框會落在這些字元真正被找到的像素上,而每個值也會得到一個 match_ratio,代表它被定位到的程度。模型給的 token 提示可能有雜訊(它有時會在重複的列之間把提示張冠李戴),所以系統用欄一致性與列一致性檢查來驗證這些提示,而不是盲目相信。重點不在於 AI 不會出錯——而在於每個值都被拿回收據上重新核對過,並附上一個分數說明它比對得有多好。

要的是明細項目,不只是總額

廉價收據 OCR 最大的一個缺口,就是表格。誰都抓得到一筆總計;真正的價值在於那些——每一項商品、數量、單價和折扣。space-ocr 把這些擷取成重複的列,而且每個儲存格都保留自己的位置,所以就算是換行折行或合併的明細項目,依然可以追溯。

你只要用一個 type: "array" 的欄位來請求它們,並在它的 children 裡描述其中一列的內容。想更深入了解這套列模型,請看 從發票擷取明細項目

明細項目欄位規格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  "fields": [
    { "name": "vendor", "type": "string" },
    { "name": "invoice_date", "type": "string" },
    { "name": "total", "type": "string" },
    {
      "name": "line_items",
      "type": "array",
      "children": [
        { "name": "description", "type": "string" },
        { "name": "quantity", "type": "number" },
        { "name": "unit_price", "type": "number" }
      ]
    }
  ]
}

內建範本:省去自己定義 Schema

常見的情況你不必親手寫欄位規格。space-ocr 內附了預先定義好的範本,只要傳一個 templateId 就能套用——包括 receipt(收據)和 invoice(發票),另外還有名片、報價單、採購單、出貨單,以及好幾種身分證件。範本會幫你準備好欄位集和提示詞;如果你同時也傳了自己的 fields,則以你的為準。

整個呼叫就是一個 HTTP request——不用 SDK,也不用對 PDF 做前處理(引擎吃的是點陣影像:JPEG、PNG、GIF、BMP、TIFF、WebP)。

用內建範本擷取一張發票
1
2
3
4
5
6
7
8
curl -s https://api.space-ocr.com/ocr/fields \
  -H "Authorization: Bearer $SPACE_OCR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/invoice.jpg",
    "imageType": "url",
    "templateId": "invoice"
  }'

匯出與 API:資料的去處

如果資料被困在工具裡,擷取得再好也沒用。space-ocr 給你兩條乾淨的出口:

  • CSV——表格匯出時帶有 UTF-8 BOM,所以 Excel 能正確開啟日文、韓文和中文。陣列(明細項目)列會展開成子列,而任何人工修正都會在輸出中覆蓋掉 OCR 的值。
  • 透過 REST 的 JSON——POST /ocr/fields 處理單一文件,POST /upload 把影像直接推進一張表格,而 GET /view 則可在伺服器端查詢已儲存的表格(wheresortselectlimit),不必重跑 OCR,也不必再付一次費。

要應付大量自動化,/upload 預設是非同步的:它為每個檔案回傳一個工作,並在完成時透過 Webhook 通知你——每個空間一個簽章(HMAC-SHA256)端點,事件包括 ocr.completedocr.failed。這就是「一個你動手點」的工具,和「一條自己會跑」的流水線之間的差別。完整介面請見 發票資料擷取 API 指南API 文件

丟一張收據或發票進來,結構化欄位就回來了——每一個都定位在來源影像上

稽核軌跡:機器讀到什麼,對比人工改了什麼

最好的收據與發票 OCR,不只記錄自己的輸出——它還記錄修正。當你在 space-ocr 裡編輯一個儲存格時,你的值會跟原始 OCR 值分開儲存,而一個Original(原始)提示框永遠會顯示引擎最初讀到的內容。審核者能並排看到機器的值和人工覆蓋後的值——這正是稽核所要求的。

點選任一儲存格,對應的區域就會在原始影像上亮起來——這是抽查一整批最快的方法。

透明、可預估的定價

可驗證的準確度和一個誠實的價格,往往出自同一種態度。space-ocr 是每張影像 ¥10。有一個每月 100 次掃描、免綁信用卡的免費方案,而 Pro 方案每月 ¥7,980,含 1,100 次掃描、團隊共享,以及 100 GB 儲存空間。更高的用量由 Business 方案以聯絡洽談的方式處理。沒有按欄位計費,沒有按頁加收,而對已儲存表格的查詢(GET /view)是免費的。

如何擷取一張收據或發票

  1. 送出影像
    把收據或發票 POST 到 /ocr/fields,imageType 用「url」或「base64」。引擎接受點陣影像(JPEG、PNG、GIF、BMP、TIFF、WebP)。
  2. 套用範本或欄位
    傳 templateId「receipt」或「invoice」以使用內建 schema,或提供你自己的 fields——包括一個帶 children 的 array 欄位來處理明細項目。
  3. 讀取結構化結果
    每個值都連同它的 bbox、vertices、match_ratio 和 bbox_source 一起回傳,外加一個 field_bboxes 對照表,定位頁面上的每一個欄位。
  4. 驗證並修正
    點選任一儲存格,就能高亮出它被讀出來的確切區域;match_ratio 低於 0.85 會把一個值標記出來,值得再看仔細一點。編輯內容會儲存在原始值旁邊。
  5. 匯出或查詢
    下載 CSV(UTF-8 BOM,明細項目已展開),或用 GET /view 搭配 where、sort 和 select 查詢已儲存的表格——不必重跑 OCR,也不另外收費。
處理收據和發票,最好的 OCR 軟體是哪一個?
最好的工具做的不只是讀出文字——它還會擷取明細項目、匯出乾淨的 CSV 和 JSON、提供帶 Webhook 的 REST API、保留修正的稽核軌跡,並且定價透明。space-ocr 更加上了可驗證的準確度:每個值都連同它在頁面上的定界框和一個比對命中率(match ratio)一起回傳,所以你能把任何數字追溯回它原始的像素。它內建了「receipt」和「invoice」範本,並從每月 100 次掃描的免費方案開始。
OCR 能擷取收據或發票的明細項目嗎,還是只能抓總額?
可以。在 space-ocr,你把明細項目以 type 為「array」的欄位來請求,其 children 描述一列的內容(description、quantity、unit price 等等)。每個儲存格都保留自己的定界框,所以就算是換行折行或合併的明細項目,依然可以追溯回它在頁面上的位置。
收據和發票 OCR 能處理手機拍的照片嗎?
可以。引擎在載入時會套用 EXIF 旋轉,讓回傳的座標與顯示的影像對齊,並回傳跟著文件傾斜角度走的有方向定界框(四個 vertices)。歪斜、旋轉的手機照片照樣框得乾淨。輸入是點陣影像——JPEG、PNG、GIF、BMP、TIFF 或 WebP。
收據和發票 OCR 要多少錢?
space-ocr 是每張影像 ¥10。有一個每月 100 次掃描、免綁信用卡的免費方案,還有一個每月 ¥7,980 的 Pro 方案,內含 1,100 次掃描、團隊共享,以及 100 GB 儲存空間。用 GET /view 查詢已儲存的資料是免費的,也沒有按欄位或按頁的額外加收。
我能大量自動化處理收據和發票嗎?
可以。POST /upload 把影像直接推進一張表格,並且預設以非同步方式執行,為每個檔案回傳一個工作,並在完成時透過簽章(HMAC-SHA256)的 Webhook 通知你,例如 ocr.completed 和 ocr.failed。你也可以輪詢 GET /jobs/{jobId},作為 Webhook 之外的替代做法。

用你自己的收據與發票,試試最好的 OCR

免費方案——每月 100 次掃描,免綁信用卡。每個值都連同它在頁面上的位置一起回傳。

相關