Image and Depth From A Conventional Camera With A Coded Aperture
Image and Depth From A Conventional Camera With A Coded Aperture
Image and Depth From A Conventional Camera With A Coded Aperture
Lens aperture
Lens
Camera
sensor
Point
spread
function
Focal plane
Lens aperture
Object
Lens
Camera
sensor
Point
spread
function
Focal plane
Lens aperture
Object
Lens
Camera
sensor
Point
spread
function
Focal plane
Lens aperture
Object
Lens
Camera
sensor
Point
spread
function
Focal plane
Lens aperture
Object
Lens
Camera
sensor
Point
spread
function
Focal plane
ill
po
s
In focus
ed
Challenges
Hard to discriminate a smooth scene from defocus blur
Out of focus
Hard to undo defocus blur
Input
Key contributions
Exploit prior on natural images
- Improve deconvolution
- Improve depth discrimination
Natural
Coded
Unnatural
Related Work
Depth from (de)focus
e.g. Pentland, Chaudhuri, Favaro et al.
Blind Deconvolution
e.g. Kundur and Hatzinakos , Fergus et al, Levin
Never recover both depth AND full resolution image from a single image
Except: Veeraraghavan, Raskar, Agrawal, Mohan, Tumblin SIGGRAPH07
optimize debluring while we optimize depth discrimination
yy f k x
Input defocused
image
Local
sub-window
Calibrated
blur kernels
at depth k
Sharp
sub-window
Depth k=1:
y fk x
Depth k=2:
y fk x
Depth k=3:
y fk x
Overview
Try deconvolving local input windows with different scaled filters:
Somehow: select best scale.
?
?
?
Larger scale
Correct scale
Smaller scale
Challenges
Hard to deconvolve even
when kernel is known
Input
Hard to identify
correct scale:
?
?
?
Larger scale
Correct scale
Smaller scale
f x y
f x y
Solution 1:
Solution 2:
gradient
Unnatural
| f x y | i (xi )
x arg min
Convolution error
Derivatives prior
+
Low
+
High
Input
Richardson-Lucy
(x) x
(x) x
0.8
spread gradients
localizes gradients
Gaussian prior
Sparse prior
Input
Richardson-Lucy
(x) x
(x) x
0.8
spread gradients
localizes gradients
Gaussian prior
Sparse prior
Recall: Overview
Try deconvolving local input windows with different scaled filters:
Larger scale
Correct scale
Smaller scale
?
?
?
Conventional
aperture
Our coded
aperture
Object
Lens
Camera
sensor
Point
spread
function
Focal plane
Aperture pattern
Object
Camera
sensor
Point
spread
function
Focal plane
Aperture pattern
Object
Camera
sensor
Point
spread
function
Focal plane
Aperture pattern
Object
Camera
sensor
Point
spread
function
Focal plane
Aperture pattern
Object
Camera
sensor
Point
spread
function
Focal plane
Aperture pattern
Object
Camera
sensor
Point
spread
function
Focal plane
Why coded?
Coded aperture- reduce uncertainty in scale identification
Conventional
Larger scale
Correct scale
Smaller scale
Coded
spectrum
Sharp Image
Frequency
Frequency
Frequency
Frequency
Frequency
Spatial convolution
spectrum
spectrum
Frequency
spectrum
spectrum
Sharp Image
spectrum
spectrum
Estimated image
spectrum
spectrum
Estimated image
spectrum
Frequency
Observed image
Frequency
spectrum
Division by zero
spatial ringing
Frequency
Frequency
Frequency
spectrum
Estimated image
spectrum
spectrum
Estimated image
spectrum
Frequency
Observed image
Frequency
Frequency
?
Frequency
spectrum
Frequency
Filter Design
Analytically search for a pattern maximizing discrimination
between images at different defocus scales (KL-divergence)
Account for image prior and physical constraints
Score
More discrimination
between scales
Less discrimination
between scales
Conventional
aperture
Our solution:
No zero frequencies:
+
-
+
+
Depth results
x arg min | f x y |2
Convolution error
i (xi )
Derivatives prior
Input
Regularized depth
Input
Regularized depth
Input
Regularized depth
Input
All-focused
(deconvolved)
Close-up
Original image
All-focus image
Input
All-focused
(deconvolved)
Close-up
Original image
All-focus image
Nave sharpening
50mm f/1.8:
$79.95
Cardboard:
$1
Tape:
$1
Depth acquisition:
priceless