49
Computer vision for robotics Victor Eruhimov CTO, itseez http://www.itseez.com

Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Embed Size (px)

Citation preview

Page 1: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Computervisionforrobotics

VictorEruhimovCTO,itseez

http://www.itseez.com

Page 2: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Whydoweneedcomputervision?

• Smartvideosurveillance• Biometrics• AutomaticDriverAssistanceSystems• Machinevision(Visualinspection)• Imageretrieval(e.g.GoogleGoggles)• Movieproduction• Robotics

Page 3: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Visionishard!Evenforhumans…

Page 4: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Texai parking

Page 5: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Agenda• Cameramodel• Stereovision

– StereovisiononGPU

• Objectdetectionmethods– Slidingwindow– Localdescriptors

• Applications– Texturedobjectdetection– Outletdetection– Visualodometry

Page 6: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Pinholecameramodel

x

y€

z

u€

v

xyz

"

#

$ $ $

%

&

' ' '

= RXYZ

"

#

$ $ $

%

&

' ' '

+ t

( x = x z( y = y z

u = fx ( x + cx

v = fy ( y + cy

Page 7: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Distortionmodel

Page 8: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Reprojection error

Page 9: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Homography

Page 10: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Perspective-n-Pointsproblem

• P4P• RANSAC(RANdom SAmple Consensus)

Page 11: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Stereo:epipolar geometry

( ) 01

1,, =⎟⎟⎟

⎜⎜⎜

⋅⋅ R

R

LL yx

Fyx

Fundamental matrix constraint

Page 12: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

StereoRectification• Algorithmstepsareshownatright:• Goal:

– Eachrowoftheimagecontainsthesameworldpoints– “Epipolar constraint”

12

Result:Epipolaralignmentof features:

All:GaryBradskiandAdrianKaehler:LearningOpenCV

Page 13: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Stereocorrespondence

• Blockmatching• Dynamicprogramming• Inter-scanline dependencies

– Segmentation– Beliefpropagation

Page 14: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Stereocorrespondenceblockmatching

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

Page 15: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Pre- andpostprocessing

• Lowtexturefiltering• SSD/SADminimumambiguityremoval

• Usinggradientsinsteadofintensities

• Specklefiltering

Page 16: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Stereo Matching

Page 17: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Parallelimplementationofblockmatching

• Theoutercycleiteratesthroughdisparityvalues

• WecomputeSSDandcompareitwiththecurrentminimumforeachpixelinatile

• Differenttilesreusetheresultsofeachother

17

Page 18: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Parallelizationscheme

18

Page 19: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Optimizationconcepts

• Notusingtexture– savingregisters• 1threadper8pixelsprocessing– usingcache• Reducingtheamountofarithmeticoperations

• Non-parallelizablefunctions(specklefiltering)aredoneonCPU

19

Page 20: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Performancesummary

• CPU(i57502.66GHz),GPU(Fermicard448cores)

• BlockmatchingonCPU+2xGPUisthanCPUimplementation

withSSEoptimization,enablingreal-timeprocessingofHDimages!

Page 21: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Full-HDstereoinrealtime

http://www.youtube.com/watch?v=ThE7sRAtaWU

Page 22: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Applicationsofstereovision

• Machinevision• AutomaticDriverAssistance• Movieproduction• Robotics

– Objectrecognition– Visualodometry /SLAM

Page 23: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Objectdetection

Page 24: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Slidingwindowapproach

Page 25: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Cascadeclassifier

Stage1 Stage2 Stage3

image face face

Not face Not face Not face

face

Real-timeinyear2000!

Page 26: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Facedetection

Page 27: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Objectdetectionwithlocaldescriptors

• Detectkeypoints• Calculatelocaldescriptorsforeachpoint• Matchdescriptorsfordifferentimages• Validatematcheswithageometrymodel

Page 28: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

FASTfeaturedetector

Page 29: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Keypoints example

Page 30: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

SIFTdescriptor

David Lowe, 2004

Page 31: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

SURFdescriptor

• 4x4squareregionsinsideasquarewindow20*s

• 4valuespersquareregion

Page 32: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Moredescriptors

• Onewaydescriptor• C-descriptor,FERNS,BRIEF• HoG• Daisy

Page 33: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Matchingdescriptorsexample

Page 34: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Waystoimprovematching

• Increasetheinlierstooutliersratio– Distancethreshold– Distanceratiothreshold(secondtofirstNNdistance)– Backward-forwardmatching– Windowedmatching

• Increasetheamountofinliers– Onetomanymatching

Page 35: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

RandomSampleConsensus

• Don iterationsuntil#inliers>inlierThreshold– Drawk matchesrandomly– Findthetransformation– Calculateinlierscount– Rememberthebestsolution

Thenumberofiterationsrequired~

Page 36: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Geometryvalidation

Page 37: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Scalingup

• FLANN(FastLibraryforApproximateNearestNeighbors)– InOpenCV thankstoMariusMuja

• BagofWords– InOpenCV thankstoKenChatfield

• Vocabularytrees– IsgoingtobeinOpenCV thankstoPatrickMihelich

Page 38: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Projects

• Texturedobjectdetection• PR2robotautomaticplugin• Visualodometry /SLAM

Page 39: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Texturedobjectdetection

Page 40: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

ObjectdetectionexampleIryna 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.

Page 41: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Keypoint detection

• Wearelookingforsmalldarkregions

• Thisoperationtakesonly~10mson640x480image

• Therestofthealgorithmworksonlywithkeypoint regions

ItseezLtd.http://itseez.com

Page 42: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Classificationwithonewaydescriptor

• IntroducedbyHinterstoisser etal(TechnicalUofMunich,EcolePolytechnique)atCVPR2009

• Atestpatchiscomparedtosamplesofaffine-transformedtrainingpatcheswithEuclideandistance

• Theclosestpatchtogetherwithaposeguessarereconstructed

ItseezLtd.http://itseez.com

Page 43: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Keypoint classificationexamples• Onewaydescriptordoesthemostoftheoutletdetectionjobforus.Fewholesaremisclassified Ground hole

Power holeNon-hole keypointfrom outlet image

Background keypoint

ItseezLtd.http://itseez.com

Page 44: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Objectdetection

• Objectposeisreconstructedbygeometryvalidation(usinggeomertichashing)

ItseezLtd.http://itseez.com

Page 45: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Outletdetection:challengingcases

üShadows

üSevere lighting conditions

üPartial occlusions

ItseezLtd.http://itseez.com

Page 46: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

PR2plugin (outletandplugdetection)

http://www.youtube.com/watch?v=GWcepdggXsU

Page 47: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Visualodometry

Page 48: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Visualodometry (II)

Page 49: Компьютерное зрение и библиотека OpenCV, весна 2011: Компьютерное зрение для робототехники

Morefun