arcships/light-ocr
Fast, offline OCR for Node.js & C++. PP-OCRv6 with Core ML / WebGPU hardware acceleration — recognize text in images with confidence scores & coordinates. npm: @arcships/light-ocr
light‑ocr – 适用于 Node.js 和 C++ 的快速离线 OCR
功能简介 – light‑ocr 是一个在本地执行光学字符识别的库,无需将图像发送到云端服务。它可以读取 JPEG/PNG 图像、PDF 或原始像素缓冲区中的文本,并返回每一行文本及其置信度分数与原始图像中的四边形坐标。
适用对象 – 开发 Node.js 应用程序、命令行工具、桌面软件或需要设备端 OCR 的原生 C++ 程序的开发者。在需要隐私、低延迟或离线运行的场景中特别有用。
主要特色 (详见 README)
- 单个 npm 安装包 – 整合了模型、OCR 运行时、PDF 渲染器 (PDFium) 以及中文字体。无需安装后脚本、额外下载或系统字体依赖。
- 跨平台二进制文件 – 提供 macOS (Apple Silicon & Intel), Linux (glibc & musl, x64 & arm64) 和 Windows (x64 & arm64) 的预编译原生二进制文件。Node‑API v8 绑定通过 ABI 兼容性支持 Node 22+ (LTS) 及更新版本。
- 硬件加速 – 在最新的 macOS Apple‑Silicon 上使用 Core ML,在可用时使用 WebGPU (Linux 为 Vulkan,Windows 为 D3D12),否则会退回 CPU 运算。
- 多种模型等级 – Small (≈30 MB, 默认, 稳定), Tiny (≈6 MB, 预览, 49 种语言, 无日文), Medium (≈139 MB, 预览, 高质量)。可通过不同的 npm 标签安装。
- PDF 支持 – 内置 PDFium 渲染与 Noto Sans SC 字体,无需额外设置即可对引用中文字体的 PDF 进行 OCR。
- 丰富输出 – 每一行皆可获取
text,confidence和四边形box。同时提供页面层级的元数据与时间信息。 - CLI –
light-ocr命令行工具,用于快速 OCR、感兴趣区域处理、仅检测模式及诊断 (info,doctor)。支持 JSON, JSONL 和纯文本输出。 - C++ API – 包含 CMake 目标的静态库 (
light_ocr::core),用于原生集成;接受解码后的像素格式 (GRAY8, RGB8, BGR8, RGBA8)。 - Agent 技能 – 为需要调用本地 OCR 的 AI Agent 提供现成的技能文件,并提供何时应优先选择确定性 OCR 而非多模态模型的指引。
典型用法 (Node.js)
import { createEngine } from "@arcships/light-ocr";
import { readFile } from "node:fs/promises";
const engine = await createEngine();
const result = await engine.recognizeEncoded(await readFile("image.jpg"));
for (const line of result.lines) {
console.log(line.text, line.confidence, line.box);
}
await engine.close();
相同的库可通过 recognizeDocument 对 PDF 页面进行流式 OCR。
性能 – README 指出,与纯 CPU 相比,在 Apple Silicon (Core ML) 和通过 WebGPU 的 NVIDIA/AMD GPU 上,速度提升了 2–5 倍,并大幅减少了 CPU 使用时间。
授权 – Apache 2.0。
总结 – light‑ocr 是一个生产环境就绪的离线 OCR 解决方案,它架起了高阶 JavaScript/Node.js 开发与低阶 C++ 性能之间的桥梁,并在各大桌面平台上提供硬件加速、PDF 处理与简易安装。
相关
- 项目
- 项目
- 项目
- 项目
- 项目