CommonLibraries/VERIFICATION.md

5.3 KiB

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.