使用PhenoCV-WeedCam进行更智能、更精确的杂草管理
来源:opencv.org
编辑:OAK中国
背景
杂草是农业面临的最大挑战之一,它们与作物竞争可用的养分、水和阳光。
值得一提的是Myriad(著名RGB传感器)的方法已经被用于使用计算机视觉识别和绘制杂草地图,例如,一个简单的绳索除草器(又称 “除草器”)配上一个摄像头,可以控制生长点不受保护的非常小的杂草。随着杂草变得更大、更有侵略性,可能需要更昂贵的方法,而机器人安装的激光器已经取得了一些成效。
然而,到目前为止,还没有人成功地将深度信息与物体识别同时整合起来,用于杂草管理。有了三维信息,例如OpenCV AI Kit with Depth(OAK-D)提供的那种信息,我们可以根据生长点的位置和植物的整体耐寒性来改变控制方法。
监测和测绘杂草生长图是精准可持续农业(PSA)团队的主要目标之一。PSA团队开发工具来监测气候、土壤和农业管理对田间作物生产的影响,目的是改善农民的决策。
我们利用新的OpenCV OAK-D相机和英特尔发行的OpenVINO工具包,开发了一种半自动和非侵入性的方法,用于精确测量田间条件下杂草的高度和覆盖面积。这项目在2020年OpenCV人工智能竞赛中广受好评,并获得了荣誉奖。
以下是我们是如何做到的。
硬件
首先,现场小组前往野外,从横断面收集信息,确定出现的杂草类型,并测量杂草高度和地面覆盖。
注:在项目期间,我们不得不改变使用的相机,因为OAK-D(BW1098OBC)缺货了。取而代之的是,我们使用了一种类似的相机技术,由相同的软件支持(图1),其中的组件没有集成到一块板上。这个版本的相机(BW1098FFC)有三个FFC端口和一个可调节的基线,这允许更短的最小深度距离。
设置
材料清单(图2):
- 平板电脑(联想P10或M10 /或类似的Android设备)
- 带绑带的伸缩单脚架
- OAK-D摄像机(BW1098FFC)
- Raspberry Pi 4 w/ micro SD卡32GB或更大
- 相机和Raspberry Pi的电源组(2路输出10000毫安)
- 电缆
- 腰包
- 平板电脑三脚架适配器
- 迷你球头(#2)
- 镜头布和刷子。
我们的目标是创建一个易于使用、低成本的工具,使我们的国家田间科学家团队能够量化农场和研究站的杂草表现。
我们创建了五个具有上述所有组件的传感系统,并将它们分发给我们的技术团队,在德克萨斯州、马里兰州、丹麦和北卡罗来纳州的不同条件下进行初步测试。杂草的生物量被破坏性地收集起来,以便将图像与杂草的表现联系起来。
数据收集方法
为了创造一个最佳的杂草生长动态范围,我们在包括德克萨斯州、马里兰州和北卡罗来纳州在内的三个地方进行了田间试验(图3)。我们纳入了许多具有不同生长特征的植物物种,包括杂草和覆盖作物(CCs ),以测试OAK-D在实际操作条件下的情况。
最初的计划是运行DepthAI(图4),在我们慢慢走过田地时收集视频。
不幸的是,我们在推理RGB相机和立体相机之间有一个同步问题:RGB相机比黑白相机早几秒钟启动,这使得我们无法连接数据包序列号。
修订后的方法要求我们改变现场数据收集协议。我们不得不停下来,拍摄静态图像,然后继续沿着样带走,而不是用视频连续监控。我们覆盖了所有的横断面,沿途每走一步拍一张静态照片。
结果数据
我们使用修改过的Luxonis脚本来获取16位的原始深度信息NumPy数组格式,而不是简单的视差图(图5)。
由于图像采集问题(自动曝光、自动白平衡和自动对焦),我们必须执行原始数据库清理,以运行生物质测量检测模型。
语义分割
为了预测杂草的组成,用OAK-D相机采集的冠层图像被分割成相关类别:1)土壤,2)草,3)阔叶植物。这一信息与深度测量相融合,不仅预测了相对成分,而且还预测了绝对值。
一个以MobileNet-v3为主干的DeepLab-v3+模型被实现为轻量级语义分段模型,适用于嵌入式环境。与常用的Xception-65主干相比,这种实现方式在内存和计算能力方面占用的空间更少,但精度更低。
创建合成数据
我们在有监督的情况下训练模型,需要一个对所有像素都有准确注释的图像数据集。在不考虑当前的一次性学习研究的情况下,通常需要数百或数千张标注的图像来实现模型的充分泛化。
依靠每个物种内植物之间的高度相似性,我们创建了一个合成数据集,以尽量减少标注工作。遵循Skovsen等人(2017)和Skovsen等人(2019)的原则,如图6所示,从真实图像中数字化切割出48个植物样本,如下图所示,并将其分类为禾本科或阔叶植物。
模型检验
由于内存限制降低了我们的分段模型精度,我们选择继续开发:1)在英特尔神经计算棒上使用DepthAI;2)通过TensorFlow-lite库在主机中直接处理信息。
一旦获得图像,就由语义分割模型进行处理,检测草地、阔叶树和土壤。然后,语义分割中产生的掩码将与相机收集的深度图(估计检测到的植物的高度)一起使用,以估计生物量。
开发过程
我们首先找到了深度测量的均方根误差,然后我们尝试在NCS2模式下运行模型。DepthAI能够运行这些模型,但在我们当时的测试中,只在较小的模型上运行良好,在较大的模型上返回分段错误。
我们修改了数据收集脚本,将原始深度数据收集到NumPy数组中,以使体积分析不那么密集。然后,这些图像被用来计算体积,其基础是使用已知面积的白色PVC管作为参照物提取的兴趣区域。同样的图像通过进行三维重建和恢复数据的点云被用于静态图像分析。
进一步的实验将涉及改进基于ROI的方法,以及使用点云进行体积估计。实时处理的效果并不好,因为当我们使用较小的模型尺寸时,分割质量下降。因此,我们决定暂时使用非实时的方法。你可以在Github上找到我们的代码。
结果
通过我们的策略,我们能够使用相机来收集植物的高度。利用从主机生成的高度直方图,我们用主成分分析法减少了维度,取前两个成分,用它们做一个多线性回归模型来寻找估计的生物量。
测定系数在0.5和0.8之间,显示了OAK-D相机在测量我们田地中存在的杂草的生物量方面的潜力。
展望未来,我们打算利用DepthAI平台的新功能提高深度测量的准确性,并解决视频数据收集问题,以实现实时分析。
团队和致谢
我们是精准可持续农业团队,并参与了OpenCV空间人工智能竞赛我们的提议是“杂草监控”。在这次比赛中,我们与奥尔胡斯大学, 北卡罗来纳州立大学, 美国农业部,以及德克萨斯A&M大学进行了合作。
我们感谢Luxonis对我们所有的错误和问题提供的持续和及时的帮助。
我们感谢Julian Cardona的3D相机外壳设计。
这项研究基于美国农业部国家食品和农业研究所支持的工作,奖项编号为2019-68012-29818。通过覆盖作物和创新的信息技术网络增强美国种植制度的可持续性.