Point Cloud Simulation & Applications Maurice Fallon



Similar documents
Removing Moving Objects from Point Cloud Scenes

Real-Time 3D Reconstruction Using a Kinect Sensor

PCL - SURFACE RECONSTRUCTION

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Automatic Labeling of Lane Markings for Autonomous Vehicles

3D Vision An enabling Technology for Advanced Driver Assistance and Autonomous Offroad Driving

Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite

INTRODUCTION TO RENDERING TECHNIQUES

Robotics. Lecture 3: Sensors. See course website for up to date information.

CS 534: Computer Vision 3D Model-based recognition

High speed 3D capture for Configuration Management DOE SBIR Phase II Paul Banks

A Short Introduction to Computer Graphics

How To Fuse A Point Cloud With A Laser And Image Data From A Pointcloud

Deferred Shading & Screen Space Effects

Introduction to Computer Graphics

Programming 3D Applications with HTML5 and WebGL

Blender addons ESRI Shapefile import/export and georeferenced raster import

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Blender 3D Animation

How does the Kinect work? John MacCormick

VIRTUAL TRIAL ROOM USING AUGMENTED REALITY

The Scientific Data Mining Process

3D Vision An enabling Technology for Advanced Driver Assistance and Autonomous Offroad Driving

BUILDING TELEPRESENCE SYSTEMS: Translating Science Fiction Ideas into Reality

Spatio-Temporally Coherent 3D Animation Reconstruction from Multi-view RGB-D Images using Landmark Sampling

MeshLab and Arc3D: Photo-Reconstruction and Processing of 3D meshes

MVTec Software GmbH.

Optimizing AAA Games for Mobile Platforms

B2.53-R3: COMPUTER GRAPHICS. NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions.

Introduction to Computer Graphics. Reading: Angel ch.1 or Hill Ch1.

Lecture Notes, CEng 477

Real-time Visual Tracker by Stream Processing

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

Merging overlapping depth maps into a nonredundant point cloud

Robot Perception Continued

Interactive Segmentation, Tracking, and Kinematic Modeling of Unknown 3D Articulated Objects

ACCURACY ASSESSMENT OF BUILDING POINT CLOUDS AUTOMATICALLY GENERATED FROM IPHONE IMAGES

3D Face Modeling. Vuong Le. IFP group, Beckman Institute University of Illinois ECE417 Spring 2013

1. INTRODUCTION Graphics 2

A Prototype For Eye-Gaze Corrected

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Adding Animation With Cinema 4D XL

KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera*

Glass coloured glass may pick up on scan. Top right of screen tabs: these tabs will relocate lost windows.

Cork Education and Training Board. Programme Module for. 3 Dimensional Computer Graphics. Leading to. Level 5 FETAC

NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect

3D Scanner using Line Laser. 1. Introduction. 2. Theory

Thea Omni Light. Thea Spot Light. Light setup & Optimization

The Car Tutorial Part 1 Creating a Racing Game for Unity

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

NCC-RANSAC: A Fast Plane Extraction Method for Navigating a Smart Cane for the Visually Impaired

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

Dynamic Resolution Rendering

Petascale Visualization: Approaches and Initial Results

Visualizing Data: Scalable Interactivity

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang

Volume visualization I Elvins

Computer Graphics Hardware An Overview

VisIt Visualization Tool

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Realtime 3D Computer Graphics Virtual Reality

The Rocket Steam Locomotive - Animation

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Color correction in 3D environments Nicholas Blackhawk

ARC 3D Webservice How to transform your images into 3D models. Maarten Vergauwen

Mobile Robot FastSLAM with Xbox Kinect

RGB-D Mapping: Using Kinect-Style Depth Cameras for Dense 3D Modeling of Indoor Environments

Open Source Tools for 3D Forensic Reconstructions Part 3 Eugene Liscio, P. Eng. November 2011

Medical and Volume Visualization with X3D

IP-S3 HD1. Compact, High-Density 3D Mobile Mapping System

CS 4204 Computer Graphics

PCL Tutorial: The Point Cloud Library By Example. Jeff Delmerico. Vision and Perceptual Machines Lab 106 Davis Hall UB North Campus.

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based)

Tracking and integrated navigation Konrad Schindler

Super-Resolution Keyframe Fusion for 3D Modeling with High-Quality Textures

High Performance GPU-based Preprocessing for Time-of-Flight Imaging in Medical Applications

HIGH AND LOW RESOLUTION TEXTURED MODELS OF COMPLEX ARCHITECTURAL SURFACES

Practical Tour of Visual tracking. David Fleet and Allan Jepson January, 2006

Traffic Monitoring Systems. Technology and sensors

CS130 - Intro to computer graphics. Dr. Victor B. Zordan vbz@cs.ucr.edu Objectives

MMGD0203 Multimedia Design MMGD0203 MULTIMEDIA DESIGN. Chapter 3 Graphics and Animations

Medical Image Processing on the GPU. Past, Present and Future. Anders Eklund, PhD Virginia Tech Carilion Research Institute

Republic Polytechnic School of Information and Communications Technology C391 Animation and Visual Effect Automation.

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

A System for Capturing High Resolution Images

IP-S2 HD. High Definition 3D Mobile Mapping System

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. M.Sc. in Advanced Computer Science. Friday 18 th January 2008.

Tracking People with a 360-Degree Lidar

Real time vehicle detection and tracking on multiple lanes

Tracking in flussi video 3D. Ing. Samuele Salti

Online Learning for Offroad Robots: Using Spatial Label Propagation to Learn Long Range Traversability

3D U ser I t er aces and Augmented Reality

Digital 3D Animation

Transcription:

Point Cloud & Applications Maurice Fallon Contributors: MIT: Hordur Johannsson and John Leonard U. of Salzburg: Michael Gschwandtner and Roland Kwitt

Overview : Dense disparity information Efficient Image Parallelizing to large arrays of viewports Localization using only RGB-D Algorithm Development and Comparison: Kinect Fusion Segmentation, Object Recognition, next best viewpoint Stochastic Point Cloud Alignment An alternative: Blensor Integrated within Blender

Simulating Depth Images Kinect/RGB-D: Dense disparity information Uncertainty is a function of disparity Overview: Create an OpenGL camera viewport with a Kinect-like calibration: 640x480, fx, fy, cx, cy. Render Triangle Based Model Optionally compare to a reference depth image Uses GL Shading Language Pyramid-based summation for efficiency Read Depth, Color and Score Buffer back from GPU Quantize corresponding to actual sensor disparity (e.g. XX levels) Add normally distributed noise (on disparity) Optionally convert to a range image or save to PCD file 20m away Alternatives and other noise characteristics: more later

Example Depth Image

Simulating Depth Images Kinect/RGB-D: Dense disparity information Uncertainty is a function of disparity Overview: Create an OpenGL camera viewport with a Kinect-like calibration: 640x480, fx, fy, cx, cy. Render Triangle Based Model Optionally compare to a reference depth image Uses GL Shading Language Pyramid-based summation for efficiency Read Depth, Color and Score Buffer back from GPU Quantize corresponding to actual sensor disparity (e.g. XX levels) Add normally distributed noise (on disparity) Optionally convert to a Range Image or save to PCD file 20m away Alternatives and other noise characteristics: more later

Parallel Depth Image State Estimation -Traditional -Stochastic Kinect Localization: -Visual Odometry -Depth Optimizations: Triangle-based Model is stored on GPU (8000 triangles) Virtual camera array created using particle poses Each scene simultaneously rendered with OpenGL Likelihood function evaluated in parallel on GPU using GLSL GL Shading Language can handle the basic arithmetic Results: -Multi-robot demos -Future work Measurements decimated to 20x15

pcl::simulation Input Information:.ply (currently preferred),.obj,.vtk input with or w/o color Initial Pose Development: Started in Summer 2011 Targeted for pcl_1.6 Demo applications: pcl_sim_viewer Point and click simulation using usual PCL viewer pcl_sim_terminal_demo Illustration of the programming interface

pcl::simulation 27840 triangle faces, 13670 vertices Different Configs: 57.00Hz: simulation only 30.61Hz: simulation, getpointcloud 40.00Hz: simulation, getpointcloud, writebinary 28.50Hz: simulation, addnoise, getpointcloud, writebinary Module Comparison: 31% simulation 11% getpointcloud (from GPU) 41% addnoise 16% writebinary

Overview : Dense disparity information Efficient Image Parallelizing to large arrays of viewports Localization using only RGB-D Algorithm Development and Comparison: Kinect Fusion Segmentation, Object Recognition, next best viewpoint Stochastic Point Cloud Alignment An alternative: Blensor simulation add-on for Blender

RGB-D Vision SLAM Kinect has fueled new interest in Vision SLAM: 3D maps [Henry et al. ISER 2010] Kinect Fusion [Newcombe et al. ISMAR 2011] Henry et al. ISER 2010 Raphael Favier TuE Full model requires: Views of every room, every direction, less than 5m range Storage requirements for a building 100s of GBs Mesh in video: 300MB Newcombe et al. ISMAR 2011

The Case for Visual Localization Extreme 3D motion, low lighting, cheap, dynamics v Current vslam capabilities

Real-time. 5 m/s. 1000 particles. Only a Kinect

Simple Input Map Convert 3D vslam output to Planar Map Representation Scales well: Low maintenance Supports loop-closures Sparse, small file size: 2MB for 9 floor MIT Stata Center Convert Points to Planes Large indoor planes don t often change Can simulate views not seen during SLAM

Other Approaches to Localization Convert to simulated LIDAR scan: Use with LIDAR MCL, limited to 2D with wheel odometry 3D Visual Feature Registration: Requires full SfM solution Many failure modes Potentially more accurate Complementary to our research H. Johannsson

Maintaining Particle Diversity Localization must degrade smoothly: Model is incomplete or has changed When sensor imagery is blurred or uninformative People moving, occluding the sensor Efficient belief propagation: 1000s of particles @ 10-20Hz

Particle Filter Overview Propagation Likelihood

Particle Propagation Visual Odometry State Vector: Propagate using FOVIS: Fast Odometry for Vision 1 0.08m/s mean velocity error When VO Fails: Add extra noise, drift Future: IMU integration [1] A Huang, A Bachrach, P Henry, M Krainin, D Maturana, D Fox, N Roy. Visual Odometry and Mapping for Autonomous Flight Using an RGB-D Camera, ISRR 2011 http://code.google.com/p/fovis/

Particle Propagation Failed VO VO failure modes VO success

Particle Filter Overview Propagation Likelihood

Likelihood Function Evaluation Likelihood for pixel i (evaluated on disparity):

Human Portable

Extensive Testing 1.2m/s, 0.48m 1.05m/s, 0.66m 0.47m/s, 0.3m Paper results out of date Significant optimization since 2D works with 10s particles

Fast, Cheap and In Control x4 realtime

Localization Summary Contribution: Efficient simulation of 1000s of model views Robust Localization using only RGB-D Extensive testing Including closed loop Open Source Code: FOVIS VO Library Integrated within Point Cloud Library: pcl::simulation Future Work: IMU Color [Mason et al, ICRA 2011] Bag of Words Visual Recovery Barometry Integration with Lifelong vslam

Simulating Range Images : Dense disparity information Efficient Image Parallelizing to large arrays of viewports Localization using only RGB-D Algorithm Development and Comparison: Kinect Fusion Segmentation, Object Recognition, next best viewpoint Stochastic Point Cloud Alignment An alternative: Blensor simulation add-on for Blender

Simulated Data as Input to KinFu Provide simulated input to PCL s Kinect Fusion Algorithm: Decouple live sensor input from surface reconstruction Useful to new PCL users Better debugging with known MODEL ground truth Can hypothesis performance limitations: Speed of motion, noise, range

Simulated Table Top Newcombe et al. ISMAR 2011

Simulated Table Top Camera flies around table in a halo 27,000 Triangles Constructed by Michael Gschwandtner

of Color and Depth

KinFu Mesh Reconstruction

Simulating Range Images : Dense disparity information Efficient Image Parallelizing to large arrays of viewports Localization using only RGB-D Algorithm Development and Comparison: Kinect Fusion Segmentation, Object Recognition, next best viewpoint Stochastic Point Cloud Alignment An alternative: Blensor simulation add-on for Blender

Simulating Range Images : Dense disparity information Efficient Image Parallelizing to large arrays of viewports Localization using only RGB-D Algorithm Development and Comparison: Kinect Fusion Segmentation, Object Recognition, next best viewpoint Stochastic Point Cloud Alignment An alternative: Blensor simulation add-on for Blender

Sensor simulation based on Blender Additions to internal Blender functions to provide efficient access to the raycasting functions of Blender Python modules that encapsulate the sensor specific behaviour Supported sensors Rotating LIDAR Velodyne HDL-64e Line LIDAR Ibeo Sick ToF cameras Swissranger PMD Kinect

Features Emphasis on algorithm verification and testdata creation no realtime capabilities Provides Per point color from material settings or from textures (UV mapped or procedural) Per point object ID for verification of clustering and segmentation algorithms Clean data (ground truth) Noisy data (including all supported physical effects) Motiondata of all or only a subset of objects in the scene Single scans or range of scans with possible animation of the scene

Features Physics simulation through recording of BGE (Game Engine) simulations Scan visualization inside BlenSor Integrated with the animation system to show scans only with corresponding frames Textures can influence the reflectivity of objects This simulates non-uniform reflectivity Scan export EVD (custom blensor file format) PCD (pointcloud library format) PGM (16 Bit depthmaps, currently only for Kinect) settings are stored with the blend file Increases reproducibility of research by simplifying the distribution of sample data (only the blend file needs to be distributed)

Advantages & Disadvantages Cons is very slow. Especially on sensors with many points A certain familiarity with Blender is required Pros Integration of the animation/modeling with the simulation. Easy to iteratively adjust the simulation: model >> simulate >> remodel - Easy to leverage Blender features for the simulations (physics simulation, mesh tools, procedural textures, ) Dynamic animations can be done with or without custom code Through the animation system of Blender (camera/object movements, armature animation, etc.) By changing the scene via python scripts and/or calling the simulation directly from python

Kinect Cast all rays from the projector onto the scene Cast rays from the camera to all intersections of the projector rays with the scene If a projector ray hits the scene at the same point as a camera ray it is a valid measurement Otherwise occlusion Calculate the disparity between the sensor and the projector and quantize it to 1/8th of a pixel Recalculate the coordinates based on the quantized disparity For every valid measurement a 9x9 window is checked If enough points are within a certain distance a weighted average of them is calculated as the final result for this point

Roadmap Multicore support to speed up simulations Improved Kinect simulation (more accurate depth interpolation) Generic rotating LIDAR (not only Velodyne) Mixed pixel support Refraction Partial reflection (Mirrors are already supported) Spin image export

Example Kinect Scan Model from dmi-3d.net Without advanced reflectivity settings

Example Kinect Scan Model from dmi-3d.net With advanced reflectivity settings Reflectivity depends on distance Windshield has procedural noise on its reflectivity

Summary BlenSor pcl::simulation Dependencies Blender None beyond Open GL Speed 1/5Hz 20s Hz Realism Higher Lower Support RGB-D & LIDAR Only RGB-D Simultaneous Multi-View Possible Yes Input Models Wide variety PLY, VTK, OBJ

Real-time. 5 m/s. 1000 particles. Only a Kinect