symbol_read_pod — SYMBOL read_pod op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.symbol_read_pod(trials_table, *, link='logit', level=0.95) (implementation को सीधे call करना हो तो import symbolpod; symbolpod.symbol_read_pod(trials_table, *, link='logit', level=0.95), registry से लेना हो तो opssymbol.get("symbol_read_pod"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

read trials की table से POD (hit = सही string पढ़ी गई) और misread की upper bound लौटाता है (table)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Fit the hit/miss POD (pod.pod_hitmiss_fit) to a table from symbol_read_trials. When the factor is worse when larger (defocus, noise …) the fit runs on x = −level so that POD rises with x, and the answers are mapped back: level90 = the degradation read with 90 % probability, level90_95 = its conservative bound at level confidence (a *smaller* degradation), level50 likewise. When the factor is better when larger (module size, contrast, full well) level90_95 is the *larger* value.

method = "hitmiss_glm" then. ★When the outcome is decided by the level (complete separation — every capture read up to one level and none beyond), the slope is not estimable; the op then returns method = "all_success_demonstration": the most severe level at which every trial read (separation_bracket = that level and the first one with a failure), and level90_95 = that level only if it holds at least pod.trials_for_all_success (0.90, level) trials (29 at 95 %), else None. level50 / level90 are None in that case.

★monotone is False when a more degraded level reads more often than a milder one by more than 3 standard errors (nonmonotone_z): the POD models assume monotone degradation, so the fitted numbers are then outside their premise (seen with a reader that cannot read sharp dot-peen marks but reads them once blur merges the dots). The result is still returned, flagged.

Also returns per_level (level, n, hits, misreads, noreads, read_rate), misread_total / decoded_total and misread_rate_upper (one-sided Clopper-Pearson upper bound of misreads per decode at level; with zero misreads in n decodes it is 1 − (1 − level)^(1/n)), fit (the POD table) and factor.

空の入力(0 行)は ValueError。拒否(ValueError): 列の欠け、全部読めた/全部読めない、level が (0, 1) の外。完全分離は拒否せず上の「全数成功の実証」で返す(傾きの無い POD を作らない)。

उपयोग की विस्तृत guide

• symbol_reading family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_symbol_lot_ocr — py -3.11 examples/poc_symbol_lot_ocr.py

• poc_symbol_package_1d — py -3.11 examples/poc_symbol_package_1d.py

• poc_symbol_part_dpm — py -3.11 examples/poc_symbol_part_dpm.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

render_symbol · symbol_read_trials · ocr_classify · ocr_read_line · ocr_read_trials

इसी category के (read_pod)

symbol_read · symbol_read_trials


*Provenance: symbolpod.py — SYMBOL operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.