Public Lab Research note


How to calibrate infragram's Mobius camera for get accurate NDVI index?

by Parth | January 25, 2016 09:33 25 Jan 09:33 | #12613 | #12613

Hello,

I have purchased infragram plant camera for find NDVI index of plant. I share camera's information link for your reference. http://store.publiclab.org/collections/diy-infrared-photography/products/infragram-point-shoot-plant-cam

I captured various plant images using these camera for finding NDVI Index.I converted these captured images into NDVI images using infragram's python scripts,fiji software utilities and infragram 's on-line web server utilities,But I could not get accurate NDVI index for plant.

I share captured image and NDVI image for your information.

brinjal_3.JPG

captured image of infragram 's plant camera (original image)

ndvi_brinjal_3.jpg

python script converted NDVI image

brinjal_3.png

Capture.JPG

Infragram's on-line web server converted NDVI image.

I shared the below NDVI conversion utilities 's links for your reference. https://github.com/p-v-o-s/infrapix http://infragram.org/sandbox/legacy/

I am also get the different different NDVI index of same image using different different NDVI conversion utilities.

I found some suggestion like calibrate the camera on public lab's forum discussion . But my queries are, 1)How to calibrate infragram plant camera ? 2)why i get different different NDVI index of same image ?

Any help would be greatly appreciated.


24 Comments

Hi Parth,

There are a lot of options at infragram.org, so it's not easy to find the most sensible way to process a photo. I made the NDVI image below in the "standard" version, not the "legacy" or the "WebGL" version. I think you used the WebGL version, but the "fastie colormap" did not work for me in the WebGL version. The standard version did not display a color key. Instead of (B-R)/(B+R), I entered ((B-R)/(B+R))+0.09, then clicked run and selected the fastie colormap. The added 0.09 was needed because your photo is not exposed perfectly (few photos are).

brinjal_3_Infgrm.JPG
Above: Made at infragram.org. The color table used is the one in the image below.

The NDVI image below was made with the Photo Monitoring plugin for Fiji. I used the defaults for a red filtered camera and the NDVI_VGYRM color table. Then I added 12 to the NDVI value in each pixel (Process/Math/Add).

brinjal_3NDVI.JPG
Above: Made in Fiji.

Calibrating the process requires placing targets of known reflectance in your photos and using the process here: https://publiclab.org/notes/nedhorning/07-22-2015/introducing-the-calibration-plugin-for-imagej-fiji

Chris

Reply to this comment...


Hi Chris,

Thank you very much for kind response.

I converted various plant's images into NDVI index as per your suggestion for infragram standard version.I get better result for these images.But i didn't understand how to you have a calculate 0.09 value in below equation. ((B-R)/(B+R))+0.09

I have some further quires regarding your suggestion.So,I requested to addressing them,

1) Is there any other calibration method or software available for calibration of infragram plant camera ? 2) Can you provide me detail of above calculation ?

Please let me know if you need more information from my side.

Thanks & regards,

Parth

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Parth,

Most photos taken by DIY NDVI cameras cannot be converted directly to NDVI because the ratio of the visible and NIR values does not compute to proper NDVI values. Generally, the NDVI values are too low because the visible and NIR values are too similar. One easy way to shift the NDVI values into the proper range is to add a constant to all of them. The constants I added to make your NDVI images are numbers I made up so the NDVI results would look good to me. They are fudge factors. A better way to adjust the NDVI values is to adjust the visible and NIR values before computing NDVI using the calibration method Ned is working on: https://publiclab.org/notes/nedhorning/07-22-2015/introducing-the-calibration-plugin-for-imagej-fiji. I don't know of other software that can do this.

The constants I added are different at infragram.org and with Fiji. With Fiji, the NDVI values are scaled between 0 and 255 (I added 12). At infragram.org, I guess the NDVI values are scaled between -1 and +1 (I added 0.09).

Chris

Reply to this comment...


Hi Chris,

Thanks for your response.

I read the data sheet of rosco fire filter #19 and i think this filter is block blue and green light upto 550nm wave length.So,if this filter is block the blue and green light than which light information is contain by blue and green band ?

rosco-fire-r19-as-blue-light-filter-spectral-data.jpg

Rosco fire filter data sheet.

I have below quires related to filter.so i requested to addressing them, 1) Why i am get the red and blue light in previous post's upload image if this filter is block the blue and green light? 2) Is it possibility to blue or green band contains infra-red light ?

Please let me know if you need more information from my side.

Thanks and regards,

Parth

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Parth,

Red filters like the Rosco #19 block most blue and green light, so the blue and green channels cannot receive the colors that they would normally capture. In an Infragram camera (with IR block filter replaced with the red filter) those two channels receive mostly NIR light and capture images of the NIR reflected from the scene.

Although the blue and green channels are capturing mostly NIR light, the camera does not know this. The camera's computer continues to process photos based on the assumption that the blue and green channels captured blue and green light, respectively. The colors in the jpeg photo produced by the camera are a function of the relative brightness of the three color channels. When the brightness of two of the channels is unrelated to the brightness of the visible colors, the color balance of the final photo will be completely artificial.

Although no blue light reached the sensor, if the blue channel is brighter that the other two channels, the jpeg photo will look blue. The custom white balance setting of the Mobius Infragram exaggerates the brightness of the blue channel causing areas of high NIR reflectance to appear blue. Areas in the scene that reflect more red light than NIR light might appear reddish, regardless of the natural color of the area.

Chris

Reply to this comment...


Hi Chris,

Thanks for your quick response.

I am little confusing with the NIR light bandwidth because of NIR light's band width is 700 to 900 nm and blue light's band width is the 450 to 495 nm.so can we say like these NIR band is super impose on the blue and green band or NIR light is available on visible light band width.

Query, 1) How i am get NIR light in blue light's band if both light's wave length is different ?

Regards,

Parth

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Parth,

Good question. You might think that digital cameras were good examples of intelligent design, but they are more like living organisms which are cobbled together from the parts available in ancestral designs. The pixels that make up the blue channel are sensitive to blue light but not green or red. This is accomplished by putting a tiny blue filter over each individual pixel. It was too hard to find filter material that also blocked NIR, so a separate filter covers the entire sensor to block only NIR. When we remove that IR block filter, each pixel becomes sensitive to NIR as well as its primary color (R, G, or B). So the blue pixels record blue and NIR, but nothing else.

NikonD200_SpectralResponseCCD.jpg
Above: One example of the sensitivity of the three color channels in a camera from which the IR block filter has been removed. The blue channel (blue line) is sensitive to blue light (400 to 500 nm) and also NIR light (800 to 1000 nm). Each camera make and model may differ.

When we then add a new red filter that blocks all blue and green, the blue pixels only receive NIR light.

If digital cameras were built in a more straightforward and intelligent way, we would not be able to use them to analyze plant health.

Chris
The KAPtery

Reply to this comment...


Hi Chris,

Thank you very much for elaborate me more about filter and also for clear up my confusion.

I read your research note regard the Dual bandpass filter. I shared below link for your information.

https://publiclab.org/notes/cfastie/11-24-2015/dual-band-pass-filters

I want to capture the image after placing this dual band filter.I have infragram 's point & shoot,OV5642 and OV2640 camera. I below shared these camera detail link for your reference.

http://www.arducam.com/camera-modules/2mp-ov2640/ http://www.arducam.com/camera-modules/5mp-ov5642/

So,please suggest me camera module from the above which can give better result for this filter.

Please let me know if you need more information from my side.

Regards,

Parth

Reply to this comment...


Parth,

The dual band dichroic filters are very expensive and seem to work best if installed inside the camera. They should provide better results than inexpensive dye-based filters, but only if all the other variables are controlled. If you are not going to calibrate the process with targets in the photos, the benefits might not be realized. I don't know if the Arduino cameras allow manual control of white balance. If not then calibration might be required to get meaningful results.

Chris
The KAPtery

Reply to this comment...


Hi Chris,

I captured the images using the infra gram's point & shoot camera.I converted these captured images into NDVI image using python script.I changed in python script 's NDVI equation from (R - B) /( R + B) to (B -R)/(B+R).

I shared the python code's below link for your reference.

https://github.com/p-v-o-s/infrapix

arenda_(3).JPG

Infragram point & shoot camera 's captured image.

NDVI_123.jpg

Using python script converted NDVI image

My quires related to NDVI index are below. 1) Can i consider this NDVI image as a good NDVI image ? 2) Can i use this NDVI index information for calculating the plant health ?

Regards,

Parth

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


The NDVI image looks good. Are they castor beans? The plants have higher NDVI values than soil or sky, but within the plants, variation in NDVI is also a function of shade and exposure. So you must account for those variables to compare the health of two plants.

Chris
The KAPtery

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Hi Chris,

Yes ,they are the castor beans.

I converted previously discussed image into NDVI image using infragram 's web server utilities.

download.png

using infragram web server converted images.

Color_Index.jpg

Using fiji software converted NDVI.

My query related NDVI image is below,

Which programme is more reliable for NDVI image conversion from fiji,python script and infargrame's web server ?

Regards, Parth

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Hi Parth,

The three methods of computing NDVI all do the same thing. They do the same math (NIR-VIS)/(NIR+VIS) on each pixel. They are equally reliable if you know how to use them.

  • The colors assigned to the NDVI values may differ among the three methods.
  • Only the Photo monitoring plugin for Fiji allows you to stretch the histogram.
  • Fiji has powerful tools for post processing the NDVI images.
  • Infragram.or does not require any software on your computer other than a browser.

Chris
The KAPtery

Reply to this comment...


Hi Chris,

I replaced IR filter with rosco fire filter#19 in OV5642 camera module to replicate infragram‘s point & shoot camera.I captured images for check the plant health. So,I converted these images into NDVI images using python script.

white_balance_edited.jpg

OV5642 camera module 's captured image

pyhton_script_3.jpg

Using python script's converted NDVI image

Queries, 1) What are the point i have to take care when i capture the image? 2) Please suggest me some point which are helpful to make NDVI index and NDVI image better.

Please let me know if you need more information from my side.

Regards, Parth

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Hi. I recently purchased an "infragram plant cam" and am finding myself confused (a common phenomenon). So, I take an image and read it in to Octave or Matlab and get three channels corresponding to R, G and B but the channels are actually corresponding to NIR R and G? Then when I calculate NDVI the formula is actually (NIR-G)/(NIR+G), correct?

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


berkelha,
Assuming your camera has a red filter, instead of RGB it will have RGN. The green channel will be mostly NIR, so it's really RNN, but the blue channel probably has the purest NIR signal. NDVI is (N-R)/(N+R) or in this case (B-R)/(B+R).

Chris

Reply to this comment...


Perfect, thanks for the quick response. Data looks great.

Reply to this comment...


If i have Mobius infragram cam with red filter, what kind of image will i receive? RGN image?. And after this (Photo Monitoring Plugin), will i recive NDVI?

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


Yes, a camera with a red filter replacing the IR block filter will make RGN photos. The green channel is probably mostly NIR, so it is really RNN. The red channel is really red plus NIR, so the photo is really (R+N)NN. The Photo Monitoring plugin can make a facsimile of NDVI from such photos, especially if the white balance of the camera exaggerates the brightness of the blue channel or if the process is calibrated.

Chris

Reply to this comment...


If the green channel is probably mostly NIR, I must choise in Photo Monitoring Plugin: - Chanel for Red band to create Index: RED - Chanel for IR band to create Index: GREEN ?

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


I usually use the blue channel for NIR because it is probably less contaminated with other visible light, but the green channel could work better with some cameras and filters.

Reply to this comment...


I use Mobіus. How to write better? Infrared image or RGN (RNN) in the description of the image in article. Thanks

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


I use Mobіus. I recive Infrared image, NIR image or RGN (RNN) image?

Is this a question? Click here to post it to the Questions page.

Reply to this comment...


The Mobius camera with its IR filter replaced with a red filter produces a photograph that could be called an RNN photograph. The blue channel of that photograph could be called a near infrared (NIR) photograph.

Reply to this comment...


Login to comment.