CommonLibraries/VERIFICATION.md

48 lines
5.3 KiB
Markdown
Raw Normal View History

# Verification and consumer handoff
- Initial extraction preserved the Studio snapshot. The four-mode update below adds two geometry modes while retaining ABI 5 sizes, old field offsets, and existing mode values. All model weights and user samples remain outside this library.
- `scripts/verify.ps1`: standalone Windows build, seven CTest contracts with Release assertions enabled, dependency negative checks, installation and an independent installed CMake consumer.
- Native Linux: configure with RKNN backends disabled, build and run `ctest --output-on-failure` from the build directory. Seven contracts pass; this is host-native logic validation, not NPU execution.
- Studio cross-builds the Linux AArch64 Runtime using its explicitly supplied Model Zoo. The manifest identifies ELF architecture; only matching Windows/ARM source revisions can be published together.
- MatchVerify's scripts/verify-runtime-update.ps1 exercises both real consumer build paths against a disposable ABI-compatible source update and restores the original source dependency. SDK decoding/masks/geometry parity uses the real business sample without changing it.
- Final current-source completion and command evidence: .codex/delivery-integrity.json. There is no physical RK3588/camera/robot acceptance and no automatic update service for already deployed programs.
## Four Seg geometry modes (2026-10-21)
- Scope: shared Runtime only; rectangle=1, enclosing circle=2 unchanged; mean diameter circle=3, robust fit circle=4 added. No consumer app or deployed Runtime was changed.
- Robust fit is migrated without algorithm changes from the MatchVerify header used in the preceding 1981-target comparison. It chooses the largest external contour; failed fitting returns that contour's enclosing circle. `fit_status` reports success/fallback in a formerly reserved ABI word.
- Windows `scripts/verify.ps1`: seven Release CTest contracts, install, dependency-manifest negative checks and independent installed C consumer pass. Synthetic tests cover non-square mean radius, origin offsets, detached noise, protrusions, elongated/point fallback and empty inputs.
- `tests/verify_four_geometry.py`: installed public C API, four modes on rotor `10_origin.png` (22 targets) and stator `135_origin.png` (32 targets), using the preceding experiment directories as explicit `--reference` arguments. All masks match their recorded SHA256 values; rectangle/mean output exactly matches prior float results; robust fit maximum discrepancy is below 0.000061 pixel. Invalid modes 0/5 are rejected. Evidence: `build/four-geometry/four-mode-api.json`.
- OpenCV runtime DLL deployment is included in build and installation; the initial missing-DLL test startup failure was fixed before the successful full rerun.
- Linux runner accepts rect/circle/mean/fit and includes fit status in JSON. Linux/AArch64 rebuild and physical RK3588 validation are not performed in this batch; target-compatible OpenCV core/imgproc is required for that build.
- Completion record and exact commands: `.codex/delivery-integrity.json`. Next consumer step is explicit selection of one of the four public modes after rebuilding against this library; it is outside this batch.
## Consumer four-mode and board mask update (2026-10-21)
- Runner now saves an unpadded P5 binary PGM for each Seg instance under `<output-stem>.masks/`, with relative maskPath in JSON and the unchanged mask metadata/original-image offsets. RGB/RGBA render overlays use the same class colors and alpha as Studio, before the requested geometry is drawn.
- `yolo_runner_mask_output_test` adds padded-row/offset/hole preservation, alpha/unchanged-background and file-byte tests. Windows baseline now includes eight contracts.
- Studio's matching ARM64 Runtime/runner build completed using the supplied Model Zoo OpenCV 3.4.5. Readelf confirms AArch64 and no external OpenCV shared-library dependency. Matching Windows/ARM manifests are checked during Studio publication. No real-device execution was performed.
- Current consumer checkpoints: MatchVerify/SHARED_RUNTIME_HANDOFF.md and RK3588_AI_Platform/docs/codex/CURRENT_BATCH.md.
## RGB instance-ID mask batch (2026-10-21)
Scope: additive public `yolo_masks_compose_rgb_ids`; preserve existing ABI 5
structures and per-instance masks; no dilation, consumer migration, runner
export change, deployment, commit, push, or physical-device validation.
Pre-existing dirty library changes are retained; baseline copies for edited
existing files are in `build/rgb-id-mask-baseline`.
Acceptance: exact background/one/two/three membership RGB rules; independent
membership reconstruction over the full fixture canvas; holes/disconnected
pixels, input origins and padded input/output rows; all 255 instance IDs;
explicit four-overlap/count/binary/ABI/bounds/capacity errors with untouched
caller output. `yolo_mask_ids_test` exercises the exported DLL function;
`yolo_runtime_c_api_contract` calls it from C. The installed C consumer also
calls the new symbol. Run `powershell -ExecutionPolicy Bypass -File scripts/verify.ps1`
for the complete native build/CTest/install/manifest/consumer baseline.
Actual completion and command evidence are in `.codex/delivery-integrity.json`.
Next action after successful verification: consumers can pass their ordered
mask views and original canvas size to the new API; existing applications stay
on their current export path until separately migrated.