Releases: wafik/ArboOCR
Releases · wafik/ArboOCR
Release list
v0.3.0
v0.3.0 — model auto-download, and a GPU package that actually works Missing models are now fetched, SHA-256 verified against a manifest compiled into the binary, and cached per platform. The URL is pinned to an immutable release tag, so it is a version rather than a moving target. Also fixes a bug present since the first release: the packaged binary shipped no onnxruntime_providers_shared library, so --cuda and --tensorrt could not load from a release archive on either platform.
v0.2.0
v0.2.0 — accuracy, API and packaging improvements
First release since v0.1.0-php1. All four language wrappers pin that
tag, so nothing in this changelog has reached wrapper users until they
bump to v0.2.0.
Behaviour changes wrappers must know about:
- arboocr_demo is silent on stderr unless --log-level is passed.
- Exit code 2 for model-load / recognition failure, distinct from 1.
- --help now exits 0 instead of 1.
- Batch --json emits an array; single-image still emits a bare object.
- "words" appears in JSON only with --word-boxes.
Fixes
- ORT CPU memory arena disabled: 235 MB -> 135 MB peak RSS, +17.6%
latency (measured on the SROIE smoke set, small, CPU).
- getScaleParam no longer upscales; detLimitSideLen is a true ceiling.
- Reading-order tolerance derives from median line height instead of a
hard-coded 12px, so ordering is scale-invariant.
- downloadOcrModels fetches the recognizer dict; without it the
documented download path produced a silently broken models dir.
- Engine construction failure no longer terminates the CLI.
Features
- CLI accuracy flags (det thresholds, unclip ratio, limit side len,
rec batch, min confidence, split-overmerged, trt cache dir) plus
--log-level, --draw, --markdown, --word-boxes.
- Batch input via --images-from: one Engine for a whole list instead
of one process and one model load per image.
- Encoded-bytes input (recognizeEncoded) for callers already holding
image bytes.
- drawResult visualizer (boxes only; putText cannot render CJK).
- Word / character boxes, opt-in via returnWordBoxes.
- Markdown export (toMarkdown): paragraphs, headings, lists, and
key/value tables.
- intraOpNumThreads / interOpNumThreads for multi-worker hosts.
- CMake install/export: find_package(arboOCR CONFIG) and link
arboOCR::arboOCR instead of vendoring the tree.
- Python bindings cover all of the above.
Accuracy is unchanged on the SROIE smoke set (within -0.2 pts).
119 tests pass on Windows and Linux.
Not yet validated: useFp16 = true is the TensorRT default and no test
exercises it. scripts/fp16_ab.py is ready but needs NVIDIA hardware.
v0.1.0-php1
ci(release): tolerate zero extra shared libs when packaging Linux binary The ldd|awk|grep|grep -v|while-read pipeline that bundles vcpkg-built shared libs failed the whole Package step under set -o pipefail: the final grep -v exits 1 when nothing matches (e.g. most deps are static .a libs here, so there's nothing left outside /lib or /usr/lib to bundle) — a completely valid outcome, not an error. Configure/Build/Test all passed this run; this was the last remaining blocker.