宋志強,周獻中,祖寶明,方 武
(1.南京信息工程大學濱江學院自動化學院,江蘇 無錫 214105;2.蘇州經(jīng)貿(mào)職業(yè)技術學院信息技術學院,江蘇 蘇州 215009;3.南京大學工程管理學院,南京 210008)
隨著人工智能時代的到來,越來越多的自治系統(tǒng)將遍布城市和家庭環(huán)境。下一代無人機(Unmanned Aerial Vehicle,UAV)需要高級控制器才能在非結(jié)構(gòu)化環(huán)境中作業(yè)并執(zhí)行多項任務。最近業(yè)界提出了一種新的應用,即使用四旋翼無人機來運送包裹和貨物,在這種情況下,地面標記識別是無人機自主著陸的關鍵技術之一。無人機著陸方法可分為傳感器融合、設備輔助和基于視覺3 類。傳感器融合的方法依賴多個傳感器,以便收集足夠的數(shù)據(jù)進行魯棒的姿態(tài)估計。文獻[1]將來自朝向下方的攝像機和慣性測量單元的數(shù)據(jù)組合以便地形的三維重建,基于二維高程圖可以找到一個安全的著陸區(qū)域。
Saripalli等[2]使用特定的幾何形狀作為著陸墊,結(jié)合多個傳感器的分析以便準確估計無人機相對于標記的位置。文獻[3]提出一種基于地面的多傳感器融合系統(tǒng),該系統(tǒng)包括云臺單元、紅外攝像機和一個超寬帶雷達,用于將無人機置于恢復區(qū)域并將其引向地面,設備輔助的方法依賴于地面?zhèn)鞲衅?,以便精確估計無人機的位置和軌跡。Tang 等[4]使用基于紅外線燈的系統(tǒng),采用一系列設置在跑道上的平行紅外燈,無人機上的攝像頭配有用于捕獲紅外光的光學濾波器,圖像被傳送到控制系統(tǒng)以進行姿態(tài)估計?;谝曈X的方法通過分析幾何特征以便找到著陸墊和地面。文獻[5]使用七階段視覺算法進行實時目標識別和跟蹤,應用于無人機在船上的自動著落。文獻[6]將深度強化學習算法應用于解決移動平臺上的無人機著陸。
TensorFlow 深度學習框架已有多項成功應用,學術界也紛紛將其應用于科學研究中。孫鈺等[7]將TensorFlow 應用于森林蟲害的實時監(jiān)測;龔鋼軍等[8]將TensorFlow 應用于高壓輸電線上的異物識別;王一超等[9]將TensorFlow 部署于超級計算機π上,向上海交通大學提供計算服務;文獻[10]利用TensorFlow 深度學習框架實現(xiàn)俄語詞匯標音算法并設計原型系統(tǒng)。將TensorFlow 應用于多旋翼無人機的著陸地標識別是非常有意義的嘗試,有助于解決多旋翼無人機應用中的著陸難題,加快多旋翼無人機的應用推廣。本文以四旋翼無人機為例,首先組裝基于Pixhawk 的飛行控制器組裝四旋翼無人機,并將樹莓派3B 和Pixhawk 飛行控制器通過串口相連接以構(gòu)建機載電腦,通過組裝的四旋翼無人機拍攝著陸坪圖片;然后提出一種基于遷移學習的地面標識圖像檢測方法,該方法基于TensorFlow 深度學習框架,使用遷移學習技術在地面標識數(shù)據(jù)集上重新訓練Inception-v3 模型以構(gòu)建新的地面標識識別模型。在Windows下訓練、測試的模型可移植到樹莓派3B 上,完成了基于Python 和TensorFlow 開發(fā)的程序在不同操作系統(tǒng)下運行的驗證工作。
目前網(wǎng)絡上還沒有滿足實際應用的多旋翼無人機自主著陸時的著陸坪圖片,無法滿足深度學習神經(jīng)網(wǎng)絡的訓練,所以只能通過無人機在空中實際拍攝圖片來制作數(shù)據(jù)集。但由于人力、財力以及時間有限,所拍攝到的著陸坪圖片及其他地面標識圖片數(shù)量不足以支撐整個復雜深度神經(jīng)網(wǎng)絡的訓練。為解決地面標識小數(shù)據(jù)集問題,采取遷移學習方法,利用少量的無人機著陸坪圖片和來自網(wǎng)絡的其他地面標識圖片來訓練復雜的深度神經(jīng)網(wǎng)絡模型。通過遷移學習,將源模型在大數(shù)據(jù)集上訓練出來的優(yōu)秀特征提取能力遷移到目標模型上[11]。
采用基于Pixhawk 的飛行控制器組裝四旋翼無人機,并將樹莓派3B 和Pixhawk 飛行控制器通過串口相連接,樹莓派3B 通過USB 口與攝像頭相連,攝像頭鏡頭垂直向下,用于拍攝地面標識。搭載樹莓派的無人機實物圖如下頁圖1 所示。
樹莓派系統(tǒng)上電后自啟動拍照程序,著陸坪圖片由無人機在距離地面2 m、4 m、8 m、12 m 時拍攝的著陸坪照片組成。
通過網(wǎng)絡下載機場、建筑物、森林、草地、河面、道路等圖片,圖片格式為jpg,實際下載下來的圖片盡管后綴名為jpg,但實際為gif、png 等格式,因此,要作預處理,將非jpg 格式的圖片刪除。判斷jpg 格式圖片的Python 代碼如下:
圖1 搭載樹莓派3B 的無人機
將無人機實際拍攝的著陸坪圖片和從網(wǎng)絡上下載的機場、建筑物、森林、草地、河面、道路等圖片組成地面標識數(shù)據(jù)集,存于Groundmarking_pics 文件夾中,該文件夾包含airport、building、forest、grass、landingpad、river、road 等7 個子文件夾,每一個子文件夾名稱為一種地面標識的名稱,代表不同的類別。平均每一種類別有230 張圖片。由于從網(wǎng)絡上下載的圖片大小不一致,因此,前期先對其進行預處理,處理成大小一致的圖片。部分訓練集樣例如圖2 所示。
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)可有效減少全連接神經(jīng)網(wǎng)絡的參數(shù)個數(shù),其主要由輸入層、卷積層、池化層、全連接層、Softmax 層組成,其中Softmax 層主要用于分類問題。卷積層是CNN 的核心層,其計算公式為:
圖2 部分訓練集樣例
池化層可有效減小矩陣尺寸,從而減少最后全連接層中的參數(shù)個數(shù)。使用池化層可加快計算速度,也具有防止過擬合之作用,使用較多的池化操作為最大值池化,其公式為:
Inception-v3 是一種性能較好的卷積神經(jīng)網(wǎng)絡模型,其模型原理圖[12]如下頁圖3 所示。
Inception-v3 具有計算量相對較小的優(yōu)勢,可移植到普通PC 機甚至嵌入式計算機上以進行圖像識別。
圖3 Inception-v3 模型原理圖
深度學習算法在多旋翼無人機著陸研究中存在著一個關鍵的問題:著陸操作的大量訓練數(shù)據(jù)很難得到,而Inception-v3 模型基于IMAgeNet數(shù)據(jù)集,已使用大量圖片訓練模型,若完全放棄則十分可惜。遷移學習解決了如何合理利用已有圖片數(shù)據(jù)的問題。對未在原有網(wǎng)絡中訓練的對象分類,可以通過遷移學習重新訓練,可實現(xiàn)從現(xiàn)有數(shù)據(jù)中遷移知識。Inception-v3 模型在IMAgeNet數(shù)據(jù)集上訓練得到模型參數(shù),但將Inception-v3 模型直接用于地面標識識別時,效果并不理想(詳見3 實驗與分析)。根據(jù)文獻[13]的結(jié)論,可保留已經(jīng)訓練好的Inception-v3 模型中全部卷積層的參數(shù),僅替換最后一層Softmax,將最后一層Softmax 之前的網(wǎng)絡稱為瓶頸層(bottleneck)。已訓練好的卷積神經(jīng)網(wǎng)絡到瓶頸層可看作對新的圖像數(shù)據(jù)集進行特征提取以應用于新的分類問題,將最后一層Softmax 輸出層的1 000個節(jié)點換為7 個,用于多旋翼無人機自主著陸時地面標識的識別?;赥ensorFlow 和Inception-v3 模型的遷移學習的訓練流程如圖4 所示。
將地面標識數(shù)據(jù)集中的圖片和從網(wǎng)絡下載的部分水果圖片用于測試Inception-v3 模型,識別結(jié)果如下頁表1 所示。
從測試結(jié)果看,有以下明顯誤識別:著陸坪圖片被誤認為街道標志、河面被誤識別為水蛇、草地被誤識別為槌球等。盡管能準確識別香蕉,但桃子和櫻桃都被誤識別成其他水果或植物。由此可得:基于Inception-v3 模型的識別不能直接用于多旋翼無人機的自主著陸地標識別中。針對具體應用,需要有與應用相關的圖片來重新訓練Inception-v3 模型。
實驗主機為Intel Core i3-4160,8G B 內(nèi)存,操作系統(tǒng)為Windows7 的臺式機。采用TensorFlow 1.11,Python 3.5 作為編程語言。初始學習率為0.01,迭代次數(shù)從1 000 開始,每次增加1 000~10 000,其余參數(shù)保持不變,進行10 次實驗,實驗結(jié)果如下頁圖5所示。
圖4 基于Inception-v3 的遷移學習訓練流程
迭代次數(shù)為1 000 時,在實驗機上約5 min 就能訓練完成。10 次實驗的平均正確率為92.6%,在數(shù)據(jù)集較小的情況下,10 次實驗的識別準確率均超過90%,基于Inception-v3 的遷移學習具有較好的識別效果。另外實驗結(jié)果表明僅靠增加迭代次數(shù)并不總是能提高識別正確率。在Windows 下訓練、測試的模型可移植到樹莓派3B 上,完成了基于Python和TensorFlow 開發(fā)的程序在不同操作系統(tǒng)下運行的驗證工作,具體移植詳見文獻[14]。
通過對基于TensorFlow 和遷移學習的四旋翼無人機著陸地標識別進行研究,得出以下結(jié)論:
表1 直接基于Inception-v3 模型的識別結(jié)果
圖5 不同迭代次數(shù)下的識別正確率
1)總體而言,在僅有數(shù)千張訓練圖片時,基于Inception-v3 模型的遷移學習的正確率尚可接受。
2)若要進一步增加實用性,可通過增加無人機著陸時拍攝的地面標識訓練集圖片,實現(xiàn)且增加的訓練集圖片遠小于訓練完整的模型所需圖片。
3)重新使用在IMAgeNet上訓練的圖像分類器的特征提取功能,并簡單地在頂部訓練新的分類層,對于多旋翼無人機著陸地標識別來說是非常有效的,該方法可以使用數(shù)千、數(shù)萬而不是數(shù)百萬張標記圖像作為訓練數(shù)據(jù),具有較高的實用價值。