Post on 02-Jan-2016
Computer Vision
Why study Computer Vision?
• Images and movies are everywhere• Fast-growing collection of useful applications
– building representations of the 3D world from pictures
– automated surveillance (who’s doing what)– movie post-processing– face finding
• Various deep and attractive scientific mysteries– how does object recognition work?
• Greater understanding of human vision
Properties of Vision
• 3D representations are easily constructed– There are many different cues. – Useful
• to humans (avoid bumping into things; planning a grasp; etc.)
• in computer vision (build models for movies).
– Cues include• multiple views (motion, stereopsis)• texture • shading
Properties of Vision
• People draw distinctions between what is seen– “Object recognition”– This could mean “is this a fish or a bicycle?”– It could mean “is this George Washington?”– It could mean “is this poisonous or not?”– It could mean “is this slippery or not?”– It could mean “will this support my weight?”– Great mystery
• How to build algorithms that can draw useful conclusions based on image properties.
Main topics
• Shape (and motion) recovery“What is the 3D shape of what I see?”
• Segmentation “What belongs together?”
• Tracking “Where does something go?”
• Recognition“What is it that I see?”
Main topics
• Camera & Light– Geometry, Radiometry, Color
• Digital images– Filters, edges, texture, optical flow
• Shape (and motion) recovery – Multi-view geometry– Stereo, motion, photometric stereo, …
• Segmentation – Clustering, model fitting, probalistic
• Tracking – Linear dynamics, non-linear dynamics
• Recognition– templates, relations between templates
Camera and lights
• How images are formed– Cameras
• What a camera does• How to tell where the camera was
– Light• How to measure light• What light does at surfaces• How the brightness values we see in cameras
are determined
– Color• The underlying mechanisms of color• How to describe it and measure it
Digital images
• Representing small patches of image– For three reasons
• We wish to establish correspondence between (say) points in different images, so we need to describe the neighborhood of the points
• Sharp changes are important in practice --- known as “edges”
• Representing texture by giving some statistics of the different kinds of small patch present in the texture.
– Tigers have lots of bars, few spots– Leopards are the other way
Representing an image patch
• Filter outputs– essentially form a dot-product between a
pattern and an image, while shifting the pattern across the image
– strong response -> image locally looks like the pattern
– e.g. derivatives measured by filtering with a kernel that looks like a big derivative (bright bar next to dark bar)
Convolve this image
With this kernel
To get this
Texture
• Many objects are distinguished by their texture– Tigers, cheetahs, grass, trees
• We represent texture with statistics of filter outputs– For tigers, bar filters at a coarse scale respond
strongly– For cheetahs, spots at the same scale– For grass, long narrow bars– For the leaves of trees, extended spots
• Objects with different textures can be segmented
• The variation in textures is a cue to shape
Optical flow
Where do pixels move?
Movie special effects
Compute camera motion from point motion
Shape from …
many different approaches/cues
Motion, texture, shading, …
Real-time stereo on GPU
• Background differencing• Stereo matching• Depth reconstruction
Structure from Motion
Segmentation
• Which image components “belong together”?
• Belong together=lie on the same object• Cues
– similar colour– similar texture– not separated by contour– form a suggestive shape when assembled
CBIR
ContentBased ImageRetrieval
Sony’s Eye Toy: Computer Vision for the masses
Background segmentation/motion detectionColor segmentation…
Also motion segmentation, etc.
Tracking examples
Object recognition
Image-based recognition(Nayar et al. ‘96)
Object recognition using templates and relations
• Find bits and pieces, see if it fits together in a meaningful way
e.g. nose, eyes, …
Face detection
http://vasc.ri.cmu.edu/cgi-bin/demos/findface.cgi