symbol_read_trials — SYMBOL read_pod op

• 資料種類:table → table

• 呼叫: import fullseye as fs; fs.ledger.symbol_read_trials(symbol, factor, levels, *, trials=20, reader='auto', symbologies=None, truth=None, module_px=4.0, render=None, capture=None, rotate='random', rotate_jitter_deg=5.0, level_jitter=0.0, refine=False, seed=0)(要直接呼叫實作,import symbolpod; symbolpod.symbol_read_trials(symbol, factor, levels, *, trials=20, reader='auto', symbologies=None, truth=None, module_px=4.0, render=None, capture=None, rotate='random', rotate_jitter_deg=5.0, level_jitter=0.0, refine=False, seed=0);從台帳取用則 opssymbol.get("symbol_read_trials"))

• GPU:無(僅 CPU 參考實作)

用法

在每個劣化水準下對符號拍攝並讀取 trials 次,回傳每次一列的結果表(table)。

> 以下的詳細說明為原文 —— 摘要與標題已翻譯。

For each level of the degradation factor (see DEGRADATION_FACTORS), render the symbol (symrender.render_symbol), capture it (symrender.capture_degrade) and read it (symbol_read), trials times with fresh nuisance: in-plane rotation (rotate="random": uniform over 360° for 2-D symbols, ±rotate_jitter_deg around 0 for 1-D; a number fixes it), a sub-pixel offset in [0, 1) px and the sensor-noise seed. For a 1-D table the reader is restricted to the table's own symbology unless symbologies is given (a line reader enables only what it expects; all-symbology reading short-reads). render / capture hold the fixed settings of the other knobs; the sensor defaults to full_well_e = 20000, read_noise_e = 10, 8 bits. truth defaults to the table's text.

Returns columns level, trial, hit (1 = read the true text), misread (1 = read a different text), noread, text (object array), plus factor, worse_when_larger, truth, reader, stage.

level_jitter (relative, default 0) multiplies each trial's actual level by 1 + level_jitter · N(0, 1) while the table keeps the nominal level — the process variation of the line (e.g. part height moving the focus). It is a declared assumption, not a fit knob.

refine=True first runs every level with max(4, trials // 4) trials, brackets the transition (the last level read >= 95 % and the first read <= 5 %, in the order of increasing degradation) and then runs len(levels) evenly spaced levels across that bracket with trials each (stage = "coarse" / "fine"; both enter the table). Without it a coarse sweep easily ends in complete separation.

空の入力(levels が 3 未満)は ValueError。拒否(ValueError): 未知の factor、trials < 1、水準の重複・非有限、render / capture に掃引中の因子と同じ鍵、読み取り器を決められない表。

詳細使用指南

• symbol_reading 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• 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

型別可銜接的下一個運算子(可接受 table 作為輸入)

render_symbol · symbol_read_pod · ocr_classify · ocr_read_line · ocr_read_trials

同類別(read_pod)

symbol_read · symbol_read_pod


*Provenance: symbolpod.py — SYMBOL 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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