楊 喆, 伊國興
為了使無人機(unmanned aerial vehicle,UAV)具有更廣泛的用途,如何讓無人機更加智能化成為了擴大無人機應(yīng)用的關(guān)鍵。瑞士蘇黎世聯(lián)邦工業(yè)大學(xué)[1]設(shè)計的無人機使用計算機視覺實現(xiàn)了對未知地區(qū)的探索。香港科技大學(xué)的沈劭劼等人[2]通過激光測距儀與微軟Kinect傳感器對室內(nèi)地圖進行了重建,并在無人機上搭載嵌入式計算機實現(xiàn)自主飛行。隨著計算機硬件技術(shù)的不斷發(fā)展,人工智能技術(shù)也在近幾年內(nèi)取得了突破[3~5]。如果將最新的人工智能技術(shù)應(yīng)用的無人機行業(yè)中,將能夠大幅提高無人機的智能水平。
目前來看,無人機較為復(fù)雜的控制方式阻礙了消費級無人機的推廣。本文提出了使用人體姿態(tài)信息完成與無人機的交互任務(wù),并在機載嵌入式計算設(shè)備上完成了部署,達到了20幀/s的處理速度。通過使用該方法,用戶可以拋開傳統(tǒng)的依賴遙控器的人機交互方式,大幅提高了無人機使用的便捷性和自主智能程度。
人機交互實現(xiàn)的核心是完成對人體姿態(tài)信息的檢測與分類。傳統(tǒng)的圖像信息檢測方法[6,7]運行速度慢,難以實現(xiàn)實時性。近年來,基于深度學(xué)習(xí)的檢測算法[8]如Fast-RCNN等使用耗時較長的Selective Search算法[9]為分類器生成候選框(region proposals),如果能夠找到一種生成候選框的替代辦法,就能夠?qū)z測問題轉(zhuǎn)化為分類問題,而分類問題的訓(xùn)練樣本制作要簡單得多。由于人體姿態(tài)信息通常為前景目標,本文采用前景信息生成候選窗口。
為了解決無人機回傳圖像存在抖動而難以進行背景建模的問題,使用模板匹配的方法對無人機的抖動進行了補償。對補償后的圖像,使用改進的視覺背景提取(visual background extraction,ViBe)方法進行前景信息提取,并通過聚類的方法生成了可能存在人體姿態(tài)信息的候選框。串聯(lián)了兩個神經(jīng)網(wǎng)絡(luò)分類器完成人體姿態(tài)信息的分類任務(wù)。分別用于判斷目標是否為人和對姿態(tài)信息的種類進行分類。無人機根據(jù)姿態(tài)信息的分類結(jié)果做出響應(yīng),完成人機交互任務(wù)。整個系統(tǒng)的工作流程如圖1所示。
圖1 人機交互基本流程
多旋翼無人機在飛行懸停過程中受到氣流的不穩(wěn)定和控制回路的時延影響,機體會產(chǎn)生一定程度的震動和漂移,造成拍攝畫面的不穩(wěn)定,影響到后續(xù)算法對目標的檢測與跟蹤工作。無人機本身通過添加防震墊圈,為相機配備云臺等手段從物理上減弱了震動。本文通過算法補償無人機的震動與漂移。
通過實驗與觀察發(fā)現(xiàn),無人機在懸停時圖像中存在的變化主要體現(xiàn)在水平與豎直方向上的平移變化。在整幅圖像中,實際位置會發(fā)生變化的前景目標只占一小部分,而占大部分區(qū)域的背景在穩(wěn)定的圖像中的位置應(yīng)當(dāng)維持不變。同時,由于無人機懸停時的漂移變化是小運動,因此,可以保證圖像中間部分在下一幀當(dāng)中依然出現(xiàn)。因此,只要將占圖像大部分區(qū)域的背景匹配對齊,即可消除圖像的水平與豎直方向上的平移變化。使用模板匹配法可以很好地解決這一問題。
對新采集的一幀圖像,在圖像上滑動與模板圖像相同大小的窗口并計算二者的差異,可以獲得在該位置上模板與圖像的相似度。衡量相似度的標準為
(1)
式中R為模板在圖像各個位置上的相似度,該值越小表明越相似;T為模板的像素值;I為圖像原圖的像素值。
對整個圖像都進行遍歷移動計算后,可以獲得一個偏移相似度矩陣。求取該矩陣中的最小值,最小值所在的下標即為無人機震動造成的圖像的偏移量。
人體姿態(tài)信息通常屬于前景信息。為了獲取前景信息,首先需要完成背景建模工作,主要解決無人機震動和光照影響。ViBe是一種像素級的背景建模、前景檢測算法,具有較高的運行速度。通過對該算法進行改進,完成了對無人機懸停時拍攝的圖像的背景建模。
首先對讀入的圖像進行穩(wěn)定算法處理,消除無人機震動帶來的圖像抖動。采集前30幀圖像建立背景模型。對每個像素點都建立長度為30的樣本庫,保存前30幀的樣本信息。對后續(xù)的圖像,逐個像素點與樣本庫比對并計算距離L
(2)
式中L代表在讀入圖像像素點與樣本庫的距離,該值越大,表明該點越可能為前景;Ti為樣本庫中的第i個樣本的像素值;I為輸入圖像在(x,y)處的像素值;1{·}為示性函數(shù),當(dāng)中括號中的條件為真時取1,否則,取0;θ為判斷樣本庫與當(dāng)前像素是否相似的閾值,根據(jù)實驗取經(jīng)驗值20。
若計算L<10,將該點視作背景;否則,歸為前景。為了適應(yīng)戶外光照的變化,對ViBe方法的背景模型更新策略進行了改進。當(dāng)該點歸為背景時,使用該點的像素值替換樣本庫中在時間上最老舊的樣本,加速陳舊信息的消除,以適應(yīng)光照變化。計算完成后可以獲得一幅與輸入圖像大小相同的二值圖像,其中前景像素點值為1,背景像素點值為0。對該圖像進行聚類處理,可以生成可能含有目標的候選窗口。本文使用非極大值抑制消除位置重疊的候選窗口。
對獲得的所有候選框提取出框內(nèi)的圖像信息并進行分類,為了保證目標完整的出現(xiàn)在框內(nèi),對候選框的長寬放大1.2倍,再將框內(nèi)圖像送入分類器分類。
由于該分類器僅考慮解決二分類問題,選擇使用AlexNet網(wǎng)絡(luò)訓(xùn)練人體目標分類器。
1)輸入層與數(shù)據(jù)預(yù)處理
本文主要研究對站立人體的分類,因此,使用輸入尺寸為128×64的紅綠藍三原色(RGB)彩色圖像能夠較好地保留人體的特征又不會占用過多的空間。
由于采集的圖像的高度與寬度不定,使用雙線性插值將圖像縮放到與輸入層相同的大小。為了保留圖像的邊緣特征,不對縮放后的圖像進行濾波處理。受到光照,拍攝條件等因素的影響,不同的圖像數(shù)據(jù)間還可能存在偏差,因此,對縮放后的圖像進行去均值處理。計算所有樣本的圖像的各個通道中每個像素點的均值,每個輸入樣本均減去該均值。
2)卷積層與池化層提取特征
卷積層的計算公式為
(3)
式中l(wèi)為卷積神經(jīng)網(wǎng)絡(luò)的層數(shù);k為卷積核;M為卷積核在上一層的感受野;b為卷積核的偏置。AlexNet網(wǎng)絡(luò)含5個卷積層。其中第一個卷積層卷積核大小為11×11,第二個卷積層為5×5,后面三個卷積層卷積核大小均為3×3。
采用池化操作可以降低特征維數(shù),并使網(wǎng)絡(luò)具備平移不變性,抵抗數(shù)據(jù)的平移。池化層通常接在卷積層之后,將N×N區(qū)域的特征聚合到一個特征中。本文采用最大值池化。
3)全連接層與輸出層
卷積神經(jīng)網(wǎng)絡(luò)在最后一層池化層后連接了多層全連接層用于完成特征序列到分類類別的映射,最后一層使用Softmax分類層輸出各類別的概率。
定義4種容易擺出并且區(qū)別較大的姿態(tài),如圖2(a)所示。為了保證無人機使用的安全性,需要設(shè)計姿態(tài)作為無人機對人體姿態(tài)信息的響應(yīng)開關(guān)。將圖2(a)從左到右4個姿態(tài)對應(yīng)的無人機指令設(shè)計為:開啟無人機對人體姿態(tài)信息的響應(yīng);關(guān)閉無人機對人體姿態(tài)的信息的響應(yīng);向右飛行,向左飛行。
圖2 人體姿態(tài)數(shù)據(jù)集
為了獲得較好的分類效果,除了要獲取人體所在區(qū)域信息之外,還需要盡可能準確地預(yù)測出人體的輪廓,去除周邊背景等因素的干擾。由于之前的目標檢測過程中已經(jīng)進行了背景建模,本文采用前景信息獲取的方法剔除背景因素的干擾,既能夠提高分類效果,也能夠減少計算開銷,提取后的姿態(tài)信息如圖2(b)所示。
經(jīng)過實驗測試,發(fā)現(xiàn)使用2層的全連接神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練即可夠獲得很高的分類準確率,并且相較于復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò),該方法的計算開銷與運行時間亦顯著降低。
使用飛越Tarot 650四旋翼無人機機架和Pixhack開源飛控為主體搭建了一架無人機,并在無人機上搭載了Gopro相機,雙軸云臺和Odroid XU4嵌入式計算機。Odroid-XU4使用2.0 GHz基于ARM架構(gòu)的處理器作為運算單元,擁有2 GB內(nèi)存空間和64 GB存儲空間,具有強大的計算能力,較低的功耗和小巧的封裝尺寸,十分適合作為機載嵌入式計算設(shè)備。
該無人機的相關(guān)參數(shù)指標:最大飛行速度為54 km/h,最大飛行高度為1 000 m,最大數(shù)據(jù)傳輸距離為2 km,姿態(tài)測量精度為1°,水平方向定位精度為1 m,垂直方向定位精度為1.5 m,最大起飛重量為4 kg,空載重量為2.9 kg,續(xù)航為空載20 min,滿載12 min,對角電機軸距為650 mm。相關(guān)參數(shù)基本滿足實驗需求。
對獲取到的圖像進行去抖動穩(wěn)定處理。圖3(a)所示為無人機上拍攝到未經(jīng)穩(wěn)定算法處理時臨近2幀差分的結(jié)果,圖3(b)為經(jīng)過穩(wěn)定算法處理后臨近2幀差分的結(jié)果??梢悦黠@發(fā)現(xiàn):在圖3(a)中由于無人機的震動導(dǎo)致了畫面后方的欄桿在相鄰兩幀間出現(xiàn)了明顯的位移,而圖3(b)中兩幀的欄桿基本已經(jīng)重合,證明了算法實現(xiàn)了對無人機的震動對圖像造成影響的補償。
圖3 圖像穩(wěn)定算法效果
在無人機懸停并且成功對背景進行重構(gòu)的情況下,可以利用前景信息完成目標檢測任務(wù)。圖4(a)為無人機拍攝到的一幀原始圖像,圖4(b)為使用改進的ViBe法提取到的前景信息。為了實現(xiàn)多目標檢測,圖像劃分為8×6個區(qū)塊,對每個區(qū)塊統(tǒng)計可能含有前景目標的概率。圖4(c)為對4(b)進行概率統(tǒng)計后的結(jié)果,圖中可能含有前景目標的區(qū)塊用黑色標識。圖4(d)為對圖4(c)的可能區(qū)域進行聚類操作并使用非極大值抑制剔除重復(fù)框后得到的結(jié)果,可見該方法能夠較好地完成目標檢測任務(wù)。
圖4 候選框生成
為了簡化問題并提高穩(wěn)定性,僅對站立的人進行分類,而行人的特征與本文要求一致,因此,使用INIRIA INRIAPerson行人數(shù)據(jù)集作為訓(xùn)練樣本進行訓(xùn)練。INRIAPerson數(shù)據(jù)集的訓(xùn)練集中包含614張含有行人的正樣本圖片和1 218張不含行人的負樣本圖片,圖片中人體大部分為站立姿勢且大于100個像素。
圖5為目標種類分類器的訓(xùn)練過程。在經(jīng)過2 000批次的迭代訓(xùn)練后,網(wǎng)絡(luò)在INIRAPerson數(shù)據(jù)集上分類準確率達到97.6 %。整個訓(xùn)練過程中損失函數(shù)變化如圖5(a)所示,分類準確率變化如圖5(b)所示,發(fā)現(xiàn),經(jīng)過1 500次迭代后,網(wǎng)絡(luò)已經(jīng)趨于穩(wěn)定。
對圖3的每一種姿勢,均采集了1 200張圖像,不同的圖像間手張開的角度和拍攝角度均有一定的不同,并采集了2 000張其他不同的姿勢作為背景樣本。將1 200張圖像其中1 000張作為訓(xùn)練集,另200張作為測試集,送入一2層的全連接神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,在訓(xùn)練前對所用樣本均進行了去均值處理。經(jīng)過每批次100張圖片輸入,共400次迭代后,分類器的分類正確率達到了99.7 %,整個訓(xùn)練過程中分類準確率與損失函數(shù)變化分別如圖5(c)和圖5(d)所示。
圖5 分類器訓(xùn)練結(jié)果
為了驗證本文方法在嵌入式計算機上的實時性,對整個系統(tǒng)各個環(huán)節(jié)的運算耗時進行了統(tǒng)計,并與當(dāng)下流行的用于檢測任務(wù)的Faster R-CNN進行了對比。對本文各算法部分在Odroid-XU4上處理一張大小為640×480的RGB圖像所花費的時間統(tǒng)計,圖像穩(wěn)定為16.7 ms,前景信息提取為23.6 ms,目標種類分類器為12.2 ms,人體姿態(tài)分類器為2.4 ms,單張圖片耗時總計為54.9 ms。
整個系統(tǒng)在Odroid-XU4上可以達到約20/s幀的處理速率。而Faster RCNN檢測算法由于在機載嵌入式計算機上缺乏GPU計算資源,處理一張圖片平均需要花費19 s,處理速率十分低下。通過對比可見,相比目前的卷積神經(jīng)網(wǎng)絡(luò)檢測算法如Faster RCNN等本方法在運算速度上有很大優(yōu)勢,具有實際應(yīng)用價值。
設(shè)計了一種采用人體姿態(tài)信息完成無人機人機交互的方法。整個系統(tǒng)能夠在機載嵌入式計算機上實現(xiàn)實時性,大幅提高了無人機的自主智能程度。
參考文獻:
[1] Fraundorfer F,Heng L,Honegger D,et al.Vision-based autonomous mapping and exploration using a quadrotor MAV[C]∥IEEE/RSJ International Conference on Intelligent Robots and Systems,IEEE,2012:4557-4564.
[2] Shen S,Michael N,Kumar V.Autonomous indoor 3D exploration with a micro-aerial vehicle[C]∥IEEE International Conference on Robotics and Automation,IEEE,2012:9-15.
[3] Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[C]∥International Conference on Neural Information Processing Systems,Curran Associates Inc,2012:1097-1105.
[4] Everingham M,Gool L V,Williams C K I,et al.The pascal visual object classes (VOC) challenge[J].International Journal of Computer Vision,2010,88(2):303-338.
[5] 田淵棟.阿法狗圍棋系統(tǒng)的簡要分析[J].自動化學(xué)報,2016(5):671-675.
[6] Forsyth D.Object detection with discriminatively trained part-based models[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2010,32(9):1627-1645.
[7] Dalal N,Triggs B.Histograms of oriented gradients for human detection[C]∥IEEE Computer Society Conference on Computer Vision and Pattern Recognition,CVPR 2005,IEEE,2005:886-893.
[8] Girshick R,Donahue J,Darrell T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]∥Computer Vision and Pattern Recognition,IEEE,2014:580-587.
[9] Uijlings J R R,Sande K E,Gevers T,et al.Selective search for object recognition[J].International Journal of Computer Vision,2013,104(2):154-171.