張學峰,郁洋,任彬
(石家莊鐵道大學 機械工程學院,河北 石家莊 050043)
如今,無人機在人們生活中扮演著越來越重要的角色,廣泛應用于農業種植、航拍攝影、電力巡航等領域以及一些距離較遠、人類難以接近或較為危險的場所。
在高速公路上,兩個攝像頭之間的距離較遠,固定攝像頭的視野盲區較多,難以監控整條路段的車流情況。當有車禍發生在攝像頭的視野盲區內時,相關人員難以第一時間得知現場情況。這時就需要一種能隨時改變觀測角度,將現場信息實時傳輸給交通指揮人員,指揮人員能夠籍此調節現場的裝置,無人機顯然是不二之選。
王永杰采用無人機傾斜測量技術進行海外公路探測;石秀使用無人機探測高速公路違章情況;宋宇、陶柳使用無人機在山區公路選線測量;樊寶安、曾荻清分別使用無人機制作了高速公路違章檢測平臺并設計了相應的通信方案。本文設計的高速公路檢測、指揮無人機控制系統分為飛行控制系統、圖像傳輸系統和地面站三個部分。飛行控制系統采用開源架構Pixhawk 4,保證無人機可以穩定飛行;圖像傳輸系統使用5.8 G 圖傳將所收集的圖像信息傳回地面站;地面站程序采用Qt 編寫,負責處理傳回的圖像信息,監測無人機運行參數,并預測接下來會出現的車流量。地面站可以在普通電腦上運行,有比嵌入式設備更高的算力,也更容易使用。
本文設計的無人機硬件采用pixhawk 4 作為主控,pixhawk 4 是一個基于ARM 芯片的開源飛控系統,如圖1所示。

圖1 Pixhawk 4 飛控板
飛控系統主要由微控制器、傳感器、儲存模塊和外部接口組成。微控制器使用STM32F427,使用雷迅UBLOX M8NGPS 模塊和Bosch BMM 150 MEMS 磁力計更新無人機的實時位置,使用空速計來避免無人機失去控制,保證在有風的情況下可以保持無人機機體穩定運行,使用PX4 Flow獲得更加精確的定位。
接收機使用牛牛航模5.8G 圖傳手機接收機,發射機使用熊貓發射機5.8G,圖傳攝像頭使用彈弓攝像頭,確??梢詳z像頭的方式傳回實時圖像,經過測試,圖像傳回的延遲在1秒以內,1 秒的延遲對于本設計沒有明顯影響,如圖2所示。

圖2 圖傳發射機
很多無人機圖像的處理過程都是在無人機部分完成的,即在無人機上裝載嵌入式設備完成圖像的及時處理,并將處理結果返回給工作人員。而本文采用將圖像傳回電腦端,在電腦端完成圖像的處理。由于電腦CPU 計算能力比嵌入式設備計算能力強大,所以電腦端的處理速度會比嵌入式設備的處理速度快很多,在遇到無人機墜毀等小概率事件的情況下,損失也會更小。
地面站的程序使用QT 編寫,分別提供了Linux、Windows 系統的版本,在各種系統上均可以使用。地面站可以接收無人機的飛行狀態、攝像頭采集的圖像,計算無人機視野內車輛數量,標記當前公路的車輛密度。
本文在無人機飛行控制方面,主要采用人工操作和智能巡線兩種方式。人工操作保證在拐角處做出適當的位置轉變并且確保飛行方向無誤;智能巡線是確保在無人機飛行較長距離沒有交叉的高速公路部分可以自主地完成飛行。
無人機姿態保持的過程包括檢測狀態、姿態解算、PID輸出。平穩的飛行是精確識別車禍和車流量的前提保障,相應人員需要隨時讀取無人機飛行數據,并通過處理位姿數據來調整無人機的飛行姿態。
我們通過MPU9250 傳感器來實時獲取無人機的位姿信息,MPU9250 是一種集加速度計、陀螺儀、磁力計為一體的傳感器,如圖3所示。

圖3 MPU9250 九軸數字運動處理器
使用加速度、角加速度積分得到的位姿信息存在累計誤差,使用加速度進行正交分解測得的數據存在高頻誤差,所以可以使用兩種數據的融合來獲得具體的位姿信息,再使用磁力計對結果進行修正,這樣可得到較為準確的計算結果。本文使用四元數計算位姿,然后將四元數轉化為歐拉角,求得無人機的位姿信息。
四元數是基{1,,,}的線性組合,可以表示為=[,,,]的向量形式。表示旋轉的一般形式為:

為了計算方便,將旋轉公式壓縮為三維矩陣:

其中:



此外,還可以通過加速度計測量出實際重力加速度向量。兩個向量方向差值為:





所以誤差為:

使用PI 控制器

計算角速度補償值,再由微控制器輸出相應的PWM,穩定無人機姿態。
無人機在高速公路上穩定行駛時可以進行圖像獲取、圖像處理以及返回位置數據。無人機沿公路以每秒45 張圖像的拍攝速度進行航拍并通過圖傳將圖像發送給電腦端,電腦對接收到的圖像進行二值化處理,過濾掉車輛和可能的交叉路口,將識別到的高速公路的分界線作為檢測值,并與拍攝窗口的目標值中線進行比較得到相對位置偏差,將處理后的偏差數據返回給無人機的飛控系統,對無人機的位置進行調節。
采用YOLOv3 目標識別方法進行目標檢測及追蹤。YOLO 將物體檢測作為回歸問題來求解,YOLOv3 基于一個單獨的端到端網絡,完成從原始圖像的輸入到物體位置和類別的輸出。YOLO 的統一體系運行速度非常快,基于YOLO的模型可以實現以每秒45 幀的速度實時處理圖像,此外,較小的網絡FastYOLO 每秒可以處理大約155 幀圖片。
將輸入的圖片輸出為3 個不同尺寸的特征圖,分別為13×13×255 的y1、26×26×255 的y2、52×52×255 的y3,因為每個box 有橫坐標,縱坐標,長,寬,置信度confidence 五個基本參數,80 個類別的概率,RGB 三種顏色,所以深度為3×(5+80)=255。
如圖4所示,DBL 層包括卷積、BN、Leaky relu三個部分。卷積是圖像處理中的基本操作,BN 層可以加快網絡的收斂速度,Leaky relu 函數作為激勵函數。
圖4中resn 包含res1、res2、res8 等,表示res_block內含有res_uint 的數量,其基本組件是DBL,為了增加網絡深度,達到darknet-53 這樣多的層數,采用殘差結構resnet,殘差網絡增加了恒等映射,把當前的輸出直接傳給下一層網絡,略過了本層運算,解決了深層網絡中的梯度消失問題。
圖4中的張量拼接concat 是將darknet 中間的某一層與之后的某一層進行上采樣拼接,這樣可以擴充張量的維度。

圖4 YOLOv3 結構圖

在本實例中,采用聚類的方式先在圖像數據集上得到初始的邊界框,在YOLOv3 中,選擇=9,在對輸入圖像進行32、16 和8 倍采樣獲得的三個尺度上進行預測,得到如表1所示的長寬。

表1 通過k 聚類得到的初始邊界框
再采用多個Logistic 分類器(一種二分類分類器)對目標進行分類。Logistic 分類器使用了Sigmoid 函數:

將特征數據訓練成一個0/1 分類模型,其中介于上述9個長寬范圍內,由圖像可以得知,()>0 時可以認為其屬于該類,()<0 時不屬于該類,Sigmoid 函數如圖5所示。

圖5 Sigmoid 函數圖像
通過多尺度預測可以識別分布在視野內大小不同的目標。使用之前的方法可以獲得三個深度為255 的特征圖,三個深度圖的尺寸不同,為了連接兩個不同尺度的特征圖,用(2,2)的上采樣來保證拼接的張量尺寸相同。使用不同尺度的特征圖可以讓圖像在因具有不同距離導致圖像尺寸突通時,預測結果不受影響。
使用攝像頭可以測量出視野內的車輛數目,也可以檢測出路面出現的事故,并可將路面情況迅速返回給地面站,幫助工作人員第一時間發現異常情況,如圖6所示為無人機運行流程圖。

圖6 無人機運行流程圖
在出現車禍時,不僅要立刻傳回車禍現場信息,還應提供車禍發生道路的車流量信息,避免后續車輛因無法得知車禍信息未避開該路段而發生交通堵塞。因此,獲取車禍路段到地面站之間的車流量信息就變得非常重要。可以使用GM(1,1)灰色預測模型來預測后續車輛的數量。
本文使用YOLOv3 檢測一段時間內視野內的車輛數量,一段時間內的車輛數量為:

對應的累加生成數為:

對應的累加生成數列為:

令z為向量生成的向量,即

定義微分方程

其中x為灰導數,為發展系數,z為白化背景值,為灰作用量。=2,3,…,n 時,

引入矩陣記號

所以GM(1,1)表示為=,解得

所以預測值為:

之后一段時間的預測值為:

設無人機飛控系統在時刻的速度為υ,結合無人機飛行速度υ≈45 km/h,汽車在高速公路上的時速大約為無人機的2.5 倍,無人機相對于車流量向后運動,非常適合預測后面陸續到達的車輛數量,向交通部門實時傳回車輛數量信息。通過對實際交通路況的實驗測試,如圖7所示,在車輛行駛速度很快的情況下,無人機依舊可以對車輛進行較為準確的識別。通過將一段時間內所記錄的實際車流量數據與GM(1,1)預測算法求得的預測值作比較,然后利用MATLAB 對多次獲取的數據進行處理,繪制出如圖8所示的對比圖。分析圖像可知,實際路況車流量的真實值與預測值幾乎是吻合的,表明無人機能夠很好地完成交通情況的預測。

圖7 無人機實時預測圖

圖8 MATLAB 繪制GM(1,1)真實值與預測值的對比圖
本文針對高速公路距離長難以在公路上全程安裝監測傳感器的問題,設計一種利用無人機檢測整個高速公路車流量以及路面異常狀況的方法,并使用GM(1,1)灰色預測模型來預測后續車輛的數量,方便工作人員適時調整公路管理措施,可在一定程度上降低違章率。該系統性能穩定,具有較好的擴展性,可以高效率地完成任務,具有一定的使用價值。