Back to Engineering

Platus

2020

Developer

PythonDjangoOpenCV3DComputer Vision

Overview

Platus is an automated image capture system designed to create comprehensive 3D datasets from physical objects. Using a rotating turntable and synchronized multi-camera setup, it captures mini figurines and small objects from every angle, generating the image datasets needed for 3D mesh reconstruction and neural rendering pipelines.

Built for efficient batch processing, Platus streamlines the tedious process of dataset creation, transforming hours of manual photography into minutes of automated capture. The system handles everything from camera synchronization to image segmentation, producing clean, structured datasets ready for 3D reconstruction.

Architecture

Web Interface
Django Admin / Control Panel
Camera Manager
Multi-threaded Capture / OpenCV
Multi-Camera Array
Synchronized Capture from Multiple Angles
Rotating Turntable
360° Object Rotation
Segmentation
Background Removal
Frame Extraction
Image Sampling
3D Dataset
Structured Images + Metadata

Features

Automated Capture: One-click scanning process captures complete 360° rotations with synchronized cameras

Multi-Camera Support: Simultaneous capture from multiple viewpoints and angles

Batch Processing: CSV import for queuing dozens of objects for automated sequential capture

Real-Time Preview: Live camera feeds with web-based streaming for capture monitoring

Automatic Segmentation: Optional background removal for clean object isolation

Metadata Tracking: Comprehensive database recording of capture parameters, angles, and lighting conditions

Tech Stack

Backend

  • • Python / Django 2.2
  • • Multi-threaded architecture
  • • SQLite database
  • • RESTful API endpoints

Computer Vision

  • • OpenCV 4.4 for camera I/O
  • • Multi-camera synchronization
  • • Real-time frame buffering
  • • Image segmentation pipeline

Hardware

  • • Logitech C920 HD webcams
  • • Motorized turntable
  • • Controlled lighting setup
  • • v4l2 camera configuration

Data Processing

  • • NumPy for arrays
  • • Pillow for images
  • • Pandas for metadata
  • • Configurable sampling rates

How It Works

1. Setup and Configuration

Upload a CSV file containing the list of objects to capture. The system queues them for sequential processing. Configure capture parameters like duration, frame rate, camera angles, and whether to enable automatic background segmentation.

2. Camera Initialization

The Camera Manager spawns separate threads for each camera, establishing synchronized video streams. Each camera continuously captures frames into its own buffer, ready for on-demand retrieval. The web interface provides live preview streams so you can verify positioning and focus.

3. Automated Capture

Place the object on the turntable and click SCAN. The system captures frames as the turntable rotates through 360 degrees. All cameras capture simultaneously from their configured angles and distances. The system automatically moves to the next object in the queue when capture completes.

4. Processing and Storage

Captured frames are processed through the segmentation pipeline if enabled, removing backgrounds to isolate the object. Images are saved with structured naming conventions and comprehensive metadata (camera ID, angle, distance, lighting conditions). The database tracks all captures for easy retrieval and dataset export.

Development Story

Platus was developed to solve a specific problem in 3D computer vision research: generating large-scale datasets of objects captured from every angle. Manually photographing objects is time-consuming and inconsistent - maintaining the same lighting, angles, and distances across hundreds of captures is nearly impossible.

The project started with a simple rotating turntable and a single camera, but quickly evolved into a multi-camera system as the need for simultaneous viewpoints became apparent. The biggest technical challenge was synchronizing multiple USB cameras while maintaining consistent frame rates - this required careful threading and buffer management to prevent dropped frames.

The Django web interface was crucial for making the system practical. Rather than requiring command-line expertise, researchers could simply upload a CSV of objects, start the cameras, and begin scanning. The real-time preview streams provided immediate feedback, and the batch processing capability meant dozens of objects could be captured in a single session.

Applications

3D Reconstruction: Generate multi-view datasets for photogrammetry and Structure from Motion pipelines

Neural Rendering: Create training data for Neural Radiance Fields (NeRF) and novel view synthesis

Object Recognition: Build comprehensive image datasets for computer vision model training

E-commerce: Capture products for 360° interactive viewers and AR applications

Cultural Preservation: Document artifacts and collectibles in high detail