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.1.tar.gz (119.7 kB 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.1-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: visual_cataloguer-0.1.1.tar.gz
  • Upload date:
  • Size: 119.7 kB
  • 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.1.tar.gz
Algorithm Hash digest
SHA256 846db3e18fa7e08ea91358ee7aa187df48eaa3fe723e285cd65610b03aed19a7
MD5 60690bf1e30736c74d255167d168df44
BLAKE2b-256 daec5ee3455cb371ae7fce295dd112a08b35c7aff3d80b7ca8a98f5161c91d89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for visual_cataloguer-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 975b14e6441f35a0605a68b7a389d87b8ca8d5f711aa7bf1b4e84d33016e3613
MD5 a80500a1e35db11ac2967670dacb03a6
BLAKE2b-256 45a28fc88f9fd95e4266939ad8cc0190f552e87c4a2ea626986c086a2209c47d

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