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.2.0.tar.gz (130.1 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.2.0-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: visual_cataloguer-0.2.0.tar.gz
  • Upload date:
  • Size: 130.1 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.2.0.tar.gz
Algorithm Hash digest
SHA256 a803b19d3a9e208276eb56a10dd96310a73542c275660ecacd1f9aa99a641dc8
MD5 ae5d961ba72e58dcf4cde8edc63b3542
BLAKE2b-256 79bd48cd081896fdf95899f34b8a306cc75da1fe1011e3f0e41490504c684ad6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for visual_cataloguer-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c636d232a1e372da02b1425fb1f81ef0f3f9e6d48129cf59afa6732c4100e248
MD5 ad225d7d3bc33afe897e928ce3024a19
BLAKE2b-256 0e0720070674c1bdcf85a91f2c1673e89c36482ff6386041961dc6c2d925b9a9

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