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