黃宏梅,陸衛忠,2,楊 茹,曹 燕
1(蘇州科技大學 電子與信息工程學院,蘇州 215009)2(江蘇省建筑智慧節能重點實驗室,蘇州 215009)
隨著城市建設的快速發展,城市中灰色水泥建筑物越來越多,綠化面積比例越來越低.而隨著生活水平的提高,人們開始追求舒適健康的工作、生活環境.如,在辦公室中放置一些盆栽花卉既可以通過光合作用吸收二氧化碳,凈化室內空氣,也可以陶冶情操.然而,由于大多數人缺乏專業的花卉養護技能,需要聘請專業人員幫助養護,導致花卉的養護成本很高.
隨著信息技術和自動技化術的不斷發展,國內外花卉自動化養護技術也逐步發展起來.文獻[1]中介紹Picent R 發明了一種智能花盆,這種花盆含有可以監控植物溫濕度的傳感裝置,當有人靠近時,它會發出聲音來表示自己的需求.文獻[2]中介紹Mizuchi I 研發了一種叫做“Plantroid”的花盆機器人,會按照需求自動調節植物的溫度和光照,從而使得植物健康生長.2011 年楊守健等[3]研制了一種簡易土壤濕度檢測裝置對土壤濕度進行定時檢測,根據土壤狀況和植物生長所需的濕度的不同決定對植物的澆水量.張兆朋[4]設計了一種家庭智能澆花器,實現了花卉的自動澆花,并可以對不同的花卉實施不同的控制方式.2017 年趙宏才等[5]研究出了對黃瓜種植環境參數的自動監測方法,實現了黃瓜種植的自動化.可以看出智能花卉養護技術已經有了很大的進展,但并未能徹底地解決花卉養護過程中的人工干預,即無法完全實現花卉的自動化養護.
隨著人工智能技術的不斷發展,構建深層網絡結構進行多層次特征學習的人工智能方法在大規模圖片分類領域取得了很大的成功[6].本文嘗試將深度學習應用在花卉生長情況的圖像識別中,使其突破只能依靠人工觀測判斷花卉生長狀況的限制,通過花卉圖像實現對花卉生長情況的識別,從而實現花卉養護過程的自動化.然而,花卉的一種簡單表象特征往往有可能是由于多種內因導致,僅根據圖像分類得到表象特征不足以準確地判斷花卉生長的真實情況.
因此,本文提出一種花卉生長狀況的識別方法,來解決僅依靠圖像分類的判斷準確率不高的問題.該方法采用一個具有兩個輸入通道的卷積神經網絡,其中第一個輸入通道是原始花卉圖像中提取的特征圖像,第二個輸入通道是傳感器采集的各生長環境數據,兩個通道構成分類器的輸入,并對構建的模型進行驗證.
花卉是有生命的植物體,它的生長狀況總是伴隨著生長環境的變化而變化,要養好花卉就必須營造花卉生長發育所必須的環境條件.本文以吊蘭為例,研究識別其生長狀況的方法.吊蘭喜半陰,喜濕潤,且冬季容易凍壞,當室內環境參數發生改變的時候,它的生長狀況也會發生相應的改變.在辦公室測試環境下,采樣數據為花卉的圖像,室內空氣溫度(單位:℃)、濕度(單位:RH)、花卉土壤濕度(單位:RH)以及光照度(單位:klx),采樣方法為每天8 點以及18 點各進行一次采樣,連續兩個月,共1200 條記錄.
2.1.1 花卉圖像樣本分析
吊蘭的生長狀況發生變化的時候,其葉片也會發生相應的變化.上述共4 種環境參數可對應8 種類別:
(1)空氣溫度過高,葉片會由綠變黃;
(2)空氣溫度過低,葉子開始變軟,從根部向葉尖爛葉,老葉整體開始由綠變黃再變枯;
(3)空氣濕度過高,由于吊蘭喜濕,所以葉片表象相對比較正常;
(4)空氣濕度過低,葉片表面略泛白,葉尖出現輕微變枯;
(5)光照過強,葉子由綠變黃,葉尖變枯,表面略泛白;
(6)光照過低,葉片顏色變淡,葉子主干纖長且易斷;
(7)土壤濕度過高,葉片會從根部開始發黃;
(8)土壤濕度過低,葉尖會發黃變窄,葉片卷曲.
圖1 是一組花卉的表象圖片,圖1(a)和圖1(b)分別是吊蘭環境溫度過高和溫度過低的圖片;圖1(c)和圖1(d)分別是吊蘭空氣濕度過高和空氣濕度過低的圖片;圖1(e)和圖1(f)分別是吊蘭光照強過強和過弱的圖1(g)和圖1(h)分別是吊蘭環境土壤濕度過高和濕度過低的圖片.
2.1.2 圖像樣本誤差分析
從花卉的圖像樣本中可以了解當前花卉的表象特征,然而花卉的一種簡單表象特征往往有可能是由于多種內因導致,比如,當吊蘭的葉子變成黃色時,可能導致這一表象特征的因素有空氣溫度過高、光照過強以及土壤濕度過低,所以,僅僅根據圖像樣本中所得到的表象特征不足以準確地分辨出花卉生長的真實情況.因此,考慮通過結合花卉環境數據來幫助準確分辨出花卉的生長狀況.
2.1.3 環境數據
環境數據是影響花卉生長的重要因素.可以通過空氣溫濕度傳感器、光照傳感器以及土壤濕度傳感器檢測得到當前花卉的生長環境,本實驗對吊蘭的生長環境進行了檢測,檢測得到的部分花卉生長環境數據如表1 所示,其中,表中T代表空氣溫度,單位為℃,H1代表空氣濕度,單位為RH,L代表光照強度,單位為klx,H2代表土壤濕度,單位為RH.然而,研究表明,當空氣溫度達到15~25 ℃,空氣濕度達到60% RH,光照度達到65 klx,以及土壤濕度達到65% RH 時,吊蘭才可以到達最佳的生長狀態,我們將這一數據作為判斷吊蘭生長狀況的標準.將檢測到的環境數據與標準值進行比較,即可對比得出當前吊蘭的實時生長狀況.

圖1 花卉生長狀況圖

表1 檢測的花卉環境數據
卷積神經網絡(Convolutional Neural Network,CNN)已在圖像處理領域得到廣泛應用[7,8].卷積神經網絡的基本結構是由輸入層、卷積層、池化層、全連接層以及輸出層構成[9].卷積層和池化層一般會有若干個,采用卷積層和池化層交替設置,即一個卷積層連接一個池化層,池化層再連接一個卷積層.卷積神經網絡中的一個卷積層,由卷積操作(convolution)、非線性響應操作(relu)以及池化操作(pooling)組成.卷積操作中通過不同的濾波器可以得到不同的輸出數據,如顏色、形狀等圖像的特征信息.再通過非線性響應操作以及池化操作獲得最大化的特征[10].
本文考慮將卷積神經網絡應用到花卉生長狀況的識別技術中.然而,花卉的某些表象特征是由于不同的環境因素造成,如果僅依靠花卉生長狀況圖片進行分類,很有可能出現判別失誤的情況.所以,本文設計了一種由環境數據來輔助的具有兩個輸入通道的卷積神經網絡進行圖像分類,提高判別的準確率,從而能更好地判別花卉當前的生長狀況.因此,我們設計如下的環境數據輔助網絡,模型框架如圖2 所示,將圖片通過卷積神經網絡進行訓練,然后將傳感器實時采集到的數據進行評估得到的結果與卷積神經網絡分類得到的分類結果結合,再連接起來進行重新分類,分類可以得到8 種類別,以及它們的對應輸出關系如表2 所示,即,分別為00,01,10,11,20,21,30,31 這8 個類別.

圖2 方法模型框架

表2 生長類別輸出對應關系表
該算法分為兩個階段,第1 個階段為前向傳播過程,第2 個階段為反向傳播過程.
1)正向傳播過程
在這個階段,輸入的信息經過逐層變換,傳輸到輸出層.主要是做前向的特征提取.即,從花卉樣本圖片中取出一個樣本輸入到網絡中,得到經過逐層變化的輸出值,也就是實際值,并同時獲取期望得到的樣本輸出值,比較實際輸出值與期望輸出值,如果實際輸出值符合期望值,則輸出樣本的輸出結果,否則,進入到下一個階段.
2)反向傳播過程
卷積神經網絡與傳統神經網絡一樣,通過反向誤差傳播更新每層神經元的參數,通過迭代不斷優化神經網絡的各個權值,使得神經網絡的預測值能夠與實際標簽值最接近[11-13].反向傳播網絡是最常用的一種誤差最小化的優化方法,通過求解正向輸出標簽值與是假標簽的平方誤差作為更新參數的策略.假設一共有c個類別、N個樣本,其中表示實際標簽值,表示神經網絡輸出的標簽值,那么可以用式(1)表示平方誤差代價函數.

為了更新權值,根據神經網絡的正向傳播[14,15]可知,第1 層的神經網絡的權值 ωt和bt可以通過式(2)計算得出.

通過誤差E的變化來求解參數 ωt和偏置bt,采用最常見的隨機梯度下降法,首先對bt求解偏導數:

然后根據式(2)不斷反向傳播,就可以將誤差傳播到最底層,根據式(2)和式(3)可以得出第l層的誤差變化率 δt:

將l+1層的誤差不斷傳播到1 層,最終傳播到第一個卷積層.結合上面的即可求出誤差E與權重 ωt之間的導數:

這樣每一層的權值 ωt和偏置bt都可以通過誤差E偏導數不斷迭代更新,直到獲得誤差最小的權值,完成卷積神經網絡的訓練,該算法流程如圖3 所示.

圖3 算法訓練流程圖
首先,將對花卉圖像樣本進行初始化,然后傳送到卷積層和池化層,進行特征提取;接著將圖像特征結合環境數據輸入到相應的全連接層,再通過分類器將其從傳輸到輸出層,然后將輸出值與期望值做比較,直至兩值之間的誤差值達到一定的閾值,則可得到我們想要的輸出結果[16,17].
基于深度學習的花卉生長狀態識別網絡的停止條件為如下兩個條件之一:
1)實際輸出與期望輸出的誤差值達到一定值;
2)訓練次數達到預先設置好的最大訓練次數.
若滿足條件則可以得到花卉圖片所對應的相應類別,具體見算法1.
本文采用基于CMOS 的圖像采集設備來,DTH11數字溫濕度傳感器,TSL2561 光強傳感器及SM2801BD型土壤濕度傳感器搭建形成一個花卉環境監測系統,如圖4 所示,來實現花卉環境數據的采集.將實時的環境數據經過處理后,輸入到訓練好的傳感器網絡輔助的卷積神經網絡中,即可以獲得當前花卉的生長狀態,然后根據輸出的花卉生長狀態來決定花卉生長環境的控制策略.

?

圖4 監測系統框架圖
3.2.1 圖像數據預處理
(1)數據集擴充
在訓練圖像識別的深度神經網絡時,需要使用大量的訓練數據,才會使網絡得到更好的性能,如提高網絡的分類準確率,防止過擬合等[18].獲取更多的訓練樣本是一種理想的方法,但這種方法的代價很大,在實踐中常常難以達到.而另一種方法則也能夠獲得類似的效果,那就是人為擴展訓練數據[19,20].人為擴展圖像數據的常用方法有圖像旋轉、轉換、扭曲等.選取圖像旋轉的方式時,太小角度的旋轉可能不會對圖像造成變化,角度太大又可能改變圖片的性質(脫離數據集),因此選取了6 個“合適”的角度來對圖像進行旋轉操作,即采用原圖、垂直鏡像、逆時針旋轉90°、隨機裁剪、水平鏡像以及順時針旋轉90°這6 個角度,如圖5所示.經過處理以后,原始數據集擴展成了原來的5 倍,共6000 條數據.
(2)圖像數據準備
卷積神經網絡中含有全連接層的網絡輸入數據的大小是固定的,所以必須實現固定輸入圖像的大小.然而在圖像統一大小的過程中會有縮放,因此圖像會扭曲,為盡量避免模型受到無關因素的干擾,所以本文通過邊界填充或剪裁的方法來減少扭曲或失真.因此,本文將采集到的花卉圖片數據統一處理為64×64 大小的圖片.同時,由于花卉的生長狀況共有8 種情況(空氣溫度過高或過低、空氣濕度過高或過低、光照強度過強或過弱、土壤濕度過高或過低),本文將統一處理完的圖像數據分為8 組分別代表8 種不同的生長狀況.
3.2.2 傳感器數據預處理
對應每一個花卉圖像,同時通過空氣溫濕度傳感器、光照傳感器及土壤濕度傳感器獲取一組花卉環境數據,可以表示為(w,s,g,t),這組四維的環境數據在空氣溫濕度、光照度及土壤濕度4 個方面對當前花卉的生長狀況進行了評價.采用貝葉斯估計,多貝葉斯估計將每一個傳感器作為一個貝葉斯估計,將各個單獨傳感器的關聯概率分布合成一個聯合的后驗的概率分布函數,通過使用聯合分布函數的似然函數為最小,提供多傳感器信息的最終融合值.本文設置當前最佳環境數據為(wbest,sbest,gbest,tbest),將最終融合值與其做比較從而提供整個環境的一個特征描述,即可以獲取傳感器數據對當前花卉生長狀況的評價狀況.
花卉生長狀況的識別方法由一般卷積神經網絡和傳感器采集數據分支網絡組成.本文嘗試了3 種不同層次的網絡(如圖6 所示),它們分別使用6 層、12 層以及14 層的卷積神經網絡自動從圖像輸入中提取特征.在經過多層卷積層和池化層之后,圖像輸入被轉換成具有長度為128 的圖像矢量,這是從圖像中提取的一組特征.同時,與圖像對應的4 維傳感器評價情況通過完全連接層,構成長度為4 的環境數據向量,然后將這兩個向量連接成一個長度為132 的新向量,并最終完全連接到一個分類器.所有權重都是通過反向傳播算法進行訓練獲得的.

圖5 花卉樣本預處理圖
對于該模型,網絡在Tensorflow 環境中進行訓練,在訓練過程中,隨機梯度下降(SGD)算法的批量大小設置為256,最大迭代次數設置為200,學習率初始值為0.01,如果總損失沒有下降,自動下降1/10 直到0.000 01.當前花卉的圖像、室內溫度、相對濕度、土壤濕度、以及光照度等共5 個參數,對應于示例子網的5 個輸入,而當前花卉的生長狀況對應每個輸出.數據集中以4800 條樣本數據作為網絡的訓練樣本,1200 條數據作為測試樣本.樣本隨機分為5 組,大小為1200,每個獨立應用5 次,并進行5 次交叉驗證.每次訓練時,一組尚未被選中的組被選作驗證組,其余組成訓練組.根據表3 的結果,我們得出結論:網絡越深,性能就越好.然而,網絡越深相應的時間代價也越大,我們要根據實際情況選擇適合的深度.
同時,我們從網絡中減少了傳感器數據通道,并進行與上述相同的實驗.我們的網絡和一般CNN 之間的結果顯示在表3 中.這表明環境數據確實有助于分類.
在花盆周圍部署空氣溫濕度傳感器,以及在花盆里部署其他傳感器、架設攝像頭來構建花卉智能養護系統試驗平臺,土壤材料選取普通的適合花卉生長的泥土,花卉采用喜濕的吊蘭,如圖7 所示.采樣時間為每天上午的8:00 以及下午的16:00.系統工作一段時間后,可以提取寄存器中存儲的花卉的環境數據.表4 為系統工作6 天自動養護模式下的花卉環境數據值,其中,表中T代表空氣溫度單位為℃;H1代表空氣濕度,單位為RH;L代表光照強度,單位為klx;H2代表土壤濕度,單位為RH.
測試結果表明,自動養護模式能夠自動判別出花卉當前的生長狀況并能夠及時的對花卉的環境進行改善,實現了自主養花護花的功能,達到了智能養花的目的.
該模型在結合環境數據之后,能夠較好地提高分辨花卉生長狀況的準確度,然而由于花卉樣本的復雜性,花卉生長狀況的分辨還不能達到完全的正確.比如,在吊蘭的葉片圖像特征僅呈現為發黃的時候,且當前的環境數據顯示為空氣溫度為30 ℃,空氣濕度為34%RH,光照強度為75 klx,土壤濕度為45% RH,根據模型分類得出的結果為空氣溫度過高,然而根據實際情況卻應該分類為土壤濕度過低的情況.分析可得,由于此時空氣溫度過高和土壤濕度過低的特征表現相對比較接近,且此時圖像僅呈現為發黃的特征,很容易導致錯誤的判斷.由于花卉的生長狀況是復雜的且不斷變化的,其特征是根據環境變化而發生的一個緩慢變化,在某一時刻點的單一特征是跳躍的,所以不能完全代表其生長狀況的變化.針對這一問題,采取將這一時刻點的特征與上一狀態的變化相結合,依據上一狀態的情況來對這一時刻點的特征做進一步的判斷,從而提高識別的準確率.

圖6 不同層次網絡
本文提出的基于深度學習的花卉生長狀況自動識別方法,突破了原始花卉養護中的只能通過人工觀測來判別花卉生長狀況的局限,擺脫了花卉養護需要高度專業化的花卉養護知識的限制,降低了花卉養護的成本.將該方法應用到花卉養護裝置中,在不需要專人干預的情況下,能夠提高花卉養護的成功率,減輕花卉養護的工作量,從而降低花卉養護的成本,該方法也可應用在農作物的種植環節中,同樣也能幫助農作物很好的生長.

表3 傳感器輔助CNN 和一般CNN 之間的性能比較

圖7 花卉智能養護系統試驗平臺

表4 自動養護模式下的花卉環境數據