Implement quality score tracking and batch Frigate file mapping
- Track laplacian blur score through quality filtering pipeline (quality.py: blur_score on QualityResult; diversity.py: store on asset; executor.py: read via quality_score key) - Replace per-file polling with post-person batch reconciliation: after all uploads for a person complete, poll Frigate (up to 15s) until the expected number of new files appear, then map by filename timestamp order (Frigate FIFO queue = upload order = timestamp order) - Document race condition limitation: concurrent external uploads cause the batch to be skipped entirely (safe but files go unmapped); noted in code as requiring a Frigate API fix (return filename on upload) - Add two assess_quality integration tests for blur_score Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -134,6 +134,16 @@ def test_assess_quality_passes_good_image():
|
||||
img = _noisy_color_image()
|
||||
result = assess_quality(img, face_bbox=(10, 10, 110, 110), confidence=0.9)
|
||||
assert result.passed
|
||||
assert result.blur_score is not None
|
||||
assert result.blur_score > 0
|
||||
|
||||
|
||||
def test_assess_quality_blur_score_is_low_for_flat_image():
|
||||
from winnow.quality import assess_quality
|
||||
flat = _rgb_image(128, 128, 128)
|
||||
result = assess_quality(flat)
|
||||
assert result.blur_score is not None
|
||||
assert result.blur_score < 1.0
|
||||
|
||||
|
||||
def test_assess_quality_collects_multiple_failures():
|
||||
|
||||
Reference in New Issue
Block a user