cvikl's picture
Space: code only; data fetched from HF dataset repo at startup
82d2327
|
Raw
History Blame Contribute Delete
2.84 kB
metadata
title: Religious Artwork Analysis
emoji: 🕌
colorFrom: yellow
colorTo: purple
sdk: docker
app_port: 7860
short_description: Interactive t-SNE explorer for religious artworks

Religious Artwork Analysis

Code for "Analysis of Artworks Across Different Religions" — a study of whether (and which) visual features separate religious artworks of Buddhism, Christianity, Hinduism and Islam, using a hand-verified, balanced dataset of 3,997 paintings (~1,000 per religion).

Key result

Semantic features transfer across museums; style features largely do not. Religion-classification accuracy (chance = 0.25):

feature family dims pooled 5-fold leave-one-source-out
CLIP attribute scores 27 0.919 0.856
CLIP embedding 512 0.941 0.828
DINOv2 embedding 768 0.910 0.783
hand-crafted (all) 378 0.741 0.391
pose (main figure) 36 0.611 0.369
face composition 39 0.501 0.280

The pooled–LOSO gap measures source leakage: features that encode museum reproduction style (scan texture, framing) look discriminative pooled but collapse on unseen sources. Reproduce with evaluation/family_accuracy.py.

Setup

python -m venv venv && source venv/bin/activate
pip install -r requirements.txt

# 1. data (needs a Kaggle API token)
python data/download.py

# 2. preprocessing: guarded background masks (~1 h, CPU)
python preprocessing/generate_masks.py

# 3. features (each checkpointed & resumable)
python features/extract_handcrafted.py --workers 8
python features/extract_clip.py
python features/extract_dino.py
python features/extract_faces.py
python features/extract_pose.py

# 4. evaluation table
python evaluation/family_accuracy.py

# 5. web app
uvicorn app.main:app --port 8000

Repository layout

data/           dataset download + expected layout
preprocessing/  crop_padding + guarded U^2-Net background masking
features/       one extractor per feature family (see features/README.md)
evaluation/     pooled vs leave-one-source-out accuracy per family
app/            FastAPI + Plotly interactive t-SNE explorer

Authors

Timotej Cvikl & Žiga Klun — Faculty of Computer and Information Science, University of Ljubljana. Code under MIT license; dataset under CC BY-NC 4.0 (see the Kaggle page).