Initial scaffold: capture + vision modules with detect CLI
- capture/: frame sampling at configurable fps, ffmpeg audio extraction (WAV, whisper-ready) - vision/: changed-pixel motion scoring, stable/moving segmentation, contour + perspective document detection, Laplacian sharpness scoring, optional CLAHE enhancement - pipeline: two-pass detect (motion timeline, then best-frame crop per stable window) writing crops, debug frames, report.json, and motion_scores.csv - CLI: probe / detect / extract-audio subcommands - config.yaml with tunable thresholds; placeholder packages for events, transcribe, ocr, naming, pdf, review_cli - synthetic sample video generator + 16 unit tests
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
||||
# PaperPod tunable thresholds. All values here override the built-in defaults
|
||||
# in paperpod/config.py; delete a key to fall back to the default.
|
||||
|
||||
capture:
|
||||
# Frames per second to sample from the source video for analysis.
|
||||
sample_fps: 8
|
||||
# Frames are downscaled to this width for motion analysis (full resolution
|
||||
# is still used for the final document crops).
|
||||
processing_width: 960
|
||||
|
||||
audio:
|
||||
# WAV sample rate for the extracted audio track (16 kHz mono = whisper-ready).
|
||||
sample_rate: 16000
|
||||
|
||||
motion:
|
||||
# Gaussian blur kernel applied before frame differencing (odd number).
|
||||
blur_ksize: 21
|
||||
# A pixel counts as "changed" if its gray level moved by more than this (0-255).
|
||||
pixel_threshold: 12
|
||||
# Fraction of changed pixels (0.0-1.0) above which a frame counts as "moving".
|
||||
# Raise if sensor noise triggers false motion; lower if small gestures
|
||||
# (page flips) are being missed.
|
||||
threshold: 0.02
|
||||
# A stable stretch must last at least this long (seconds) to count as a window.
|
||||
stable_min_duration_s: 1.0
|
||||
|
||||
document:
|
||||
# Contours smaller than this fraction of the frame area are ignored.
|
||||
min_area_ratio: 0.04
|
||||
# Canny edge detection thresholds.
|
||||
canny_low: 50
|
||||
canny_high: 150
|
||||
# Apply contrast enhancement (CLAHE) to crops for OCR-readiness.
|
||||
enhance: false
|
||||
|
||||
speech:
|
||||
# Window around a capture event in which to look for a spoken description.
|
||||
window_before_s: 3.0
|
||||
window_after_s: 5.0
|
||||
|
||||
output:
|
||||
dir: ./output
|
||||
# Paperless-ngx consume directory (module 7, not wired up yet).
|
||||
consume_dir: null
|
||||
Reference in New Issue
Block a user