朱金坛
(西安铁路职业技术学院电子信息学院,西安 710014)
传统棉花生产中虫害的监测主要是依托人工调查。但是,该监测方式的效率相对较低,成本相对较高,调查范围受限,实时性相对较弱,影响棉花虫害防治的效果。因此,从人工智能技术以及人工智能产品的角度出发,采用机器学习技术、嵌入式技术等[1-2],结合当前市场中的智能监测小车以及智能监测无人机,对棉花虫害信息进行快速采集和无损识别,搭建出网页客户端和手机端2 种棉花虫害实时监测系统,对棉花生产中的虫害情况进行精准监测和反馈。
棉花虫害预防系统整体架构主要包括采集与控制单元、服务端和客户端3 个部分,系统的主要功能是对棉花虫害信息进行监测、识别和分析,并通过与百度人工智能开放平台的联合,对虫害产生原因、防治措施、用药等进行展示和推送。其中,服务端和客户端的开发设计主要采用超文本传送协议(hypertext transfer protocol,HTTP)等方式。
系统的硬件平台主要采用STM32F407ZGT6芯片和Cortex-A 系列处理器,采用通用串行总线(universal serial bus,USB)连接的高清摄像头对棉花虫害信息进行实时采集[3],并上传至百度人工智能平台(https://ai.baidu.com/easydl/vision/),对图像信息进行实时分析。得出的结果如果为无虫害,则经由消息队列遥测传输协议(message queuing telemetry transport,MQTT)上传至数据库存储;如果识别判定为有虫害,则进行预警与告知,在收到用户的告知确认以后,自动保存至云端并形成工作单据(工单)信息。系统硬件平台开发中以Java 为主要的编程语言,并配合使用C 语言,确保端口硬件开发的稳定性和智能性。
棉花虫害预防系统采集与控制单元的主要功能是智能指令控制、棉花虫害信息实时采集、棉花虫害信息录入与智能分析、工单生成与报警,以及在硬件平台和智能程序的支持下,对用户经由端口发送的指令进行解码和传送,并将指令分配和传送到可编程的通用输入输出端口(general-purpose input/output ports,GPIO),进而对智能监测小车和智能监测无人机进行控制[4]。棉花虫害预防系统采集与控制单元的硬件结构详见图1。
图1 棉花虫害预防系统采集与控制单元硬件结构
该采集与控制单元主要包括5 个模块,分别为信息传输、数据监测、数据传输、工单生成与告警以及自动喷药,以下分别对各个模块的开发和实现进行阐述。
信息传输模块主要是传输控制指令信息和本地数据信息,采用ESP8266 传感器实现与移动网络或者宽带网络的连接;数据监测模块主要是依托智能监测小车和智能监测无人机,借助温度湿度传感器以及大气压传感器,对棉花生长的环境进行实时监测,并对生长过程中的数据进行采集,与数据传输模块配合,对相关信息进行传输和云端储存;数据传输模块借助USB 高清摄像头,联合智能监测小车和无人机,对棉花生长过程中的虫害信息进行视频和图片采集,在百度人工智能平台上进行分析,对相关信息作出是否告警的判断;工单与告警模块是结合传输的视频和图片信息,对有虫害风险的棉花植株或者区域进行标记,结合全球定位系统(global positioning system,GPS),形成处理工单,通过蜂鸣器和发光二极管(light-emitting diode,LED)灯,在用户端设备进行提醒,并配合自动喷药的实施进度,形成工单处理进度线,对喷药等故障进行告警;自动喷药模块主要联合棉花种植区域的自动喷洒设备,通过继电器和超声波雾化器,对药物喷洒进度进行控制,从而起到较好的防治虫害的作用[5]。
数据处理模块经由数据处理服务器,采用HTTP 协议,对用户端的各项请求和指令进行分析,并对客户端发送登录、位置信息、数据信息请求启动响应功能。HTTP 协议在运行的过程中,会与阿里云物联网平台对接,对平台中的响应数据进行处理并上传,依托MySQL 搭建系统的数据库,对监测信息和识别信息进行存储、判断和流转。
流媒体服务设计主要采用MJPG-streamer 技术,将智能监测小车和智能监测无人机所传输的视频和图片数据传输到视频流的服务器中。同时,在网页客户端和手机端中,通过与流媒体和系统IP进行响应,生成系统中的视频流,形成智能识别与监测中的可识别视频格式。
虫害智能识别功能主要采用百度人工智能中的图像功能,搭建出虫害信息监测的类别模型,并响应百度大数据,对各个虫害类别的成因、防治措施进行标记,形成智能识别的应用程序接口(application program interface,API)[6]。在监测数据传输至流媒体服务器时,设置POST 请求系统,将需要识别的虫害图片信息进行上传,经由智能识别获得判断结果和是否形成工单的结论。
从智能监测小车和智能监测无人机的监测信息传输过程来看,利用高清摄像头完成对棉花生长信息的捕捉以后,对图片信息进行快速读取,并传送至百度人工智能模型进行预测,相关流程见图2。
图2 棉花虫害数据识别运转流程
用户登录模块是确保用户能够通过网页客户端或手机端进入系统的关键,同时也是系统安全性得以保障的重要基础。通过用户登录模块,能够实现数据库访问和数据存储的相关功能,每个用户账号对应相应的数据库,在用户登录成功以后原始数据和非原始数据会共同体现出来。为了进一步确保用户登录的安全性,本系统在用户账号密码输入后,需要用户手机号的相关验证码,以此为用户提供最大化的安全保障。用户在登录选择上,可以根据自身的需求,选择是否保存账号密码,以此来提高再次登录的便捷性。
在登录实现的设计上,用户在点击手机端小程序(app)或者客户端之后,首先进入系统登录界面,根据自身的需求选择注册账号、登录账号、密码找回或者离线采集4 项功能。其中,离线采集主要是为了应对用户忘记密码、手机号注销等同时发生的情况,需要用户确认在手机上成功登录的历史,通过验证后系统会给用户提供相应的权限。
用户在进入到登录界面以后,如果没有保存登录账号与密码,则需要重新输入账号密码,并通过手机验证码验证之后成功登录;如果界面中有缓存的账号与密码,用户直接输入验证码登录即可。为了进一步提升系统的人性化,在用户注册成功之后,可以对登录密码进行修改。此外,在登录验证码上,采用MD5 算法进行处理,为登录验证码加入128 位的散列值,以此来防止用户对验证码的规律进行破解,最大化地提升安全保障。
本系统中,工单管理功能实现的主要控件是UITableView (用于展示数据列表信息的一种常用工具),该控件的作用是将系统接收的工单数据进行转化,呈现出的工单数据分类清晰,并根据数据库中工单管理的具体内容,对工单的详情信息实时更新。在用户工单管理页面中,呈现出的是待办或者处理中的工单,处理完成的工单会自动存储在本地数据库中。工单管理功能实现的逻辑架构见图3。
图3 工单管理功能设计与实现
在工单管理主控件UITableView 下,要实现工单的更新和列表呈现,还需要发挥数据访问层的作用,对系统中更新的信息进行加工,呈现在显示列表中,并将相应的信息进行再次模式化处理,确保工单信息的对应性。为了提升用户操作的便捷性,本系统设置了多种工单信息筛选方式,根据工单信息的标签,对筛选的结果进行呈现。此外,用户在工单查找的过程中既可以进行模糊检索,也可以进行精准检索。
系统中消息提醒功能是1 个涉及各个模块的整体功能,需要对各个模块的数据和信息进行整理与推送,并且在消息提醒功能开启后,根据用户是否在线的情况,确定消息提醒功能是否能够运行,在用户退出账号以后,消息提醒功能自动退出。因此,本系统在后台服务中引入信息提醒控件,以实现对程序当前运行情况的监控。此外,系统中还根据消息提醒的可视化形式,搭建了数据模型和视图控制模型,分别为信息管理控件、信息监控控件、信息提醒控件。
信息监控控件是整个工单信息提醒服务的监视器,能够根据系统在用户手机上具体的运行情况判断是否发出提醒消息,并对消息的提醒进行定期检查。此外,在消息提醒的过程中,本系统还会对手机上的具体时间进行判定,确保工单信息与具体日期之间的关联性。
信息提醒控件是消息提醒的数据模型,也是确保数据逻辑化和可视化的关键。该模型与工单数据中的模型一样,根据用户系统中的工单数据,进行整理与提醒;信息提醒控件和信息管理控件分别是消息提醒视图及其控制器,其主要作用就是在工单页面和菜单页面对用户消息进行可视化的呈现,并结合工单信息处理的情况,对部分已完成的信息进行自动删除。
系统数据库的核心功能是能够实现数据的实时更新,并对原始的数据进行覆盖。因此,本系统以SQLite(一种轻型的数据库)的形式对数据进行本地存储。在服务器和系统启动的过程中,本系统能够自动对本地信息中的数据情况进行对比,如果数据有变动,则会对元数据进行覆盖,从而实现本地数据信息的实时更新。同时,如果本地数据有新的变动,也会通过服务器对本地数据库进行响应,在网络的保障下实施数据的云更新。
系统在登录完成以后,自动创建DbUp(可将更改部署到SQL Server 数据库的.NET 库)数据管理文件,使得GCD(grand central dispatch)中的系统能够对数据信息实时更新。同时,启动(包括登录、打开、点击等)数据更新的执行次数为1 次,防止程序运行过程中数据更新的紊乱,在数据更新结束以后,自动更新检索指令的实现需要在模式化完成以后。
本系统以人工智能中的机器学习技术为依托,综合采用传感器技术、嵌入式技术、数据库技术等,搭建与设计了智能化的棉花虫害预防系统,能够为棉花虫害的防治提供有效的系统支持,以便提高棉花虫害防治的质量与效率。后续,会结合相关技术的更新,以及使用中存在的问题,对本系统进行不断优化。