在找 Amazon Textract 的替代方案?
一篇公允、经过事实核查的分析,讲清楚什么时候该选择 Amazon Textract 的替代方案——可验证的逐值坐标、中日韩(中文/日文/韩文)支持、可查询的数据表、统一定价,以及无需 AWS 配置——并用实时演示加以印证。
Amazon Textract 是一项成熟而强大的 OCR 服务,对于一条原生构建在 AWS 上、大规模处理英文文档的流水线来说,把它作为默认选择很合理。但“强大”和“适合你这份活儿”并不是一回事,有那么几条实打实的限制,会让人去寻找 Amazon Textract 的替代方案:
- 不支持中日韩。 Textract 的印刷文本、表单和表格功能覆盖的是一组拉丁字母语言(英语、法语、德语、意大利语、葡萄牙语、西班牙语);手写、发票/票据(AnalyzeExpense)、证件(AnalyzeID)和 Queries 仅支持英文。中文、日文、韩文都不在名单上。
- AWS 的引力。 用它就意味着要有一个 AWS 账户、IAM、SDK、一个受支持的区域,通常还要用上 S3——如果你只想发一张图、拿回若干字段,这就是实打实的配置成本。
- 按功能叠加、按页计费。 你按页付费,费率取决于你调用的是哪个功能(纯文本 vs. 表单 vs. 表格 vs. queries vs. expense),而把多个功能组合起来会让成本叠加。
- 没有内置的逐值复核界面。 Textract 返回置信度分数;人工介入的复核是一项单独的服务(Amazon Augmented AI / A2I),需要你自己接起来。
这份指南是一次公允的对比——说清楚 Textract 强在哪里,以及像 space-ocr 这样的替代方案适合在哪里使用——而且它一开头就摆出一个你能亲自核对的实时演示,而不是一张你只能选择相信的功能对照表。
先看证据:一次你可以亲自核对的提取
大多数 OCR 厂商都不愿摆到你面前的,就是这样一次提取——每一个数值都能指回它在页面上的确切来源位置。把鼠标悬停在下方任意字段上——票据上的那个框就是这个值被读取的地方,而每个值都带着一个匹配比例,表示它有多大比例确实在页面上被找到了。

Every value 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.
评估 Textract 替代方案时该比什么
两款工具都能读取文档,并返回带坐标的结构化数据。差别在于你如何验证一个值、覆盖哪些语言、数据以何种方式离开工具,以及上手要花多少成本。下表分别列出各自经过核实的事实——把它当成你自己工作负载的核对清单来用。
| 能力 | Amazon Textract | space-ocr |
|---|---|---|
| 边界框 | 有——每个区块附带一个归一化的 0–1 BoundingBox 以及一个 Polygon | 有——每个值附带一个 0–1000 归一化的 bbox 以及带方向的 vertices |
| 逐值置信度 | 每个区块一个识别置信度(%) | match_ratio——该值的字符中实际在页面上被定位到的比例——外加一个 bbox_source 标签 |
| 内置逐值复核界面 | Textract 本身没有;人工复核是一项单独的服务(Amazon A2I) | 内置于应用——点一下单元格,它在原件上的确切区域就会亮起 |
| 票据/发票字段 | AnalyzeExpense(一个单独的 API),仅支持英文 | templateId 取 receipt/invoice,或用你自己的字段,支持任意受支持语言 |
| 明细行 | AnalyzeExpense 的明细行(ITEM / QUANTITY / PRICE) | 一个带 children 的 array 字段,每个单元格单独定位 |
| 中文/日文/韩文 | 未列入(6 种拉丁字母语言;Expense/ID/手写仅支持英文) | 一个引擎自动识别中文、日文、韩文、英文等多种语言 |
| 可查询存储 | 你自己存储和查询结果 | 已存储的数据表可通过 GET /view 在服务端查询(where、sort、select)——不重跑 OCR,不额外收费 |
| CSV 导出 | 你自己从 JSON 构建 | 一键搞定——UTF-8 BOM,明细行已展开 |
| 定价模式 | 按页计费、按功能收费;组合功能会叠加成本;还要叠在一个 AWS 账户之上 | 统一 每张图 ¥10(约 $0.05);免费额度每月 100 次扫描,无需信用卡;Pro 每月 $39 |
| 配置 | AWS 账户 + IAM + SDK、区域性服务、通常还要 S3 | 一次带 Bearer 密钥的 HTTPS 调用;另有一个 Claude Code 插件 |
关于“可验证”:坐标并不是听模型一面之词得来的。 语言模型会返回每个字段的文本——以及它用到了哪些词元(word token)的提示——但从不返回框本身。引擎随后把这段文本与视觉 OCR 在页面上实际检测到的符号逐字符匹配,于是框落在这些字符被找到的真实像素上,每个值也据此得到一个 match_ratio,表示它有多大比例被定位到了(字段在 ≥ 0.85 时被视为可信匹配)。模型给的词元提示可能有噪声——在重复出现的行之间它有时会张冠李戴——所以系统用列一致性和行一致性检查来验证这些提示,而不是盲目相信它们。重点不在于 AI 不会出错;而在于每个值都会回过头来与页面本身核对,并附上一个分数说明它匹配得有多好。
Textract 才是更好选择的场景
一次公允的对比,会点明现有方案胜出在哪。在以下情况选 Textract:
- 你已经深耕 AWS,想要一套能顺势接进 S3 → Lambda → Textract 的 OCR,并复用你已在运维的 IAM 和 SNS。
- 你的文档是英文/拉丁字母,且需要在极大规模上做表单、表格和 queries。
- 你想要在自己文档类型上训练的自定义适配器,或者需要 AWS 原生的合规与数据驻留保证。
如果这说的就是你,那 Textract 非常合适,替代方案给你带来的增益不大。
space-ocr 反而更合适的场景
当下面这些里有一项或多项对你重要时,Textract 替代方案就显出它的价值:
- 你要处理中文、日文或韩文文档。 space-ocr 用一个引擎跑中日韩和拉丁文字,并自动识别语言——没有语言参数要设置。
- 你想验证,而不只是相信。 每个值都连同它在页面上的框和一个
match_ratio一起返回,点一下单元格就能高亮它被读取的确切位置——审计是内置的,而不是另一项要自己接起来的服务。 - 你不想自建存储。 结果落进一张数据表,你可以在服务端查询它(
GET /view),一键导出为 CSV——不需要数据库,也不需要 AWS 账户。 - 你想要可预估的定价。 每张图统一 ¥10,每月 100 次扫描的免费额度且无需信用卡,外加每月 $39 的 Pro 套餐——没有按功能、按页叠加。
- 你用 Claude 来开发。 有一个两行就装好的 Claude Code 插件,以及一个零依赖的 Python 客户端。
整个调用就是一次 HTTP 请求——没有 SDK,引擎也不需要 PDF 预处理(它接受栅格图像:JPEG、PNG、GIF、BMP、TIFF、WebP)。
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"
}'每个值都会带着一个 bbox(0–1000 网格上的 { xmin, ymin, xmax, ymax })、四个 vertices(构成一个跟随手机斜拍照片倾斜角度的带方向框)、一个 match_ratio 和一个 bbox_source 返回。完整的坐标模型见 一个带边界框的 OCR API;关于异步、由 Webhook 驱动的那一面,见 发票数据提取 API 指南。
语言:最清晰的分水岭
如果你的文档是日文票据、韩文发票或中文表单,这通常就是决定性因素。Textract 的印刷文本、表单和表格功能支持六种拉丁字母语言,而它的手写、AnalyzeExpense、AnalyzeID 和 Queries 功能仅支持英文——中文、日文、韩文都不在受支持名单上。space-ocr 在一个引擎里归一化处理多种文字(全角和半角字符、连字号变体、中日韩间距、竖排汉字、混合文字),自动识别语言,无需传任何提示。
定价:按功能分页计费 vs. 按图统一收费
Textract 采用按页、按用量的计费,费率取决于功能——纯文本检测和表单、表格、queries 或 AnalyzeExpense 的计费各不相同,而在一页上调用多个功能会让成本叠加——而且这一切都叠在一个 AWS 账户之上。space-ocr 则是统一 每张图 ¥10(约 $0.05),无论你抽取多少字段都一样,并带有每月 100 次扫描、无需信用卡的免费额度,以及 每月 $39 的 Pro 套餐,含 1,100 次扫描、团队共享和 100 GB 存储。提取失败不计费,查询已存储的数据表(GET /view)是免费的。
如何把 space-ocr 当作 Textract 替代方案来试用
- 拿到密钥——无需 AWS 账户注册免费额度(每月 100 次扫描,无需信用卡)并取得你的 spocr_ API 密钥。没有 IAM、区域或 S3 要配置。
- 发送图像把文档以 imageType 'url' 或 'base64' POST 到 /ocr/fields。引擎接受栅格图像(JPEG、PNG、GIF、BMP、TIFF、WebP);语言会被自动识别。
- 套用模板或用你自己的字段常见场景传 templateId 'receipt' 或 'invoice',或者提供你自己的字段——包括一个带 children 的 array 字段来表示明细行。
- 验证每一个值读取每个值的 bbox、vertices、match_ratio 和 bbox_source。在应用里,点一下单元格就能高亮它被读取的确切位置;低于 0.85 的 match_ratio 会标记出一个值得再看一眼的值。
- 查询或导出——无需自建存储用 /upload 把图像推入一张数据表,用 GET /view 在服务端查询它(where、sort、select),或者下载已展开明细行的 CSV——不需要数据库,也不会因重跑 OCR 而收费。