Computer Vision

source: http://kirkh.deviantart.com/art/BioMech-Eye-168367549

y = f(x)

forward

x = world/model, y = image

x = f '(y)

Inverse

x = world description/model, y = image

Lost Information

sources:

  • Sampling Resolution
  • Light interaction (shadow, highlight)
  • Occlusion
  • Partial
  • Projection
  • ...

Hints? Cues?

Color

segmentation
source: http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/AdditiveColor.svg/500px-AdditiveColor.svg.png

Borders

boundary
source: http://www.cs.brown.edu/courses/cs143/results/proj2/nmalkin/bieber.png

Corners

corners
source: http://users.cs.cf.ac.uk/Paul.Rosin/inria-ang.gif

Region

segmentation
source: http://cg.aut.ac.ir/acg/wp-content/uploads/2009/07/untitled.jpg

Motion

segmentation
source: http://www.borisfx.com/image/bcc/avx/optical.jpg

Problem Areas

Segmentation

segmentation
source: http://vision.in.tum.de/_media/spezial/bib/nieuwenhuis_et_al_emmcvpr11.png

Segmentation

segmentation
source: http://research.microsoft.com/en-us/um/cambridge/projects/visionimagevideoediting/segmentation/grabcut.htm

Mobile Shooting Range

Tracking

source:

Tracking

source:

Tracking

source:

Recognition

recognition
source: http://knightrideronline.com/news/assets/2008/10/science_not_fiction_face_recognition/news_face_large.jpg

Reconstruction

source: http://www.sciencedirect.com/science/article/pii/S1077314211001810#gr12

Applications?

(is) Sky the limit?

www.flickr.com/photos/25797459@N06/5438799763/

Architecture

Technologies, KnowHow

Browser

HTML5

html5
  • Canvas (BitmapData)
  • File Reader
  • WebGL
  • WebCL
  • getUserMedia
  • NaCl
  • Web worker
  • WebRTC
  • Web Socket
source: http://en.wikipedia.org/wiki/HTML5

Canvas API

Accessing & Manipulating Pixels

<script type='text/javascript'>
  // create canvas element & 2D Rendering Context
  var canvas = document.createElement('canvas')
  var context = canvas.getContext('2d')
  ...
  //load an image and draw to canvas
  context.drawImage(img,0,0)
  ...
  var imageData = context.getImageData(0,0,canvas.width,canvas.height)
  ...
  //do something with the imageData
  ...
  context.putImageData(img,0,0)
</script>

Cloud

App Engine

appengine

Useful libraries *:

  • PIL (Python Imaging Library) :
  • NumPy (Numeric Python Library) :
  • bottlepy
  • Task Queue API
*) Python 2.7 source: http://screenshots.en.sftcdn.net/en/scrn/70000/70210/google-app-engine-1.jpg

Mobile

Android

android

Useful libraries :

  • Camera API
  • OpenCV (Java & Native C++)
source: en.wikipedia.org/wiki/File:Android_robot.svg

http://opencv.willowgarage.com/wiki/Welcome?action=AttachFile&do=get&target=OpenCV_Overview.jpg

OpenCV for Android

Computer Vision Library

You don't understand anything until you learn it more than one way.
Marvin Minsky
MIT

<Thank You!>

further discussion