SlideShare une entreprise Scribd logo
1  sur  49
Computer vision for robotics Victor Eruhimov CTO, itseez http://www.itseez.com
Why do we need computer vision? Smart video surveillance Biometrics Automatic Driver Assistance Systems Machine vision (Visual inspection) Image retrieval (e.g. Google Goggles) Movie production Robotics
Vision is hard! Even for humans…
Texai parking
Agenda Camera model Stereo vision Stereo vision on GPU Object detection methods Sliding window Local descriptors  Applications Textured object detection Outlet detection Visual odometry
Pinhole camera model
Distortion model
Reprojection error
Homography
Perspective-n-Points problem P4P RANSAC (RANdomSAmple Consensus)
Stereo: epipolar geometry Fundamental matrix constraint
Stereo Rectification Algorithm steps are shown at right: Goal: Each row of the image contains the same world points “Epipolar constraint” Result: Epipolar alignment of features: 12 All: Gary Bradski and Adrian Kaehler: Learning OpenCV
Stereo correspondence Block matching Dynamic programming Inter-scanline dependencies Segmentation Belief propagation
Stereo correspondence block matching For 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 processing Low texture filtering SSD/SAD minimum ambiguity removal Using gradients instead of intensities Speckle filtering
Stereo Matching
Parallel implementation of block matching The outer cycle iterates through disparity values We compute SSD and compare it with the current minimum for each pixel in a tile Different tiles reuse the results of each other 17
Parallelization scheme 18
Optimization concepts Not using texture – saving registers 1 thread per 8 pixels processing – using cache Reducing the amount of arithmetic operations Non-parallelizable functions (speckle filtering) are done on CPU 19
Performance summary CPU (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 realtime http://www.youtube.com/watch?v=ThE7sRAtaWU
Applications of stereo vision Machine vision Automatic Driver Assistance Movie production Robotics Object recognition Visual odometry / SLAM
Object detection
Sliding window approach
Cascade classifier image face face face Stage 1 Stage 2 Stage 3 Not face Not face Not face Real-time in year 2000!
Face detection
Object detection with local descriptors Detect keypoints Calculate local descriptors for each point Match descriptors for different images Validate matches with a geometry model
FAST feature detector
Keypoints example
SIFT descriptor David Lowe, 2004
SURF descriptor 4x4 square regions inside a square window 20*s 4 values per square region
More descriptors One way descriptor C-descriptor, FERNS, BRIEF HoG Daisy
Matching descriptors example
Ways to improve matching Increase the inliers to outliers ratio Distance threshold Distance ratio threshold (second to first NN distance) Backward-forward matching Windowed matching Increase the amount of inliers One to many matching
Random Sample Consensus Do n iterations until #inliers > inlierThreshold Draw k matches randomly Find the transformation Calculate inliers count Remember the best solution The number of iterations required ~
Geometry validation
Scaling up FLANN (Fast Library for Approximate Nearest Neighbors) In OpenCV thanks to Marius Muja Bag of Words In OpenCV thanks to Ken Chatfield Vocabulary trees Is going to be in OpenCV thanks to Patrick Mihelich
Projects Textured object detection PR2 robot automatic plugin Visual odometry / SLAM
Textured object detection
Object detection example Iryna 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 detection We are looking for small dark regions This operation takes only ~10ms on 640x480 image The rest of the algorithm works only with keypoint regions Itseez Ltd.  http://itseez.com
Classification with one way descriptor Introduced by Hinterstoisser et al (Technical U of Munich, EcolePolytechnique) at CVPR 2009 A test patch is compared to samples of affine-transformed training patches with Euclidean distance The closest patch together with a pose guess are reconstructed Itseez Ltd.  http://itseez.com
Keypoint classification examples One way descriptor does the most of the outlet detection job for us. Few holes are misclassified Ground hole Power hole Non-hole keypoint from outlet image Background keypoint Itseez Ltd.  http://itseez.com
Object detection Object pose is reconstructed by geometry validation (using geomertic hashing) Itseez Ltd.  http://itseez.com
Outlet detection: challenging cases ,[object Object]
Severe lighting conditions
Partial occlusionsItseez Ltd.  http://itseez.com
PR2 plugin (outlet and plug detection) http://www.youtube.com/watch?v=GWcepdggXsU
Visual odometry

Contenu connexe

Tendances

HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCE
HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCEHUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCE
HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCEAswinraj Manickam
 
A Comparison of People Counting Techniques via Video Scene Analysis
A Comparison of People Counting Techniques viaVideo Scene AnalysisA Comparison of People Counting Techniques viaVideo Scene Analysis
A Comparison of People Counting Techniques via Video Scene AnalysisPoo Kuan Hoong
 
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCES
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCESTRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCES
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCESPraveen Pallav
 
Presentation Object Recognition And Tracking Project
Presentation Object Recognition And Tracking ProjectPresentation Object Recognition And Tracking Project
Presentation Object Recognition And Tracking ProjectPrathamesh Joshi
 
An Introduction to Computer Vision
An Introduction to Computer VisionAn Introduction to Computer Vision
An Introduction to Computer Visionguestd1b1b5
 
Александр Заричковый "Faster than real-time face detection"
Александр Заричковый "Faster than real-time face detection"Александр Заричковый "Faster than real-time face detection"
Александр Заричковый "Faster than real-time face detection"Fwdays
 
Moving object detection in video surveillance
Moving object detection in video surveillanceMoving object detection in video surveillance
Moving object detection in video surveillanceAshfaqul Haque John
 
Interactive Wall (Multi Touch Interactive Surface)
Interactive Wall (Multi Touch Interactive Surface)Interactive Wall (Multi Touch Interactive Surface)
Interactive Wall (Multi Touch Interactive Surface)alaxandre
 
Real Time Detection of Moving Object Based on Fpga
Real Time Detection of Moving Object Based on FpgaReal Time Detection of Moving Object Based on Fpga
Real Time Detection of Moving Object Based on Fpgaiosrjce
 
Learning the skill of archery by a humanoid robot iCub
Learning the skill of archery by a humanoid robot iCubLearning the skill of archery by a humanoid robot iCub
Learning the skill of archery by a humanoid robot iCubPetar Kormushev
 
People counting in low density video sequences2
People counting in low density video sequences2People counting in low density video sequences2
People counting in low density video sequences2Ahmed Tememe
 
Motion detection system
Motion detection systemMotion detection system
Motion detection systemWritingHubUK
 

Tendances (20)

HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCE
HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCEHUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCE
HUMAN MOTION DETECTION AND TRACKING FOR VIDEO SURVEILLANCE
 
A350111
A350111A350111
A350111
 
A Comparison of People Counting Techniques via Video Scene Analysis
A Comparison of People Counting Techniques viaVideo Scene AnalysisA Comparison of People Counting Techniques viaVideo Scene Analysis
A Comparison of People Counting Techniques via Video Scene Analysis
 
Image recognition
Image recognitionImage recognition
Image recognition
 
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCES
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCESTRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCES
TRACKING OF PARTIALLY OCCLUDED OBJECTS IN VIDEO SEQUENCES
 
Presentation Object Recognition And Tracking Project
Presentation Object Recognition And Tracking ProjectPresentation Object Recognition And Tracking Project
Presentation Object Recognition And Tracking Project
 
CORNAR: Looking Around Corners using Trillion FPS Imaging
CORNAR: Looking Around Corners using Trillion FPS ImagingCORNAR: Looking Around Corners using Trillion FPS Imaging
CORNAR: Looking Around Corners using Trillion FPS Imaging
 
An Introduction to Computer Vision
An Introduction to Computer VisionAn Introduction to Computer Vision
An Introduction to Computer Vision
 
ISM2014
ISM2014ISM2014
ISM2014
 
Александр Заричковый "Faster than real-time face detection"
Александр Заричковый "Faster than real-time face detection"Александр Заричковый "Faster than real-time face detection"
Александр Заричковый "Faster than real-time face detection"
 
Raskar Keynote at Stereoscopic Display Jan 2011
Raskar Keynote at Stereoscopic Display Jan 2011Raskar Keynote at Stereoscopic Display Jan 2011
Raskar Keynote at Stereoscopic Display Jan 2011
 
Image recognition
Image recognitionImage recognition
Image recognition
 
Moving object detection in video surveillance
Moving object detection in video surveillanceMoving object detection in video surveillance
Moving object detection in video surveillance
 
Interactive Wall (Multi Touch Interactive Surface)
Interactive Wall (Multi Touch Interactive Surface)Interactive Wall (Multi Touch Interactive Surface)
Interactive Wall (Multi Touch Interactive Surface)
 
Presentation of Visual Tracking
Presentation of Visual TrackingPresentation of Visual Tracking
Presentation of Visual Tracking
 
Real Time Detection of Moving Object Based on Fpga
Real Time Detection of Moving Object Based on FpgaReal Time Detection of Moving Object Based on Fpga
Real Time Detection of Moving Object Based on Fpga
 
Learning the skill of archery by a humanoid robot iCub
Learning the skill of archery by a humanoid robot iCubLearning the skill of archery by a humanoid robot iCub
Learning the skill of archery by a humanoid robot iCub
 
People counting in low density video sequences2
People counting in low density video sequences2People counting in low density video sequences2
People counting in low density video sequences2
 
AR/SLAM for end-users
AR/SLAM for end-usersAR/SLAM for end-users
AR/SLAM for end-users
 
Motion detection system
Motion detection systemMotion detection system
Motion detection system
 

Similaire à 20110220 computer vision_eruhimov_lecture01

Wang midterm-defence
Wang midterm-defenceWang midterm-defence
Wang midterm-defenceZhipeng Wang
 
10.1109@ICCMC48092.2020.ICCMC-000167.pdf
10.1109@ICCMC48092.2020.ICCMC-000167.pdf10.1109@ICCMC48092.2020.ICCMC-000167.pdf
10.1109@ICCMC48092.2020.ICCMC-000167.pdfmokamojah
 
Generating 3 d model from video
Generating 3 d model from videoGenerating 3 d model from video
Generating 3 d model from videoacijjournal
 
Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...
Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...
Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...IRJET Journal
 
Model Based Emotion Detection using Point Clouds
Model Based Emotion Detection using Point CloudsModel Based Emotion Detection using Point Clouds
Model Based Emotion Detection using Point CloudsLakshmi Sarvani Videla
 
Intelligent indoor mobile robot navigation using stereo vision
Intelligent indoor mobile robot navigation using stereo visionIntelligent indoor mobile robot navigation using stereo vision
Intelligent indoor mobile robot navigation using stereo visionsipij
 
An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.
An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.
An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.IJERA Editor
 
2D/Multi-view Segmentation and Tracking
2D/Multi-view Segmentation and Tracking2D/Multi-view Segmentation and Tracking
2D/Multi-view Segmentation and TrackingTouradj Ebrahimi
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)theijes
 
Object Detection An Overview
Object Detection An OverviewObject Detection An Overview
Object Detection An Overviewijtsrd
 
Face Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image ProcessingFace Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image Processingpaperpublications3
 
Vision based non-invasive tool for facial swelling assessment
Vision based non-invasive tool for facial swelling assessment Vision based non-invasive tool for facial swelling assessment
Vision based non-invasive tool for facial swelling assessment University of Moratuwa
 
Image Restoration for 3D Computer Vision
Image Restoration for 3D Computer VisionImage Restoration for 3D Computer Vision
Image Restoration for 3D Computer VisionPetteriTeikariPhD
 
Face Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image ProcessingFace Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image Processingpaperpublications3
 
Development of wearable object detection system & blind stick for visuall...
Development of wearable object detection system & blind stick for visuall...Development of wearable object detection system & blind stick for visuall...
Development of wearable object detection system & blind stick for visuall...Arkadev Kundu
 
Interactive full body motion capture using infrared sensor network
Interactive full body motion capture using infrared sensor networkInteractive full body motion capture using infrared sensor network
Interactive full body motion capture using infrared sensor networkijcga
 
Announcing the Final Examination of Mr. Paul Smith for the ...
Announcing the Final Examination of Mr. Paul Smith for the ...Announcing the Final Examination of Mr. Paul Smith for the ...
Announcing the Final Examination of Mr. Paul Smith for the ...butest
 

Similaire à 20110220 computer vision_eruhimov_lecture01 (20)

Wang midterm-defence
Wang midterm-defenceWang midterm-defence
Wang midterm-defence
 
10.1109@ICCMC48092.2020.ICCMC-000167.pdf
10.1109@ICCMC48092.2020.ICCMC-000167.pdf10.1109@ICCMC48092.2020.ICCMC-000167.pdf
10.1109@ICCMC48092.2020.ICCMC-000167.pdf
 
Generating 3 d model from video
Generating 3 d model from videoGenerating 3 d model from video
Generating 3 d model from video
 
Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...
Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...
Inspection of Suspicious Human Activity in the Crowd Sourced Areas Captured i...
 
Model Based Emotion Detection using Point Clouds
Model Based Emotion Detection using Point CloudsModel Based Emotion Detection using Point Clouds
Model Based Emotion Detection using Point Clouds
 
Intelligent indoor mobile robot navigation using stereo vision
Intelligent indoor mobile robot navigation using stereo visionIntelligent indoor mobile robot navigation using stereo vision
Intelligent indoor mobile robot navigation using stereo vision
 
An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.
An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.
An Approach for Object and Scene Detection for Blind Peoples Using Vocal Vision.
 
2D/Multi-view Segmentation and Tracking
2D/Multi-view Segmentation and Tracking2D/Multi-view Segmentation and Tracking
2D/Multi-view Segmentation and Tracking
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)
 
Object Detection An Overview
Object Detection An OverviewObject Detection An Overview
Object Detection An Overview
 
Face Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image ProcessingFace Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image Processing
 
Vision based non-invasive tool for facial swelling assessment
Vision based non-invasive tool for facial swelling assessment Vision based non-invasive tool for facial swelling assessment
Vision based non-invasive tool for facial swelling assessment
 
Image Restoration for 3D Computer Vision
Image Restoration for 3D Computer VisionImage Restoration for 3D Computer Vision
Image Restoration for 3D Computer Vision
 
1.pdf
1.pdf1.pdf
1.pdf
 
Face Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image ProcessingFace Recognition & Detection Using Image Processing
Face Recognition & Detection Using Image Processing
 
LCI - MICC Seminario-Forensics
LCI - MICC Seminario-ForensicsLCI - MICC Seminario-Forensics
LCI - MICC Seminario-Forensics
 
Development of wearable object detection system & blind stick for visuall...
Development of wearable object detection system & blind stick for visuall...Development of wearable object detection system & blind stick for visuall...
Development of wearable object detection system & blind stick for visuall...
 
Interactive full body motion capture using infrared sensor network
Interactive full body motion capture using infrared sensor networkInteractive full body motion capture using infrared sensor network
Interactive full body motion capture using infrared sensor network
 
final ppt
final pptfinal ppt
final ppt
 
Announcing the Final Examination of Mr. Paul Smith for the ...
Announcing the Final Examination of Mr. Paul Smith for the ...Announcing the Final Examination of Mr. Paul Smith for the ...
Announcing the Final Examination of Mr. Paul Smith for the ...
 

Plus de Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Plus de Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20110220 computer vision_eruhimov_lecture01

  • 1. Computer vision for robotics Victor Eruhimov CTO, itseez http://www.itseez.com
  • 2. Why do we need computer vision? Smart video surveillance Biometrics Automatic Driver Assistance Systems Machine vision (Visual inspection) Image retrieval (e.g. Google Goggles) Movie production Robotics
  • 3. Vision is hard! Even for humans…
  • 5. Agenda Camera model Stereo vision Stereo vision on GPU Object detection methods Sliding window Local descriptors Applications Textured object detection Outlet detection Visual odometry
  • 10. Perspective-n-Points problem P4P RANSAC (RANdomSAmple Consensus)
  • 11. Stereo: epipolar geometry Fundamental matrix constraint
  • 12. Stereo Rectification Algorithm steps are shown at right: Goal: Each row of the image contains the same world points “Epipolar constraint” Result: Epipolar alignment of features: 12 All: Gary Bradski and Adrian Kaehler: Learning OpenCV
  • 13. Stereo correspondence Block matching Dynamic programming Inter-scanline dependencies Segmentation Belief propagation
  • 14. Stereo correspondence block matching For each block in left image: Search for the corresponding block in the right image such that SSD or SAD between pixel intensities is minimum
  • 15. Pre- and post processing Low texture filtering SSD/SAD minimum ambiguity removal Using gradients instead of intensities Speckle filtering
  • 17. Parallel implementation of block matching The outer cycle iterates through disparity values We compute SSD and compare it with the current minimum for each pixel in a tile Different tiles reuse the results of each other 17
  • 19. Optimization concepts Not using texture – saving registers 1 thread per 8 pixels processing – using cache Reducing the amount of arithmetic operations Non-parallelizable functions (speckle filtering) are done on CPU 19
  • 20. Performance summary CPU (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!
  • 21. Full-HD stereo in realtime http://www.youtube.com/watch?v=ThE7sRAtaWU
  • 22. Applications of stereo vision Machine vision Automatic Driver Assistance Movie production Robotics Object recognition Visual odometry / SLAM
  • 25. Cascade classifier image face face face Stage 1 Stage 2 Stage 3 Not face Not face Not face Real-time in year 2000!
  • 27. Object detection with local descriptors Detect keypoints Calculate local descriptors for each point Match descriptors for different images Validate matches with a geometry model
  • 30. SIFT descriptor David Lowe, 2004
  • 31. SURF descriptor 4x4 square regions inside a square window 20*s 4 values per square region
  • 32. More descriptors One way descriptor C-descriptor, FERNS, BRIEF HoG Daisy
  • 34. Ways to improve matching Increase the inliers to outliers ratio Distance threshold Distance ratio threshold (second to first NN distance) Backward-forward matching Windowed matching Increase the amount of inliers One to many matching
  • 35. Random Sample Consensus Do n iterations until #inliers > inlierThreshold Draw k matches randomly Find the transformation Calculate inliers count Remember the best solution The number of iterations required ~
  • 37. Scaling up FLANN (Fast Library for Approximate Nearest Neighbors) In OpenCV thanks to Marius Muja Bag of Words In OpenCV thanks to Ken Chatfield Vocabulary trees Is going to be in OpenCV thanks to Patrick Mihelich
  • 38. Projects Textured object detection PR2 robot automatic plugin Visual odometry / SLAM
  • 40. Object detection example Iryna 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.
  • 41. Keypoint detection We are looking for small dark regions This operation takes only ~10ms on 640x480 image The rest of the algorithm works only with keypoint regions Itseez Ltd. http://itseez.com
  • 42. Classification with one way descriptor Introduced by Hinterstoisser et al (Technical U of Munich, EcolePolytechnique) at CVPR 2009 A test patch is compared to samples of affine-transformed training patches with Euclidean distance The closest patch together with a pose guess are reconstructed Itseez Ltd. http://itseez.com
  • 43. Keypoint classification examples One way descriptor does the most of the outlet detection job for us. Few holes are misclassified Ground hole Power hole Non-hole keypoint from outlet image Background keypoint Itseez Ltd. http://itseez.com
  • 44. Object detection Object pose is reconstructed by geometry validation (using geomertic hashing) Itseez Ltd. http://itseez.com
  • 45.
  • 47. Partial occlusionsItseez Ltd. http://itseez.com
  • 48. PR2 plugin (outlet and plug detection) http://www.youtube.com/watch?v=GWcepdggXsU