Lensless Single Pixel Cameras
So, a while back I stumbled across this article. To summarize it, Bell Labs built a single pixel camera that needs no lenses to operate… pretty cool concept right? I immediately wanted to build one.After doing some research, I realized the concept was pretty simple: place an array of selectively-blackable windows in front of a light sensor like a photodiode, send random patterns to the windows, record the light level at the photodiode, repeat a few thousand times, and all of a sudden you’re left with a giant system of linear equations, the solution to which is the image the camera “sees”.The problem arises when you try to solve this system. The system is HUGE, so there’s no way you could solve it through gaussian elimination, so instead we solve the system through minimizing the system’s l1 norm, and a least-squares method.As I’m in Princeton for my summer job at PPPL, I’m lacking my workshop and tools, so I couldn’t actually build a single pixel camera. Instead I did the next best thing. I programmed a simulation of one in Matlab.I used this awesome l1-minimization system solving library called l1_ls from Stanford, and after writing some Matlab code, I was able to “take a picture” of a 256×256 pixel image. Below is the reconstructed image, taken from 10,000 “exposures” of the virtual single pixel camera....and the original image:It’s not much, but it’s something. It’s a start. The next step on the-programming side is to use Hadamard matricies rather than pseudorandom matricies to generate the sampling patterns. Other groups have done this, and I’m hoping it will help “distribute the sparsity” of the sampling matricies, resulting in a better final image. The step after this is to build one… and maybe one that works in the IR, UV, microwave, or x-ray spectrum.Here are some virtual pictures of an image of a slumbering cat that I found in Beijing. The pictures were generated with the single pixel lensless camera simulation I programmed. Here’s the original image, scaled and converted to greyscale:
First, 5000 random observations of the original 128 pixel x 128 pixel image.Now, 10000 observations of the original image:Now, 15000 observations:16384 observations (same as the number of pixels in the original image)And lastly, a totally-overkill 20000 observations:It’s cool to see how the image quality increases with increased sampling.