王嘉儀,熊方瑩,劉鴻基
(南華大學計算機學院,湖南衡陽,421000)
違章建筑逐漸成為困擾城市管理以及建設(shè)的重要難題,針對此類問題,無人機航拍相比于人工巡查更加低廉和高效,且無人機航空攝影可及時獲取城市重點區(qū)域高分辨率影像數(shù)據(jù)[1],通過影像可對違法建設(shè)施工數(shù)據(jù)進行判讀,甄別疑似違章建筑,為主管部門提供出一條新的決策依據(jù)。近幾年,無人機技術(shù)的高速發(fā)展為排查違章建筑提供了一條新路徑,但依然存在著排查難度較高,效率低下等問題。然而,隨著圖像識別技術(shù)的不斷發(fā)展和計算機視覺在各大領(lǐng)域中的廣泛應用,深度學習技術(shù)的引入為無人機檢測違章建筑提供了一條全新的思路[2]。
本項目中的無人機設(shè)計架構(gòu)見圖1,可總共分為兩個部分:(1)硬件系統(tǒng)設(shè)計;(2)軟件系統(tǒng)結(jié)構(gòu)。通過這兩部分的分別設(shè)計,可以實現(xiàn)設(shè)定起點與終點后,無人機的自動搜尋與自動判斷是否存在違章建筑。

圖1 無人機違章建筑物檢測系統(tǒng)構(gòu)成圖
在飛行器飛行的過程中,傳感器的數(shù)據(jù)勢必會受到各種干擾,例如風吹過時的抖動、傳感器自身的溫漂、突然出現(xiàn)的加速度等,都會使飛行數(shù)據(jù)變得抖動。為了避免這種抖動的數(shù)據(jù)對飛行器飛行過程的干擾,本文引入了卡爾曼濾波算法來對數(shù)據(jù)進行濾波處理。由于四旋翼為四輸入——六輸出的欠驅(qū)動系統(tǒng),其數(shù)學模型的構(gòu)建較為復雜,所以本文在設(shè)計中拋棄了控制整體數(shù)學模型系統(tǒng)的思想,而是只考慮飛行器姿態(tài)的控制,這種只需控制姿態(tài)而忽略其自身數(shù)學結(jié)構(gòu)的控制系統(tǒng)中,經(jīng)典PID算法便可以很好地解決問題。
卡爾曼濾波,一般稱為 “最優(yōu)化自回歸數(shù)據(jù)處理算法”。對于許多濾波估值問題,這種算法可能是效率最高的。卡爾曼濾波算法應用較為廣泛,多用于傳感器數(shù)據(jù)融合,機器人導航和雷達系統(tǒng)導彈追蹤等方面。而近年來也被用于計算機圖像處理計算,例如頭像識別,圖像分割,圖像邊沿檢測等等,對于四軸飛行器而言,得到系統(tǒng)的最優(yōu)狀態(tài)量是實現(xiàn)控制效果的先決條件,因而可以通過卡爾曼濾波器來對系統(tǒng)狀態(tài)進行驗證。這得益于卡爾曼濾波器的工作原理。通過估計輸入系統(tǒng)狀態(tài)量,然后參考加速度計的測量值,以這兩個參數(shù)來實現(xiàn)對系統(tǒng)狀態(tài)量的驗證,以此修正誤差。然后在此基礎(chǔ)上實時更新系統(tǒng)的參數(shù)矩陣。而重要的是,這種濾波器能夠?qū)ν勇輧x的常值漂移進行估計,從而保證角速度的測量能正常進行,并在加速度計受各種有害加速度影響時得到更加準確的姿態(tài)檢測值。
四旋翼飛行器可以有六種狀態(tài)輸出(3個位置改變量與3個姿態(tài)改變量),但只有四個控制輸入(即四個電機的轉(zhuǎn)速),因此是一種四輸入——六輸出的欠驅(qū)動系統(tǒng)。這種系統(tǒng)具有多變量又強耦合、非線性又干擾敏感的特性,這些特性的存在使得飛控系統(tǒng)的設(shè)計變得非常困難。而且,由于四旋翼飛行器的數(shù)學模型難以精確構(gòu)建的特性,控制器性能必然受到影響。在四旋翼的位置和姿態(tài)控制中,姿態(tài)控制更為關(guān)鍵。因為四旋翼飛行器的姿態(tài)與位置存在直接耦合關(guān)系,這體現(xiàn)在俯仰姿態(tài)和橫滾姿態(tài)會直接導致機體的前后移動和左右移動,所以在能精確控制飛行姿態(tài)的前提下,可以通過調(diào)整姿態(tài)來改變位置量。這種控制可以忽略其本身的數(shù)學模型而直接使用PID控制律。
PID算法的控制方法是根據(jù)系統(tǒng)輸出的反饋值與預定值進行做差,再將偏差的大小運用比例、積分、微分計算出控制的輸出量。將這個控制量輸入系統(tǒng)中,再次獲得輸出量,通過反饋再與預定值進行差運算,循環(huán)上述過程,直到系統(tǒng)輸出的控制值無限接近或達到預定值。
位置式PID算法為:

增量式PID算法對應可由位置式推出:

在PID算法中,P是比例環(huán)節(jié),作用是將輸出值與預期值的差值成比例地反映出來,一旦產(chǎn)生偏差,比例環(huán)立馬相應來降低偏差,優(yōu)點是響應快,缺點為在無限接近預定值時,比例環(huán)的控制效果便趨近于零,容易在預定值附近產(chǎn)生抖動。I是積分環(huán)節(jié),作用是消除靜態(tài)誤差,提高精準度,為了抑制積分環(huán)累計而飽和,造成系統(tǒng)超調(diào),一般會對積分環(huán)的輸出進行限幅以減小積分飽和的影響。D是微分環(huán)節(jié),作用是反應偏差信號的變化趨勢,在變差信號變化前引入一個有效的修正信號,加快系統(tǒng)的調(diào)節(jié)時間。在PID的應上,由于控制需要的響應較慢,一般過程控制系統(tǒng)中使用PI控制。而控制需要較快響應的隨動控制系統(tǒng)中使用PD控制。
在本四旋翼結(jié)構(gòu)中,通過MPU9250來反饋飛行器的加速度與傾斜角度,作為控制的輸入,然后再由微控制器進行計算,進而控制四個電機的轉(zhuǎn)速,實現(xiàn)飛行器的加速、減速,轉(zhuǎn)向、懸停等功能。由于控制過程較為復雜,本設(shè)計采用增量是式PID控制算法。
本方案中尋徑模塊是將路徑規(guī)劃算法與機器視覺結(jié)合實現(xiàn)無人機的自動定位,利用定位模塊獲取北斗導航系統(tǒng),再通過北斗導航系統(tǒng)獲取無人機三維定位數(shù)據(jù),最后綜合目的地信息,使用路徑規(guī)劃算法對無人機進行路徑規(guī)劃。但對于低空飛行的無人機而言,在飛行中難免會遇到障礙,所以也需要為無人機提供一種盡可能規(guī)避更多障礙的方案;在數(shù)據(jù)獲取方面,使用樹莓派獲得建筑物圖片,之后將圖片傳到視覺模塊做進一步處理與分析。

圖2 尋徑模塊分析圖
3.1.1 路徑規(guī)劃算法
由于無人機飛行需要考慮第三維度——高度,所以在規(guī)劃路徑的一開始需要確定一個相對恒定的數(shù)據(jù),也就是高度。確定高度同時還有一個好處:可以在原先算法的基礎(chǔ)上不做太大改變。而在《無人駕駛航空器飛行管理暫行條例(征求意見稿)》第四章飛行空域的第二十八條中寫道:真高120米以上空域為輕型無人機管控空域。所以當無人機處于較高高度時,其道路所受樓房建筑的影響較小。從而本文選擇RRT算法對路徑進行規(guī)劃。
快速擴展隨機樹(RRT/Rapidly Exploring Random Tree)方法通過對狀態(tài)空間中的采樣點進行碰撞檢測,通過對空間區(qū)域的隨機采樣點,自動尋找一條從起點到目標終點的規(guī)劃路徑[3]。此方法可以很好地解決多維并且復雜的路徑問題,最重要的是,在無人機的飛行過程中,系統(tǒng)需要快速地對空中物體或偏移的路徑進行反應,以此來保證無人機與行人的安全。盡管RRT算法對狹小空間的路徑尋找效果并不好,但對于無人機的低空域飛行而言,這并不是問題。使用 RRT算法隨機數(shù)拓展過程可表示為以下式子:

通過RRT算法的處理過程,不難看出RRT方法的隨機生成點是快速的。在無人機的飛行過程中,很容易出現(xiàn)一些問題,如盡管我們設(shè)定了一個相對安全的高度,仍然有可能因為定位系統(tǒng)的精度問題遇到障礙物,或因為突然的障礙物,如飛鳥、垃圾等不可通過規(guī)劃路徑來規(guī)避的物體,而緊急避障。本文使用RRT算法,最看重的一點就是他可以在進行緊急避障過后,快速地重新規(guī)劃路徑,以保證無人機的飛行安全。
3.1.2 四方向的超聲波感應避障
本系統(tǒng)在無人機的前后左右四個方向上裝HC-SR04超聲波模塊,用來檢測無人機飛行時四周的狀態(tài),確保飛行安全。HC-SR04作為一款高精度超聲波模塊,具有探測距離遠(2cm—450cm)、精度高(誤差在0.2cm)、易于控制等優(yōu)點。在無人機飛行時,可以檢測四周的環(huán)境,防止無人機撞到飛鳥、樹木、建筑物等。
在主控芯片上為超聲波模塊留出IO接口,超聲波模塊使用方法為:給模塊一個觸發(fā)信號,當超聲波模塊得到觸發(fā)信號后開始工作,并且返回給控制芯片一個脈沖信號,控制芯片得到該脈沖信號后開啟定時器,等待超聲波另一個脈沖信號,再次接收到脈沖信號時,讀取定時器的時間,通過測試距離=(高電平時間×聲速(340m/s))/2計算出障礙物與無人機間的距離。預先設(shè)定一個閾值,當四方向上的任意一個方向有障礙物達到這個閾值時,無人機做出相應的內(nèi)置避障動作,來規(guī)避障礙物,保證無人機的飛行安全。
3.1.3 視覺預警設(shè)計
視覺的預警主要是防止無人機在低空飛行的過程中遇到障礙,防止無人機發(fā)生因意外撞擊物體而發(fā)生的墜毀事件。而對于該部分的設(shè)計,主要是通過使用攝像頭對周圍環(huán)境進行信息采集。在通過實現(xiàn)建立好的鳥類識別模型進行判定。
對于模型的建立,本文采用全連接神經(jīng)網(wǎng)絡(luò)的方法對數(shù)據(jù)進行處理。同時通過對模型的建??梢酝茖С鲆韵鹿剑?/p>

本文結(jié)合了謝紅霞等人的方法[4],使用網(wǎng)絡(luò)上開源的鳥類圖片進行訓練。首先定義自己的開始數(shù)據(jù),然后開始設(shè)計模型的每層網(wǎng)絡(luò),在通過一次卷積處理,一次池化處理之后,就可以得到鳥類識別器模型。同時本文還設(shè)計了一個丟棄函數(shù),以防止過擬合。
無人機通過尋徑模塊實現(xiàn)自動定位,利用樹莓派獲取的建筑物照片在視覺模塊進行處理以得到相應的特征信息。由于無人機在空中飛行時可能會因為許多不確定性因素出現(xiàn)抖動、左右傾斜等問題,故首先利用SURF算法對無人機獲取到的建筑物圖片做圖像拼接與裁剪操作,將得到的完整且單一的建筑物圖片使用Faster R-CNN算法產(chǎn)生特征候選框,以進行特征提取與違章建筑物識別。
3.2.1 圖像預處理
訓練模型的第一步是輸入數(shù)據(jù),而數(shù)據(jù)的獲得來源于無人機飛行所獲取的圖片。而無人機在飛行中,很難恒定地保持持續(xù)的水平,所以其所拍攝的照片也同樣會出現(xiàn)抖動波紋、傾斜等問題,而為了保持所檢測物體在照片上的單一性,無人機所飛行的高度與離物體的距離會相對較近,這也可能導致無人機所拍攝的物體不完整的問題。所以,在無人機拍攝完照片后,需要對其進行圖像預處理操作。同時,無人機所拍攝照片的影像分辨率為0.05~0.1m不等,其圖片像素過大,很難直接運用到模型中,所以在圖像預處理后,需要將圖片進行裁剪,然后依次放入模型中進行預測[5]。
本系統(tǒng)使用基于 SURF 的特征提取算法的圖像拼接技術(shù),再將圖片的物體進行扶正、穩(wěn)定,最后再對圖片進行裁剪。
3.2.2 SURF算法
SURF算法是基于SIFT算法的改進。由于SIFT算法的計算量過大,所以在無人機航拍技術(shù)中使用它效果并不理想,而SIFT算法的改進算法——SURF算法則在速度方面有了明顯的提高。對于圖像拼接技術(shù),一般的流程的順序為:先使用特征點提取算法對特征點進行提取,再對各個特征點進行匹配,匹配成功過后,進行圖像的配準與重疊邊界處理。而對于本文所設(shè)計的圖像處理技術(shù),筆者采用SURF算法進行特征點提取。
由于處理完成后的圖片一般存在拼接處不自然,圖像光澤問題不容和等問題,所以對圖片進行處理完成過后,我們需要對圖片的效果進行二次處理。本文的處理思路是:通過加權(quán)融合的方法,將兩幅圖片相互過渡,讓圖像重疊區(qū)域的像素按照一定的加權(quán)比例,合成新的圖片。
3.2.3 Faster R-CNN算法
Faster R-CNN算法創(chuàng)造性的采用卷積網(wǎng)絡(luò)自行產(chǎn)生輸入圖片候選框,和目標檢測網(wǎng)絡(luò)共享卷積網(wǎng)絡(luò),使候選框數(shù)量大大減小,由于預檢測的違章建筑物圖片大小存在不確定性,且Faster R-CNN產(chǎn)生的候選框大小形狀各有不同,可以更加準確的解決多尺度、小目標問題,非常貼合預檢測目標。故本文選用Faster R-CNN目標識別算法進行對違章建筑物的識別。Faster R-CNN算法的精髓在于RPN,算法利用RPN對輸入圖片產(chǎn)生候選區(qū)域,主要是將特征圖上的像素對應到原圖上去,對于特征圖上的每個3×3滑動窗口,計算出滑動窗口中心點對應原始圖像上的中心點,生成k個不同大小的anchor boxes。利用RPN方法產(chǎn)生多個不同大小的候選框是因為被檢測目標大小不定,生成多個大小不同的候選區(qū)域可以更好地進行對目標的檢測。RPN的本質(zhì)是對所有候選框(根據(jù)設(shè)定的9個anchors在原始圖像中掃描)進行判定,其候選框內(nèi)的內(nèi)容是否為前景,若是前景則計算候選框所需要的修正因子,預訓練Faster R-CNN算法可直接采用RPN Loss + Faster R-CNN Loss的聯(lián)合訓練方法。
無人機在識別到固定區(qū)域的違章建筑后,將該區(qū)域的實時數(shù)據(jù)與位置返回到客戶端,在客戶端可以得到無人機飛行的實時位置,以及所檢測區(qū)域的違章建筑判斷信息,綜合無人機所返回的信息,可以對該區(qū)域的建筑進行判定,以達到我們通過無人機檢測違章建筑的目的。
本文利用了無人機和北斗定位技術(shù)對違章建筑物進行識別和檢測,采用主流的Faster R-CNN目標識別算法,進一步加快了對目標物體識別的精確度,在一定程度上減少了電腦內(nèi)存的占用量,加快了對違章建筑物的識別速度,最終將違章建筑物照片分類完成后移交上級城市建設(shè)管理監(jiān)察部門進行處理。另外采用無人機技術(shù)對城市的建筑物進行識別,可以有效避免人工在高危地區(qū)受到危及生命的情況,截止2020年7月,北斗導航衛(wèi)星的定位精度可達2.5m,測速精度0.2m/s,這一定位精度對于大型違章建筑的識別具有較高的使用意義,無人機與神經(jīng)網(wǎng)絡(luò)的結(jié)合可以更高效地對違章建筑物進行識別,以減輕人工實地勘測的危險性與不確定性。