Autonomous Navigation for Flying Robots

Similar documents
Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects

Visual Tracking (1) Feature Point Tracking and Block Matching

Leow Wee Kheng CS4243 Computer Vision and Pattern Recognition. Motion Tracking. CS4243 Motion Tracking 1

Visual Tracking (1) Pixel-intensity-based methods

Feature Tracking and Optical Flow

Dense Image-based Motion Estimation Algorithms & Optical Flow

EE795: Computer Vision and Intelligent Systems

Augmented Reality VU. Computer Vision 3D Registration (2) Prof. Vincent Lepetit

Feature Tracking and Optical Flow

Computational Optical Imaging - Optique Numerique. -- Single and Multiple View Geometry, Stereo matching --

Optical flow and tracking

Outline 7/2/201011/6/

CS201: Computer Vision Introduction to Tracking

Tracking in image sequences

Image processing and features

Peripheral drift illusion

COMPUTER VISION > OPTICAL FLOW UTRECHT UNIVERSITY RONALD POPPE

Face Tracking : An implementation of the Kanade-Lucas-Tomasi Tracking algorithm

SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014

Tracking Computer Vision Spring 2018, Lecture 24

Computer Vision Lecture 20

Computer Vision Lecture 20

OPPA European Social Fund Prague & EU: We invest in your future.

SE 263 R. Venkatesh Babu. Object Tracking. R. Venkatesh Babu

Feature Detection. Raul Queiroz Feitosa. 3/30/2017 Feature Detection 1

CS 4495 Computer Vision Motion and Optic Flow

Scale Invariant Feature Transform

Visual Navigation for Flying Robots. Structure From Motion

Computer Vision for HCI. Topics of This Lecture

CS4670: Computer Vision

Matching. Compare region of image to region of image. Today, simplest kind of matching. Intensities similar.

EE795: Computer Vision and Intelligent Systems

Visual Tracking. Image Processing Laboratory Dipartimento di Matematica e Informatica Università degli studi di Catania.

Prof. Feng Liu. Spring /26/2017

EE795: Computer Vision and Intelligent Systems

Scale Invariant Feature Transform

ECE Digital Image Processing and Introduction to Computer Vision

Kanade Lucas Tomasi Tracking (KLT tracker)

Autonomous Navigation for Flying Robots

Dense Tracking and Mapping for Autonomous Quadrocopters. Jürgen Sturm

Ninio, J. and Stevens, K. A. (2000) Variations on the Hermann grid: an extinction illusion. Perception, 29,

BSB663 Image Processing Pinar Duygulu. Slides are adapted from Selim Aksoy

Application questions. Theoretical questions

CS6670: Computer Vision

Visual motion. Many slides adapted from S. Seitz, R. Szeliski, M. Pollefeys

CS5670: Computer Vision

Multi-stable Perception. Necker Cube

Direct Methods in Visual Odometry

Autonomous Navigation for Flying Robots

ME/CS 132: Introduction to Vision-based Robot Navigation! Low-level Image Processing" Larry Matthies"

Motion and Optical Flow. Slides from Ce Liu, Steve Seitz, Larry Zitnick, Ali Farhadi

CS 565 Computer Vision. Nazar Khan PUCIT Lectures 15 and 16: Optic Flow

3D Photography. Marc Pollefeys, Torsten Sattler. Spring 2015

Capturing, Modeling, Rendering 3D Structures

Local Features: Detection, Description & Matching

Large-Scale 3D Point Cloud Processing Tutorial 2013

Eppur si muove ( And yet it moves )

Comparison between Motion Analysis and Stereo

CS664 Lecture #18: Motion

Features Points. Andrea Torsello DAIS Università Ca Foscari via Torino 155, Mestre (VE)

Wikipedia - Mysid

Lecture 16: Computer Vision

Lecture 16: Computer Vision

3D Vision. Viktor Larsson. Spring 2019

Motion Estimation and Optical Flow Tracking

Robert Collins CSE598G. Intro to Template Matching and the Lucas-Kanade Method

Displacement estimation

ROBUST OBJECT TRACKING BY SIMULTANEOUS GENERATION OF AN OBJECT MODEL

Automatic Image Alignment (direct) with a lot of slides stolen from Steve Seitz and Rick Szeliski

Visual Tracking. Antonino Furnari. Image Processing Lab Dipartimento di Matematica e Informatica Università degli Studi di Catania

The SIFT (Scale Invariant Feature

Deep Learning: Image Registration. Steven Chen and Ty Nguyen

Local Feature Detectors

Computational Optical Imaging - Optique Numerique. -- Multiple View Geometry and Stereo --

Computer Vision II Lecture 4

Harder case. Image matching. Even harder case. Harder still? by Diva Sian. by swashford

Fundamental matrix. Let p be a point in left image, p in right image. Epipolar relation. Epipolar mapping described by a 3x3 matrix F

CS 378: Autonomous Intelligent Robotics. Instructor: Jivko Sinapov

Image matching. Announcements. Harder case. Even harder case. Project 1 Out today Help session at the end of class. by Diva Sian.

Local features: detection and description. Local invariant features

Harder case. Image matching. Even harder case. Harder still? by Diva Sian. by swashford

Edge and corner detection

Kanade Lucas Tomasi Tracking (KLT tracker)

Building a Panorama. Matching features. Matching with Features. How do we build a panorama? Computational Photography, 6.882

1-2 Feature-Based Image Mosaicing

ViSP tracking methods overview

Vision-based Mobile Robot Localization and Mapping using Scale-Invariant Features

EE795: Computer Vision and Intelligent Systems

Feature Based Registration - Image Alignment

Feature Detection and Matching

Computer Vision

Nonlinear State Estimation for Robotics and Computer Vision Applications: An Overview

CEE598 - Visual Sensing for Civil Infrastructure Eng. & Mgmt.

Feature Detectors and Descriptors: Corners, Lines, etc.

Computer Vision Lecture 20

Using temporal seeding to constrain the disparity search range in stereo matching

Automatic Image Alignment (feature-based)

Uncertainty estimation for KLT tracking

CS 556: Computer Vision. Lecture 3

Segmentation and Tracking of Partial Planar Templates

Transcription:

Computer Vision Group Prof. Daniel Cremers Autonomous Navigation for Flying Robots Lecture 7.1: 2D Motion Estimation in Images Jürgen Sturm Technische Universität München

3D to 2D Perspective Projections Richard Szeliski, Computer Vision: Algorithms and Applications http://szeliski.org/book/ Jürgen Sturm Autonomous Navigation for Flying Robots 2

3D to 2D Perspective Projections Richard Szeliski, Computer Vision: Algorithms and Applications http://szeliski.org/book/ Jürgen Sturm Autonomous Navigation for Flying Robots 3

Images We can think of an image as a function gives the intensity at position Realistically, the image function is only defined on a rectangle and has finite range Jürgen Sturm Autonomous Navigation for Flying Robots 4

Digital Images Image function is sampled discrete pixel locations Image can be represented as a matrix 111 115 113 111 112 111 112 111 135 138 137 139 145 146 149 147 163 168 188 196 206 202 206 207 180 184 206 219 202 200 195 193 189 193 214 216 104 79 83 77 191 201 217 220 103 59 60 68 195 205 216 222 113 68 69 83 199 203 223 228 108 68 71 77 Jürgen Sturm Autonomous Navigation for Flying Robots 5

Problem Statement Given: two camera images Goal: estimate the camera motion For the moment, let s assume that the camera only moves in the xy-plane, i.e., Extension to 3D follows Jürgen Sturm Autonomous Navigation for Flying Robots 6

General Idea 1. Define an error metric that defines how well the two images match given a motion vector 2. Find the motion vector with the lowest error Jürgen Sturm Autonomous Navigation for Flying Robots 7

Error Metrics for Image Comparison Sum of Squared Differences (SSD) with displacement and residual errors Jürgen Sturm Autonomous Navigation for Flying Robots 8

Windowed SSD Images (and image patches) have finite size Standard SSD has a bias towards smaller overlaps (less error terms) Solution: divide by the overlap area Root mean square error Jürgen Sturm Autonomous Navigation for Flying Robots 9

Cross Correlation Maximize the product (instead of minimizing the differences) Normalized cross correlation (between -1..1) Less sensitive to illumination changes Jürgen Sturm Autonomous Navigation for Flying Robots 10

General Idea 1. Define an error metric that defines how well the two images match given a motion vector 2. Find the motion vector with the lowest error Jürgen Sturm Autonomous Navigation for Flying Robots 11

Finding the minimum Full search (e.g., ±16 pixels) Gradient descent Hierarchical motion estimation Jürgen Sturm Autonomous Navigation for Flying Robots 12

Motion Estimation Perform Gauss-Newton minimization on the SSD energy function (Lucas and Kanade, 1981) Gauss-Newton minimization Linearize residuals w.r.t. to camera motion Yields quadratic cost function Build normal equations and solve linear system Jürgen Sturm Autonomous Navigation for Flying Robots 13

Motion Estimation Error function Linearize in u Jürgen Sturm Autonomous Navigation for Flying Robots 14

Motion Estimation Taylor expansion of energy function with Jürgen Sturm Autonomous Navigation for Flying Robots 15

Least Squares Minimization Goal: Minimize Solution: Compute derivative and set to zero with and Jürgen Sturm Autonomous Navigation for Flying Robots 16

Least Squares Minimization Step 1: Compute A,b from image gradients using with and Jürgen Sturm Autonomous Navigation for Flying Robots 17

Least Squares Minimization Step 2: Solve linear system Note: All of the required computations are super-fast! In step 1: image gradients + summation to build A,b In step 2: solve a 2x2 linear equation Jürgen Sturm Autonomous Navigation for Flying Robots 18

Hierarchical Motion Estimation Construct image pyramid by downsampling Estimate motion on coarse level Use as initialization for next finer level Jürgen Sturm Autonomous Navigation for Flying Robots 19

Covariance of the Estimated Motion Assuming (small) Gaussian noise in the images with results in uncertainty in the motion estimate with covariance (e.g., useful for Kalman filter) Jürgen Sturm Autonomous Navigation for Flying Robots 20

Optical Computer Mouse (since 1999) E.g., ADNS3080 from Agilent Technologies, 2005 6400 fps 30x30 pixels 4 USD http://www.alldatasheet.com/datasheet-pdf/pdf/203607/avago/adns-3080.html Jürgen Sturm Autonomous Navigation for Flying Robots 21

Image Patches Sometimes we are interested of the motion of small image patches Problem: some patches are easier to track than others Which patches are easy/difficult to track? How can we recognize good patches? Jürgen Sturm Autonomous Navigation for Flying Robots 22

Image Patches Sometimes we are interested of the motion of a small image patches Problem: some patches are easier to track than others Jürgen Sturm Autonomous Navigation for Flying Robots 23

Example Let s look at the shape of the energy Richard Szeliski, Computer Vision: Algorithms and Applications http://szeliski.org/book/ Jürgen Sturm Autonomous Navigation for Flying Robots 24

Corner Detection Idea: Inspect eigenvalues of matrix A (Hessian) small no point of interest large, small edge large corner Jürgen Sturm Autonomous Navigation for Flying Robots 25

Corner Detection Harris detector (does not need eigenvalues) Shi-Tomasi (or Kanade-Lucas) Jürgen Sturm Autonomous Navigation for Flying Robots 26

Other Detectors Förstner detector: localize corner with sub-pixel accuracy FAST corners: learn decision tree, minimize number of tests super fast Difference of Gaussians (DoG): scale-invariant detector used for SIFT Jürgen Sturm Autonomous Navigation for Flying Robots 27

Kanade-Lucas-Tomasi (KLT) Tracker Algorithm 1. Find (Shi-Tomasi) corners in first frame and initialize tracks 2. Track from frame to frame 3. Delete track if error exceeds threshold 4. Initialize additional tracks when necessary 5. Repeat step 2-4 Jürgen Sturm Autonomous Navigation for Flying Robots 28

KLT Tracker KLT tracker is highly efficient (real-time on CPU) but provides only sparse motion vectors Dense optical flow methods require GPU Jürgen Sturm Autonomous Navigation for Flying Robots 29

Demo of a KLT Tracker Visual Servoing Platform (ViSP), 2010. http://www.irisa.fr/lagadic/visp/visp.html https://www.youtube.com/watch?v=a0b2nbj4fam Jürgen Sturm Autonomous Navigation for Flying Robots 30

Lessons Learned 2D motion estimation Cost functions Optical computer mouse Corner detectors KLT Tracker Next: Visual odometry Jürgen Sturm Autonomous Navigation for Flying Robots 31