Standardizing Encoding Elements for Lensless Cameras
Category
Institutions
Data type
Field
Researchers
Description
The goal of this project was to extend an open-source toolkit for lensless imaging called LenslessPiCam. Lensless imaging is a form of computational imaging that shifts the image formation from the lens to the digital post-processing. In other words, instead of a viewable image captured directly at the sensor, a highly multiplied and defocused image is captured at the sensor, and a computational algorithm is needed to reconstruct the image. One may wonder, why add this extra complication? The motivations could be to (1) relax constraints that may be imposed by lenses (e.g. focusing distances, weight, form factor, cost, etc) and/or (2) allow for new imaging applications: compressive imaging, 3D imaging, imaging setups that cannot use lenses (e.g. outside the visible spectrum, large surface areas, unique sensor shapes). As well as the computational algorithm, a key component to lensless imaging is the optical element used to replace the lens, because some form of modulation of the incoming signal is needed to capture enough information of the scene for reconstruction. To this end, typical setups employ a thin, light, and inexpensive mask. However, while there exist established processes and tools for the design of lenses, e.g. with Zemax, there is a lack of such tools for the optical elements for lensless imaging setups. This project addressed the lack of such standardization through the design and implementation (within LenslessPicam) of the following:
- A common Python API for various mask designs typically used in research.
- A common Python API for various sensors, as there is a close link between the sensor and mask (the sensor will define the shape that the mask can take). This API allows a user to define their own sensor.
- Software to simulate the behavior of the above masks in measurement, and reconstruction algorithms to compare their performance.
- Utilities to 3D print amplitude masks.
- A mount that can be 3D printed and attached to the Raspberry Pi HQ sensor, for holding the above masks and setting the distance to the sensor.