VR-NeRF Eyeful Tower Dataset

repository·main·Indexed 41 days ago

https://github.com/facebookresearch/eyefultower

A specialized dataset and toolset for research in Neural Radiance Fields (NeRF) and Virtual Reality (VR), focusing on high-fidelity scene reconstruction. Includes a core camera interaction library using Sony Camera Remote SDK 2.00.00, Commandly (a Godot-based robot control application), 3D CAD models of the capture rig, and an HDR reconstruction pipeline for processing raw captures into OpenEXR and JPEG formats.

Tokens
14.4K
Snippets
28
Records
72
Agent score
53%

What's inside Eyeful Tower

  1. Overview of EyefulTower Dataset Scenes

    main

    The EyefulTower dataset consists of multiple scenes, each containing a specific number of cameras, positions, and images. The dataset is organized into different versions (v1, v2, v3) and provides data in various formats including 2K/1K EXRs and multiple resolutions of JPEGs (8K+, 4K, 2K, 1K).

    Available scenes include:

    • Residential/Living: apartment, kitchen, lounge_room, playroom (and variations: playroom_med, playroom_small), raf_furnishedroom.
    • Office/Work: office1a, office1b, office1c, office2, office_view1, office_view2, meeting_room, workshop, workshop2.
    • Specialized/Other: riverview, seating_area, table, vr_room, eyeful_room, raf_emptyroom.

    Each scene has an associated index page (e.g., apartment_index) that provides a navigable interface for the data.

  2. Overview of the VR-NeRF Eyeful Tower Dataset

    main

    The VR-NeRF Eyeful Tower Dataset is a research dataset presented at ACM SIGGRAPH Asia 2023. It is associated with the VR-NeRF project and is designed for research involving neural radiance fields (NeRF) in virtual reality contexts.

    Key resources for this project include:

  3. Overview of Commandly

    main

    Commandly is a Godot-based control application designed for the remote control of the Eyeful Tower robot. It provides a comprehensive interface for teleoperation, real-time monitoring, and system management.

    Key Capabilities:

    • Dual Communication: Combines ROS# for ROS2 topic communication and SSH.NET for direct PAL system control.
    • Joystick Control: Full gamepad support for robot teleoperation.
    • Real-time Monitoring: Live camera feeds, IMU data, robot pose, and system status.
    • Mapping & Localization: Tools to control and monitor SLAM and localization modules.
    • Capture System: Integrated camera capture with configurable settings.
    • Status Dashboard: Visual indicators for robot state, connectivity, and autonomous modes.
  4. Access 3D CAD models of the EyefulTower robot

    main

    The repository provides 3D CAD models of the EyefulTower robot capture rig in various formats for different use cases, ranging from detailed sensor layouts to simplified geometry.

    Available files include:

    • EyefulRobot.STEP: Detailed 3D models of all cameras and sensors.
    • EyefulRobot.zip: Native SolidWorks source files (.SLDPRT and .SLDASM) for the full robot assembly.
    • Eyefulv2-elementary_geometry.STEP: A simplified 3D model of the robot, useful for lightweight simulations or collision checking.
  5. Eyeful Project Structure Overview

    main

    The Eyeful repository is organized into the following components:

    • app/: Platform-specific executables including macOS apps (mac/), Raspberry Pi apps (pi/), an SD card formatting utility (sd_format/), and a file transfer tool (transfer/).
    • eyeful/: The core library for camera interaction (control, bracketing, multi-camera operations) using the Sony SDK.
    • logging/: The logging framework.
    • third-party/: External dependencies including cli11 (CLI parsing), fmt (text formatting), and magic_enum (enum reflection).
  6. Understand EyefulTower CAD file formats

    main

    The CAD models are provided in two primary formats:

    • .STEP: An open, vendor-neutral format (Standard for the Exchange of Product Data). Use this for compatibility with most CAD software such as SolidWorks, Fusion 360, or FreeCAD.
    • .SLDPRT / .SLDASM: Native SolidWorks Part and Assembly files. These are the editable source files and require SolidWorks to open.
  7. Understand the Eyeful Capture Sequence

    main

    A typical capture sequence follows these steps:

    1. Setup: Configure cameras for batch capture.
    2. Drive Forward: Optionally move forward ~1.25 feet.
    3. Wait for IMU: Wait for /eyeful/imu_ready to ensure stability.
    4. Capture First Exposure: Trigger cameras with the first set of settings.
    5. Capture Second Exposure: Apply second settings and capture again.
    6. Spin: Rotate 120° (configurable via numSpinStops).
    7. Repeat: Steps 3-6 repeat for each spin stop (default is 3 positions).
    8. Record Position: Store the capture location for visualization.
  8. Understand the training and testing splits

    main

    The splits.json file defines which images are used for training and testing. To ensure valid evaluation, all images from a specific camera are held out for testing. The held-out cameras are:

    • Eyeful v1: Camera 5
    • Eyeful v2: Camera 17
    • Eyeful v3: Camera 45
  9. Understand the Eyeful Tower dataset organization

    main

    Each scene in the Eyeful Tower dataset follows a consistent directory structure. Key components include:

    • cameras.json: Camera poses in KRT format.
    • cameras.xml: Camera poses exported from Metashape.
    • colmap/: COLMAP reconstruction files, including undistorted images in various resolutions (images, images_2, images_4, images_8) and the sparse reconstruction.
    • images-1k/ & images-2k/: HDR images stored as uncompressed 32-bit floating-point EXR files, organized by camera ID.
    • images-jpeg*: White-balanced and tone-mapped JPEG images at multiple resolutions (Full, 4K, 2K, 1K).
    • mesh.*: Reconstructed 3D mesh in OBJ format with texture.
    • splits.json: Defines the training and testing image sets.
  10. Eyeful Tower Capture Rig versions

    main

    The dataset contains images captured using three different versions of the Eyeful Tower rig:

    • v1: 9 fisheye cameras.
    • v2: 22 pinhole cameras (e.g., the 'kitchen' scene uses 19 cameras).
    • v3: 14 fisheye cameras.

    When selecting camera views for experimentation, it is recommended to view the collage video for a scene first to identify specific camera IDs (e.g., in the v2 apartment scene, camera IDs 19, 20, and 21 are at the same height).

  11. Commandly Project Layout and Script Architecture

    main

    The Commandly project is organized into several functional areas within the Godot engine:

    Core Management

    • ROSManager.cs: Central manager for ROS2 connections.
    • PALControl.cs: Manages PAL modules via SSH-based control.

    ROS2 Communication

    • Subscribers (Data In):
      • CameraSubscriber.cs: Camera feed.
      • RobotStateSubscriber.cs: Robot state and status.
      • ImuSubscriber.cs: IMU sensor data.
      • JoyPrioritySubscriber.cs: Joystick priority and control status.
      • LocalCostmapSubscriber.cs: Local navigation costmap data.
      • RobotPoseSubscriber.cs: Position and orientation tracking.
    • Publishers (Data Out):
      • JoystickPublisher.cs: Publishes joystick commands to robot control topics.
    • Services:
      • CaptureService.cs: Camera capture functionality.
      • CaptureTypeService.cs: Configurable capture modes.
      • SdFormatterService.cs: SD card formatting utilities.

    UI and Components

    • Status Indicators: AutonomousIcon.cs and AutonomousStatus.cs for autonomous mode.
    • Visuals: Camera.cs for display and Map.cs for local costmap visualization.
    • Controls: CaptureButton.cs, CaptureDropdown.cs, CaptureIcon.cs, CaptureToggle.cs, FormatButton.cs, and MappingStateButton.cs.
    • Custom Types: RobotButton.cs and RobotOptionButton.cs for custom UI definitions.