feat(quality): five AR-029 sharpness candidates on the aligned crop
assess_sharpness() scores a 112x112 crop on variance-of-Laplacian, a contrast-normalised variant, Tenengrad, a spectral high-frequency ratio and dir_min_tenengrad, over a fixed 64x64 window on the face interior. The window excludes the corners because studio headshots are routinely shot at a wide aperture, and background bokeh measured over the whole crop would drag the score down on the sharpest images in the set. Five rather than one because AR-029's threshold has to be located, not chosen: VR-012 ranks them by how well each predicts real identity loss. The T1 ladders drove two corrections during development. The spectral ratio applied its Hann window before removing the mean, so the DC term smeared into the low-frequency bins and the "ratio" tracked absolute brightness (a 20/255 brightening moved it 23%). And no measure taken from the literature survived directional blur: normalising by total energy divides out the loss being measured, so both ratio measures are U-shaped in motion-blur length and score a 21 px smear about as sharp as a 3 px one. dir_min_tenengrad exists to fix that -- a low-frequency contrast denominator that blur leaves alone, and the worse of the two Sobel axes rather than their sum. The tests pin the disqualifying behaviours as well as the desirable ones, so a change that makes var_laplacian contrast-free is a deliberate act rather than an accident. They also record that every candidate falls under downscale-upscale as well as under blur: the aligned crop is scale-normalised geometrically, not informationally. Exposed through sae_embed alongside the AR-030 alignment residual, so a study scores through shipped code rather than a numpy copy -- the same argument that already applies to the calibration. TRACES: AR-028, AR-029 | SR-002
This commit is contained in:
@@ -19,6 +19,7 @@ add_executable(sae_tests
|
||||
test_calibration.cpp
|
||||
test_gallery_store.cpp
|
||||
test_face_utils.cpp
|
||||
test_quality.cpp
|
||||
test_track_gallery.cpp
|
||||
test_face_tracker.cpp
|
||||
test_track_registry.cpp
|
||||
|
||||
Reference in New Issue
Block a user