You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 5599c9a
Browse filesBrowse the repository at this point in the historyBrowse files
qr: decode small-module curved captures — format brute force + biased sampling
Real-capture repro (anyd-capture-1 (7): coffee can, v2 QR at ~4.6 px/module
with vertical motion smear on a curved label): the locator handed the crop
worker a usable full-res crop, the sampler recovered the right geometry
(both timing lines lock under the adaptive binarizations, 4 pattern + 24
timing anchors in the thin-plate dewarp), and decode still failed — first at
the format information, then at Reed-Solomon. Two capability gaps, now fixed:
- Format-information brute force: the format fields are single-module
features hugging the finder rings, exactly where blur bleeds worst, and
BCH tops out at 3 bit errors. Only 4 EC levels x 8 masks exist, so when
the read fails (or lies), try every combination and let RS arbitrate.
Gated behind a timing-pattern sanity score (>= 0.75 alternation) so the
thousands of garbage grids a cluttered frame throws at the decoder do not
each pay 32 RS attempts.
- Bias-shifted module classification: directional smear drags dark modules
above the local-contrast midpoint, so the dewarp pass now also tries the
midpoint shifted +-15% (without the local-mean backstop; RS validates).
The capture's QR now reads (https://zko.jp/ueacvj) from both the tight crop
and the demo's actual merged label crop — 59 ms native / 231 ms wasm — so
the live pipeline locks it instead of losing it. Pinned as
testdata/real_qr_can.png + real_can_qr_curved_blurred_decode.
Also: env-gated diagnostics kept from the investigation (ANYD_QR_DEBUG pass/
candidate/anchor traces, ANYD_LOC_DEBUG region/finder dumps, locdebug LOC_*
option overrides). Bench recall/FP unchanged (100% / 0%).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments