calibration opsignal → tableimport fullseye as fs; fs.ledger.null_distribution(values) (実装を直接呼ぶなら import imgforensics; imgforensics.null_distribution(values)、台帳から引くなら opsimgforensics.get("null_distribution"))改竄が無いと分かっている標本から、証拠量の帰無分布をまとめる。
この族は一貫して判定を返さない。それは正しいが、そのままだと利用者は
PCE 1832 のような数値を渡されて解釈する手段が無い。かといって
しきい値を同梱すると嘘になる ―― 分離点は枚数・解像度・圧縮率・被写体で
動くので、出荷時に決められる値ではない。
そこで利用者自身の清浄データから分布を測る。同梱するのは「しきい値」 ではなく「しきい値の測り方」で、それなら条件が変わっても正しいままでいる。
values : array_like
改竄が無いと分かっている組で測った証拠量(hash_distance や
fingerprint_correlate()["pce"] など)。同じ条件で集めること。
dict
n / mean / std / min / max / quantiles
(5, 25, 50, 75, 95, 99 パーセンタイル)。標本が少ないと裾は測れない
ので n < 20 は caveats に出す(黙って外挿しない)。
py -3.11 examples/image_forensics_audit.pypy -3.11 examples/poc_prnu_camera_fingerprint.pytable を入力に取れる)calibration)Provenance: imgforensics.py — IMGFORENSICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.