The Frankencamera: an experimental platform for computational photography

  • Authors:
  • Andrew Adams;David E. Jacobs;Jennifer Dolson;Marius Tico;Kari Pulli;Eino-Ville Talvala;Boris Ajdin;Daniel Vaquero;Hendrik P. A. Lensch;Mark Horowitz;Sung Hee Park;Natasha Gelfand;Jongmin Baek;Wojciech Matusik;Marc Levoy

  • Affiliations:
  • MIT;Stanford University;Stanford University;Nokia Research Center;NVIDIA Research;Stanford University;Tübingen University;University of California Santa Barbara;Tübingen University;Stanford University;Stanford University;University of Labrador;Stanford University;MIT CSAIL;Stanford University

  • Venue:
  • Communications of the ACM
  • Year:
  • 2012

Quantified Score

Hi-index 48.22

Visualization

Abstract

Although there has been much interest in computational photography within the research and photography communities, progress has been hampered by the lack of a portable, programmable camera with sufficient image quality and computing power. To address this problem, we have designed and implemented an open architecture and application programming interface (API) for such cameras: the Frankencamera. It consists of a base hardware specification, a software stack based on Linux, and an API for C++. Our architecture permits control and synchronization of the sensor and image processing pipeline at the microsecond timescale, as well as the ability to incorporate and synchronize external hardware like lenses and flashes. This paper specifies our architecture and API, and it describes two reference implementations we have built. Using these implementations, we demonstrate several computational photography applications: high dynamic range (HDR) viewfinding and capture, automated acquisition of extended dynamic range panoramas, foveal imaging, and inertial measurement unit (IMU)-based hand shake detection. Our goal is to standardize the architecture and distribute Frankencameras to researchers and students, as a step toward creating a community of photographer-programmers who develop algorithms, applications, and hardware for computational cameras.