SlideShare a Scribd company logo
Computer vision for roboticsVictor EruhimovCTO, itseezhttp://www.itseez.com
Why do we need computer vision?Smart video surveillanceBiometricsAutomatic Driver Assistance SystemsMachine vision (Visual inspection)Image retrieval (e.g. Google Goggles)Movie productionRobotics
Vision is hard! Even for humans…
Texai parking
AgendaCamera modelStereo visionStereo vision on GPUObject detection methodsSliding windowLocal descriptors ApplicationsTextured object detectionOutlet detectionVisual odometry
Pinhole camera model
Distortion model
Reprojection error
Homography
Perspective-n-Points problemP4PRANSAC (RANdomSAmple Consensus)
Stereo: epipolar geometryFundamental matrix constraint
Stereo RectificationAlgorithm steps are shown at right:Goal:Each row of the image contains the same world points“Epipolar constraint”Result: Epipolar alignment of features:12All: Gary Bradski and Adrian Kaehler: Learning OpenCV
Stereo correspondenceBlock matchingDynamic programmingInter-scanline dependenciesSegmentationBelief propagation
Stereo correspondence block matchingFor each block in left image:Search for the   corresponding block in the right image such that SSD or SAD between pixel intensities is minimum
Pre- and post processingLow texture filteringSSD/SAD minimum ambiguity removalUsing gradients instead of intensitiesSpeckle filtering
Stereo Matching
Parallel implementation of block matchingThe outer cycle iterates through disparity valuesWe compute SSD and compare it with the current minimum for each pixel in a tileDifferent tiles reuse the results of each other17
Parallelization scheme18
Optimization conceptsNot using texture – saving registers1 thread per 8 pixels processing – using cacheReducing the amount of arithmetic operationsNon-parallelizable functions (speckle filtering) are done on CPU19
Performance summaryCPU (i5 750 2.66GHz), GPU (Fermi card 448 cores)Block matching on CPU+2xGPU is 10 times faster than CPU implementation with SSE optimization, enabling real-time processing of HD images!
Full-HD stereo in realtimehttp://www.youtube.com/watch?v=ThE7sRAtaWU
Applications of stereo visionMachine visionAutomatic Driver AssistanceMovie productionRoboticsObject recognitionVisual odometry / SLAM
Object detection
Sliding window approach
Cascade classifierimagefacefacefaceStage 1Stage 2Stage 3Not faceNot faceNot faceReal-time in year 2000!
Face detection
Object detection with local descriptorsDetect keypointsCalculate local descriptors for each pointMatch descriptors for different imagesValidate matches with a geometry model
FAST feature detector
Keypoints example
SIFT descriptorDavid Lowe, 2004
SURF descriptor4x4 square regions inside a square window 20*s4 values per square region
More descriptorsOne way descriptorC-descriptor, FERNS, BRIEFHoGDaisy
Matching descriptors example
Ways to improve matchingIncrease the inliers to outliers ratioDistance thresholdDistance ratio threshold (second to first NN distance)Backward-forward matchingWindowed matchingIncrease the amount of inliersOne to many matching
Random Sample ConsensusDo n iterations until #inliers > inlierThresholdDraw k matches randomlyFind the transformationCalculate inliers countRemember the best solutionThe number of iterations required ~
Geometry validation
Scaling upFLANN (Fast Library for Approximate Nearest Neighbors)In OpenCV thanks to Marius MujaBag of WordsIn OpenCV thanks to Ken ChatfieldVocabulary treesIs going to be in OpenCV thanks to Patrick Mihelich
ProjectsTextured object detectionPR2 robot automatic pluginVisual odometry / SLAM
Textured object detection
Object detection exampleIryna Gordon and David G. Lowe, "What and where: 3D object recognition with accurate pose," in Toward Category-Level Object Recognition, eds. J. Ponce, M. Hebert, C. Schmid, and A. Zisserman, (Springer-Verlag, 2006), pp. 67-82. Manuel Martinez Torres, Alvaro ColletRomea, and Siddhartha Srinivasa, MOPED: A Scalable and Low Latency Object Recognition and Pose Estimation System, Proceedings of ICRA 2010, May, 2010.
Keypoint detectionWe are looking for small dark regionsThis operation takes only ~10ms on 640x480 imageThe rest of the algorithm works only with keypoint regionsItseez Ltd.  http://itseez.com
Classification with one way descriptorIntroduced by Hinterstoisser et al (Technical U of Munich, EcolePolytechnique) at CVPR 2009A test patch is compared to samples of affine-transformed training patches with Euclidean distanceThe closest patch together with a pose guess are reconstructedItseez Ltd.  http://itseez.com
Keypoint classification examplesOne way descriptor does the most of the outlet detection job for us. Few holes are misclassifiedGround holePower holeNon-hole keypoint from outlet imageBackground keypointItseez Ltd.  http://itseez.com
Object detectionObject pose is reconstructed by geometry validation (using geomertic hashing)Itseez Ltd.  http://itseez.com
Outlet detection: challenging casesShadows
Severe lighting conditions
Partial occlusionsItseez Ltd.  http://itseez.com
PR2 plugin (outlet and plug detection)http://www.youtube.com/watch?v=GWcepdggXsU
Visual odometry

More Related Content

What's hot (20)

PPTX
HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCE
Aswinraj Manickam
 
PPTX
A Comparison of People Counting Techniques via Video Scene Analysis
Poo Kuan Hoong
 
PDF
Image recognition
Nikhil Singh
 
PPTX
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCES
Praveen Pallav
 
PPT
Presentation Object Recognition And Tracking Project
Prathamesh Joshi
 
PPT
CORNAR: Looking Around Corners using Trillion FPS Imaging
Camera Culture Group, MIT Media Lab
 
ODP
An Introduction to Computer Vision
guestd1b1b5
 
PPTX
ISM2014
nlab_utokyo
 
PDF
Александр Заричковый "Faster than real-time face detection"
Fwdays
 
PPT
Raskar Keynote at Stereoscopic Display Jan 2011
Camera Culture Group, MIT Media Lab
 
PPTX
Image recognition
Harika Nalla
 
PPTX
Moving object detection in video surveillance
Ashfaqul Haque John
 
PPTX
Interactive Wall (Multi Touch Interactive Surface)
alaxandre
 
PDF
Presentation of Visual Tracking
Yu-Sheng (Yosen) Chen
 
PDF
Real Time Detection of Moving Object Based on Fpga
iosrjce
 
PPTX
Learning the skill of archery by a humanoid robot iCub
Petar Kormushev
 
PPTX
People counting in low density video sequences2
Ahmed Tememe
 
PDF
AR/SLAM for end-users
Rakuten Group, Inc.
 
PDF
Motion detection system
WritingHubUK
 
HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCE
Aswinraj Manickam
 
A Comparison of People Counting Techniques via Video Scene Analysis
Poo Kuan Hoong
 
Image recognition
Nikhil Singh
 
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCES
Praveen Pallav
 
Presentation Object Recognition And Tracking Project
Prathamesh Joshi
 
CORNAR: Looking Around Corners using Trillion FPS Imaging
Camera Culture Group, MIT Media Lab
 
An Introduction to Computer Vision
guestd1b1b5
 
ISM2014
nlab_utokyo
 
Александр Заричковый "Faster than real-time face detection"
Fwdays
 
Raskar Keynote at Stereoscopic Display Jan 2011
Camera Culture Group, MIT Media Lab
 
Image recognition
Harika Nalla
 
Moving object detection in video surveillance
Ashfaqul Haque John
 
Interactive Wall (Multi Touch Interactive Surface)
alaxandre
 
Presentation of Visual Tracking
Yu-Sheng (Yosen) Chen
 
Real Time Detection of Moving Object Based on Fpga
iosrjce
 
Learning the skill of archery by a humanoid robot iCub
Petar Kormushev
 
People counting in low density video sequences2
Ahmed Tememe
 
AR/SLAM for end-users
Rakuten Group, Inc.
 
Motion detection system
WritingHubUK
 

Similar to 20110220 computer vision_eruhimov_lecture01 (20)

PPT
10833762.ppt
shohel rana
 
PDF
=iros16tutorial_2.pdf
usmanarif88
 
PDF
6 - Conception of an Autonomous UAV using Stereo Vision (presented in an Indo...
Youness Lahdili
 
PDF
Lec01 introduction
BaliThorat1
 
PPTX
Computer Vision Crash Course
Jia-Bin Huang
 
PDF
An Assessment of Image Matching Algorithms in Depth Estimation
CSCJournals
 
PPTX
01Introduction.pptx - C280, Computer Vision
butest
 
PPT
Computer Vision Basics
Suren Kumar
 
PDF
Real-time 3D Object Pose Estimation and Tracking for Natural Landmark Based V...
c.choi
 
PPTX
Computer Vision Crash Course
台灣資料科學年會
 
PPTX
Computer vision old problems new solutions
Gopi Krishna Nuti
 
PPTX
IntroComputerVision23.pptx
AneesAbbasi14
 
PPTX
Computer vision introduction
Wael Badawy
 
PPTX
1_Intro2ssssssssssssssssssssssssssssss2.pptx
larturo
 
PDF
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Aritra Sarkar
 
PPT
Introduction
sagayaaurelia1
 
PPTX
Computer vision introduction - What is computer vision
SakinaSayyed4
 
PPTX
I have not done hard tests for this, but you should gain about
TiengTrungNhaTrang
 
PDF
Computer Vision
Kan-Han (John) Lu
 
10833762.ppt
shohel rana
 
=iros16tutorial_2.pdf
usmanarif88
 
6 - Conception of an Autonomous UAV using Stereo Vision (presented in an Indo...
Youness Lahdili
 
Lec01 introduction
BaliThorat1
 
Computer Vision Crash Course
Jia-Bin Huang
 
An Assessment of Image Matching Algorithms in Depth Estimation
CSCJournals
 
01Introduction.pptx - C280, Computer Vision
butest
 
Computer Vision Basics
Suren Kumar
 
Real-time 3D Object Pose Estimation and Tracking for Natural Landmark Based V...
c.choi
 
Computer Vision Crash Course
台灣資料科學年會
 
Computer vision old problems new solutions
Gopi Krishna Nuti
 
IntroComputerVision23.pptx
AneesAbbasi14
 
Computer vision introduction
Wael Badawy
 
1_Intro2ssssssssssssssssssssssssssssss2.pptx
larturo
 
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Aritra Sarkar
 
Introduction
sagayaaurelia1
 
Computer vision introduction - What is computer vision
SakinaSayyed4
 
I have not done hard tests for this, but you should gain about
TiengTrungNhaTrang
 
Computer Vision
Kan-Han (John) Lu
 
Ad

More from Computer Science Club (20)

PDF
20141223 kuznetsov distributed
Computer Science Club
 
PDF
Computer Vision
Computer Science Club
 
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
PDF
20140531 serebryany lecture02_find_scary_cpp_bugs
Computer Science Club
 
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
PDF
20140511 parallel programming_kalishenko_lecture12
Computer Science Club
 
PDF
20140427 parallel programming_zlobin_lecture11
Computer Science Club
 
PDF
20140420 parallel programming_kalishenko_lecture10
Computer Science Club
 
PDF
20140413 parallel programming_kalishenko_lecture09
Computer Science Club
 
PDF
20140329 graph drawing_dainiak_lecture02
Computer Science Club
 
PDF
20140329 graph drawing_dainiak_lecture01
Computer Science Club
 
PDF
20140310 parallel programming_kalishenko_lecture03-04
Computer Science Club
 
PDF
20140223-SuffixTrees-lecture01-03
Computer Science Club
 
PDF
20140216 parallel programming_kalishenko_lecture01
Computer Science Club
 
PDF
20131106 h10 lecture6_matiyasevich
Computer Science Club
 
PDF
20131027 h10 lecture5_matiyasevich
Computer Science Club
 
PDF
20131027 h10 lecture5_matiyasevich
Computer Science Club
 
PDF
20131013 h10 lecture4_matiyasevich
Computer Science Club
 
PDF
20131006 h10 lecture3_matiyasevich
Computer Science Club
 
PDF
20131006 h10 lecture3_matiyasevich
Computer Science Club
 
20141223 kuznetsov distributed
Computer Science Club
 
Computer Vision
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20140511 parallel programming_kalishenko_lecture12
Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
Computer Science Club
 
20140223-SuffixTrees-lecture01-03
Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
Computer Science Club
 
20131106 h10 lecture6_matiyasevich
Computer Science Club
 
20131027 h10 lecture5_matiyasevich
Computer Science Club
 
20131027 h10 lecture5_matiyasevich
Computer Science Club
 
20131013 h10 lecture4_matiyasevich
Computer Science Club
 
20131006 h10 lecture3_matiyasevich
Computer Science Club
 
20131006 h10 lecture3_matiyasevich
Computer Science Club
 
Ad

20110220 computer vision_eruhimov_lecture01