CSC320H: Intro to Visual Computing. Course WWW (course information sheet available there):

Similar documents
Computer Graphics Si Lu Fall /25/2017

High Dynamic Range Imaging

The ultimate camera. Computational Photography. Creating the ultimate camera. The ultimate camera. What does it do?

Prof. Feng Liu. Winter /09/2017

High Dynamic Range Images

NSCAS - Math Table of Specifications

Why learn about photography in this course?

lecture 24 image capture - photography: model of image formation - image blur - camera settings (f-number, shutter speed) - exposure - camera response

COURSE SYLLABUS FOR. COMP-285 Image Manipulation: Adobe Photoshop

Distributed Algorithms. Image and Video Processing

Color , , Computational Photography Fall 2018, Lecture 7

CS6670: Computer Vision

Image Processing. COMP 3072 / GV12 Gabriel Brostow. TA: Josias P. Elisee (with help from Dr Wole Oyekoya) Image Processing.

CSCE 763: Digital Image Processing

University of North Georgia Department of Mathematics

High Performance Imaging Using Large Camera Arrays

CS 354R: Computer Game Technology

4/9/2015. Simple Graphics and Image Processing. Simple Graphics. Overview of Turtle Graphics (continued) Overview of Turtle Graphics

CS 376b Computer Vision

Syllabus for ENGR065-01: Circuit Theory

Images and Displays. Lecture Steve Marschner 1

High dynamic range imaging and tonemapping

Course Title Course Number Grade Instructor Date Assignment. Creative Photography I Jarmoszko of 2016 A3- Self-Portraits

JEFFERSON COLLEGE COURSE SYLLABUS ART150 DIGITAL PHOTOGRAPHY I. 3 credit hours. Prepared by: Blake Carroll

Capturing Light in man and machine

Determining MTF with a Slant Edge Target ABSTRACT AND INTRODUCTION

Realistic Image Synthesis

IMAGE FORMATION. Light source properties. Sensor characteristics Surface. Surface reflectance properties. Optics

INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET

Color , , Computational Photography Fall 2017, Lecture 11

HDR imaging Automatic Exposure Time Estimation A novel approach

BASIC PHOTOGRAPHY FALL 2017

Computational Photography Introduction

ECC419 IMAGE PROCESSING

Computer Vision. Howie Choset Introduction to Robotics

Noise Characteristics of a High Dynamic Range Camera with Four-Chip Optical System

ART 263 Digital Photography

CSE 166: Image Processing. Overview. What is an image? Representing an image. What is image processing? History. Today

Two strategies for realistic rendering capture real world data synthesize from bottom up

Section 7.2 Logarithmic Functions

High Dynamic Range Images : Rendering and Image Processing Alexei Efros. The Grandma Problem

DOING PHYSICS WITH MATLAB COMPUTATIONAL OPTICS. GUI Simulation Diffraction: Focused Beams and Resolution for a lens system

CS6670: Computer Vision

Continuous Flash. October 1, Technical Report MSR-TR Microsoft Research Microsoft Corporation One Microsoft Way Redmond, WA 98052

MEM: Intro to Robotics. Assignment 3I. Due: Wednesday 10/15 11:59 EST

To Do. Advanced Computer Graphics. Outline. Computational Imaging. How do we see the world? Pinhole camera

BASIC DIGITAL PHOTOGRAPHY SPRING 2017

What will be on the midterm?

Lesson 6.1 Linear Equation Review

CS354 Computer Graphics Computational Photography. Qixing Huang April 23 th 2018

Color and More. Color basics

NSERC Summer Project 1 Helping Improve Digital Camera Sensors With Prof. Glenn Chapman (ENSC)

Color Computer Vision Spring 2018, Lecture 15

1 Equations for the Breathing LED Indicator

Introduction to Computer Graphics (CS602) Lecture 19 Projections

The Noise about Noise

CSE 455: Computer Vision

MthSc 103 Test #1 Spring 2011 Version A JIT , 1.8, , , , 8.1, 11.1 ANSWER KEY AND CUID: GRADING GUIDELINES

Computer Graphics. Si Lu. Fall er_graphics.htm 10/02/2015

Course Description: Course Goals: Course Outcomes: Methods of Instruction: Materials:

Instructor Notes for Chapter 4

Math Lecture 2 Inverse Functions & Logarithms

Lenses, exposure, and (de)focus

Images and Graphics. 4. Images and Graphics - Copyright Denis Hamelin - Ryerson University

Overview. Pinhole camera model Projective geometry Vanishing points and lines Projection matrix Cameras with Lenses Color Digital image

Digital Image Processing

Cameras. CSE 455, Winter 2010 January 25, 2010

Black & White Photography Course Syllabus

Signal and Information Processing

Tonemapping and bilateral filtering

EMVA1288 compliant Interpolation Algorithm

Math 122: Final Exam Review Sheet

Digital Image Fundamentals. Digital Image Processing. Human Visual System. Contents. Structure Of The Human Eye (cont.) Structure Of The Human Eye

Digital Image Fundamentals. Digital Image Processing. Human Visual System. Contents. Structure Of The Human Eye (cont.) Structure Of The Human Eye

COMPSCI 372 S2 C Computer Graphics

Images. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 38

CSE 473/573 Computer Vision and Image Processing (CVIP) Ifeoma Nwogu

Digital Image Processing

Capturing Light in man and machine. Some figures from Steve Seitz, Steve Palmer, Paul Debevec, and Gonzalez et al.

Course Syllabus OSE 3200 Geometric Optics

VC 11/12 T2 Image Formation

News Photography COMM 1317 Spring 2017

Flash Photography: 1

Charged Coupled Device (CCD) S.Vidhya

Prerequisite(s): None

Robot Motion Control and Planning

CAP 5415 Computer Vision. Marshall Tappen Fall Lecture 1

Tennessee Senior Bridge Mathematics

ITAL 0100: Elementary Italian

Digital Image Processing Questions With Answer

Kankakee Community College

General Imaging System

DIGITAL IMAGE PROCESSING

Lecture 30: Image Sensors (Cont) Computer Graphics and Imaging UC Berkeley CS184/284A

E X P E R I M E N T 12

BASLER A601f / A602f

EC-433 Digital Image Processing

Prof.: Michael Roukes, x2916, 131 Bridge Annex T.A.: Raj Katti, x5814, B139 West Bridge

1. Demonstrate the ability to manipulate shutter speed, aperture, and other camera controls to correctly expose an image using the camera meter.

Chapter 3, Part 1: Intro to the Trigonometric Functions

Transcription:

CSC320H: Intro to Visual Computing Instructor: Fernando Flores-Mangas Office: PT265C Email: mangas320@cs.toronto.edu Office Hours: W 11-noon or by appt. Course WWW (course information sheet available there): http://www.cs.toronto.edu/~mangas/teaching/320 Textbooks: Digital Image Processing, OpenGL Programming Guide (both recommended but not required) Tutorials: Wednesdays at 8 pm (first tutorial next week) Fernando is He apologizes and will be here next week.

Today s Topics 0. Admin stuff 1. Intro to Visual Computing 2. Image formation process and high dynamic range photography Bulletin board (running!): Admin stuff https://piazza.com/utoronto.ca/winter2014/csc320/home link available from course website Grading 40%: four assignments, worth 10% each, due at 11:59pm on due date. 20%: one midterm test, in tutorial 40%: one final exam See calendar on course website for dates and other details.

Admin stuff A1 out this Friday via course website Due Jan 24! A1 cannot be done last-minute. Things will go wrong. Read course Info-Sheet for late policy While at it, check other assignment-related policies (especially on academic honesty) Admin stuff Tutorials: Math refreshers and visual programming. Attendance is STRONGLY encouraged. Visual programming or assignments will be discussed in the tutorials ONLY, not in class. First tutorial is next Wednesday (Jan 15) Intro to programming toolkits (useful for A1) fluid, fltk, VXL Refresher on solving linear systems of equations Lecture notes: on course website, after class.

Topic 0 Intro to Visual Computing What is visual computing? Is this course for me? Course topics Topic 0 Intro to Visual Computing What is visual computing? Is this course for me? Course topics

What visual computing is NOT How do I use Adobe Photoshop to From http://hollywoodactressbeforephotoshop.blogspot.mx/ What visual computing is NOT The ultimate gaming video card is From http://graphics-cards-review.toptenreviews.com/nvidia-geforce-gtx-690-review.html

What visual computing actually is! To use (mainly) geometry-and physics-based models to generate images that mean something to people Other disciplines used (and abused) Mathematics Optics Computer Science Engineering Psychophysics Visual Arts From http://www.disneyanimation.com/technology/publications# By Stomakhin, et al. at Disney Animation Studios Objective #1: Realistic Image Synthesis Create pictures and videos that convey the illusion of reality

Objective #2: Capturing Reality Example: Capturing real scenes in museums, etc (Levoy et al, SIGGRAPH 00) hnp://graphics.stanford.edu/projects/mich Objective #3: Manipulating Photos and Videos Manipulate reality (e.g. for special effects) http://www.thepixelart.com/

Objective #3: Manipulating Photos and Videos Manipulate reality (e.g. for special effects) Seitz & Dyer, SIGGRAPH 96 Objective #4: Photo and Video Interpretation Detection, tracking Shu, Dehghan, Oreifej, Hand, Shah. CVPR 2012

Objective #4: Photo and Video Interpretation e.g. Face recognition (in Google s Picassa) Objective #4: Photo and Video Interpretation e.g. Automatic object & location recognition with Google Goggles

Topic 0 Intro to Visual Computing What is visual computing? Is this course for me? Course topics Is this course for me? Visual Computing Application of the rules of math and physics to generate images that mean something to people You must be comfortable with Linear algebra Elementary calculus You must be willing to code a lot! From http://www.disneyanimation.com/technology/publications# By Stomakhin, et al. at Disney Animation Studios

Assignment 1: Demo What you will take away 1. Math drives CS 2. How to use math to create pictures 3. Basics on Image manipulation 4. Intro to coding interactive tools 5. How to read research papers

Where does this course fit? 320 has some thematic overlap with 418 or 2503, BUT the underlying math is the same (i.e. taking 320 first will most definitely help!) Where does this course fit? At the intersection of computer vision and computer graphics because often real photos are the input! Video examples Slavenly et al, SIGGRAPH 06 Phototourism: Organizing photo collections in 3D

Phototurism Topic 0 Intro to Visual Computing What is visual computing? Is this course for me? Course topics

Course Topics Principles Computational and mathematical principles for creating, capturing, analyzing and manipulating 2D photos Case Studies Applying these principles to the design of specific image manipulation tools (mostly for special effects) Visual Programming and Numerical Computing (in tutorials) Learning to use software tools and C++ libraries for graphical user interface design. Implementing math operations on images Visual Computing Principles Imaging essentials (~2 weeks) Understanding pixel intensity and color Image representation and transformation Image 2D array of pixels Image continuous 2D function (4 weeks) Image N-Dimensional vector (2.5 weeks) Hierarchical image representations (2 weeks) Image matching and transformation (3 weeks)

Visual Programming Basic tools we will use FLUID and fltk GUI toolkit (by Digital Domain) VXL library for image analysis and numerical computing (by a major consortium of computer vision researchers) All these tools are under GNU license and are completely portable (Linux/Windows/OSX) Topic 1 Image Formation and High Dynamic Range (HDR) Photography Imaging sensors (in grayscale) High Dynamic Range potography Digital image formation The camera response function Computing the camera response function

The Digital Single-Lens Reflex Camera From http://www.digishop.org/ The Imaging Sensor An array of photo-sensible cells (usually 2- dimensional), each corresponding to one pixel (picture element) Light falling onto a cell induces voltage that depends on the intensity of the incident light Voltage is the converted to a digital signal within a sensor specific range (in a 8-, 10-or 14-bit number)

The Imaging Sensor An array of photo-sensible cells (usually 2- dimensional), each corresponding to one pixel (picture element) Light falling onto a cell induces voltage that depends on the intensity of the incident light Voltage is the converted to a digital signal within a sensor specific range (in a 8-, 10-or 14-bit number) What does the value of a pixel mean? Pixel values in an image are clearly related to the amount of incoming light, but how exactly? And crucially, why do we care about this relation?

The Imaging Sensor An array of photo-sensible cells (usually 2- dimensional), each corresponding to one pixel (picture element) Light falling onto a cell induces voltage that depends on the intensity of the incident light Voltage is the converted to a digital signal within a sensor specific range (in a 8-, 10-or 14-bit number) Topic 1 Image Formation and High Dynamic Range (HDR) Photography Imaging sensors (in grayscale) High Dynamic Range potography Digital image formation The camera response function Computing the camera response function

One major difficulty in photography Scenes with very bright and very dark areas are hard to capture High-Dynamic Range Photography See flickr.com for many examples

High-Dynamic Range Photography The 8-bit values at each pixel in all photos are converted to a single floating point value High-Dynamic Range Photography The 8-bit values at each pixel in all photos are converted to a single HDR floating point value To do this, we must know how the sensor cells convert light to 8- bit values. Why?

High-Dynamic Range Photography Question: Suppose we take two photos A and B with exposure intervals tand ½ t. The intensity at pixel (x,y) will satisfy: a) A(x,y) = 2 B(x,y) b) A(x,y) = ½ B(x,y) c) A(x,y) = B(x,y) d) none of the above High-Dynamic Range Photography Question: Suppose we take two photos A and B with exposure intervals tand ½ t. The intensity at pixel (x,y) will satisfy: a) A(x,y) = 2 B(x,y) b) A(x,y) = ½ B(x,y) c) A(x,y) = B(x,y) d) none of the above (most likely!)

Topic 1 Image Formation and High Dynamic Range (HDR) Photography Imaging sensors (in grayscale) High Dynamic Range potography Digital image formation The camera response function Computing the camera response function Digital Image Formation: Basic Steps Adapted from Debevec et al, SIGGRAPH 97

Digital Image Formation: Basic Steps Adapted from Debevec et al, SIGGRAPH 97 Digital Image Formation: Basic Steps Photons/sec received at the cell Adapted from Debevec et al, SIGGRAPH 97

Digital Image Formation: Basic Steps Photons/sec received at the cell Total photos received at cell dringexposure time ( t) Adapted from Debevec et al, SIGGRAPH 97 Digital Image Formation: Basic Steps Photons/sec received at the cell Total photos received at cell dringexposure time ( t) The Camera response function f Z=f(E t) Adapted from Debevec et al, SIGGRAPH 97

Digital Image Formation: Basic Steps Pixel value The Camera response function f Z=f(E t) Irradiance Exposure time Adapted from Debevec et al, SIGGRAPH 97 Topic 1 Image Formation and High Dynamic Range (HDR) Photography Imaging sensors (in grayscale) High Dynamic Range potography Digital image formation The camera response function Computing the camera response function

Example Camera Response Functions From Grossberg & Nayar, CVPR 2003 Example Camera Response Functions (Z/255) x Max # of photons that produce pixel intensity zero Min # of photons that produce pixel intensity 255 From Grossberg & Nayar, CVPR 2003

Application: High-Dynamic Range Photography Captured photos 30 s 20 s 10 s Merged HDR Photos 1/100 s 1/500 s 1/1000 s Application: High-Dynamic Range Photography Captured photos 30 s 20 s 10 s Basic merging procedure: For each pixel (x,y) For each photo j if (x,y) is not saturated in j Convert pixel intensity Z j (x,y) to linear irradiance measurement Ej(x,y) Merge E 1 (x,y), E 2 (x,y), into one floating point value 1/100 s 1/500 s 1/1000 s

High-Dynamic Range Photography Computing Response functions and HDR photos Hacked camera firmware for Canon Powershots Topic 1 Image Formation and High Dynamic Range (HDR) Photography Imaging sensors (in grayscale) High Dynamic Range potography Digital image formation The camera response function Computing the camera response function

Computing The Camera Response Function General Procedure: 1. Collect photos for several exposure intervals t 1, t 2, without moving the camera 2. Process photos to compute f Problem: For a given photo we know t j and Z but we have no way of measuring E Computing The Camera Response Function Idea #1: Invert and use logs Z = f(e t) f -1 (Z) = E t log f -1 (Z) = log (E) + log t Log-Inverse response fn: g(z) = log(e) + log( t) The log-inverse response function g(z) = log E + log t g(3) z 1 2 3 256

Computing The Camera Response Function Idea #2: How many quantities must we observe to fully determine g()? The log-inverse response function g(z) = log E + log t g(3) z 1 2 3 256 Computing The Camera Response Function Idea #2: How many quantities must we observe to fully determine g()? Ans: 256 (g(0), g(1),, g(256)) The log-inverse response function g(z) = log E + log t g(3) z 1 2 3 256

Computing The Camera Response Function log t log 4 log 2 Approach #1: One pixel, many images 10 15 z (value of The log-inverse response function g(z) = log E + log t g(3) 1 2 3 256 z Computing The Camera Response Function Approach #1: One pixel, many images 1. Finely adjust tin range (1/1000s, 30 s) 2. Plot log tas a function of the pixels observed intensity. But log E is unknown! Does it matter? The log-inverse response function g(z) = log E + log t z 1 2 3 256

Computing The Camera Response Function Approach #1: One pixel, many images What are the problems with this approach? Need lots of images Wasted pixels (we use only one out of thousands in the photo) Possible tvalues are often determined by the camera The log-inverse response function g(z) = log E + log t z 1 2 3 256 Computing The Camera Response Function Approach #2: Few pixels, few images? different for each pixel g(z) = log E + log t Same for all pixels Same for all pixels in a photo Samples of g(z) for multiple pixels and photos 1 2` 3 256

Computing The Camera Response Function Approach #2: Few pixels, few images? To compute the complete function we must estimate the relative vertical shift of the g(z) function from individual pixels Samples of g(z) for multiple pixels and photos Computing The Camera Response Function Approach #2: Few pixels, few images? observed intensity (known) exposure interval (known) g(z ij ) = log E i + log t j i th pixel j th image Irrandianceof i th pixel (unknown) Goal: Compute g(0), g(1),, g(255) and log E i Given N pixel intensities in P images with known t j

Computing The Camera Response Function Simplifying the notation: g(z ij ) = log E i + log t j becomes gz ij - e i = δ j Example: Pixel 100 in the 5 th photo has intensity 125, denoted as Z 100,5 =125. The associated equation is: g 125 e 100 = δ 5 Computing The Camera Response Function Approach #2: Few pixels, few images? g(z ij ) = log E i + log t j We know the above equation is true for all pixels and for all images. This means we have NP equations with N+256 unknowns (one equation per pixel per photo)