朱金壇
(西安鐵路職業(yè)技術(shù)學(xué)院電子信息學(xué)院,西安 710014)
傳統(tǒng)棉花生產(chǎn)中蟲害的監(jiān)測主要是依托人工調(diào)查。但是,該監(jiān)測方式的效率相對較低,成本相對較高,調(diào)查范圍受限,實(shí)時(shí)性相對較弱,影響棉花蟲害防治的效果。因此,從人工智能技術(shù)以及人工智能產(chǎn)品的角度出發(fā),采用機(jī)器學(xué)習(xí)技術(shù)、嵌入式技術(shù)等[1-2],結(jié)合當(dāng)前市場中的智能監(jiān)測小車以及智能監(jiān)測無人機(jī),對棉花蟲害信息進(jìn)行快速采集和無損識別,搭建出網(wǎng)頁客戶端和手機(jī)端2 種棉花蟲害實(shí)時(shí)監(jiān)測系統(tǒng),對棉花生產(chǎn)中的蟲害情況進(jìn)行精準(zhǔn)監(jiān)測和反饋。
棉花蟲害預(yù)防系統(tǒng)整體架構(gòu)主要包括采集與控制單元、服務(wù)端和客戶端3 個(gè)部分,系統(tǒng)的主要功能是對棉花蟲害信息進(jìn)行監(jiān)測、識別和分析,并通過與百度人工智能開放平臺的聯(lián)合,對蟲害產(chǎn)生原因、防治措施、用藥等進(jìn)行展示和推送。其中,服務(wù)端和客戶端的開發(fā)設(shè)計(jì)主要采用超文本傳送協(xié)議(hypertext transfer protocol,HTTP)等方式。
系統(tǒng)的硬件平臺主要采用STM32F407ZGT6芯片和Cortex-A 系列處理器,采用通用串行總線(universal serial bus,USB)連接的高清攝像頭對棉花蟲害信息進(jìn)行實(shí)時(shí)采集[3],并上傳至百度人工智能平臺(https://ai.baidu.com/easydl/vision/),對圖像信息進(jìn)行實(shí)時(shí)分析。得出的結(jié)果如果為無蟲害,則經(jīng)由消息隊(duì)列遙測傳輸協(xié)議(message queuing telemetry transport,MQTT)上傳至數(shù)據(jù)庫存儲;如果識別判定為有蟲害,則進(jìn)行預(yù)警與告知,在收到用戶的告知確認(rèn)以后,自動保存至云端并形成工作單據(jù)(工單)信息。系統(tǒng)硬件平臺開發(fā)中以Java 為主要的編程語言,并配合使用C 語言,確保端口硬件開發(fā)的穩(wěn)定性和智能性。
棉花蟲害預(yù)防系統(tǒng)采集與控制單元的主要功能是智能指令控制、棉花蟲害信息實(shí)時(shí)采集、棉花蟲害信息錄入與智能分析、工單生成與報(bào)警,以及在硬件平臺和智能程序的支持下,對用戶經(jīng)由端口發(fā)送的指令進(jìn)行解碼和傳送,并將指令分配和傳送到可編程的通用輸入輸出端口(general-purpose input/output ports,GPIO),進(jìn)而對智能監(jiān)測小車和智能監(jiān)測無人機(jī)進(jìn)行控制[4]。棉花蟲害預(yù)防系統(tǒng)采集與控制單元的硬件結(jié)構(gòu)詳見圖1。
圖1 棉花蟲害預(yù)防系統(tǒng)采集與控制單元硬件結(jié)構(gòu)
該采集與控制單元主要包括5 個(gè)模塊,分別為信息傳輸、數(shù)據(jù)監(jiān)測、數(shù)據(jù)傳輸、工單生成與告警以及自動噴藥,以下分別對各個(gè)模塊的開發(fā)和實(shí)現(xiàn)進(jìn)行闡述。
信息傳輸模塊主要是傳輸控制指令信息和本地?cái)?shù)據(jù)信息,采用ESP8266 傳感器實(shí)現(xiàn)與移動網(wǎng)絡(luò)或者寬帶網(wǎng)絡(luò)的連接;數(shù)據(jù)監(jiān)測模塊主要是依托智能監(jiān)測小車和智能監(jiān)測無人機(jī),借助溫度濕度傳感器以及大氣壓傳感器,對棉花生長的環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測,并對生長過程中的數(shù)據(jù)進(jìn)行采集,與數(shù)據(jù)傳輸模塊配合,對相關(guān)信息進(jìn)行傳輸和云端儲存;數(shù)據(jù)傳輸模塊借助USB 高清攝像頭,聯(lián)合智能監(jiān)測小車和無人機(jī),對棉花生長過程中的蟲害信息進(jìn)行視頻和圖片采集,在百度人工智能平臺上進(jìn)行分析,對相關(guān)信息作出是否告警的判斷;工單與告警模塊是結(jié)合傳輸?shù)囊曨l和圖片信息,對有蟲害風(fēng)險(xiǎn)的棉花植株或者區(qū)域進(jìn)行標(biāo)記,結(jié)合全球定位系統(tǒng)(global positioning system,GPS),形成處理工單,通過蜂鳴器和發(fā)光二極管(light-emitting diode,LED)燈,在用戶端設(shè)備進(jìn)行提醒,并配合自動噴藥的實(shí)施進(jìn)度,形成工單處理進(jìn)度線,對噴藥等故障進(jìn)行告警;自動噴藥模塊主要聯(lián)合棉花種植區(qū)域的自動噴灑設(shè)備,通過繼電器和超聲波霧化器,對藥物噴灑進(jìn)度進(jìn)行控制,從而起到較好的防治蟲害的作用[5]。
數(shù)據(jù)處理模塊經(jīng)由數(shù)據(jù)處理服務(wù)器,采用HTTP 協(xié)議,對用戶端的各項(xiàng)請求和指令進(jìn)行分析,并對客戶端發(fā)送登錄、位置信息、數(shù)據(jù)信息請求啟動響應(yīng)功能。HTTP 協(xié)議在運(yùn)行的過程中,會與阿里云物聯(lián)網(wǎng)平臺對接,對平臺中的響應(yīng)數(shù)據(jù)進(jìn)行處理并上傳,依托MySQL 搭建系統(tǒng)的數(shù)據(jù)庫,對監(jiān)測信息和識別信息進(jìn)行存儲、判斷和流轉(zhuǎn)。
流媒體服務(wù)設(shè)計(jì)主要采用MJPG-streamer 技術(shù),將智能監(jiān)測小車和智能監(jiān)測無人機(jī)所傳輸?shù)囊曨l和圖片數(shù)據(jù)傳輸?shù)揭曨l流的服務(wù)器中。同時(shí),在網(wǎng)頁客戶端和手機(jī)端中,通過與流媒體和系統(tǒng)IP進(jìn)行響應(yīng),生成系統(tǒng)中的視頻流,形成智能識別與監(jiān)測中的可識別視頻格式。
蟲害智能識別功能主要采用百度人工智能中的圖像功能,搭建出蟲害信息監(jiān)測的類別模型,并響應(yīng)百度大數(shù)據(jù),對各個(gè)蟲害類別的成因、防治措施進(jìn)行標(biāo)記,形成智能識別的應(yīng)用程序接口(application program interface,API)[6]。在監(jiān)測數(shù)據(jù)傳輸至流媒體服務(wù)器時(shí),設(shè)置POST 請求系統(tǒng),將需要識別的蟲害圖片信息進(jìn)行上傳,經(jīng)由智能識別獲得判斷結(jié)果和是否形成工單的結(jié)論。
從智能監(jiān)測小車和智能監(jiān)測無人機(jī)的監(jiān)測信息傳輸過程來看,利用高清攝像頭完成對棉花生長信息的捕捉以后,對圖片信息進(jìn)行快速讀取,并傳送至百度人工智能模型進(jìn)行預(yù)測,相關(guān)流程見圖2。
圖2 棉花蟲害數(shù)據(jù)識別運(yùn)轉(zhuǎn)流程
用戶登錄模塊是確保用戶能夠通過網(wǎng)頁客戶端或手機(jī)端進(jìn)入系統(tǒng)的關(guān)鍵,同時(shí)也是系統(tǒng)安全性得以保障的重要基礎(chǔ)。通過用戶登錄模塊,能夠?qū)崿F(xiàn)數(shù)據(jù)庫訪問和數(shù)據(jù)存儲的相關(guān)功能,每個(gè)用戶賬號對應(yīng)相應(yīng)的數(shù)據(jù)庫,在用戶登錄成功以后原始數(shù)據(jù)和非原始數(shù)據(jù)會共同體現(xiàn)出來。為了進(jìn)一步確保用戶登錄的安全性,本系統(tǒng)在用戶賬號密碼輸入后,需要用戶手機(jī)號的相關(guān)驗(yàn)證碼,以此為用戶提供最大化的安全保障。用戶在登錄選擇上,可以根據(jù)自身的需求,選擇是否保存賬號密碼,以此來提高再次登錄的便捷性。
在登錄實(shí)現(xiàn)的設(shè)計(jì)上,用戶在點(diǎn)擊手機(jī)端小程序(app)或者客戶端之后,首先進(jìn)入系統(tǒng)登錄界面,根據(jù)自身的需求選擇注冊賬號、登錄賬號、密碼找回或者離線采集4 項(xiàng)功能。其中,離線采集主要是為了應(yīng)對用戶忘記密碼、手機(jī)號注銷等同時(shí)發(fā)生的情況,需要用戶確認(rèn)在手機(jī)上成功登錄的歷史,通過驗(yàn)證后系統(tǒng)會給用戶提供相應(yīng)的權(quán)限。
用戶在進(jìn)入到登錄界面以后,如果沒有保存登錄賬號與密碼,則需要重新輸入賬號密碼,并通過手機(jī)驗(yàn)證碼驗(yàn)證之后成功登錄;如果界面中有緩存的賬號與密碼,用戶直接輸入驗(yàn)證碼登錄即可。為了進(jìn)一步提升系統(tǒng)的人性化,在用戶注冊成功之后,可以對登錄密碼進(jìn)行修改。此外,在登錄驗(yàn)證碼上,采用MD5 算法進(jìn)行處理,為登錄驗(yàn)證碼加入128 位的散列值,以此來防止用戶對驗(yàn)證碼的規(guī)律進(jìn)行破解,最大化地提升安全保障。
本系統(tǒng)中,工單管理功能實(shí)現(xiàn)的主要控件是UITableView (用于展示數(shù)據(jù)列表信息的一種常用工具),該控件的作用是將系統(tǒng)接收的工單數(shù)據(jù)進(jìn)行轉(zhuǎn)化,呈現(xiàn)出的工單數(shù)據(jù)分類清晰,并根據(jù)數(shù)據(jù)庫中工單管理的具體內(nèi)容,對工單的詳情信息實(shí)時(shí)更新。在用戶工單管理頁面中,呈現(xiàn)出的是待辦或者處理中的工單,處理完成的工單會自動存儲在本地?cái)?shù)據(jù)庫中。工單管理功能實(shí)現(xiàn)的邏輯架構(gòu)見圖3。
圖3 工單管理功能設(shè)計(jì)與實(shí)現(xiàn)
在工單管理主控件UITableView 下,要實(shí)現(xiàn)工單的更新和列表呈現(xiàn),還需要發(fā)揮數(shù)據(jù)訪問層的作用,對系統(tǒng)中更新的信息進(jìn)行加工,呈現(xiàn)在顯示列表中,并將相應(yīng)的信息進(jìn)行再次模式化處理,確保工單信息的對應(yīng)性。為了提升用戶操作的便捷性,本系統(tǒng)設(shè)置了多種工單信息篩選方式,根據(jù)工單信息的標(biāo)簽,對篩選的結(jié)果進(jìn)行呈現(xiàn)。此外,用戶在工單查找的過程中既可以進(jìn)行模糊檢索,也可以進(jìn)行精準(zhǔn)檢索。
系統(tǒng)中消息提醒功能是1 個(gè)涉及各個(gè)模塊的整體功能,需要對各個(gè)模塊的數(shù)據(jù)和信息進(jìn)行整理與推送,并且在消息提醒功能開啟后,根據(jù)用戶是否在線的情況,確定消息提醒功能是否能夠運(yùn)行,在用戶退出賬號以后,消息提醒功能自動退出。因此,本系統(tǒng)在后臺服務(wù)中引入信息提醒控件,以實(shí)現(xiàn)對程序當(dāng)前運(yùn)行情況的監(jiān)控。此外,系統(tǒng)中還根據(jù)消息提醒的可視化形式,搭建了數(shù)據(jù)模型和視圖控制模型,分別為信息管理控件、信息監(jiān)控控件、信息提醒控件。
信息監(jiān)控控件是整個(gè)工單信息提醒服務(wù)的監(jiān)視器,能夠根據(jù)系統(tǒng)在用戶手機(jī)上具體的運(yùn)行情況判斷是否發(fā)出提醒消息,并對消息的提醒進(jìn)行定期檢查。此外,在消息提醒的過程中,本系統(tǒng)還會對手機(jī)上的具體時(shí)間進(jìn)行判定,確保工單信息與具體日期之間的關(guān)聯(lián)性。
信息提醒控件是消息提醒的數(shù)據(jù)模型,也是確保數(shù)據(jù)邏輯化和可視化的關(guān)鍵。該模型與工單數(shù)據(jù)中的模型一樣,根據(jù)用戶系統(tǒng)中的工單數(shù)據(jù),進(jìn)行整理與提醒;信息提醒控件和信息管理控件分別是消息提醒視圖及其控制器,其主要作用就是在工單頁面和菜單頁面對用戶消息進(jìn)行可視化的呈現(xiàn),并結(jié)合工單信息處理的情況,對部分已完成的信息進(jìn)行自動刪除。
系統(tǒng)數(shù)據(jù)庫的核心功能是能夠?qū)崿F(xiàn)數(shù)據(jù)的實(shí)時(shí)更新,并對原始的數(shù)據(jù)進(jìn)行覆蓋。因此,本系統(tǒng)以SQLite(一種輕型的數(shù)據(jù)庫)的形式對數(shù)據(jù)進(jìn)行本地存儲。在服務(wù)器和系統(tǒng)啟動的過程中,本系統(tǒng)能夠自動對本地信息中的數(shù)據(jù)情況進(jìn)行對比,如果數(shù)據(jù)有變動,則會對元數(shù)據(jù)進(jìn)行覆蓋,從而實(shí)現(xiàn)本地?cái)?shù)據(jù)信息的實(shí)時(shí)更新。同時(shí),如果本地?cái)?shù)據(jù)有新的變動,也會通過服務(wù)器對本地?cái)?shù)據(jù)庫進(jìn)行響應(yīng),在網(wǎng)絡(luò)的保障下實(shí)施數(shù)據(jù)的云更新。
系統(tǒng)在登錄完成以后,自動創(chuàng)建DbUp(可將更改部署到SQL Server 數(shù)據(jù)庫的.NET 庫)數(shù)據(jù)管理文件,使得GCD(grand central dispatch)中的系統(tǒng)能夠?qū)?shù)據(jù)信息實(shí)時(shí)更新。同時(shí),啟動(包括登錄、打開、點(diǎn)擊等)數(shù)據(jù)更新的執(zhí)行次數(shù)為1 次,防止程序運(yùn)行過程中數(shù)據(jù)更新的紊亂,在數(shù)據(jù)更新結(jié)束以后,自動更新檢索指令的實(shí)現(xiàn)需要在模式化完成以后。
本系統(tǒng)以人工智能中的機(jī)器學(xué)習(xí)技術(shù)為依托,綜合采用傳感器技術(shù)、嵌入式技術(shù)、數(shù)據(jù)庫技術(shù)等,搭建與設(shè)計(jì)了智能化的棉花蟲害預(yù)防系統(tǒng),能夠?yàn)槊藁ㄏx害的防治提供有效的系統(tǒng)支持,以便提高棉花蟲害防治的質(zhì)量與效率。后續(xù),會結(jié)合相關(guān)技術(shù)的更新,以及使用中存在的問題,對本系統(tǒng)進(jìn)行不斷優(yōu)化。