Phantom 3 Standard + hacked GoPro clone = NDVI

Joined
Feb 23, 2017
Messages
52
Reaction score
14
Age
57
I've been using a P3S with DroneDeploy to create aerial farm maps, first in visual and now in infrared. I hacked an SJcam clone (itself a GoPro clone) to see NIR by removing the hot mirror and adding a red lens filter. The camera is mounted on a gimbal guard brace facing down and it's set to take a picture every two seconds. The NIR camera only has 2mp effective resolution but at 50m altitude, it's good enough to view crop rows.

For image processing, I'm using Fiji (a friendlier release of ImageJ) with the Photo Monitoring plugin to generate NDVI images. Both tools are free and open source. I'm generating NDVI from a single image, either from red + green IR or red + blue IR, because the hacked camera has a fisheye lens and it's hard to get images lined up with the Phantom camera's pictures.

First image shows rows of eggplants surrounded by oil palm trees. Second image shows rice seedlings about a month old.

tmp_6000-oilpalm red green28297638.jpg

tmp_6000-rice red green1486406888.jpg
 
Last edited:
Excellent work.

Thanks for sharing your findings.
 
I've switched to Litchi for flying - it allows easy setting of waypoints and gimbal angles without the clunky edit/upload mission interface on Drone Deploy. The downside is that I have to set picture waypoints manually or set interval shooting instead of having everything automated like on Drone Deploy.

The modified camera is mounted to the left rear of the bird on a gimbal brace with velcro and zip ties. That keeps the camera pointed downwards and it's stable.

IMG_20170317_182918.jpg

As for NDVI images, proper exposure is very important. I'm using a red filter with the red channel for visual and blue for NIR - the red channel cannot be overexposed or I get crazy NDVI values. It's easy to check channel saturation in the Fiji program.

I set the camera to -2 exposure compensation, this works well even in bright tropical sun at noon. For imaging rice fields, I avoid flying when the sun is overhead because of sun glare on the water. For other crops like corn or oil palm, a noon flight would be better.

See sample pix below using PublicLab's VGYRM LUT, the dirt roads and water are white or gray while all photosynthesising materials are green or violet.

NDVI test 4.jpg NDVI test 2.jpg
 
Are you able to use these images for any real-world actions? For instance are you getting data from them that enables the farmers to make changes where-by increasing crop yields?
 
Are you able to use these images for any real-world actions? For instance are you getting data from them that enables the farmers to make changes where-by increasing crop yields?

It's the first season that we're using aerial mapping and NDVI imaging so we're making it up as we go along... NDVI right now tells me what kind of crop yield reduction I might get from poor stand establishment or pest infestation. Hopefully we can spot leaf blights a few weeks before the symptoms show up visually. The NIR data isn't fine grained enough to plan variable rate application for fertilizer.

As for visuals, they're great for checking land leveling and to gauge planter machine performance. We get big yield reductions from patches of sunken, soggy soil combined with haphazard driving of the planters. This is stuff to fix during the next season though.

A technical note: I find I get cleaner NDVI images when shooting before 10am or after 5pm here on the equator. The hacked camera's red channel easily gets overexposed. I would recommend adding a neutral density filter if you're using a cheap hacked camera.
 
Last edited:
  • Like
Reactions: BigAl07
Did you modify the camera yourself? I'm very interested in being able to offer this service.
 
  • Like
Reactions: BigAl07
Did you modify the camera yourself? I'm very interested in being able to offer this service.

Yeah, it's pretty simple to open up the camera and remove the IR block filter. YouTube has a lot of videos on doing this to almost any camera out there, including GoPros and small Canons.
 
Yeah, it's pretty simple to open up the camera and remove the IR block filter. YouTube has a lot of videos on doing this to almost any camera out there, including GoPros and small Canons.

But you need to install an NDVI filter don't you? I've been searching all over google and cant find anything on how to modify and SJCam for NDVI.
 
There are a few YouTube videos on converting the SJ4000 or SJ5000 to full infrared by removing the IR block filter. Then you have to add a red or blue filter (just before the sensor or as a lens filter, your call) to selectively filter out visual and infrared light.

Red filter: red channel for visual light, blue channel for infrared

Blue filter: blue channel for visual light, red channel for infrared

NDVI = (IR - visual)/(IR + visual)

You can get a cheap $10 set of blue and red filters from Public Lab. More restrictive narrowband filters will give a better image but they're pretty expensive. I'm using a red GoPro filter meant for underwater filming while I wait for the Public Lab kit to arrive.
 
  • Like
Reactions: Danoldo
I'm on their site now. How do you determine what filter to use? Red or blue?
 
  • Like
Reactions: BigAl07
Did you modify the camera yourself? I'm very interested in being able to offer this service.

Let me know when you get it working because I'd like to buy one if I don't have one by then.
 
I've been using a P3S with DroneDeploy to create aerial farm maps, first in visual and now in infrared. I hacked an SJcam clone (itself a GoPro clone) to see NIR by removing the hot mirror and adding a red lens filter. The camera is mounted on a gimbal guard brace facing down and it's set to take a picture every two seconds. The NIR camera only has 2mp effective resolution but at 50m altitude, it's good enough to view crop rows.

For image processing, I'm using Fiji (a friendlier release of ImageJ) with the Photo Monitoring plugin to generate NDVI images. Both tools are free and open source. I'm generating NDVI from a single image, either from red + green IR or red + blue IR, because the hacked camera has a fisheye lens and it's hard to get images lined up with the Phantom camera's pictures.

First image shows rows of eggplants surrounded by oil palm trees. Second image shows rice seedlings about a month old.

View attachment 77708

View attachment 77709
I am also very interested in thermography from the skies. this is a great diy and cheap way of doing it!
 
I'm on their site now. How do you determine what filter to use? Red or blue?

Apparently red gives better contrast between healthy and non-healthy leaves. You can try either one depending on your lighting conditions and crops.

I'm seeing some weird results if I use the SJCam around noon with a clear sky. NDVI values seem inverted; checking the histogram shows the red channel having twice the exposure of the blue channel. For better results I try to get a 1:1 ratio by shooting in the morning or evening.
 
I've been using a P3S with DroneDeploy to create aerial farm maps, first in visual and now in infrared. I hacked an SJcam clone (itself a GoPro clone) to see NIR by removing the hot mirror and adding a red lens filter. The camera is mounted on a gimbal guard brace facing down and it's set to take a picture every two seconds. The NIR camera only has 2mp effective resolution but at 50m altitude, it's good enough to view crop rows.

For image processing, I'm using Fiji (a friendlier release of ImageJ) with the Photo Monitoring plugin to generate NDVI images. Both tools are free and open source. I'm generating NDVI from a single image, either from red + green IR or red + blue IR, because the hacked camera has a fisheye lens and it's hard to get images lined up with the Phantom camera's pictures.

First image shows rows of eggplants surrounded by oil palm trees. Second image shows rice seedlings about a month old.

View attachment 77708

View attachment 77709
I have an SJCAM clone with a 2 second setting on it. How do you get it to take the pics without pressing the button?
 
  • Like
Reactions: Danoldo

Members online

Forum statistics

Threads
143,085
Messages
1,467,523
Members
104,963
Latest member
BoguSlav