Platus
2020Developer
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
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