What is a Computational Camera? |
 |
The Traditional Camera:
Over the last century, the evolution of the
camera has been truly remarkable. However, it is interesting to note
that throughout this journey the principle underlying the camera has
remained the same, namely, the camera obscura. The traditional camera has a detector
(which could be film or solid-state) and a lens which only captures
those principal rays that pass through its center of projection, or
effective pinhole. In other words, the traditional camera performs a
very special and restrictive sampling of the complete set of rays,
or the light field, that resides in any real scene.
Computational Cameras:
If a camera can sample the light field in a way that is radically
different from the traditional camera, new and useful forms of visual information
can be created. This brings us to the notion of a computational
camera, which embodies the convergence of the camera and the computer. It uses new
optics to map rays in the light field to pixels on the detector in
some unconventional fashion. In all cases, because the captured image is optically
coded, interpreting it in its raw form might be difficult.
However, the computational module knows everything
it needs to know about the optics. Hence, it can decode
the captured image to produce new types of images that could
benefit a vision system - either a human observing the
images or a computer vision system that analyzes the images to interpret
the scene. Computational cameras can be designed to explore a variety
of imaging dimensions in ways that are difficult to do with the
traditional camera. The imaging dimensions include spatial resolution,
temporal resolution, spectral resolution, field of view, dynamic range
and depth.
Several academic and industrial research teams around the world are
developing a variety of computational cameras. In addition, there are
some well-established imaging techniques that naturally fall within the
definition of a computational camera. A few examples are integral
imaging for capturing a scene's 4D light field, coded aperture imaging
for enhancing an image's signal-to-noise ratio, and wavefront coded
imaging for increasing the depth of field of an imaging system. Finally,
several research teams are also developing computational image detectors that
perform image sensing
as well as early visual processing.
Programmable Imaging:
Computational cameras produce images that are
fundamentally different from the traditional perspective image.
However, the hardware and software of each of these devices are
designed to produce a particular type of image. The nature of this
image cannot be altered without significant redesign of the device.
This brings us to the notion of a programmable imaging system, which uses
an optical system for forming the image that can be varied by a
controller in terms of its radiometric and/or geometric
properties. When such a change is applied to the optics, the
controller also changes the software in the computational module. The
result is a single imaging system that can emulate the functionalities
of several specialized ones. Such a flexible camera has two major
benefits. First, a user is free to change the role of the camera based
on his/her needs. Second, it allows us to explore the notion of a
purposive camera that, as time progresses, always produces the visual
information that is most pertinent to the task.
Programmable Illumination (A Smarter Flash):
It is interesting to note that the basic capability of the camera flash has
remained essentially the same since it first became commercially available in the 1930s.
It is used to brightly
illuminate the camera's field of view during the exposure time of the
image detector. It essentially serves as a point light source that
illuminates everything within a reasonable distance from the
camera. Due to the significant technological advancements made with respect to digital
projectors, the time may have arrived for the flash to play a more
sophisticated role in the capture of images. The use of a
projector-like source as a camera flash is powerful as it provides
full control over the 2D set of rays it emits. It enables the camera
to project arbitrarily complex illumination patterns onto the scene,
capture the corresponding images, and compute information
regarding the scene that is not possible to obtain with the
traditional flash. In this case, the complete imaging system can still
be thought of as a computational camera where captured images are optically coded
due to the patterned illumination of the scene.
|
Publications
"Computational Cameras: Redefining the Image," S. K. Nayar, IEEE Computer Magazine, Special Issue on Computational Photography, pp.30-38, Aug, 2006. [PDF] [bib] [©]
|
Related Projects
Computational Camera Projects
|
|