无人机作物监测

在使用代码之前,请先征得作者许可。

概述

该项目包含三个基本组成部分,每个组成部分在整个系统中都扮演着独特的角色。第一个组成部分是一个复杂的客户端应用程序,旨在从客户的角度高效控制和监测农作物。该应用程序提供了全面的功能,允许用户查看作物状况、做出明智的决策并优化农场管理流程。

作为关键的中间件,第二部分是一个强大的 Flask API,它促进了 3D 模拟器与客户端应用程序之间无缝的通信和数据交换。该 API 作为可靠的接口,支持实时交互和数据传输,从而增强用户体验并确保系统各组件之间的顺畅集成。

第三部分是尖端的 3D 模拟器,它模拟真实农场环境,并集成了一架配备先进成像功能的无人机。这架模拟无人机自主地遍历整个农场,捕捉农作物的高分辨率图像。然后,这些图像被输入到专门为此项目开发的卷积神经网络(CNN)模型中。CNN 模型采用自定义架构构建,在检测和分类作物疾病方面发挥着关键作用。它利用最先进的迁移学习模型作为基准,以确定其性能和有效性。

这些组件之间的精密协同作用,使系统能够彻底改变农业实践。通过无缝集成、智能数据分析和先进的成像技术,该项目致力于增强作物监测、实现及时的疾病检测,并促进明智的决策过程以优化农场管理。

客户端应用程序

客户端应用程序是使用 Flutter 框架精心开发的,确保其跨多个设备的跨平台兼容性。利用 Flutter 的多功能性,该应用程序可以无缝地适应广泛的操作系统和设备,允许用户无论其偏好的平台如何,都能访问其功能。

客户端应用程序的显著优势之一在于其对桌面设备提供的广阔屏幕空间的最佳利用。通过利用可用空间,该应用程序提供了丰富而身临其境的用户体验,为用户提供了对其农作物进行全面控制和监测的功能。

该应用程序包含两个主要页面,经过精心设计以满足用户的多样化需求。每个页面都采用以用户为中心的方法进行周密设计,优先考虑可用性和直观导航。这些页面作为用户可以与应用程序无缝交互的主要接口,使他们能够轻松高效地管理和监测其作物。

通过利用 Flutter 的强大功能并策略性地利用桌面设备丰富的屏幕空间,客户端应用程序提供了无与伦比的用户体验。它融合了跨平台兼容性和直观设计的完美结合,将农业管理提升到新的高度,并为用户提供最大化生产力和优化作物产量的工具。

  • 添加农场
  • 监测农场

添加农场页面

Add farm

用法

为了无缝地将新地块集成到系统中,用户可以方便地使用直观的“添加农场”页面,在该页面上会显示一个全面的地图界面。在此界面中,用户可以通过绘制边界标记来精确定义地块的边界。通过在战略位置放置这些标记,用户可以准确地划分整个地块区域。

一旦所有边界标记都经过精心放置,用户就可以利用直观的“绘制”按钮轻松计算地图上标记所覆盖的总面积。此功能使用户能够验证所定义地块边界的准确性。

此外,用户还可以为新添加的地块分配自定义名称或标签,从而提供灵活性和个性化。然后,用户只需单击“保存”按钮,系统便会将此信息无缝集成到数据库中,从而确保地块相关数据的正确存储和管理。

在服务器端,一个复杂的网格脚本熟练地处理用户提供的标记图。该脚本采用图论算法,将整个农场划分为多个大小相等的网格。这些网格充当地理参考点,作为无人机在农场广阔区域内飞行时的导航指南。这种农场的战略性网格划分提高了无人机操作的效率和精度,优化了数据收集和监测流程。

此外,系统允许用户添加多个农场。农场监测页面提供了各种控件和功能,使用户能够轻松地将无人机部署或重新部署到不同的地块,只需单击几下即可完成。这种精简且用户友好的方法提高了操作效率,使用户能够轻松管理和监测其农场。

通过无缝集成新地块、利用智能网格导航以及提供用户友好的界面,该系统使用户能够轻松扩展其农业运营,同时保持对农场的最佳控制和监督。

农场监测页面

一旦用户选择要部署无人机的特定农场,他们就可以访问一系列全面的控件和无人机统计数据。用户界面提供了一系列精心设计的控件,使用户能够无缝地控制无人机的操作。这些控件包含三个主要功能:

  • 部署无人机

    利用此直观按钮,用户可以将无人机无缝地部署到当前打开的农场中,从而以精确和轻松的方式启动高效的数据收集过程。

  • 暂停无人机

    在部署无人机后,会集成暂停按钮功能,使用户能够在指定位置暂停无人机。此功能有助于详细检查无人机捕获的图像,使用户能够仔细分析农业景观。此外,还提供了手动控件,允许用户通过使用主无人机控制器直接控制无人机的移动。此全面功能增强了用户参与度,并提供了无缝的无人机操控体验,以进行精确的观察和分析。

  • 中止无人机

    “中止无人机”按钮会立即停止无人机当前正在执行的飞行计划,并指示其立即返回指定的充电站。此功能可确保无人机快速安全地检索,并在必要时允许重新部署。

Drone Stats

上面图示的全面顶部控制面板为用户提供了无人机状态和关键农场相关信息的整体视图。此集中式界面作为实时监控和管理无人机操作的宝贵资源。

在控制面板中,用户可以轻松访问相关数据,包括无人机的当前高度(以英尺或米为单位),确保精确监控其定位。以每分钟转数(RPM)显示的叶片速度使您能够了解无人机的推进效率和整体性能。

为确保无人机不间断运行,控制面板会显示重要的电池统计信息,为用户提供有关当前电池电量和预计剩余飞行时间的见解。此信息有助于主动规划,并防止在关键的农场监测活动期间出现意外中断。

此外,控制面板还会显示农场的当前网格标识符,从而简化了特定农场区域的识别和跟踪。用户可以轻松地使用此参考点在农场的不同部分进行导航和聚焦。

对于农业监测过程至关重要,控制面板还显示了该地块的患病百分比,提供了对作物健康状况的全面评估。此有价值的指标有助于识别潜在的疾病爆发,并促进及时干预以减轻作物损失。

此外,控制面板上显示的另一个关键指标——总覆盖率——表明了无人机对农场的调查程度。此信息有助于用户跟踪数据收集的进度,并确保对整个农场区域进行全面覆盖。

除了上述功能外,控制面板还提供了其他功能,例如删除不再运行的农场以及重命名现有农场的选项。这些功能增强了系统的灵活性和自定义能力,使用户能够高效地调整和管理其农场组合。

通过提供全面的实时信息和有价值的功能,顶部控制面板体现了该项目通过提供复杂的直观界面来促进无缝无人机管理和优化农场监测的承诺。

Flask Web API

Flask API 托管在 Azure 虚拟机 (VM) 上,该虚拟机集成了本地 SQL Server 部署。此配置使 Flask API 能够建立一个强大的数据管道,连接无人机和农场数据库。通过利用本地 SQL Server,Flask API 充当数据集成和同步的中心枢纽。

Flask API 公开的各种路由在促进 SQL Server 的数据输入点方面发挥着关键作用。这些路由经过精心设计,即使在多个无人机尝试同时更新同一数据库的情况下也能确保维护一致的状态。为了减轻脏读或丢失更新等潜在问题,系统在数据插入期间采用了先进的锁定机制。此方法保证了数据完整性,并实现了多个无人机单元之间的无缝协作。

通过这种精心设计的架构,该系统实现了高水平的可靠性、可扩展性和数据一致性。Azure VM 结合本地 SQL Server 部署为数据管理提供了强大的基础,而 Flask API 则充当安全高效的接口,确保无人机和农场数据库之间的平稳数据流和同步。

无人机与 Flask API 建立关键连接,以检索有关农场的关键数据。同时,无人机也将相关数据更新到同一个 Flask API,从而建立了集中依赖关系。虽然此架构引入了一个集中依赖因素,但值得注意的是,对于作物监测等应用程序,预期生成的负载不会非常密集,从而降低了遇到重大问题的可能性。

为了确保系统的健壮性和可扩展性,可以在 Flask API 中实施进一步的增强。通过集成水平扩展机制,API 可以随着需求的增长轻松处理增加的负载。此外,引入复制状态架构可使 API 在多个实例之间维护冗余和同步的数据状态。此方法可确保最小的停机时间并提高系统的整体可用性和可靠性。

通过主动解决潜在的可扩展性问题并实施冗余措施,Flask API 可以很好地处理不断变化的需求和工作负载波动。因此,它保证了最佳性能、无缝的数据检索和更新过程,以及关键功能的中断最小化,从而增强了作物监测应用程序的有效性和可靠性。

3D 模拟器

Demo img

模拟器通过使用直接集成到系统中的手动控件提供直观的控制机制。用户可以使用输入设备上的“AWSD 键”轻松导航和操作模拟器。这种用户友好的方法增强了整体用户体验,实现了与模拟环境的无缝交互。

为了进一步增强农场模拟的沉浸感,已经精心集成了各种 3D 对象。这些对象,例如木桶、金属罐和木箱,有助于虚拟农业场景的真实性和可靠性。它们在模拟农场环境中的存在增加了深度和视觉吸引力,为用户创造了更具吸引力和迷人的体验。

此外,模拟器屏幕还具有一个全面的用户界面 (UI),可显示实时无人机统计信息。这些 UI 元素提供有关无人机性能的关键信息,包括高度、速度、电池状态和其他相关参数等重要指标。通过以清晰易懂的方式呈现这些数据,用户可以有效地监控和分析无人机的运行特性,从而使他们能够做出明智的决策并相应地优化其耕作实践。

模拟器中手动控件、沉浸式 3D 对象和实时 UI 元素的周密集成,体现了该项目提供专业级交互式解决方案的承诺。功能性和视觉美学的这种协调结合创造了一个引人注目的虚拟环境,该环境密切模拟了真实世界的耕作场景,提升了整体用户体验并促进了对农业运营的深入理解。

Camera img

此外,模拟器在顶部左侧部分以视觉上信息丰富的方式展示了无人机捕获的摄像机馈送。此实时摄像机馈送起着关键作用,因为它作为部署的 CNN 模型的输入,用于获得准确的分类结果。通过利用此实时馈送,该系统能够及时有效地检测农作物中的疾病。

此外,模拟器通过集成精心设计的作物模型,在视觉保真度方面更进一步。这些模型经过精心纹理处理,展示了两种不同的类型:病态纹理模型和健康纹理模型。这种对细节的关注提供了身临其境的视觉体验,有助于识别和区分模拟环境中的病态和健康作物。

为了进一步增强真实的氛围,模拟器中的地形经过精心设计,并增加了额外的美学特征。这包括集成到虚拟景观中的模拟水蚀模式,增加了真实感。此外,地形上战略性放置的高纹理增加了更逼真的表示,为用户提供了视觉上引人入胜的沉浸式体验。

这些视觉和美学元素的集成不仅提升了模拟器的整体真实感,还增强了用户准确评估和理解作物状况的能力。通过利用先进的图形技术和对细节的关注,模拟器旨在为用户提供沉浸式且信息丰富的环境,从而促进有效的决策过程并加深对农业景观的理解。

abort statison

GitHub

查看 Github