Computer Vision

What is computer vision?

Self Driving Cats?

Customer Tracking?

The Matrix?

3D Scanning?

Yes.

Formal Definition

Computer vision is a field that includes methods for acquiringprocessing, analyzing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions.

What does this mean?

Matrices.

(A lot of them!)

A Brief History

Purposive Vision

Main Fields

Event Detection

Scene reconstruction

Learning

Big Brother

Motion Estimation

Image restoration

Object / feature recognition

Corner Detection

Corner Detection

Use sliding window over edge detected image and measure change in multiple directions.

SimpleCV Example

motion = img.getCorners()

Cat

Optical Flow

Title Text

Calculate the motion between two image frames which are taken at times t and ∆t at every pixel

Optical Flow

Find how much a given pixel (or patch of pixels) moved between frames. 

 

For a pixel that moved (∆x, ∆y) in ∆t, the following will hold:

 

I(x, y, t) = I(x + ∆x, y + ∆y, t + ∆t)

Lucas–Kanade Method

Flow for neighboring pixels is similar, so solve equation for neighborhood pixels, too.

 

Fails at tracking uniform regions

SimpleCV Example

motion = img.getMotion()

Haar Cascades

  1. Train descriptor
  2. Search image for descriptor

Haar Accuracy

SimpleCV Example

faces = HaarCascade("face.xml")

img.findHaarFeatures(faces)

HOG

(histogram of oriented gradients)

 

Object Detection

Easy, right?

Not always

Descriptor

Train on 40-60 example images by normalizing + combining their gradients to produce descriptor 

End Result

Computer Vision

By Brent Baumgartner