6.5 KiB
Calibration AF Study Evidence v1
Status: PASS / FROZEN.
This boundary is an offline scientific-evidence helper for Calibration Science v2. It does not perform camera calibration, Project DB mutation, autofocus control, calibration selection, or physical-validity decisions.
Purpose
Project DB v27 can persist a physically validated exact-token focus domain, but it deliberately does not decide whether a set of focus observations is physically compatible.
Calibration AF Study Evidence v1 supplies the missing measurement artifact:
independent calibration results at observed focus states
-> deterministic pairwise image-space projection deltas
-> L3DAFST1 artifact
-> SHA-256 retained evidence
-> later human/scientific applicability decision
-> v27 focus-domain creation only after that decision
The real A6000 + E PZ 16-50 autofocus applicability remains:
A6000_E_PZ_16_50_AF_APPLICABILITY=BLOCKED_BY_PHYSICAL_VALIDATION
This tool cannot change that state by itself.
Input contract
The caller supplies one exact study context:
- nonzero SHA-256 of the retained body/lens/focal/non-focus geometric context;
- decoded/oriented width and height;
- 2..64 already acquired calibration samples.
Each sample contains:
FITorHOLDOUTrole;- one bounded, nonempty opaque exact focus token;
- nonzero SHA-256 of that calibration's retained evidence;
- exact binary64
fx, fy, cx, cy, k1, k2, p1, p2.
Repeated samples at one focus token are allowed only when they identify distinct
calibration evidence. Repeating the exact same (focus token, calibration evidence SHA-256) is rejected and cannot masquerade as repeatability evidence.
The API performs no metadata interpretation. A Sony MakerNote value, for example, must first be converted by the future acquisition/evidence layer into the exact retained token policy selected for that study.
Probe model
Version 1 measures the same frozen pinhole + k1/k2/p1/p2 forward projection
model used by calibration/Sparse SfM.
Nine normalized ideal rays are evaluated:
centre
(0, 0)
edge probes
(-0.7, 0) (+0.7, 0) (0, -0.7) (0, +0.7)
corner probes
(-0.7, -0.7) (+0.7, -0.7)
(-0.7, +0.7) (+0.7, +0.7)
For every pair of calibration samples, the artifact stores:
- centre delta in pixels;
- maximum cardinal edge-probe delta;
- maximum corner-probe delta;
- maximum over all nine probes;
- whether both samples use the same focus token;
- whether the pair crosses FIT/HOLDOUT roles.
These are measurements, not acceptance thresholds.
L3DAFST1
The binary artifact is little-endian and bounded to 128 KiB.
It contains:
magic = L3DAFST1
artifact version
probe-model version
study-context SHA-256
width / height
sample / pair / role counts
canonical sample records
all canonical pair records and projection metrics
Sample order is canonicalized by:
focus-token bytes
calibration-evidence SHA-256
sample role
Therefore caller input order does not change artifact bytes or SHA-256.
Every floating value is finite binary64. Negative zero is normalized to positive zero before serialization.
The artifact SHA-256 is suitable as retained evidence for a later v27
lardon3d_optical_focus_domain_v2_create(...) call only after the physical
study has been reviewed and its scientific applicability decision has been made.
Summary output
The API also returns bounded aggregate measurements:
- FIT/HOLDOUT/sample/pair counts;
- same-focus / cross-focus / FIT-HOLDOUT pair counts;
- maximum centre, edge-probe, corner-probe and global pairwise delta;
- maximum same-focus global delta;
- maximum cross-focus global delta;
- maximum FIT/HOLDOUT global delta.
The summary is for inspection and orchestration. It does not encode PASS/FAIL.
Non-goals
This v1 boundary does not:
- solve ChArUco calibration;
- parse EXIF/MakerNotes;
- invent physical focus distances;
- derive autofocus envelopes;
- define an acceptance pixel threshold;
- interpolate or extrapolate focus;
- open Project DB;
- create a v27 focus domain;
- make an execution READY.
The future physical study supplies the evidence needed to decide whether the A6000 + E PZ 16-50 supports one domain, discrete domains, or exact focus only.
Materialized Workflow bridge v1
Status: PASS / FROZEN.
CALIBRATION_AF_STUDY_WORKFLOW_BRIDGE_V1 is the additive conversion boundary
between the already-FROZEN Calibration Workflow materializer and AF-study
samples.
It accepts a Lardon3DCalibrationWorkflowExternalEvidence that has already
passed the existing immutable-file, solver-bundle and provenance checks. It
does not parse solve.json or any other solver file again.
The bridge:
materialized Calibration Workflow evidence
+ caller-supplied exact focus token
+ caller-supplied FIT/HOLDOUT role
-> Lardon3DCalibrationAfStudySample
The sample publishes repeated_parameters[0] only after checking that all three
retained full solves remain exactly equal.
Its calibration_evidence_sha256 is independent of the focus token and
FIT/HOLDOUT role and binds:
- target identity;
- optical-state identity;
- solver executable/configuration identity;
- initialization evidence;
- validation evidence;
- exact oriented dimensions;
- exact published binary64 intrinsics.
Therefore relabelling one calibration result cannot manufacture independent calibration evidence.
The bridge performs no DB access, metadata interpretation, physical AF decision, thresholding, interpolation or extrapolation.
Materialized study assembly v1
Status: PASS / FROZEN.
CALIBRATION_AF_STUDY_ASSEMBLY_V1 composes the frozen Workflow bridge and
L3DAFST1 producer so a physical AF study does not need caller-written sample
arrays.
The caller supplies:
study_context_sha256
2..64 entries {
materialized Calibration Workflow evidence
exact opaque focus token
FIT or HOLDOUT role
}
The assembly:
- converts every entry through the frozen Workflow bridge;
- requires one exact oriented width/height for the whole study;
- rejects a repeated
calibration_evidence_sha256even when the caller changes focus token or FIT/HOLDOUT role; - passes the resulting bounded samples to the frozen AF-study producer;
- returns deterministic
L3DAFST1, artifact SHA-256 and summary.
study_context_sha256 remains caller-retained and explicit. This layer does not
derive body/lens/focal/non-focus state from solver metadata and does not decide
whether different focus observations belong to one physically valid domain.
No Project DB access, solver execution, metadata inference, thresholding, interpolation or extrapolation is introduced.