回傳結構化欄位而不是一堆文字的圖像 OCR
用 space-ocr 對 JPEG、PNG 等圖像做 OCR:宣告你需要的欄位,每個值都連同 box 與 quad 座標一起回傳,需要複核的值彙整在 data.review.flagged 裡。
大多數圖像 OCR只是丟給你一堆純文字,然後就沒了。你拍一張收據,跑一遍,回來的是一團列,你還得自己去讀、去拆、再輸入到對應的欄裡。原本在頁面上一眼就能看清的結構,沒了。
space-ocr 把圖像讀成結構化欄位——店名在這、日期在那、合計在那邊、明細是一列列的。每個值還帶著它在圖像上被讀取的確切位置:data.cells[path] 裡有一個軸對齊的 box 與一個四點的 quad。而與頁面核對不上的值,會帶著理由出現在 data.review.flagged 裡。所以回到你手上的是一份待辦清單,而不是一個只能盲信的數字。
看一次你可以親自核對的真實擷取
這是一張圖像——拍了兩張收據的照片——被讀成了欄位。把滑鼠移到下方任一值上,圖像上的框就是這個值被讀取的位置。這裡的每個數字、框與字元比對比例,都直接讀自一次真實的解析結果,而不是擺拍。比對比例說明的是這個值有多少字元在頁面上被定位到,屬於佐證,不是通過或不通過的判定分。

Each value with a box carries a verified on-page location — in data.cells[path], that is box + 4-point quad + evidence.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.
space-ocr 裡的圖像 OCR 如何運作
把圖像以 URL 或純 base64 傳送到 /ocr/fields——JPEG、PNG、GIF、BMP、TIFF、WebP 都會被直接讀取。EXIF orientation 在讀取前套用,很大的照片可能會被縮到長邊 4000px,所以真正被讀的那一版頁面尺寸由 data.image 給出,座標都以它為基準換算。
你要的結果用 fields 陣列描述:每個欄位一個 name 與一個 type(string / number / integer / date / array / object),明細列用帶 children 的 array 欄位,需要時再宣告 required、pattern、min/max 或 enum。想從文件出發,就送 autoFields: true,直接用回傳的欄位名稱。宣告不會傳給模型,因此不會左右讀取本身——它決定的是哪些內容會進 data.review.flagged,以及確定性的 data.normalized 層解析出什麼。(PDF 走 Web 應用,先把每一頁算繪成圖片;API 本身讀的是圖像。)
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/receipt-photo.jpg",
"imageType": "url",
"fields": [
{ "name": "store_name", "type": "string", "required": true },
{ "name": "date", "type": "date", "required": true },
{ "name": "total", "type": "number", "required": true, "min": 0 },
{
"name": "items",
"type": "array",
"children": [
{ "name": "name", "type": "string" },
{ "name": "price", "type": "number" }
]
}
]
}'如何對圖像做 OCR
- 傳送你的圖像把 JPEG、PNG、GIF、BMP、TIFF 或 WebP 以 URL 或純 base64 傳送到 /ocr/fields,或拖進應用程式。EXIF 方向會在讀取前套用。
- 宣告你的欄位傳送一個 fields 陣列,為每個值寫明 name 與 type——明細列表格用帶 children 的 array 欄位。也可以把 autoFields 設為 true,從回傳的欄位名稱開始。
- 讀取結構化結果業務資料留在 data.values。data.cells 為每個路徑給出 box 與 quad、verified 判定與 evidence,data.image 則是把這些座標換算成像素的基準。
- 處理待複核清單逐一處理 data.review.flagged:每一項都給出 path 與 reasons。打開 cells[path],把 box 畫到圖像上,再把值與那裡印著的字對照。編輯會儲存在原始 OCR 值旁邊。
- 匯出或查詢下載 CSV(UTF-8 BOM,明細列已展開),或用 GET /view 搭配 where、sort、select 查詢已儲存的工作表——讀取已儲存的列不會重跑 OCR,也不計費。
簡單、可預期的定價
每張圖片 $0.05(含稅),每月 100 點數免費且免信用卡,失敗的掃描不計費。方案計畫增加每月點數、更多工作表與儲存空間。