Add support for 009a sensor initializer#7
Merged
Conversation
hhgarnes
added a commit
to hhgarnes/libfprint-tod-vfs0090
that referenced
this pull request
Jul 2, 2020
Add 06cb:009a to the list of supported devices. The initialization instructions on line 1449 will be updated for 9a in the pull request uunicorn/python-validity#7 unless I'm completely mistaken.
Owner
|
Thanks! |
dmitriy-myz
added a commit
to dmitriy-myz/python-validity
that referenced
this pull request
May 28, 2026
Two changes, big payoff: AAB0 #0 went from 243/250 to 250/250 byte-exact on the captured Wine enrollment frame. Average across 9 AAB0s improved from ~94% to ~98%. 1. FILL was 128 (= the Q0 mid-gray byte value). DLL pads its 3×3 tiles with Q16 mid-gray = 0x800000 (= 8388608). Using 128 propagated through the doh convolution chain to non-padding pixels and changed NMS results in EDGE TILES (rows 2 and cols 2 of the 3×3 grid). With the fix, my port's tile 8 is byte-exact with captured F250 tile 8. 2. Corner-tile tightening in _a960_passes_global_edge: for tile (i=GRID-1, j=GRID-1) — bottom-right — cap gy at oy + last_row_step (= 102 exclusive for 112-px frame). Without this, my port keeps 7 tile-8 kps with gy in [102, 108] that DLL drops. Empirically derived from 9-AAB0 enrollment capture; the kp orientation of these kps and the per-AAB0 gy_max in DLL's tile 8 (range 82-101) suggests the actual rule may be more nuanced (per-frame variable), but the exclusive `gy < oy + step` empirically catches most edge cases for the captured data. Per-AAB0 byte-exact (gx, gy) match after fix: #0: 250/250 #1: 239/250 #2: 239/250 #3: 243/250 #4: 244/250 uunicorn#5: 248/250 uunicorn#6: 249/250 uunicorn#7: 246/250 uunicorn#8: 246/250 Residual drift (1-11 per frame) is concentrated in TILE 8 (corner) where DLL applies a per-frame gy cut whose rule isn't yet pinned down. For example AAB0 #1 DLL keeps only 3 of ~12 high-resp tile-8 kps; DLL's kept kps have gy ≤ 82 while my port's only_mine kps have gy in [89, 101]. The cut isn't strict top-N or fixed gy threshold. Diagnostic tools added: dev/find_edge_bound.py - per-tile bound aggregator across all AAB0s (lists observed gx/gy ranges) dev/try_per_tile_bound.py - tests a per-tile bound filter against my port's output Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I'm not sure if this is useful but I was working on make the
validity-sensors-initializer.pysupport the06cb:009adevice and other similar devices in the future. @uunicorn please feel free to review and change/reject this pull request at your discretion.Maybe someone else with the same device can test this and confirm it is working fine.
Related to #3