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

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

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

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

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

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

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