什么是NDVI?
首先,NDVI代表归一化差异植被指数。这听起来很花哨,但这实际上只是衡量植物健康的一种高级方法。NDVI摄像机使用可见光和近红外 (NIR) 光捕获图像。健康的植物反射更多的近红外光并吸收更多的可见光,而生病的植物反射更少的近红外光。通过比较这些反射,NDVI相机可以确定哪些植被生长旺盛,哪些植物需要看医生了。
NDVI如何工作?
让我们把它分解,不要太令人讨厌。这里的基本思想:
1. 捕获: NDVI摄像机捕获可见光 (我们看到的颜色) 和近红外 (我们看不到) 波长的光。
2. 计算: 相机使用公式计算图像中每个像素的NDVI值。公式为:
visible = cv2.imread('color-image.png')
nir = cv2.imread('nir-image.png')
# Only get red color from the BGR frame
_, _, band_red = cv2.split(visible)
# Allow division by zero
np.seterr(divide='ignore', invalid='ignore')
diff = nir_frame.astype(float) - band_red.astype(float)
sum = nir_frame.astype(float) + band_red.astype(float)
ndvi = np.divide(diff, sum)
3. 可视化 : NDVI值的范围为-1至 + 1,其中较高的值表示较健康的植被。然后将这些值显示在颜色编码的地图中,从而很容易发现健康区域 (通常是绿色) 和生病区域 (通常是红色或黄色)。
NDVI在农业中哪里有用?
NDVI相机就像你的团队里有一个植物低语者。以下是他们如何彻底改变你的耕作方式:
- 作物监控: 想象一下,在您的田地上空飞行配备NDVI摄像头的无人机。在几分钟之内,你就有了一张详细的植被生长健康情况分布地图。
- 灌溉管理: 水是宝贵的,NDVI可以帮助您明智地使用它。通过识别干旱或过度灌溉的地区,您可以微调灌溉系统,以确保每株植物都能获得适量的水。
- 肥料优化: 过度施肥与施肥不足一样糟糕。NDVI相机可帮助您在需要的地方精确施肥,减少浪费并提高作物产量。
- 病虫害检测: 及早发现病虫害可以挽救您的农作物。NDVI相机可以在肉眼可见之前发现植物中的虫害区域,以便及时干预。
NDVI相机的硬件
对于NDVI感知,您需要颜色和NIR感知。我将介绍两个选项,它们各有优缺点。
- 单传感器,可切换IR过滤器,我们的 [** OAK模块化相机主控 ](https://www.oakchina.cn/product/oak-ffc-4p/) 相当灵活-您可以轻松地将各种相机模块连接到它,并且开箱即用。oak支持的相机模块之一IMX477,选择带有可切换的IR滤镜,也可以在oakchina店铺咨询我们购买到
通过一个小的修改 (将电缆适配器上的FSIN信号焊接到相机上的IR过滤器引脚),我们能够从 [ 脚本节点 ] 控制IR过滤器 (Script — DepthAI documentation | Luxonis) 与GPIO。
因此,如果将GPIO设置为1,则相机将仅看到可见光。如果将GPIO设置为0,则相机将仅看到NIR光谱。当相机不移动时,NIR和可见光的帧无论多远的距离,都是完全对齐的
script = pipeline.create(dai.node.Script)
script.setScript("""
import GPIO
MX_PIN = 40 # OAK-FFC-4P R5
toggleVal = True
GPIO.setup(MX_PIN, GPIO.OUT, GPIO.PULL_DOWN)
GPIO.write(MX_PIN, toggleVal)
while True:
data = node.io['in'].get()
node.warn('GPIO toggle: ' + str(toggleVal))
toggleVal = not toggleVal
GPIO.write(MX_PIN, toggleVal)
""")
我们制作了 ** 一个简短的脚本 **,让您切换红外滤镜并保存帧,以便您以后可以分析它们。
用oak相机实现的其他同步方案:
1、方案多传感器方法 :
我们的一些客户也采用了多传感器方法,因此一个传感器用于颜色感知,一个传感器用于NIR感知。这里的好处是传感器可以硬件同步 (通过硬件触发信号实现OAK多相机之间的同步拍摄 -),这意味着即使在相机移动时,您也可以同步NIR和彩色帧。
缺点是这些帧没有完全对齐。/
2、使用相机内置的多相机硬件对齐
另一个选择是使用 [ ImageAlign节点 **](/ image_align/),如果知道深度平面 (到作物的距离),它可以对齐来自两个不同传感器的流。
当然,使用我们的带滤光片程序切换的imx477,是一个简单易于实现的方案。大家如果有项目需求,可以尝试。