閆宇航,金冶純,徐中林
(滄州師范學院,河北滄州, 061001)
本次設計研究一種基于機器深度圖像識別和北斗定位的路面檢測報警系統(tǒng),實現(xiàn)無人機對路面損壞信息以及防護林火災情況的自主判定并定位損壞以及事故地點位置,上報至終端控制器,為路面檢修工作提高效率。
本系統(tǒng)的應用場景包括:
(1)路面異物檢測:在高速公路中,有異物落下或者撞死的動物遺體等物品,道路養(yǎng)護人員不能及時發(fā)現(xiàn)及清理[1],可以派出本系統(tǒng)的無人機在道路上空進行檢查,通過視覺識別,自主判別與汽車模型不相似的異物,并通過實時圖傳技術上報控制端,提前做出預警。
(2)防護林火災檢測:在公路附近存在的防護林容易出現(xiàn)火災的情況,并且不易發(fā)現(xiàn),通過無人機用紅外攝像頭在空中進行檢測,識別火焰模型,及時地做出預警,發(fā)送火災的消息。
(3)公路事故堵塞情況預報:在公路行駛中,可以通過無人機的巡航攝像頭視覺檢測識別道路上汽車的密度,以此來判斷道路中行駛情況,若檢測出道路擁堵,可發(fā)送擁堵信息傳輸給后面的往來車輛,避免更大的擁堵情況,使交通情況得到緩解。
根據(jù)設計需要,由于飛行距離遠,回傳數(shù)據(jù)工作量大,實時數(shù)據(jù)傳送可能造成數(shù)據(jù)堵塞,延遲等系列不利因素,因此無人機在工作時需要自主飛行。在地面工作人員根據(jù)地圖信息設置好巡航路線的經(jīng)緯度。即起點,途經(jīng)點,終點。對指定路段進行巡視識別。此時BDS定位系統(tǒng)顯得尤為重要。
民用無人機可分為固定翼機、單旋槳直升機、多旋翼飛行器等。近年來,四旋翼無人機在農(nóng)業(yè)生產(chǎn)、精細化巡檢、國防和社會安全等方面有著廣泛使用并發(fā)揮了重要的作用。但是根據(jù)設計需求,采用旋翼式無人機進行測試時,我們發(fā)現(xiàn)其續(xù)航里程遠遠不能達到檢測需求標準,尤其以常見的大疆四旋翼航拍無人機為例,通用空中滯留時間一般為20~30分鐘,往返距離也不足30公里,更何況無人機還需給攝像頭和BDS定位模塊供電,其續(xù)航里程還將會大大下降。
通過測試設計比對之后采用固定翼后推式無人機,對于續(xù)航里程問題能夠得到很大的緩解。一般的固定翼無人機,即使使用純電動驅動,巡航時間也輕松突破2個小時。
圖1 固定翼無人機設計圖
采用固定翼無人機進行實際飛行時,只需通過北斗導航系統(tǒng)沿著指定的路線自主飛行即可,無需飛行人員操控。因此對于遙控距離也沒有特定的要求,測試距離可以達到數(shù)百公里,完全適用于偏遠地區(qū),其次對于高速公路而言, 也不存在著90度急轉彎等特殊路段,固定翼無人機完全可以勝任遠距離公路巡檢。
在本次檢測系統(tǒng)設計中就采用了固定翼無人機為主體,樹莓派進行圖像處理并結合BDS定位系統(tǒng),快速實現(xiàn)異常路面的定位和信息上報。
無人機的核心飛控和傳感器放置在整個機架的中心位置,攝像頭放置在中心位置的下方。在實際飛行時,多種傳感器實時接收無人機的飛行姿態(tài)和位置數(shù)據(jù),并傳輸給控制模塊,根據(jù)給孔算法,解算出各種控制數(shù)據(jù)驅動舵機,來調整飛行方向、路線、飛行高度,采用BDS定位模塊設定巡檢路線,使用高度計,標定無人機飛行的高度,空速計計算飛行的速度,三軸加速度傳感器+磁場計控制飛行高度以及姿態(tài)穩(wěn)定調整。飛機前部采用攝像頭或者激光測距進行自主避障。
2.2.1 姿態(tài)解算
完成無人機的姿態(tài)解算具體辦法是將各個位置的方向或加速度傳感器得到的數(shù)據(jù)通過MCU計算轉換成姿態(tài)角,一般有歐拉角表示法、方向余弦矩陣法以及四元數(shù)表示法等運算方法。但是三者與機體角速度存在不一樣的關系,歐拉角與機體角速度(陀螺儀)是奇異且非線性的關系;旋轉矩陣與機體角速度(陀螺儀)是不奇異且維數(shù)高的關系;四元數(shù)與機體角速度(陀螺儀)是不奇異且維數(shù)適中的關系。通過分析計算,最終為了節(jié)約MCU資源,減少計算量以及避免萬向節(jié)鎖死等問題,設計中采用了四元數(shù)表示法進行無人機的姿態(tài)解算。四元數(shù)表示法不需要考慮坐標換算的中間過程,只需要考慮原始坐標系與無人機實時產(chǎn)生的實際坐標系的關系,即可進行全姿態(tài)解算。
定義四元數(shù)等式:
具有如下關系:
四元數(shù)為:
四元數(shù)中無人機的定點轉動用W表示,即認為原始坐標系通過一次轉換即可得到機體坐標系。在四組關系中[x,y,z]表示方向向量,是原始坐標與實際坐標的變化矩陣。因此,姿態(tài)矩陣可由四元數(shù)表示為:
再由四元數(shù)進行反解得:
通過上述計算,可得出三姿態(tài)的歐拉角,進而完成姿態(tài)解算的任務。通過數(shù)據(jù)分析過程,無人機的自主控制系統(tǒng)可以實現(xiàn)三個姿態(tài)角(俯仰角、滾轉角、偏航角)的穩(wěn)定控制,保證閉環(huán)姿態(tài)系統(tǒng)能夠在實際應用中具有期望的動態(tài)特性,進而使無人機沿受控的航跡方向飛行。
但是,實際飛行環(huán)境中會受到來自外界的不確定性因素干擾,如:參數(shù)誤差、測量噪聲等未進行建模因素的動態(tài)影響。所以,必須要考慮系統(tǒng)的抗干擾性能。因此在此次設計中,將每一個通道中都引入適當?shù)挠^測器和控制器對不確定性因素的影響進行估計和補償,以此來保證四旋翼無人機在干擾條件下依然能夠對其設定的理想姿態(tài)的有效追蹤。其流程如圖2所示。
圖2 實際運轉流程圖
2.2.2 控制系統(tǒng)
飛行控制系統(tǒng)(Flight control system),無人機的CPU系統(tǒng),是無人機的核心部件。其功能是發(fā)送各種指令,處理外設傳回的數(shù)據(jù)[2],如偏航、懸停,各種姿態(tài)變化都是由傳感器將無人機的數(shù)據(jù)傳回飛控,再由飛控通過運算和判斷下達指令,完成動作和姿態(tài)調整。
本次的設計中,主控采用PixHawk飛行控制器作為主控單元[3],IMU(慣性測量單元)作為信息的提供者。搭配樹莓派4B與攝像頭完成圖像采集與信息處理。并通過MJPG-streamer來進行數(shù)字圖傳,以此來輔助客戶端??刂葡到y(tǒng)在整機中的通信如圖3所示。
圖 3 飛行控制系統(tǒng)
我國自行研制的全球衛(wèi)星導航系統(tǒng)—BDS導航定位系統(tǒng),可提供導航、高精度定位等服務.在數(shù)據(jù)通信方面,其還具備短報文通信功能,精度可達厘米級別,測速精度0.2m/s。
其中BDS系統(tǒng)可以通過數(shù)據(jù)鏈來完成對移動基準站實時發(fā)送的RTK差分來修正數(shù)據(jù)[4]。通過北斗 RTK 信息和卡爾曼濾波融合SINS,實時解算在基準站的固定坐標系中無人機的坐標及航向、姿態(tài)、速度等參數(shù)[5],通過這些參數(shù)很快計算出無人機和基準站之間的距離,引導無人機完成精確路面裂縫檢測作業(yè)。
利用北斗衛(wèi)星導航系統(tǒng)的上述導航定位優(yōu)勢,可為路面裂縫精確分類提供高精度的經(jīng)緯坐標,為后續(xù)的路面的精確養(yǎng)護提供精確的經(jīng)緯度信息,具有重要的社會經(jīng)濟現(xiàn)實意義。
在無人機上安裝北斗定位部分,選擇采用SKG1223定位模塊獲取定位信息,SKG1223是一款高性能的導航定位模塊,支持北斗二號、三號的 B1L/B1C/B2A 三頻衛(wèi)星接收,能夠更好地消除高階電離層延遲的影響,固定在無人機上,在露天的環(huán)境中定位更快、精度更高。
另外,該模塊擁有-162dBm 的跟蹤靈敏度,使得模塊在信號較弱的山區(qū)環(huán)境下依然能夠提供精準位置服務。BDS定位模塊與主控樹莓派的通信接口采用UART串口方式,并采用NMEA-0183協(xié)議輸出的定位信息[6]。該協(xié)議采用ASCII碼傳輸模塊定位信號,并通過串口通信將信息傳輸回主控芯片,最后借助數(shù)據(jù)傳輸模塊將經(jīng)過代碼解析后的定位信息傳送到終端監(jiān)測中心。
系統(tǒng)定位經(jīng)過驗證之后,能夠獲取精確定位數(shù)據(jù),之后可以通過GIS軟件來繪制我們定位信息的圖像,增強數(shù)據(jù)的可視性。
圖 6 安裝圖片
GPRS/GSM通信方式,廣泛應用在物聯(lián)網(wǎng)/車載/電力環(huán)境檢測等領域范圍,本系統(tǒng)采用A6 GPRS模塊,其是一款GPRS數(shù)據(jù)傳輸核心模塊,提供串口轉GPRS/短信息/語音通話等信息傳輸功能,在遠程通信的設備端斷開網(wǎng)絡連接,客戶端無法接收數(shù)據(jù)時,系統(tǒng)將采用GPRS/GSM通信的方式進行每次評估檢測定位數(shù)據(jù)以短信形式傳輸,做到實時傳送。
圖4 模塊圖片
圖 5 A6 GSM模塊
本系統(tǒng)中主控樹莓派與A6 GSM模塊配合實現(xiàn)數(shù)據(jù)發(fā)送。選用gammu作為短信發(fā)送工具,而A6 GSM模塊需要進行相關的設置才可正常使用。在樹莓派上要徹底禁用串口的console登錄功能,之后可以執(zhí)行GSM模塊的激活步驟,sudo gammu-config,端口寫ttyAMA0,波特率選擇at115200,其余默認。最后保存,此時返回GSM模塊的相關信息,等待配置完成,就能實現(xiàn)短信的發(fā)送。sudo gammu sendsms TEXT “對方手機號碼”-text“英文內(nèi)容”,在手機號碼后加一個參數(shù)“-unicode”可以實現(xiàn)中文支持。
通過以上的步驟配置并測試好樹莓派GSM短信通信功能,隨后將樹莓派和GSM模塊安裝在無人機主控上方,在實際飛行工作中,需要實時短信發(fā)送GPRS所采集到的位置信息,保證在信息接收的即時性。
本次設計中,對于遠距離傳輸采用較為新穎的MJPGstreamer來進行數(shù)字圖傳。MJPG-streamer可以通過HTTP和其他的方式訪問linux上面的兼容攝像頭,并且MJPG-streamer圖像傳輸流暢度比較高,從而做到遠程視頻傳輸?shù)男Ч?/p>
在地面控制端,將遙控、MJPG實時圖傳和BDS位置通知集成為APP形式,便于控制,為地面控制人員及時掌控路面裂縫信息提供可視化的解決方案。系統(tǒng)所需的APP采用Qt軟件進行編寫,Qt編寫之后的應用,可以多次編譯到不同終端平臺,如Windows、MAC、Android、iOS等。搭建好Qt軟件所需的環(huán)境后,進行構建APP測試并進行下一步的APP實際創(chuàng)建。
首先搭建環(huán)境以及硬件設備連接,安裝好MJPGStreamer,并進行相關代碼的分析:絡socket發(fā)送出去 */
完成PC端樹莓派環(huán)境的搭建,Enable(啟用)樹莓派攝像頭,供電開機。
啟用攝像頭支持,然后選擇Interface Options,選擇Camera然后按回車,再次回車,重啟樹莓派就完成了設置。在接收端可以創(chuàng)建一個.html文件就可以直接打開網(wǎng)址http://<樹莓派ip>:<port>/javascript.html進行視頻實時追蹤。效果如圖 7所示。
圖 7 實時圖傳效果
在防護林火災檢測部分采用基于紅外攝像頭的監(jiān)控平臺,利用熱成像原理,通過接收物體發(fā)射的紅外線,將被測目標物體表面的紅外輻射轉變成視頻信號,同時接收被探測目標自身輻射的熱能,并將其轉換成反映目標特征的實時物體表面的熱圖像,來監(jiān)測火災及其他異常事件,是結合現(xiàn)今行業(yè)發(fā)展水平的集成化,網(wǎng)絡化的紅外熱成像公路防護林監(jiān)控的解決方案。
當火災發(fā)生后,尤其是森林火災的情況下,火焰產(chǎn)生的煙霧很大,往往遮蓋了真正的著火點,以及火災的蔓延趨勢。紅外熱像儀有很強的穿透煙霧的能力,可有效地發(fā)現(xiàn)真正的著火點,以及火災的蔓延趨勢,因此,可用于指揮救火,盡量減少經(jīng)濟、人員的損失。而森林火災在地面火被撲滅的情況下,在地下往往還存在地下火的情況,因此,經(jīng)常會出現(xiàn)死灰復燃的情況。紅外熱像儀可通過監(jiān)控火災后森林地表的溫度,及時發(fā)現(xiàn)地表溫度的異常,確定地下火可能存在的地點。
在路面裂縫的識別中,傳統(tǒng)識別模式大多采用圖像處理的方法,對圖像進行灰度化、二值化以及裂縫邊緣檢測,常用Canny和Roberts邊緣檢測算子[7],但采用這幾種方法均會出現(xiàn)大量圖像處理過程,效率較為低下且準確率不高。本次介紹中采用CNN網(wǎng)絡模型,只需要進行裂縫圖像的灰度化,一般可直接進行模型訓練,CNN能夠自主學習并完成分類目標,壓縮了圖像處理時間,并且能夠快速地完成分類。
本次設計中所實現(xiàn)的功能是對路面異物以及裂縫、防護林失火情況進行識別判斷,對兩種識別功能分別構建算法識別,應用到MCU,并結合GPRS/GSM通信方式報警提醒地面控制端及時處理為此設計出能夠對路面圖像進行提取計算完成識別的方法。采用深度卷積神經(jīng)網(wǎng)絡對路面異物、裂縫數(shù)據(jù)進行學習,開發(fā)框架使用Keras,通過Python編程。
路面基本特征信息的識別和提取,采用多層感知機和深度卷積神經(jīng)網(wǎng)絡共同對路面裂縫圖像分析,如圖 8所示。首先,將一定數(shù)量的路面裂縫圖像進行灰度化、標簽化和歸一化處理,形成訓練集。隨后使用訓練后的模型對測試集判斷預測,將多層感知機和深度卷積神經(jīng)網(wǎng)絡兩模型效果進行對比。
圖 8 路面物體識別
在采集原始路面信息數(shù)據(jù)時,每一類路況采集400張照片,主要對路面的完好路況以及龜裂路況進行了采集,在采集過程中保證圖像的質量和大小一致,將影響模型訓練結果的因素降到最低。
原始數(shù)據(jù)采集后不能夠直接進行使用,需要進行特殊化標準處理,篩除相關圖像,來提高神經(jīng)網(wǎng)絡的訓練速度。
在采集數(shù)據(jù)之后,在保證每一類路況照片分辨率降低的情況下,不會影響裂縫的分布特征的前提下,統(tǒng)一進行照片的分辨率降低處理工作。
完成分辨率減低后,進行圖片標簽化處理。針對四類路面信息圖片,采用批量處理程序進行標簽化的工作。完好路況采用0_x.jpg系列統(tǒng)一命名,橫向裂縫路況采用1_x.jpg系列統(tǒng)一命名,縱向裂縫路況采用2_x.jpg系列統(tǒng)一命名,龜裂路況采用3_x.jpg系列統(tǒng)一命名。圖像對比如圖9所示。
圖9 矩陣圖
隨后生成路況數(shù)據(jù)集,使用OpenCV接口進行處理,完成圖像標簽與圖像數(shù)據(jù)信息的對應,寫入csv文件。
在選擇卷積層數(shù)時,對應的層數(shù)越多,則最終擬合出的結果模型效果越好,但是針對此次設計中是小批量的數(shù)據(jù),不需要過高的層數(shù),所以最終選取了5層的卷積網(wǎng)絡結構來進行訓練。各層參數(shù)如表 1所示,為了防止出現(xiàn)過擬合的情況,增加了Dropot層[8],以此來完成神經(jīng)元隨機失活的功能,保證良好的測試集結果。
表 1 結構參數(shù)
得到準確的識別模型后,進行實驗驗證,隨機選取200張圖像(55張完好路況,43張橫向裂縫路況,48張縱向裂縫路況,54張龜裂路況),卷積神經(jīng)網(wǎng)絡對測試集路面圖像的預測和分類準確率平均為98.9%。較為準確,能夠完成分類任務。