SlideShare a Scribd company logo
Preemptive RANSAC for Live
Structure and Motion Estimation
                    by David Nister,
 Machine vision and applications(J) in 2005, 261citations.




                                                2nd/June/2011
                                              presented Inkyu.Sa
Contents
What is RANSAC?
Preemptive RANSAC
Results
My thought
What is RANSAC ?
 Random sample consensus.
 Observation                Estimate model




Source from wikipedia
                                             Outliers
LO-RANSAC
Preemptive RANSAC                Inliers
DEGENSAC
PROSAC
MLESAC, NAPSAC etc.
What is RANSAC ?
           Random sample consensus.
Observation             Estimate model




Source from wikipedia


                                   Outliers
                         Inliers

                                              Source from AFMR, Machine Learning

                                              Reinforcement learning
                                              Use rewards and interaction with the environment to learn
Why do we use RANSAC ?

It is possible estimate robust parameters of model.
There are many noise in out real environments.


 What are disadvantages of RANSAC?
It takes long time to calculate parameters without
boundary condition.
Therefore, threshold and max iteration are required.
How does RANSAC work?
We have this observation data set.
How does RANSAC work?
We have this observation data set.   Randomly choose any two points
                                         and create a hypothesis.
How does RANSAC work?
Randomly choose any two points
    and create a hypothesis.
How does RANSAC work?
Randomly choose any two points               Calculate distances between a
    and create a hypothesis.                hypothesis and all observations.




                                          This hypothesis has a huge distance value.
                                          This process is called “Scoring”.
                                                                 “
                  “ Because wewhich ahas theknowledgeintegration
                    hypothesis
                               have prior
                                             minimum
                                                      that the

                     value of distance could be our model.
How does RANSAC work?
 Calculate distances between a       Again randomly choose two points and
hypothesis and all observations.           create another hypothesis.




                                   This one has a smaller distance value than
                                   previous.
How does RANSAC work?
   Again randomly choose two points and        How many hypothesis can be created?
         create another hypothesis.




This one has a smaller distance value than
previous.                                     Number of lines = 100 C2 = 4,950
                                              Number of lines =999 C2 = 498,501
                                         Total calculation=498,501× 997 = 497,005,497
How does RANSAC work?
Set a threshold to prevent calculation
from all observation.




                                                              ld
                                                            ho
If a hypothesis meet our condition, this




                                                             s
                                                          re
hypothesis is going to be our best model.




                                                        Th
                  In addition set a maxim iterations or maxim time period.
How does RANSAC work?

What happens if we have this observation?
How does RANSAC work?

What happens if we have this observation?




                  Maybe we can’t get a right answer.

      This implies that we need a decent observation data set to get a right
       model unless RANSAC process takes more time and less accurate.
How does RANSAC work?
What happens if we have these observations?




          Inlier noise                          Near degeneracies

       Near degeneracies can be dealt with by sampling non-randomly.
How can we apply RANSAC
        to our applications?
RANSAC can be used refine essential matrix.
Example) A 3D point registration.
                                                             pi    R,T
Assume that we already create a hypothesis                          pi
using any methods such as 5 point, 8points
and svd algorithm and so on.


                   i=N
            e2 =         pi − Rpi − T   2            These two are our model.
                   i=1

pi = Current frame a 3D point in world coordinate.
pi = Previous frame a 3D world point in world coordinate.
Preemptive RANSAC
 Based on breadth-first preemption.
 Using time budget and threshold.




     Source from ICCV2005 tutorial.
Preemptive RANSAC
                         Based on breadth-first preemption.




Source from ICCV2005 tutorial.
Preemptive RANSAC
 Depth-first preemption.




 Source from ICCV2005 tutorial.
Preemptive RANSAC
 Breath-first preemption.




 Source from ICCV2005 tutorial.
Preemptive RANSAC
 Breath-first preemption.




 Source from ICCV2005 tutorial.
Preemptive RANSAC
         log-likelihood, L

Cauchy distribution to model the errors =   −ln(1 + u)
                                                                 2
                                     where ui = pi − Rpi − T
                                     Squared magnitude of a reprojection error


                                                   10
                  robust log-likelihood =   −ln         (1 + ui )
                                                  i=1
                                   N                             where
                                                              ρ = scoring function,
                    L(h) =              ρ(o, h)               o = observation index,
                                                              h = hypothesis index.
                                 o=1

           ρ function return a scalar value representing the log-likelihood given o,h
Preemptive RANSAC

  Algorithm
  1. Randomly permute the observations.
  2. Generate all the hypotheses indexed by h= 1,..., f(1) using 5 points algorithm.




     f (i) = preemption function indicates how many hypotheses
  are to be kept at ith stage.
Preemptive RANSAC

  Algorithm
  1. Randomly permute the observations.
  2. Generate all the hypotheses indexed by h= 1,..., f(1) using 5 points algorithm.
  3. Compute the scores. L1 (h) = ρ(1, h) for h=1,...,f(1). set i=2
Preemptive RANSAC
  Algorithm
  1. Randomly permute the observations.
  2. Generate all the hypotheses indexed by h= 1,..., f(1) using 5 points algorithm.
  3. Compute the scores. L1 (h) = ρ(1, h) for h=1,...,f(1). set i=2
  4. Reorder the hypotheses. The range h=1,...,f(i) contains the best f(i)
  5. If i>N of f(i)=1, quit with the best hypothesis. Otherwise, compute
     Li (h) = ρ(i, h) + Li−1 (h) for h=1,...,f(1). increase i and go to Step 4.
Preemptive RANSAC
      Sequences             Generate all the hypotheses




Scoring and find the best
hypotheses at each stage.
Preemptive RANSAC
Advantages of breath-first RANSAC
 The breath-first RANSAC can spend a lot of time on bad
 observation.



Only compare the previous hypothesis and it takes long time to get the
best one. (Depth-first RANSAC)

Disadvantages of breath-first RANSAC
can spend a lot of time on bad observation.

Author argues that depth-first RANSAC can also waste time on
bad hypothesis.
Preemptive RANSAC
 Disadvantages of breath-first RANSAC
 The breath-first RANSAC can spend a lot of time on bad
 observation.

The depth-first RANSAC can also waste time on bad hypothesis.
Preemptive RANSAC
 Disadvantages of breath-first RANSAC
 The breath-first RANSAC can spend a lot of time on bad
 observation.

The depth-first RANSAC can also waste time on bad hypothesis.

 Typically a hypothesis is consist of multiple observations.
 If this hypothesis contains outliers so that it is meaningless.



 The good observations are much larger than the good hypothesis in
 typical RANSAC settings.
Preemptive RANSAC
Experiments Results(Translation error)
My thoughts

Reasonable using the breath-first searching
It implemented on CVD library.
Issues
Dead depth pixel

About 25% of a kinect point clouds are dead depth pixel, that
has NaN(Not a Number) depth value.

320x240=76800, and valid number of point cloud = 57365

        2D image plane                        3D depth data
VO procedures
1. Obtain features using gpuSurf at t-1 and t
   Output: featureA(t-1), featureB(t)

2. CrossMatching Using L2
   Output: MatchedFeaturesList

3. Find depth for each matched feature (Nr=160~200)
   Output: KeypointA(t-1), KeypointB(t) in 3D world coordinate

4. Compute R,t using ICP (iteration 250, threshold..)

5. Find the current pose of camera by multiply homogeneous
transformation matrix.
                                                                    R i ti
               ξc = o ξt−3 t−3 ξt−2 t−2 ξt−1 t−1 ξt   where ξi =
                                                                   01X3 1

6. Draw x,y,z using
VO procedures
VO procedures
VO procedures
Time consumption Profiling.
1. Total time = 80~100ms

2. gpuSurf = 10 ~ 15ms

3. gpuMatching = 5~7ms

4. ICP 15~20ms

5. Visualization 50~60ms
VO Results
Configuration
VO Results
Ground truth
VO Results
SBC status
1. Ubuntu 10.10 64Bit installed,

2. ROS Diamondback installed
   PCL, Openni_kinect stack

3. CUDA Driver V3.2,
Plans
Cut down 54.28% size of original data.(rgb+point cloud).
(320x240 rgb+point cloud)=2,688,000Bytes => (320x240 rgb+point
cloud)=1,228,800Bytes.

Generate 3D features using surf and a kinect.

Visualization 3D matched features using PCL but has some bugs.

Using ICP on ROS(PointCloudLibrary) to get a transformation matrix.

Visualization camera pose using PCL.

Recording data with MikroKopter and SBC. (10th/June)

Put on the MikroKopter and testing.(13th/June)

Refine pose with RANSAC or EKF.... etc.
Plans
Cut down 54.28% size of original data.(rgb+point cloud).
(320x240 rgb+point cloud)=2,688,000Bytes => (320x240 rgb+point
cloud)=1,228,800Bytes.

Generate 3D features using surf and a kinect.

Visualization 3D matched features using PCL but has some bugs.

Using ICP on ROS(PointCloudLibrary) to get a transformation matrix.

Visualization camera pose using PCL.

Recording data with MikroKopter and SBC. (10th/June)

Put on the MikroKopter and testing.(13th/June)

Refine pose with RANSAC or EKF.... etc.
Thank you.

More Related Content

What's hot

Computer animation
Computer animationComputer animation
Computer animationshusrusha
 
Introductory Level of SLAM Seminar
Introductory Level of SLAM SeminarIntroductory Level of SLAM Seminar
Introductory Level of SLAM SeminarDong-Won Shin
 
LiDAR and its application in civil engineering
LiDAR  and its application in civil engineeringLiDAR  and its application in civil engineering
LiDAR and its application in civil engineeringchippi babu
 
Computer Vision - Image Filters
Computer Vision - Image FiltersComputer Vision - Image Filters
Computer Vision - Image FiltersYoss Cohen
 
Lec07 corner blob
Lec07 corner blobLec07 corner blob
Lec07 corner blobBaliThorat1
 
Raster animation
Raster animationRaster animation
Raster animationabhijit754
 
camera-based Lane detection by deep learning
camera-based Lane detection by deep learningcamera-based Lane detection by deep learning
camera-based Lane detection by deep learningYu Huang
 
"Fundamentals of Monocular SLAM," a Presentation from Cadence
"Fundamentals of Monocular SLAM," a Presentation from Cadence"Fundamentals of Monocular SLAM," a Presentation from Cadence
"Fundamentals of Monocular SLAM," a Presentation from CadenceEdge AI and Vision Alliance
 
Graphics pipeline and rendering
Graphics pipeline and renderingGraphics pipeline and rendering
Graphics pipeline and renderingiain bruce
 
Computer animation Computer Graphics
Computer animation Computer Graphics Computer animation Computer Graphics
Computer animation Computer Graphics University of Potsdam
 
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis taeseon ryu
 
PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...
PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...
PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...Hyeongmin Lee
 
Applications of cg
Applications of cgApplications of cg
Applications of cgAnkit Garg
 
3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer Graphics3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer GraphicsFaraz Akhtar
 

What's hot (20)

Computer animation
Computer animationComputer animation
Computer animation
 
=SLAM ppt.pdf
=SLAM ppt.pdf=SLAM ppt.pdf
=SLAM ppt.pdf
 
Animation
AnimationAnimation
Animation
 
raycasting. ppt
raycasting. pptraycasting. ppt
raycasting. ppt
 
Introductory Level of SLAM Seminar
Introductory Level of SLAM SeminarIntroductory Level of SLAM Seminar
Introductory Level of SLAM Seminar
 
LiDAR and its application in civil engineering
LiDAR  and its application in civil engineeringLiDAR  and its application in civil engineering
LiDAR and its application in civil engineering
 
Computer Vision - Image Filters
Computer Vision - Image FiltersComputer Vision - Image Filters
Computer Vision - Image Filters
 
Lec07 corner blob
Lec07 corner blobLec07 corner blob
Lec07 corner blob
 
Raster animation
Raster animationRaster animation
Raster animation
 
Image stitching
Image stitchingImage stitching
Image stitching
 
camera-based Lane detection by deep learning
camera-based Lane detection by deep learningcamera-based Lane detection by deep learning
camera-based Lane detection by deep learning
 
"Fundamentals of Monocular SLAM," a Presentation from Cadence
"Fundamentals of Monocular SLAM," a Presentation from Cadence"Fundamentals of Monocular SLAM," a Presentation from Cadence
"Fundamentals of Monocular SLAM," a Presentation from Cadence
 
Graphics pipeline and rendering
Graphics pipeline and renderingGraphics pipeline and rendering
Graphics pipeline and rendering
 
Computer animation Computer Graphics
Computer animation Computer Graphics Computer animation Computer Graphics
Computer animation Computer Graphics
 
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
 
PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...
PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...
PR-386: Light Field Networks: Neural Scene Representations with Single-Evalua...
 
Hog
HogHog
Hog
 
Applications of cg
Applications of cgApplications of cg
Applications of cg
 
Edge detection
Edge detectionEdge detection
Edge detection
 
3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer Graphics3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer Graphics
 

Viewers also liked

Feature Matching using SIFT algorithm
Feature Matching using SIFT algorithmFeature Matching using SIFT algorithm
Feature Matching using SIFT algorithmSajid Pareeth
 
SIFT Algorithm Introduction
SIFT Algorithm IntroductionSIFT Algorithm Introduction
SIFT Algorithm IntroductionTruong LD
 
Scale Invariant feature transform
Scale Invariant feature transformScale Invariant feature transform
Scale Invariant feature transformShanker Naik
 
Structure and Motion - 3D Reconstruction of Cameras and Structure
Structure and Motion - 3D Reconstruction of Cameras and StructureStructure and Motion - 3D Reconstruction of Cameras and Structure
Structure and Motion - 3D Reconstruction of Cameras and StructureGiovanni Murru
 

Viewers also liked (6)

Surf and ransac
Surf and ransacSurf and ransac
Surf and ransac
 
Feature Matching using SIFT algorithm
Feature Matching using SIFT algorithmFeature Matching using SIFT algorithm
Feature Matching using SIFT algorithm
 
SIFT Algorithm Introduction
SIFT Algorithm IntroductionSIFT Algorithm Introduction
SIFT Algorithm Introduction
 
Scale Invariant feature transform
Scale Invariant feature transformScale Invariant feature transform
Scale Invariant feature transform
 
Structure and Motion - 3D Reconstruction of Cameras and Structure
Structure and Motion - 3D Reconstruction of Cameras and StructureStructure and Motion - 3D Reconstruction of Cameras and Structure
Structure and Motion - 3D Reconstruction of Cameras and Structure
 
FEATURE EXTRACTION USING SURF ALGORITHM FOR OBJECT RECOGNITION
FEATURE EXTRACTION USING SURF ALGORITHM FOR OBJECT RECOGNITIONFEATURE EXTRACTION USING SURF ALGORITHM FOR OBJECT RECOGNITION
FEATURE EXTRACTION USING SURF ALGORITHM FOR OBJECT RECOGNITION
 

Similar to Preemptive RANSAC by David Nister.

Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Computational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in RComputational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in Rherbps10
 
20230213_ComputerVision_연구.pptx
20230213_ComputerVision_연구.pptx20230213_ComputerVision_연구.pptx
20230213_ComputerVision_연구.pptxssuser7807522
 
AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...
AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...
AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...cscpconf
 
Computer Vision: Feature matching with RANSAC Algorithm
Computer Vision: Feature matching with RANSAC AlgorithmComputer Vision: Feature matching with RANSAC Algorithm
Computer Vision: Feature matching with RANSAC Algorithmallyn joy calcaben
 
Model-counting Approaches For Nonlinear Numerical Constraints
Model-counting Approaches For Nonlinear Numerical ConstraintsModel-counting Approaches For Nonlinear Numerical Constraints
Model-counting Approaches For Nonlinear Numerical ConstraintsQuoc-Sang Phan
 
R Analytics in the Cloud
R Analytics in the CloudR Analytics in the Cloud
R Analytics in the CloudDataMine Lab
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacesbutest
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacesbutest
 
SVD and the Netflix Dataset
SVD and the Netflix DatasetSVD and the Netflix Dataset
SVD and the Netflix DatasetBen Mabey
 
Computed Prediction: So far, so good. What now?
Computed Prediction:  So far, so good. What now?Computed Prediction:  So far, so good. What now?
Computed Prediction: So far, so good. What now?Xavier Llorà
 
Single shot multiboxdetectors
Single shot multiboxdetectorsSingle shot multiboxdetectors
Single shot multiboxdetectors지현 백
 
Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...
Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...
Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...Yam Peleg
 
Binary Vector Reconstruction via Discreteness-Aware Approximate Message Passing
Binary Vector Reconstruction via Discreteness-Aware Approximate Message PassingBinary Vector Reconstruction via Discreteness-Aware Approximate Message Passing
Binary Vector Reconstruction via Discreteness-Aware Approximate Message PassingRyo Hayakawa
 
HRNET : Deep High-Resolution Representation Learning for Human Pose Estimation
HRNET : Deep High-Resolution Representation Learning for Human Pose EstimationHRNET : Deep High-Resolution Representation Learning for Human Pose Estimation
HRNET : Deep High-Resolution Representation Learning for Human Pose Estimationtaeseon ryu
 
Machine Learning
Machine LearningMachine Learning
Machine Learningbutest
 
mcp-bandits.pptx
mcp-bandits.pptxmcp-bandits.pptx
mcp-bandits.pptxBlackrider9
 

Similar to Preemptive RANSAC by David Nister. (20)

Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
Computational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in RComputational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in R
 
20230213_ComputerVision_연구.pptx
20230213_ComputerVision_연구.pptx20230213_ComputerVision_연구.pptx
20230213_ComputerVision_연구.pptx
 
Analysis
AnalysisAnalysis
Analysis
 
AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...
AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...
AN ALTERNATIVE APPROACH FOR SELECTION OF PSEUDO RANDOM NUMBERS FOR ONLINE EXA...
 
Computer Vision: Feature matching with RANSAC Algorithm
Computer Vision: Feature matching with RANSAC AlgorithmComputer Vision: Feature matching with RANSAC Algorithm
Computer Vision: Feature matching with RANSAC Algorithm
 
Model-counting Approaches For Nonlinear Numerical Constraints
Model-counting Approaches For Nonlinear Numerical ConstraintsModel-counting Approaches For Nonlinear Numerical Constraints
Model-counting Approaches For Nonlinear Numerical Constraints
 
NumPy/SciPy Statistics
NumPy/SciPy StatisticsNumPy/SciPy Statistics
NumPy/SciPy Statistics
 
R Analytics in the Cloud
R Analytics in the CloudR Analytics in the Cloud
R Analytics in the Cloud
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspaces
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspaces
 
SVD and the Netflix Dataset
SVD and the Netflix DatasetSVD and the Netflix Dataset
SVD and the Netflix Dataset
 
Computed Prediction: So far, so good. What now?
Computed Prediction:  So far, so good. What now?Computed Prediction:  So far, so good. What now?
Computed Prediction: So far, so good. What now?
 
Single shot multiboxdetectors
Single shot multiboxdetectorsSingle shot multiboxdetectors
Single shot multiboxdetectors
 
Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...
Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...
Learning Graphs Representations Using Recurrent Graph Convolution Networks Fo...
 
Binary Vector Reconstruction via Discreteness-Aware Approximate Message Passing
Binary Vector Reconstruction via Discreteness-Aware Approximate Message PassingBinary Vector Reconstruction via Discreteness-Aware Approximate Message Passing
Binary Vector Reconstruction via Discreteness-Aware Approximate Message Passing
 
02 analysis
02 analysis02 analysis
02 analysis
 
HRNET : Deep High-Resolution Representation Learning for Human Pose Estimation
HRNET : Deep High-Resolution Representation Learning for Human Pose EstimationHRNET : Deep High-Resolution Representation Learning for Human Pose Estimation
HRNET : Deep High-Resolution Representation Learning for Human Pose Estimation
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
mcp-bandits.pptx
mcp-bandits.pptxmcp-bandits.pptx
mcp-bandits.pptx
 

Recently uploaded

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfIntelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfAnthony Lucente
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXUXDXConf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Boni Yeamin
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 

Recently uploaded (20)

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfIntelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 

Preemptive RANSAC by David Nister.

  • 1. Preemptive RANSAC for Live Structure and Motion Estimation by David Nister, Machine vision and applications(J) in 2005, 261citations. 2nd/June/2011 presented Inkyu.Sa
  • 2. Contents What is RANSAC? Preemptive RANSAC Results My thought
  • 3. What is RANSAC ? Random sample consensus. Observation Estimate model Source from wikipedia Outliers LO-RANSAC Preemptive RANSAC Inliers DEGENSAC PROSAC MLESAC, NAPSAC etc.
  • 4. What is RANSAC ? Random sample consensus. Observation Estimate model Source from wikipedia Outliers Inliers Source from AFMR, Machine Learning Reinforcement learning Use rewards and interaction with the environment to learn
  • 5. Why do we use RANSAC ? It is possible estimate robust parameters of model. There are many noise in out real environments. What are disadvantages of RANSAC? It takes long time to calculate parameters without boundary condition. Therefore, threshold and max iteration are required.
  • 6. How does RANSAC work? We have this observation data set.
  • 7. How does RANSAC work? We have this observation data set. Randomly choose any two points and create a hypothesis.
  • 8. How does RANSAC work? Randomly choose any two points and create a hypothesis.
  • 9. How does RANSAC work? Randomly choose any two points Calculate distances between a and create a hypothesis. hypothesis and all observations. This hypothesis has a huge distance value. This process is called “Scoring”. “ “ Because wewhich ahas theknowledgeintegration hypothesis have prior minimum that the value of distance could be our model.
  • 10. How does RANSAC work? Calculate distances between a Again randomly choose two points and hypothesis and all observations. create another hypothesis. This one has a smaller distance value than previous.
  • 11. How does RANSAC work? Again randomly choose two points and How many hypothesis can be created? create another hypothesis. This one has a smaller distance value than previous. Number of lines = 100 C2 = 4,950 Number of lines =999 C2 = 498,501 Total calculation=498,501× 997 = 497,005,497
  • 12. How does RANSAC work? Set a threshold to prevent calculation from all observation. ld ho If a hypothesis meet our condition, this s re hypothesis is going to be our best model. Th In addition set a maxim iterations or maxim time period.
  • 13. How does RANSAC work? What happens if we have this observation?
  • 14. How does RANSAC work? What happens if we have this observation? Maybe we can’t get a right answer. This implies that we need a decent observation data set to get a right model unless RANSAC process takes more time and less accurate.
  • 15. How does RANSAC work? What happens if we have these observations? Inlier noise Near degeneracies Near degeneracies can be dealt with by sampling non-randomly.
  • 16. How can we apply RANSAC to our applications? RANSAC can be used refine essential matrix. Example) A 3D point registration. pi R,T Assume that we already create a hypothesis pi using any methods such as 5 point, 8points and svd algorithm and so on. i=N e2 = pi − Rpi − T 2 These two are our model. i=1 pi = Current frame a 3D point in world coordinate. pi = Previous frame a 3D world point in world coordinate.
  • 17. Preemptive RANSAC Based on breadth-first preemption. Using time budget and threshold. Source from ICCV2005 tutorial.
  • 18. Preemptive RANSAC Based on breadth-first preemption. Source from ICCV2005 tutorial.
  • 19. Preemptive RANSAC Depth-first preemption. Source from ICCV2005 tutorial.
  • 20. Preemptive RANSAC Breath-first preemption. Source from ICCV2005 tutorial.
  • 21. Preemptive RANSAC Breath-first preemption. Source from ICCV2005 tutorial.
  • 22. Preemptive RANSAC log-likelihood, L Cauchy distribution to model the errors = −ln(1 + u) 2 where ui = pi − Rpi − T Squared magnitude of a reprojection error 10 robust log-likelihood = −ln (1 + ui ) i=1 N where ρ = scoring function, L(h) = ρ(o, h) o = observation index, h = hypothesis index. o=1 ρ function return a scalar value representing the log-likelihood given o,h
  • 23. Preemptive RANSAC Algorithm 1. Randomly permute the observations. 2. Generate all the hypotheses indexed by h= 1,..., f(1) using 5 points algorithm. f (i) = preemption function indicates how many hypotheses are to be kept at ith stage.
  • 24. Preemptive RANSAC Algorithm 1. Randomly permute the observations. 2. Generate all the hypotheses indexed by h= 1,..., f(1) using 5 points algorithm. 3. Compute the scores. L1 (h) = ρ(1, h) for h=1,...,f(1). set i=2
  • 25. Preemptive RANSAC Algorithm 1. Randomly permute the observations. 2. Generate all the hypotheses indexed by h= 1,..., f(1) using 5 points algorithm. 3. Compute the scores. L1 (h) = ρ(1, h) for h=1,...,f(1). set i=2 4. Reorder the hypotheses. The range h=1,...,f(i) contains the best f(i) 5. If i>N of f(i)=1, quit with the best hypothesis. Otherwise, compute Li (h) = ρ(i, h) + Li−1 (h) for h=1,...,f(1). increase i and go to Step 4.
  • 26. Preemptive RANSAC Sequences Generate all the hypotheses Scoring and find the best hypotheses at each stage.
  • 27. Preemptive RANSAC Advantages of breath-first RANSAC The breath-first RANSAC can spend a lot of time on bad observation. Only compare the previous hypothesis and it takes long time to get the best one. (Depth-first RANSAC) Disadvantages of breath-first RANSAC can spend a lot of time on bad observation. Author argues that depth-first RANSAC can also waste time on bad hypothesis.
  • 28. Preemptive RANSAC Disadvantages of breath-first RANSAC The breath-first RANSAC can spend a lot of time on bad observation. The depth-first RANSAC can also waste time on bad hypothesis.
  • 29. Preemptive RANSAC Disadvantages of breath-first RANSAC The breath-first RANSAC can spend a lot of time on bad observation. The depth-first RANSAC can also waste time on bad hypothesis. Typically a hypothesis is consist of multiple observations. If this hypothesis contains outliers so that it is meaningless. The good observations are much larger than the good hypothesis in typical RANSAC settings.
  • 31. My thoughts Reasonable using the breath-first searching It implemented on CVD library.
  • 32. Issues Dead depth pixel About 25% of a kinect point clouds are dead depth pixel, that has NaN(Not a Number) depth value. 320x240=76800, and valid number of point cloud = 57365 2D image plane 3D depth data
  • 33. VO procedures 1. Obtain features using gpuSurf at t-1 and t Output: featureA(t-1), featureB(t) 2. CrossMatching Using L2 Output: MatchedFeaturesList 3. Find depth for each matched feature (Nr=160~200) Output: KeypointA(t-1), KeypointB(t) in 3D world coordinate 4. Compute R,t using ICP (iteration 250, threshold..) 5. Find the current pose of camera by multiply homogeneous transformation matrix. R i ti ξc = o ξt−3 t−3 ξt−2 t−2 ξt−1 t−1 ξt where ξi = 01X3 1 6. Draw x,y,z using
  • 36. VO procedures Time consumption Profiling. 1. Total time = 80~100ms 2. gpuSurf = 10 ~ 15ms 3. gpuMatching = 5~7ms 4. ICP 15~20ms 5. Visualization 50~60ms
  • 40. SBC status 1. Ubuntu 10.10 64Bit installed, 2. ROS Diamondback installed PCL, Openni_kinect stack 3. CUDA Driver V3.2,
  • 41. Plans Cut down 54.28% size of original data.(rgb+point cloud). (320x240 rgb+point cloud)=2,688,000Bytes => (320x240 rgb+point cloud)=1,228,800Bytes. Generate 3D features using surf and a kinect. Visualization 3D matched features using PCL but has some bugs. Using ICP on ROS(PointCloudLibrary) to get a transformation matrix. Visualization camera pose using PCL. Recording data with MikroKopter and SBC. (10th/June) Put on the MikroKopter and testing.(13th/June) Refine pose with RANSAC or EKF.... etc.
  • 42. Plans Cut down 54.28% size of original data.(rgb+point cloud). (320x240 rgb+point cloud)=2,688,000Bytes => (320x240 rgb+point cloud)=1,228,800Bytes. Generate 3D features using surf and a kinect. Visualization 3D matched features using PCL but has some bugs. Using ICP on ROS(PointCloudLibrary) to get a transformation matrix. Visualization camera pose using PCL. Recording data with MikroKopter and SBC. (10th/June) Put on the MikroKopter and testing.(13th/June) Refine pose with RANSAC or EKF.... etc.

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n