Spaces:
Sleeping
Sleeping
Feature extractors
One script per family. All read data/artwork_metadata.csv + data/images/, write to
data/features/, checkpoint regularly, and resume if re-run.
| family | script | dims | what it measures |
|---|---|---|---|
| hand-crafted | extract_handcrafted.py |
380 | color (HSV joint + grey-world + per-channel histograms), light (brightness/contrast/darkness/edge density), symmetry, flatness (SLIC superpixel LAB uniformity), texture (FFT radial bands + 59-bin nri-uniform LBP), lines (Hough count/density, straight ratio, edge-angle histogram) |
| CLIP | extract_clip.py |
512 + 27 | ViT-B/16 image embedding + zero-shot cosine scores against 27 hand-written religious-attribute prompts |
| DINOv2 | extract_dino.py |
768 | self-supervised CLS token — visual style/appearance similarity |
| faces | extract_faces.py |
39 | YuNet detections summarized: count, coverage, sizes, positions, tilt/frontality, arrangement, spatial histograms |
| pose | extract_pose.py |
39 | YOLOv8-pose, largest figure only: torso-normalised 17-keypoint skeleton + figure area + detection-quality columns + person count |
Notes:
- Hand-crafted features use the corrected preprocessing pipeline: images are
border-cropped, guardedly background-masked (see
preprocessing/), and capped at 1024 px on the longest side so texture/edge features measure the artwork rather than the museum's scan resolution. - The pose vector stores quality indicators (
main_kpt_conf,main_torso_px) because photo-trained detectors are unreliable on stylised bodies — filter on them before interpreting posture.