WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But...

32
Processing Digital Camera Images WS 11/12

Transcript of WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But...

Page 1: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

Processing Digital Camera Images WS 11/12

Page 2: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  English/Deutsch?

Language

Page 3: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Responsible:

•  Prof. Dr. Marc Alexa, Prof. Dr. Bernd Bickel

  Main contact:

•  Mathias Eitz - [email protected]

•  EN 721

  Administration:

•  Helga Kallan - [email protected]

•  EN 716

We

Page 4: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Have to work in teams - introduce yourself…

•  CS Student?

•  Graphics/Vision classes taken

•  Programming experience

•  Why interested in this course

  Register for course on www.cg.tu-berlin.de

You

Page 5: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Basic Image Processing

•  Convolution, Morphological operators, Filters

•  But might need those as building blocks for projects

  Photoshop

•  Won’t learn how to use Photoshop

•  Theory of some advanced PS features might be covered (Panorama function of CS3 uses recent research results)

  Photography

•  Won’t learn how to take good pictures

•  But might need to take pictures for some projects

What this course is not about

Page 6: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Computational Photography

•  Epsilon Photography

•  Take multiple pics with varying camera parameters

•  E.g.: HDR, Panorama

•  Coded Photography

•  Modifying camera lens to achieve a certain goal

•  E.g.: Deblurring, light field capture, relighting, dark flash

•  Data driven Vision and Graphics

•  Beyond the human eye

•  E.g.: Photo tourism, scene completion

What this course is about

Page 7: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Problem: limited field of view of digital cameras

•  Compact camera: 50x35º

•  Human: 200x135º

•  Panorama 360x180º

Panoramic Images

Page 8: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Early panoramic images:

•  View from the top of Lookout Mountain, Tennessee1864, by George N. Barnard

Panoramic Images

Image: Wikipedia

Page 9: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Problem: limited contrast of digital cameras

High Dynamic Range Imaging

Images: Fattal et al.

[Fattal et al.]

Page 10: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Solution:

•  Take multiple pictures, vary exposure time

•  “Combine” shots to produce a single “HDR” image

High Dynamic Range Imaging

Page 11: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  “Combine” exposures into high dynamic range map

•  Each pixel represents real world radiance

  New problem: how to display on LCD?

Recovering HDR

Page 12: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Approach [Fattal et al.]

•  Attenuate strong contrast edges

•  Reconstruct image

Tone mapping

Page 13: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to
Page 14: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

Gradient Domain Imaging

  Usually, we directly manipulate (RGB) pixels

  Working in gradient domain can have advantages:

•  Modifying image edges becomes easier

•  Blending becomes easier

Page 15: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Problem: unwanted motion blur

Fluttered Shutter [Raskar et al.]

Page 16: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Traditional camera: shutter is always open

Fluttered Shutter

Page 17: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Fluttered Shutter: Distinct open close pattern

Fluttered Shutter

Page 18: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Deblurred result

Fluttered Shutter

Page 19: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Problem: How to resize an image?

•  Scaling/Cropping/Seam Carving?

Seam Carving [Avidan & Shamir]

Page 20: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

scaled cropped seam carved

Seam Carving

Page 21: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

Patchmatch [Barnes et al.]

Page 22: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

What can we do with millions of

images?

Page 23: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Replace unwanted object in an image

Scene Completion [Hays et al.]

Page 24: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Find similar scenes from large image collection

  Copy & blend missing area

Scene Completion

Page 25: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

Photo Tourism [Snavely et al.]

Live demo: http://phototour.cs.washington.edu

Page 26: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Overview/Introduction of topics: 18.10., 25.10.

  Basic Talks: 01.11. ~ 15.11.

•  Teams start their project by preparing basic talk

•  Talk covers important aspect that is useful in itself

  Project roadmap: 22.11.

•  Slides presented in class: list milestones, relevant papers

  Implementation project: 22.11. – 07.02.

•  Project presentations & demos: 07.02., 14.02.

  Documentation (online): 21.02.

Approximate schedule

Page 27: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Attendance mandatory, we keep a list

  Grading

•  Attendance & participation: 10%

•  Basic talk: 20%

•  Project roadmap: 10%

•  Project (implementation): 40%

•  Documentation (online): 20%

Rules I

Page 28: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Reuse existing resources, but

•  Must give referencs

•  Example: you may use illustrations in your talk taken from other slides, but add a note such as [image: taken from Alexa et al.]

•  For some of your projects rather complete implementations are available on the web – use them for inspiration, do not copy!

•  If in doubt, ask Mathias

Rules II

Page 29: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Check last years’ projects

•  Links are on the course website

•  Browse similar course homepages @ MIT, Stanford, Brown

  Check our project list (online Friday)

•  Find at least two projects you are interested in

•  After class contact potential team members

  Register for this course

Todo until next week

Page 30: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Similar courses:

•  http://www.cs.brown.edu/courses/csci2951-b/

•  http://www.cs.brown.edu/courses/csci1290/

•  http://graphics.cs.cmu.edu/courses/15-463/

•  http://www.cc.gatech.edu/classes/AY2005/cs4803cp_summer/

•  http://graphics.stanford.edu/courses/cs448-04-spring/

•  http://people.csail.mit.edu/fredo/PhotoSeminar05/

•  http://cs.nyu.edu/~fergus/teaching/comp_photo/

•  http://www.cs.unc.edu/~lazebnik/research/fall08/

•  http://cameraculture.media.mit.edu/Fall2010ComputationalCamera

Resources - I

Page 31: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Finding papers:

•  http://scholar.google.com/

  SIGGRAPH coursenotes

•  http://web.media.mit.edu/~raskar/photo/

  Books:

•  http://szeliski.org/Book/

•  http://www.amazon.com/dp/1568813139/

Resources - II

Page 32: WS 11/12 · Basic Image Processing! • Convolution, Morphological operators, Filters! • But might need those as building blocks for projects! Photoshop! • Won’t learn how to

  Image/Video References:

•  Connelly Barnes, Eli Shechtman, Adam Finkelstein, Dan B Goldman - PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing���ACM Transactions on Graphics (Proc. SIGGRAPH), 2009

•  Shai Avidan and Ariel Shamir. Seam carving for content-aware image resizing. ACM Transactions on Graphics (Proc. SIGGRAPH), 2007

•  Noah Snavely, Steven M. Seitz, Richard Szeliski, Photo tourism: Exploring photo collections in 3D, ACM Transactions on Graphics (Proc. SIGGRAPH), 2006

•  Ramesh Raskar, Amit Agrawal, and Jack Tumblin, Coded Exposure Photography: Motion Deblurring using Fluttered Shutter, ACM SIGGRAPH, 2006

•  James Hays, Alexei A. Efros. Scene Completion Using Millions of Photographs. ACM Transactions on Graphics (Proc. SIGGRAPH), 2007

•  R. Fattal, D. Lischinski and M. Werman,Gradient Domain High Dynamic Range Compression, ACM Transactions on Graphics (Proc. SIGGRAPH), 2002

Resources – III