Psych221 Camera Design

From Psych 221 Image Systems Engineering
Jump to navigation Jump to search

Imagine that you work for a cell phone company and you have been assigned the task of selecting the components for a camera that will be built into the phone. Because you work for a large vendor, you have parts suppliers calling you every day encouraging you to purchase their devices. Typically, these suppliers offer one component and it is your job to assemble a large variety of components into a working system.

In this project you will be asked to develop a method to make these purchasing decisions. Specifically, you will have to decide on which lens, anti-aliasing and IR filter, sensor, and color filter array you would like to use for your system.

Background

Your choice of optical components, pixel and sensors, and color filters is limited by that annoying thing called reality - not everything can be built. Still, there are many components and many possible combinations, and the choice of one component can have an impact on the selection of other components. For your project, we offer a list that you can choose from to build your camera. These are described here; we also provide some code to make it easy for you to build your model system.

There is a tutorial script that shows you how to set parameters, create different color filter arrays, and evaluate some of the metrics. We hope you will look through this script and use it as a basis for your own experiments.

Relevant script: t_Project_CD.m

List of Components

Optics

Anti-aliasing and IR filter

Pixel and Sensors

Color filters

Relevant scripts:

Test Scenes and Images

The test images should include targets that help you evaluate the quality of your system. There are four general types of targets that you should include. These are:

  • Macbeth (Gretag) Color Checker
  • Slanted Bar target
  • Uniform field
  • A high dynamic range multispectral image.

The first three scenes can be generated using the ISET function sceneCreate.

You can download a set of multispectral images

It is also possible for you to create additional scenes or obtain additional images, if you would like to understand the system you are designing better.

In all cases, to simplify the project, you can assume that the illuminant is a D65 spectral power distribution.

Note: A real system would have to account for the fact that images are acquired under different iluminants. If you address this problem, you will get extra credit.

Relevant scripts:

Post-processing

All processing from the sensor to an image will use a single, simple pipeline. There is no denoising or image sharpening in this pipeline. It is a simple bilinear spatial interpolation of the sensor data and a single color transformation that accounts for the spectral characteristics of the sensors under the D65 illuminant.


Evaluation Methods

The way you decide to evaluate the assembled components is crucial. We will ask you to explain your choice. In choosing the methodology, you must include assessments of

  • Color accuracy
  • Signal-to-noise
  • Sensitivity (low-light) quality and dynamic range
  • Spatial resolution (blur)

There are examples of ISET scripts that calculate each of these metrics. You may decide to test your system using other metrics as well - and perhaps the biggest challenge you will have is to understand the tradeoffs between these different metrics and to compromise between the different optimizations.


Relevant scripts:

Color Accuracy

  • scripts/metrics/s_macbethDeltaE

SNR

  • scripts/sensor/s_sensorSNR.m

Spatial Resolution

  • scripts/metrics/slantedBarMTF.m

Helpful and Friendly Advise

Joyce Farrell (mailto:joyce_farrell@stanford.edu)


TODO

In general, we need a script that illustrates how to set the optics parameters, pixel, color filter array, anti-aliasing filter from the list we have create. This can be based on s_simulateSensor.

Assemble a zip file of multispectral images

Select the possible optics and tell them how to put them in the path. These will all be diffraction limited, but they will be different f-numbers.

Create different anti-aliasing and IR filter possibilities

Set up pixels/sensors sensors - Keep the sensor dye-size fixed, choose pixel sizes, noises,

Redo the online programmer's index of functions