Augmenting Human Vision With Polarimetric Cameras

Light is just a wave, and the wavelength of light determines its color and determines if it can cook food like microwaves, or if it can see through skin like x-rays. There’s another property of waves human’s don’t experience much: polarization, or if the light wave is going up and down, side to side, or anywhere in between.

[David Prutchi]’s project for the Hackaday Prize was like many projects – a simple, novel idea that’s easy and relatively cheap to implement. It’s a polarimetric camera meant to see what humans can’t. By seeing the world in polarized light, the DOLPi can see landmines, cancerous tissue, and air pollution using only a Raspberry Pi and a few Python scripts He gave a talk at this year’s Hackaday SuperConference about polarization cameras and the DOLPi project. After enjoying the video, join us after the break for more details.

While cameras and the human eye can see different wavelengths or colors of light, they can’t easily detect polarization. [David] did remind us that the human eye is capable of detecting polarization, due to a phenomenon called Haidinger’s brush. He did, however, challenge everyone to tell the difference between two pieces of polarizing film. No one took him up on that challenge.

While traditional cameras and the human eye can’t easily see polarization, bees use polarization to find flowers, and cuttlefish use polarization to find prey. The uses for a polarization camera range from finding landmines, seeing underwater, detecting cancerous tissue, and seeing airborne pollutants. It’s a fascinating range of uses from something as simple as a cell phone camera, servo, and a few sheets of polarization film, and DOLPi makes it real.

A car, as seen with polarized light mapped to colors
A car, as seen with polarized light mapped to colors

The hardware part of the DOLPi is actually pretty simple – it’s really just a Raspberry Pi, camera module, and either an electro-optic polarization modulator (somewhat pricey), or a servo and paper disk with sheets of polarization film taped on at different angles (very inexpensive).

On the software side of things, [David] has a Raspberry Pi take a picture with a camera module, change the polarization filter, take another picture, and eventually combine all of these images into a false-color image with different colors mapped to different polarizations of light.

It’s a relatively simple project – anyone can build a polarization camera and run a few bits of software. But it has the potential to make a huge impact with a lot of great humanitarian uses, seeing things the human eye cannot.

30 thoughts on “Augmenting Human Vision With Polarimetric Cameras

  1. Nice! Should be pretty easy to make a filter that screws onto DSLR objective and has a small stepper to rotate a polarization film. Would just need some way to detect when exposure happens so that it can rotate to next angle.

  2. I’m all for tinkering but I’m not sure why one needs to tag it with some bullshit “make the world a better place” theme. Polarization imaging is not going to revolutionize demining, simply because you cannot rely on a large piece of flat plastic being exposed (and already visible).
    It’s a cool gadget, but this artificially added humanitarian motif makes me sick.

    1. Look at 20:20 in the video for a comparison of land mines seen with an without polarization. If this means an inexpensive means to do a cursory scan for mines in war torn areas I think that is an amazing contribution to the good of the world.

        1. Well, mostly because the military is not concerned with humanitarian efforts. And they would be the ones most likely to use such tech. They would also be the ones to remain most closed mouth about it and the slowest to uptake it.

          1. They probably aren’t concern but they wouldn’t be the target for cheap tech that works worse than what they have. No, the hudreds of demining humanitarian organizations that have been researching a plethora of ways for decades would be interested in cheap tech that has also been around for decades before anyone else. Probably but again it’s irrelevant.

    1. The electro-optic modulator that I used is a liquid crystal panel from an auto-darkening welding mask filter ($10 on eBay), with one of the polarizers removed. In essence, the liquid crystal panel acts as a single large “pixel”. If you can drive all pixels in the LCD ON/OFF at the same time, then you would be doing the same as my hack.

      Please take a look at the final version of the DOLPi project’s whitepaper at



  3. Finally, a tech question: I don’t think so. An LCD has 2 polarizing layers 90 degrees out of phase. The liquid between is either all jumbled up which blocks all light or aligned in an arrangement which twists the light’s polarization allowing it to pass. So no light or polarized light. I don’t think there’s a way to pass all light. To answer your question specifically: If you removed one of the polarizing layers, I think you should end up with either polarized light or polarized light twisted 90 degrees depending on if the power it turned on. Not much difference to the human eye.

    1. If the light first passes through the crystal layer of the lcd and then through a polarizing filter then you should be able to rotate the filtered polarisation between 0 and 90 degrees depending on the gray level send to the lcd, should probably use a black and white TN lcd.

      The problem is that LCDs let through only a little bit of light so that wil ruin the performance of your image sensor behind it or you need to use a very long exposure. at that point you could also attach a piece of polarisation filter to a servo and use that to automate the recording.

    1. Hi Harvey,
      There are a number of ways of using multiple cameras to do this. Some are described in the final version of the DOLPi project’s whitepaper at
      I am trying to modify a commercial 3-CCD camera replacing the dichroic beamsplitter (that separates RGB) by a non-polarizing beamsplitter and 3 polarization filters. The expected result is that the composite video output will already be encoded in polarization space (instead of RGB), making it very easy to post-process. The issue has been the mechanical assembly of the CCDs onto the beamsplitter assembly.
      As an intermediate step, I bought a 3-vidicon camera with a much simpler and larger beamsplitter assembly that I plan to modify when I get some time to play. The setup is also explained in the paper.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.