docs: define calibration science v2 heterogeneous optics
This commit is contained in:
parent
53563ce1e7
commit
cc903981ad
5 changed files with 651 additions and 25 deletions
503
docs/architecture/calibration_science_v2.md
Normal file
503
docs/architecture/calibration_science_v2.md
Normal file
|
|
@ -0,0 +1,503 @@
|
||||||
|
# Calibration Science v2 — heterogeneous optics and adaptive acquisition
|
||||||
|
|
||||||
|
**Status: PLANNED — current additive design authority.**
|
||||||
|
|
||||||
|
Calibration Science v1 remains `PASS/FROZEN`. Science v2 does not weaken,
|
||||||
|
reinterpret or retroactively replace v1 evidence. It defines the next
|
||||||
|
scientific generation required by the product requirement that a Lardon3D
|
||||||
|
project may contain photographs from heterogeneous cameras, lenses, focal
|
||||||
|
configurations and normal autofocus operation.
|
||||||
|
|
||||||
|
No device-specific autofocus envelope is validated by this document. Numeric
|
||||||
|
focus-domain limits require dedicated physical evidence.
|
||||||
|
|
||||||
|
## 1. Product/science problem
|
||||||
|
|
||||||
|
A photogrammetry product must not require the operator to remember a rigid
|
||||||
|
exposure recipe or split one physical subject into artificial projects merely
|
||||||
|
because acquisition state changed.
|
||||||
|
|
||||||
|
The required user experience is:
|
||||||
|
|
||||||
|
```text
|
||||||
|
user frames and captures
|
||||||
|
-> Lardon3D records/observes acquisition state
|
||||||
|
-> Lardon3D measures actual image quality
|
||||||
|
-> Lardon3D resolves exact calibration applicability
|
||||||
|
-> Capture remains usable when quality is good
|
||||||
|
-> reconstruction becomes READY only when calibration coverage is complete
|
||||||
|
```
|
||||||
|
|
||||||
|
A normal supported camera body or rectilinear lens is equipment data. A new
|
||||||
|
brand/model name alone must not require source-code modification.
|
||||||
|
|
||||||
|
Source changes are justified only by a genuinely unsupported transport,
|
||||||
|
encoded representation, geometric camera model or required device-state
|
||||||
|
mechanism.
|
||||||
|
|
||||||
|
## 2. Compatibility with Science v1
|
||||||
|
|
||||||
|
The following remain frozen compatibility contracts:
|
||||||
|
|
||||||
|
```text
|
||||||
|
CALIBRATION_SCIENCE_V1=PASS/FROZEN
|
||||||
|
CALIBRATION_TOOLING_V1=PASS/FROZEN
|
||||||
|
CALIBRATION_BOOTSTRAP_V1=PASS/FROZEN
|
||||||
|
CALIBRATION_WORKFLOW_V1=PASS/FROZEN
|
||||||
|
```
|
||||||
|
|
||||||
|
Historical S21 and A6000 Engine Bay campaigns remain:
|
||||||
|
|
||||||
|
```text
|
||||||
|
CALIBRATION_UNAVAILABLE
|
||||||
|
BLOCKED_BY_KNOWN_CALIBRATION_DATA
|
||||||
|
```
|
||||||
|
|
||||||
|
Science v2 does not authorize retro-calibration by inference.
|
||||||
|
|
||||||
|
## 3. Fundamental separation of states
|
||||||
|
|
||||||
|
Science v2 separates three concepts that must never be conflated.
|
||||||
|
|
||||||
|
### 3.1 Capture existence
|
||||||
|
|
||||||
|
A Capture is durable acquisition evidence. Unsupported or unresolved optics do
|
||||||
|
not erase it.
|
||||||
|
|
||||||
|
### 3.2 Photo quality
|
||||||
|
|
||||||
|
Quality describes whether the decoded representation is useful image evidence.
|
||||||
|
It is evaluated from the image itself and may include:
|
||||||
|
|
||||||
|
- sharpness;
|
||||||
|
- defocus;
|
||||||
|
- motion blur;
|
||||||
|
- black/white clipping;
|
||||||
|
- usable shadow/highlight information;
|
||||||
|
- contrast;
|
||||||
|
- texture;
|
||||||
|
- noise or local signal-to-noise evidence when implemented;
|
||||||
|
- downstream feature usability.
|
||||||
|
|
||||||
|
Photo Quality may recommend `GOOD`, `SUSPECT` or `REJECT` without assigning any
|
||||||
|
calibration identity.
|
||||||
|
|
||||||
|
### 3.3 Calibration readiness
|
||||||
|
|
||||||
|
Calibration readiness answers whether a selected scientific representation has
|
||||||
|
exact compatible geometric calibration evidence.
|
||||||
|
|
||||||
|
Therefore this is valid:
|
||||||
|
|
||||||
|
```text
|
||||||
|
QUALITY=GOOD
|
||||||
|
CALIBRATION=CALIBRATION_REQUIRED
|
||||||
|
```
|
||||||
|
|
||||||
|
The image remains in the project.
|
||||||
|
|
||||||
|
## 4. Heterogeneous selected executions
|
||||||
|
|
||||||
|
A single project and one selected scientific execution may contain images from:
|
||||||
|
|
||||||
|
- different camera bodies;
|
||||||
|
- different lenses;
|
||||||
|
- different focal configurations of one zoom;
|
||||||
|
- different validated focus states or focus applicability domains;
|
||||||
|
- different validated aperture applicability states;
|
||||||
|
- different acquisition sessions.
|
||||||
|
|
||||||
|
The scientific requirement is per selected image:
|
||||||
|
|
||||||
|
```text
|
||||||
|
selected image
|
||||||
|
-> exactly one compatible calibration
|
||||||
|
```
|
||||||
|
|
||||||
|
It is not:
|
||||||
|
|
||||||
|
```text
|
||||||
|
selected execution
|
||||||
|
-> one global calibration
|
||||||
|
```
|
||||||
|
|
||||||
|
A truthful READY state requires complete calibration coverage of the exact
|
||||||
|
selected-image set.
|
||||||
|
|
||||||
|
The current Sparse calibration scope already represents members as
|
||||||
|
`image_id -> calibration_id`; v2 should reuse that per-image model unless
|
||||||
|
repository inspection proves a real missing invariant.
|
||||||
|
|
||||||
|
## 5. No silent substitution
|
||||||
|
|
||||||
|
Science v2 preserves:
|
||||||
|
|
||||||
|
```text
|
||||||
|
NO_SILENT_SCIENTIFIC_SUBSTITUTION
|
||||||
|
```
|
||||||
|
|
||||||
|
The following are forbidden unless a later explicit validated v2 transfer model
|
||||||
|
authorizes them:
|
||||||
|
|
||||||
|
- another camera body's calibration;
|
||||||
|
- another lens's calibration;
|
||||||
|
- a nearby focal calibration;
|
||||||
|
- a guessed focus calibration;
|
||||||
|
- a guessed aperture compatibility;
|
||||||
|
- a guessed stabilization/crop/pipeline equivalence;
|
||||||
|
- fuzzy metadata matching that silently changes scientific identity;
|
||||||
|
- interpolation or extrapolation outside a validated model/domain.
|
||||||
|
|
||||||
|
If exact compatibility cannot be proven:
|
||||||
|
|
||||||
|
```text
|
||||||
|
CALIBRATION_REQUIRED
|
||||||
|
```
|
||||||
|
|
||||||
|
If more than one valid choice remains unresolved:
|
||||||
|
|
||||||
|
```text
|
||||||
|
SELECTION_REQUIRED
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. Exposure and photometric controls
|
||||||
|
|
||||||
|
Purely photometric controls are adaptive acquisition variables.
|
||||||
|
|
||||||
|
Science v2 does not reject an image merely because of the numeric value of:
|
||||||
|
|
||||||
|
- shutter speed;
|
||||||
|
- ISO;
|
||||||
|
- white balance;
|
||||||
|
- exposure compensation;
|
||||||
|
- other controls proven not to change image geometry.
|
||||||
|
|
||||||
|
Examples such as `1/125`, `ISO 800` or `f/8` from historical campaigns are
|
||||||
|
observations, not universal validity thresholds.
|
||||||
|
|
||||||
|
For shutter/ISO/white balance, actual decoded-image evidence decides whether
|
||||||
|
the result is usable. A faster shutter with higher ISO may be preferable to a
|
||||||
|
blurred low-ISO image; a slower shutter may be valid when the camera is stable.
|
||||||
|
|
||||||
|
Missing photometric metadata must not cause fabricated values.
|
||||||
|
|
||||||
|
## 7. Aperture
|
||||||
|
|
||||||
|
Aperture is not automatically classified as purely photometric because some
|
||||||
|
lenses can exhibit focus shift or geometric changes with aperture.
|
||||||
|
|
||||||
|
The product goal remains that the operator does not manually manage scientific
|
||||||
|
grouping.
|
||||||
|
|
||||||
|
Science v2 must allow either:
|
||||||
|
|
||||||
|
1. one calibration applicability proven valid across an aperture domain; or
|
||||||
|
2. distinct automatically classified aperture applicability states.
|
||||||
|
|
||||||
|
Unknown compatibility produces `CALIBRATION_REQUIRED`, not Capture rejection.
|
||||||
|
|
||||||
|
No aperture-domain threshold is frozen without physical validation.
|
||||||
|
|
||||||
|
## 8. Focal length and zoom
|
||||||
|
|
||||||
|
Multiple focal configurations may coexist in one project and one selected
|
||||||
|
execution.
|
||||||
|
|
||||||
|
Exact calibrated focal states are the baseline v2 mechanism.
|
||||||
|
|
||||||
|
Electronic focal metadata may select an exact compatible state only when its
|
||||||
|
identity and trust rules are satisfied.
|
||||||
|
|
||||||
|
Manual lenses or missing metadata remain normal product paths through explicit
|
||||||
|
bounded state assignment.
|
||||||
|
|
||||||
|
Calibration at one focal state is never silently borrowed for another focal
|
||||||
|
state.
|
||||||
|
|
||||||
|
A future continuous focal transfer/interpolation model is allowed only if it is
|
||||||
|
a separately versioned Science v2 model with fit-domain evidence, hold-out
|
||||||
|
validation, deterministic evaluation and hard rejection outside its validated
|
||||||
|
domain.
|
||||||
|
|
||||||
|
## 9. Autofocus and focus applicability
|
||||||
|
|
||||||
|
Autofocus is a normal acquisition mode in Science v2.
|
||||||
|
|
||||||
|
Normal product use must not require the user to lock manual focus for every
|
||||||
|
project merely to satisfy calibration.
|
||||||
|
|
||||||
|
Science v2 supports the following scientific concepts:
|
||||||
|
|
||||||
|
### 9.1 Exact focus state
|
||||||
|
|
||||||
|
A calibration may apply to one exact observed/declared focus state.
|
||||||
|
|
||||||
|
This remains useful for manual lenses, fixed-focus systems and strict
|
||||||
|
measurements.
|
||||||
|
|
||||||
|
### 9.2 Validated focus applicability domain
|
||||||
|
|
||||||
|
A calibration may apply across a bounded autofocus/focus domain only when
|
||||||
|
physical evidence proves that applicability.
|
||||||
|
|
||||||
|
Required evidence includes:
|
||||||
|
|
||||||
|
- exact camera body and objective identities;
|
||||||
|
- exact focal/geometric pipeline state;
|
||||||
|
- explicit focus-state observation representation and provenance;
|
||||||
|
- repeated physical calibration samples across the intended focus domain;
|
||||||
|
- independent hold-out focus states;
|
||||||
|
- comparison in image-space geometric error, not only parameter percentage;
|
||||||
|
- bounded deterministic applicability;
|
||||||
|
- explicit rejection outside the validated domain.
|
||||||
|
|
||||||
|
Historical EXIF/MakerNote values such as Sony `FocusPosition2` or derived
|
||||||
|
`FocusDistance2` may inform experiment design. They are not by themselves
|
||||||
|
physical calibration evidence.
|
||||||
|
|
||||||
|
### 9.3 Discrete focus bands
|
||||||
|
|
||||||
|
If one calibration is not valid across the complete autofocus range, v2 may
|
||||||
|
use multiple validated discrete focus bands or exact focus states.
|
||||||
|
|
||||||
|
Automatic classification is required where trusted observed state permits it.
|
||||||
|
|
||||||
|
Ambiguous overlap must not silently choose a calibration.
|
||||||
|
|
||||||
|
### 9.4 Continuous focus transfer models
|
||||||
|
|
||||||
|
Continuous interpolation across focus is not assumed.
|
||||||
|
|
||||||
|
If future physical evidence justifies it, such a model must be:
|
||||||
|
|
||||||
|
- explicitly versioned;
|
||||||
|
- deterministic;
|
||||||
|
- bounded to a validated domain;
|
||||||
|
- fitted from retained physical evidence;
|
||||||
|
- tested on excluded hold-out focus states;
|
||||||
|
- rejected outside the domain;
|
||||||
|
- incorporated into scientific identity.
|
||||||
|
|
||||||
|
No extrapolation is silent.
|
||||||
|
|
||||||
|
## 10. Stabilization, crop, orientation and processing pipeline
|
||||||
|
|
||||||
|
Only state capable of changing geometry belongs to calibration applicability.
|
||||||
|
|
||||||
|
Examples requiring explicit treatment unless equivalence is proven:
|
||||||
|
|
||||||
|
- electronic stabilization;
|
||||||
|
- geometric crop;
|
||||||
|
- perspective correction;
|
||||||
|
- resize;
|
||||||
|
- computational geometry correction;
|
||||||
|
- in-camera lens correction that changes pixel coordinates;
|
||||||
|
- orientation normalization.
|
||||||
|
|
||||||
|
Purely cosmetic color processing does not create a new geometric state after
|
||||||
|
coordinate equivalence has been proven.
|
||||||
|
|
||||||
|
Unknown geometric state is incompatible until resolved.
|
||||||
|
|
||||||
|
## 11. Observed optical state and provenance
|
||||||
|
|
||||||
|
Science v2 requires a bounded, versioned observed state sufficient to decide
|
||||||
|
calibration applicability.
|
||||||
|
|
||||||
|
Conceptually it may contain:
|
||||||
|
|
||||||
|
```text
|
||||||
|
camera_body_identity
|
||||||
|
lens_identity
|
||||||
|
focal_state
|
||||||
|
focus_state_or_domain_observation
|
||||||
|
aperture_state_when_geometrically_relevant
|
||||||
|
stabilization_and_geometric_pipeline_state
|
||||||
|
decoded_oriented_width_height
|
||||||
|
crop_resize_transform_identity
|
||||||
|
representation/decode_pipeline_identity
|
||||||
|
observation_provenance
|
||||||
|
```
|
||||||
|
|
||||||
|
The exact public ABI and persistence layout are implementation-contract work.
|
||||||
|
|
||||||
|
Important rules:
|
||||||
|
|
||||||
|
- unknown is explicit;
|
||||||
|
- unknown is never replaced with a guessed default;
|
||||||
|
- electronic metadata is evidence with defined trust, not automatic truth for
|
||||||
|
every scientific field;
|
||||||
|
- manual assignment is explicit and durable where metadata cannot identify a
|
||||||
|
state;
|
||||||
|
- exact retry is idempotent.
|
||||||
|
|
||||||
|
## 12. Automatic calibration resolution
|
||||||
|
|
||||||
|
For each selected image:
|
||||||
|
|
||||||
|
```text
|
||||||
|
load exact Capture and representation
|
||||||
|
-> load/derive trusted observed optical state
|
||||||
|
-> enumerate validated compatible calibration applicability
|
||||||
|
-> exactly one: calibration resolved
|
||||||
|
-> none: CALIBRATION_REQUIRED
|
||||||
|
-> multiple unresolved: SELECTION_REQUIRED
|
||||||
|
```
|
||||||
|
|
||||||
|
A selection must remain reviewable and durable.
|
||||||
|
|
||||||
|
Calibration readiness does not rewrite Photo Quality evidence.
|
||||||
|
|
||||||
|
## 13. Artifact / Tooling / Bootstrap evolution
|
||||||
|
|
||||||
|
Science v2 does not require a new artifact merely because a project is
|
||||||
|
heterogeneous.
|
||||||
|
|
||||||
|
Implementation must first inspect and reuse existing primitives.
|
||||||
|
|
||||||
|
Current architecture already has:
|
||||||
|
|
||||||
|
```text
|
||||||
|
SparseCalibrationScope member = image_id -> calibration_id
|
||||||
|
L3DCALB1 entry = per-image intrinsics
|
||||||
|
```
|
||||||
|
|
||||||
|
However Tooling/Workflow v1 binds one global optical-state/provenance bundle.
|
||||||
|
If heterogeneous independent calibration groups cannot be represented without
|
||||||
|
losing provenance, an additive `L3DCALB2` / Tooling v2 / Bootstrap v2 may be
|
||||||
|
defined.
|
||||||
|
|
||||||
|
Any v2 artifact must preserve per-group:
|
||||||
|
|
||||||
|
- optical/applicability identity;
|
||||||
|
- target identity;
|
||||||
|
- solver executable/configuration identity;
|
||||||
|
- initialization evidence;
|
||||||
|
- validation evidence;
|
||||||
|
- model/dimensions;
|
||||||
|
- exact published intrinsics;
|
||||||
|
- exact selected-image membership.
|
||||||
|
|
||||||
|
V1 artifact semantics remain unchanged.
|
||||||
|
|
||||||
|
## 14. READY invariant
|
||||||
|
|
||||||
|
A selected execution is READY only if:
|
||||||
|
|
||||||
|
- every selected image is covered exactly once;
|
||||||
|
- every calibration is scientifically compatible with that image's observed
|
||||||
|
geometric state;
|
||||||
|
- the final calibration scope covers the exact selected image set;
|
||||||
|
- no unresolved or ambiguous selected image remains;
|
||||||
|
- publication/attachment follows the existing atomicity/idempotence contract.
|
||||||
|
|
||||||
|
A project may retain any number of other non-selected or
|
||||||
|
`CALIBRATION_REQUIRED` Captures.
|
||||||
|
|
||||||
|
## 15. Device independence
|
||||||
|
|
||||||
|
Normal equipment onboarding is data-driven.
|
||||||
|
|
||||||
|
Required product properties:
|
||||||
|
|
||||||
|
```text
|
||||||
|
NEW_CAMERA_REQUIRES_CODE_CHANGE=NO
|
||||||
|
NEW_LENS_REQUIRES_CODE_CHANGE=NO
|
||||||
|
MULTIPLE_LENSES_PER_CAMERA=SUPPORTED
|
||||||
|
ZOOM_MULTIPLE_FOCALS=SUPPORTED
|
||||||
|
MULTIPLE_OPTICAL_CONFIGURATIONS_PER_PROJECT=SUPPORTED
|
||||||
|
```
|
||||||
|
|
||||||
|
A genuinely different geometric model, unsupported file format or unsupported
|
||||||
|
transport may require new code. A different manufacturer/model string does not.
|
||||||
|
|
||||||
|
## 16. Acquisition control philosophy
|
||||||
|
|
||||||
|
Science v2 defines what must be observed and proven; it does not require one
|
||||||
|
specific control transport.
|
||||||
|
|
||||||
|
Future adapters should follow:
|
||||||
|
|
||||||
|
```text
|
||||||
|
if hardware permits control:
|
||||||
|
Lardon3D may choose/control settings automatically
|
||||||
|
else if state can be observed:
|
||||||
|
Lardon3D verifies/classifies automatically
|
||||||
|
else:
|
||||||
|
request only the minimum explicit user action required
|
||||||
|
```
|
||||||
|
|
||||||
|
HDMI, USB remote control and device-specific adapters remain separate future
|
||||||
|
implementation layers.
|
||||||
|
|
||||||
|
## 17. A6000 + E PZ 16-50 current evidence
|
||||||
|
|
||||||
|
Historical A6000 engine-bay images provide operational design evidence only.
|
||||||
|
|
||||||
|
Observed facts include:
|
||||||
|
|
||||||
|
- E PZ 16-50mm F3.5-5.6 OSS;
|
||||||
|
- heavy real use of 16-20 mm focal lengths;
|
||||||
|
- AF-S across the historical JPEG set;
|
||||||
|
- many distinct focus positions even within the 16 mm / f/8 subset;
|
||||||
|
- exposure values varied with scene conditions.
|
||||||
|
|
||||||
|
These observations demonstrate that a locked-focus single-state workflow is
|
||||||
|
not an acceptable general product UX for this use case.
|
||||||
|
|
||||||
|
They do not validate any reusable calibration or autofocus envelope.
|
||||||
|
|
||||||
|
Current device-specific state:
|
||||||
|
|
||||||
|
```text
|
||||||
|
A6000_E_PZ_16_50_AF_APPLICABILITY=BLOCKED_BY_PHYSICAL_VALIDATION
|
||||||
|
```
|
||||||
|
|
||||||
|
## 18. Required future physical study
|
||||||
|
|
||||||
|
Before claiming a real validated autofocus domain, capture dedicated ChArUco
|
||||||
|
evidence across representative focus states and repeats while preserving the
|
||||||
|
other relevant geometric state.
|
||||||
|
|
||||||
|
The study must determine whether the lens supports:
|
||||||
|
|
||||||
|
- one validated focus envelope;
|
||||||
|
- multiple discrete focus bands;
|
||||||
|
- exact focus-only calibration; or
|
||||||
|
- a future explicitly validated continuous transfer model.
|
||||||
|
|
||||||
|
Numeric domains and thresholds must come from the Science v2 validation design
|
||||||
|
and retained physical evidence. They are not inferred from historical scene
|
||||||
|
photos.
|
||||||
|
|
||||||
|
## 19. Implementation dependency
|
||||||
|
|
||||||
|
Current order:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Calibration Science v2 design
|
||||||
|
-> heterogeneous optical-state persistence/applicability foundation
|
||||||
|
-> v2 Tooling/Bootstrap/artifact only if required
|
||||||
|
-> heterogeneous Workflow v2 READY proof
|
||||||
|
-> physical AF/optical applicability study
|
||||||
|
-> dedicated calibrated real campaign
|
||||||
|
-> real Sparse SfM
|
||||||
|
```
|
||||||
|
|
||||||
|
Do not start Sparse SfM or Dense/MVS as part of this design tranche.
|
||||||
|
|
||||||
|
## 20. STOP conditions
|
||||||
|
|
||||||
|
Stop rather than guess if:
|
||||||
|
|
||||||
|
- a required geometric state cannot be observed or explicitly assigned;
|
||||||
|
- a proposed compatibility relation lacks physical validation;
|
||||||
|
- an AF/focal/aperture transfer model needs an invented threshold;
|
||||||
|
- a new schema would force inference into historical rows;
|
||||||
|
- heterogeneous calibration would require silently changing a FROZEN v1
|
||||||
|
scientific meaning;
|
||||||
|
- a new camera requires a genuinely different geometric model not covered by
|
||||||
|
the current pinhole/distortion science.
|
||||||
|
|
||||||
|
Uncertainty remains visible as `CALIBRATION_REQUIRED` or
|
||||||
|
`SELECTION_REQUIRED`.
|
||||||
|
|
@ -24,7 +24,7 @@ SOURCE_COMMENT_AUDIT PASS
|
||||||
PRODUCT_DEFINITION PASS/FROZEN
|
PRODUCT_DEFINITION PASS/FROZEN
|
||||||
PROMPT_TREE CURRENT
|
PROMPT_TREE CURRENT
|
||||||
USER_FACING_UI_LANGUAGE_NORMALIZATION PASS
|
USER_FACING_UI_LANGUAGE_NORMALIZATION PASS
|
||||||
CURRENT_NEXT DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN
|
CURRENT_NEXT CALIBRATION_SCIENCE_V2_DESIGN
|
||||||
```
|
```
|
||||||
|
|
||||||
The current Project DB head is additive:
|
The current Project DB head is additive:
|
||||||
|
|
@ -508,7 +508,28 @@ BLOCKED_BY_KNOWN_CALIBRATION_DATA
|
||||||
|
|
||||||
S21 Engine Bay is permanently non-retro-calibrable under Calibration Science v1.
|
S21 Engine Bay is permanently non-retro-calibrable under Calibration Science v1.
|
||||||
|
|
||||||
Calibration Science v1 defines the physical protocol for future calibration acquisitions.
|
Calibration Science v1 defines the frozen physical protocol for its compatibility path.
|
||||||
|
|
||||||
|
Before the next physical campaign, the current dependency is Calibration Science v2. Real A6000
|
||||||
|
engine-bay acquisition evidence established that normal operation must support autofocus and
|
||||||
|
heterogeneous optical states without forcing the operator to maintain one locked focus or one optical
|
||||||
|
configuration for the whole project.
|
||||||
|
|
||||||
|
Science v2 is additive and must preserve these product invariants:
|
||||||
|
|
||||||
|
```text
|
||||||
|
one project may mix camera bodies, lenses and focal configurations
|
||||||
|
one selected execution may use different calibrations per image
|
||||||
|
unknown calibration state retains the Capture and reports CALIBRATION_REQUIRED
|
||||||
|
shutter/ISO/white-balance values are adaptive, not image-validity constants
|
||||||
|
image quality is judged from actual decoded-image evidence
|
||||||
|
autofocus is a normal supported mode when its applicability is physically validated
|
||||||
|
silent calibration substitution remains forbidden
|
||||||
|
```
|
||||||
|
|
||||||
|
The current Sparse calibration scope already models membership as `image_id -> calibration_id`; v2
|
||||||
|
should reuse that capability rather than require one global calibration. Device-specific autofocus
|
||||||
|
envelopes remain blocked until physical evidence validates them.
|
||||||
|
|
||||||
Calibration Tooling v1 consumes an already acquired Science v1 evidence bundle, validates the bounded
|
Calibration Tooling v1 consumes an already acquired Science v1 evidence bundle, validates the bounded
|
||||||
contract and produces deterministic `L3DCALB1` v1.
|
contract and produces deterministic `L3DCALB1` v1.
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
CURRENT_PROJECT_DB_SCHEMA=v25
|
CURRENT_PROJECT_DB_SCHEMA=v25
|
||||||
PRODUCTION_TASK_KINDS=16
|
PRODUCTION_TASK_KINDS=16
|
||||||
USER_FACING_UI_LANGUAGE_NORMALIZATION=PASS
|
USER_FACING_UI_LANGUAGE_NORMALIZATION=PASS
|
||||||
CURRENT_IMPLEMENTATION_CURSOR=2_DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN
|
CURRENT_IMPLEMENTATION_CURSOR=CALIBRATION_SCIENCE_V2_DESIGN
|
||||||
```
|
```
|
||||||
|
|
||||||
## Authority
|
## Authority
|
||||||
|
|
@ -35,6 +35,9 @@ Calibration workflow input boundary PASS/FROZEN
|
||||||
Calibration workflow evidence materialization PASS/FROZEN
|
Calibration workflow evidence materialization PASS/FROZEN
|
||||||
Calibration workflow selected-execution binding PASS/FROZEN
|
Calibration workflow selected-execution binding PASS/FROZEN
|
||||||
Calibration workflow Tooling/Bootstrap READY PASS/FROZEN
|
Calibration workflow Tooling/Bootstrap READY PASS/FROZEN
|
||||||
|
Calibration Science v2 heterogeneous optics PLANNED
|
||||||
|
Adaptive capture settings semantics PLANNED
|
||||||
|
Autofocus v2 foundation PLANNED
|
||||||
Calibration Tooling planarity alignment PASS/FROZEN
|
Calibration Tooling planarity alignment PASS/FROZEN
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -72,6 +75,35 @@ Preserve at their documented boundaries:
|
||||||
|
|
||||||
`FROZEN` protects meaning and boundary, not necessarily every file byte.
|
`FROZEN` protects meaning and boundary, not necessarily every file byte.
|
||||||
|
|
||||||
|
## Current calibration-v2 design intent
|
||||||
|
|
||||||
|
Calibration v1 remains a valid frozen compatibility path. It is not weakened or
|
||||||
|
retroactively reinterpreted.
|
||||||
|
|
||||||
|
The current product dependency has changed before the physical campaign because
|
||||||
|
real A6000 engine-bay acquisition evidence showed that normal operation requires
|
||||||
|
heterogeneous optics and autofocus. Calibration Science v2 must therefore define
|
||||||
|
an additive path in which:
|
||||||
|
|
||||||
|
```text
|
||||||
|
one project may mix camera bodies
|
||||||
|
one project may mix lenses
|
||||||
|
one project may mix focal configurations
|
||||||
|
one selected execution may use multiple calibrations
|
||||||
|
each selected image must resolve to exactly one compatible calibration
|
||||||
|
autofocus is a normal supported acquisition mode
|
||||||
|
exposure settings are adaptive rather than fixed scientific constants
|
||||||
|
```
|
||||||
|
|
||||||
|
Capture/quality acceptance and calibration readiness are distinct. A sharp,
|
||||||
|
usable image with unresolved optics is retained and reported as
|
||||||
|
`CALIBRATION_REQUIRED`; it is not discarded merely because calibration evidence
|
||||||
|
is not yet available.
|
||||||
|
|
||||||
|
No v2 rule may silently substitute another body, lens, focal state, focus state
|
||||||
|
or calibration.
|
||||||
|
|
||||||
|
|
||||||
## Retained real S21 checkpoint
|
## Retained real S21 checkpoint
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,17 @@ CALIBRATION_WORKFLOW=PASS/FROZEN
|
||||||
CALIBRATION_WORKFLOW_INPUT_BOUNDARY_V1=PASS/FROZEN
|
CALIBRATION_WORKFLOW_INPUT_BOUNDARY_V1=PASS/FROZEN
|
||||||
CALIBRATION_WORKFLOW_EVIDENCE_MATERIALIZATION_V1=PASS/FROZEN
|
CALIBRATION_WORKFLOW_EVIDENCE_MATERIALIZATION_V1=PASS/FROZEN
|
||||||
CALIBRATION_WORKFLOW_SELECTED_EXECUTION_BINDING_V1=PASS/FROZEN
|
CALIBRATION_WORKFLOW_SELECTED_EXECUTION_BINDING_V1=PASS/FROZEN
|
||||||
CURRENT_CALIBRATION_NEXT=WORKFLOW_TOOLING_BOOTSTRAP_READY
|
|
||||||
CALIBRATION_WORKFLOW_TOOLING_BOOTSTRAP_READY_V1=PASS/FROZEN
|
CALIBRATION_WORKFLOW_TOOLING_BOOTSTRAP_READY_V1=PASS/FROZEN
|
||||||
CURRENT_CALIBRATION_NEXT=DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN
|
CALIBRATION_SCIENCE_V2=PLANNED
|
||||||
|
CALIBRATION_V2_HETEROGENEOUS_OPTICS=PLANNED
|
||||||
|
ADAPTIVE_CAPTURE_SETTINGS_CONTRACT=PLANNED
|
||||||
|
AUTOFOCUS_V2_FOUNDATION=PLANNED
|
||||||
|
CURRENT_CALIBRATION_NEXT=CALIBRATION_SCIENCE_V2_DESIGN
|
||||||
```
|
```
|
||||||
|
|
||||||
## Authority
|
## Authority
|
||||||
|
|
||||||
`docs/architecture/calibration_science_v1.md`, `docs/architecture/calibration_bootstrap.md` and `docs/architecture/calibration_solver_preflight_v1.md` are the current specialized calibration documents.
|
`docs/architecture/calibration_science_v1.md`, `docs/architecture/calibration_science_v2.md`, `docs/architecture/calibration_bootstrap.md` and `docs/architecture/calibration_solver_preflight_v1.md` are the current specialized calibration documents. Science v1 remains FROZEN; the v2 document is the current additive design authority until its contract is validated and frozen.
|
||||||
|
|
||||||
`docs/architecture/calibration_tooling.md` is the specialized Tooling authority.
|
`docs/architecture/calibration_tooling.md` is the specialized Tooling authority.
|
||||||
|
|
||||||
|
|
@ -46,7 +49,65 @@ BLOCKED_BY_KNOWN_CALIBRATION_DATA
|
||||||
|
|
||||||
Do not retro-calibrate them by invention.
|
Do not retro-calibrate them by invention.
|
||||||
|
|
||||||
## FROZEN flow
|
## Calibration Science v2 product requirements
|
||||||
|
|
||||||
|
Science v2 is additive. It does not weaken or rewrite Science v1.
|
||||||
|
|
||||||
|
The product requirement is:
|
||||||
|
|
||||||
|
```text
|
||||||
|
ONE_PROJECT_MAY_MIX_CAMERAS=YES
|
||||||
|
ONE_PROJECT_MAY_MIX_LENSES=YES
|
||||||
|
ONE_PROJECT_MAY_MIX_FOCAL_CONFIGURATIONS=YES
|
||||||
|
PER_IMAGE_COMPATIBLE_CALIBRATION=REQUIRED
|
||||||
|
|
||||||
|
AUTOFOCUS_NORMAL_OPERATION=SUPPORTED_TARGET
|
||||||
|
MANUAL_FOCUS_LOCK_REQUIRED_FOR_NORMAL_CAPTURE=NO
|
||||||
|
|
||||||
|
SHUTTER_SPEED_FIXED=NO
|
||||||
|
ISO_FIXED=NO
|
||||||
|
WHITE_BALANCE_FIXED=NO
|
||||||
|
EXPOSURE_SETTINGS_ADAPTIVE=YES
|
||||||
|
|
||||||
|
PHOTO_REJECTION_BASED_SOLELY_ON_EXPOSURE_METADATA=FORBIDDEN
|
||||||
|
UNKNOWN_OPTICS_REJECT_CAPTURE=NO
|
||||||
|
UNKNOWN_OPTICS_STATE=CALIBRATION_REQUIRED
|
||||||
|
|
||||||
|
SILENT_CALIBRATION_SUBSTITUTION=FORBIDDEN
|
||||||
|
```
|
||||||
|
|
||||||
|
The core separation is:
|
||||||
|
|
||||||
|
```text
|
||||||
|
CAPTURE / PHOTO QUALITY
|
||||||
|
!=
|
||||||
|
CALIBRATION READINESS
|
||||||
|
```
|
||||||
|
|
||||||
|
A Capture may be sharp, non-clipped and scientifically useful as image data
|
||||||
|
while still being `CALIBRATION_REQUIRED`. It remains durable in the project.
|
||||||
|
|
||||||
|
Purely photometric settings such as shutter speed, ISO, white balance and
|
||||||
|
exposure compensation may vary according to conditions. Their numeric values
|
||||||
|
alone are not scientific rejection criteria. Actual decoded-image evidence
|
||||||
|
remains authoritative for quality: sharpness/defocus/motion blur, clipping,
|
||||||
|
usable tonal information, contrast/texture, noise or local SNR where available,
|
||||||
|
and downstream feature usability.
|
||||||
|
|
||||||
|
Camera/lens/focal/focus/aperture/stabilization/crop/pipeline state is treated
|
||||||
|
according to whether it can alter geometry. Lardon3D must observe and classify
|
||||||
|
that state, automatically select an exactly compatible validated calibration
|
||||||
|
when one exists, expose `CALIBRATION_REQUIRED` when none exists, and expose
|
||||||
|
`SELECTION_REQUIRED` when compatibility remains ambiguous.
|
||||||
|
|
||||||
|
Autofocus is a normal v2 acquisition mode. A real autofocus applicability
|
||||||
|
envelope must be supported only by physical calibration/hold-out evidence.
|
||||||
|
Historical EXIF or MakerNote focus observations may guide experiment design but
|
||||||
|
must never fabricate such evidence.
|
||||||
|
|
||||||
|
See `docs/architecture/calibration_science_v2.md`.
|
||||||
|
|
||||||
|
## FROZEN v1 flow
|
||||||
|
|
||||||
```text
|
```text
|
||||||
dedicated physical calibration acquisition
|
dedicated physical calibration acquisition
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
IMPLEMENTATION_ORDER=DEPENDENCY_DRIVEN
|
IMPLEMENTATION_ORDER=DEPENDENCY_DRIVEN
|
||||||
IMPLEMENTATION_AUTHORIZATION=NO
|
IMPLEMENTATION_AUTHORIZATION=NO
|
||||||
STEP_0_USER_FACING_LANGUAGE_NORMALIZATION=PASS
|
STEP_0_USER_FACING_LANGUAGE_NORMALIZATION=PASS
|
||||||
CURRENT_NEXT=2_DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN
|
CURRENT_NEXT=CALIBRATION_SCIENCE_V2_DESIGN
|
||||||
```
|
```
|
||||||
|
|
||||||
## Authority
|
## Authority
|
||||||
|
|
@ -20,23 +20,25 @@ Implementation remains unauthorized until the human explicitly authorizes a tran
|
||||||
Default dependency order:
|
Default dependency order:
|
||||||
|
|
||||||
0. user-facing repository/UI language normalization where appropriate — PASS;
|
0. user-facing repository/UI language normalization where appropriate — PASS;
|
||||||
1. final usable calibration workflow — PASS/FROZEN; valid external evidence now composes through FROZEN Tooling and Bootstrap to truthful READY;
|
1. final usable Calibration Science/Tooling/Bootstrap/Workflow v1 compatibility path — PASS/FROZEN;
|
||||||
2. dedicated physical calibrated real campaign;
|
2. Calibration Science v2 design for heterogeneous cameras/lenses/focals, adaptive capture settings and autofocus — CURRENT;
|
||||||
3. real Sparse SfM proof;
|
3. Calibration v2 heterogeneous-optics persistence / Tooling / Bootstrap / workflow foundation;
|
||||||
4. durable Dense/OpenMVS orchestration;
|
4. physical autofocus/optical applicability validation and dedicated calibrated real campaign;
|
||||||
5. mesh / refinement / texturing / export;
|
5. real Sparse SfM proof;
|
||||||
6. viewer foundation;
|
6. durable Dense/OpenMVS orchestration;
|
||||||
7. offline Coverage Analysis scientific contract and implementation;
|
7. mesh / refinement / texturing / export;
|
||||||
8. multi-campaign registration / fusion;
|
8. viewer foundation;
|
||||||
9. generic live acquisition adapter foundation;
|
9. offline Coverage Analysis scientific contract and implementation;
|
||||||
10. A6000 HDMI integration;
|
10. multi-campaign registration / fusion;
|
||||||
11. S21 integration;
|
11. generic live acquisition adapter foundation;
|
||||||
12. live camera localization;
|
12. A6000 HDMI integration;
|
||||||
13. live coverage overlay;
|
13. S21 integration;
|
||||||
14. actionable Capture Guidance;
|
14. live camera localization;
|
||||||
15. video ingestion / deterministic keyframes;
|
15. live coverage overlay;
|
||||||
16. final integration, UX, restart and performance proof;
|
16. actionable Capture Guidance;
|
||||||
17. Product Definition v1 Definition-of-Done closure.
|
17. video ingestion / deterministic keyframes;
|
||||||
|
18. final integration, UX, restart and performance proof;
|
||||||
|
19. Product Definition v1 Definition-of-Done closure.
|
||||||
|
|
||||||
## Adjustment rule
|
## Adjustment rule
|
||||||
|
|
||||||
|
|
@ -45,3 +47,10 @@ Change this order only when current repository inspection proves a real dependen
|
||||||
Step 0 closure does not authorize mechanical rewriting of historical persisted labels, path names, deliberate UTF-8 fixtures or persistence-sensitive internal strings. Such text is changed only when its owning scope requires it.
|
Step 0 closure does not authorize mechanical rewriting of historical persisted labels, path names, deliberate UTF-8 fixtures or persistence-sensitive internal strings. Such text is changed only when its owning scope requires it.
|
||||||
|
|
||||||
Do not jump to A6000 live work merely because it is visually interesting. Reconstruction/viewer/coverage foundations required for truthful guidance come first.
|
Do not jump to A6000 live work merely because it is visually interesting. Reconstruction/viewer/coverage foundations required for truthful guidance come first.
|
||||||
|
|
||||||
|
The calibration-v2 insertion before the physical campaign is dependency-driven,
|
||||||
|
not feature creep: real acquisition evidence established that the v1 locked-focus
|
||||||
|
single-optical-state path would make normal engine-bay capture impractical and
|
||||||
|
would contradict the already-FROZEN product requirement for multiple optical
|
||||||
|
configurations per project. Science v2 must be defined before collecting the
|
||||||
|
physical evidence intended to validate it.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue