Skip to main content

Batch catalogue physical collections using visual dividers (QR codes) and automated image processing

Project description

visual-cataloguer

Batch catalogue physical collections using visual dividers (QR codes) and automated image processing.

The Problem

You have thousands of items (retro games, books, vinyl, tools) in boxes. You need them in a searchable database. Manual entry would take weeks.

The Solution

  1. Print QR code dividers (one per box)
  2. Photograph: divider → items → items → black frame → divider → ...
  3. Run viscatalog process ./photos
  4. Browse your collection

How It Works

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│ Load Image  │────▶│  Classify   │────▶│   Process   │
│ (ARW/JPG)   │     │ Image Type  │     │ Accordingly │
└─────────────┘     └─────────────┘     └─────────────┘
                           │
           ┌───────────────┼───────────────┐
           ▼               ▼               ▼
     ┌──────────┐    ┌──────────┐    ┌──────────┐
     │   BOX    │    │  BLACK   │    │   GAME   │
     │ DIVIDER  │    │  FRAME   │    │   ITEM   │
     └──────────┘    └──────────┘    └──────────┘
  • Box Divider: QR code or text (e.g., "BOX-1") - starts a new box
  • Black Frame: Dark image - ends current box
  • Game Item: Everything else - catalogued with OCR

Features

  • Merges photos from multiple cameras by EXIF timestamp
  • QR code detection (OpenCV) + OCR fallback (Tesseract)
  • RAW file support (.ARW Sony files via rawpy)
  • SQLite database with JPEG BLOBs (single portable file)
  • SHA256 deduplication for resume capability

Installation

# Clone and install
git clone https://github.com/retroverse-studios/visual-cataloguer.git
cd visual-cataloguer
uv sync

System dependencies:

Usage

# Process images from two cameras
viscatalog process \
    --input-dir-1 ./NEX3N \
    --input-dir-2 ./RX100 \
    --database ./collection.db

# View statistics
viscatalog stats -d ./collection.db

# List boxes
viscatalog list --boxes -d ./collection.db

# Search items
viscatalog search "zelda" -d ./collection.db

Development

# Run tests
uv run pytest

# Type checking
uv run mypy cataloguer

# Linting
uv run ruff check cataloguer

License

MIT License - see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

visual_cataloguer-0.1.0.tar.gz (15.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

visual_cataloguer-0.1.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file visual_cataloguer-0.1.0.tar.gz.

File metadata

  • Download URL: visual_cataloguer-0.1.0.tar.gz
  • Upload date:
  • Size: 15.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for visual_cataloguer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cf14b3ed32c2f5e3edd8780257949c4a0fb9192daf311dd26e068e515f1b2e33
MD5 9471928b161c65419eba7e7db509c192
BLAKE2b-256 cbb745cd7f01e99ea31e0c8b9ce966840dd40f2d09668f29bec206a76aa4cc95

See more details on using hashes here.

File details

Details for the file visual_cataloguer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for visual_cataloguer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a84c82f6d677756e0ea367b2ef29f17c85e7c058d17e3b64712da73d151e571
MD5 34a09e854133d6ae6df14b0b9d8e2874
BLAKE2b-256 5d40ac49b186a21c47f6536b2d50d533370d10e908d7e4df123f1f362a4459b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page