安徽師范大學物理與電子信息學院 王 鑫
安徽師范大學物理與電子信息學院 安徽華通電纜集團有限公司 陳 浩
安徽華通電纜集團有限公司 陶天寶
無人機體積小、視野廣、靈活性好,在事故處理、交通疏導、流量監測等方面具有巨大優勢。本文設計了一種基于無人機圖像的車輛識別系統,設計開發實時圖像傳輸模塊,用于將無人機采集的圖像同步傳輸到PC端,利用YOLO v4目標檢測算法對車輛進行實時檢測,設計用戶界面顯示數據信息、基本操作以及檢測結果。測試結果表明,該車輛識別系統具有較好的檢測精度和實時性。
利用無人機圖像的車輛識別系統,具有視野好、時效性強、靈活采集等優點,對于道路監管,尤其是春運、大型集會(如運動比賽、演唱會)等時段的道路監管尤其重要。相對于傳統的道路監控,無人機高度機動、布點靈活,在事故處理、交通疏導、流量檢測等方面具有巨大應用優勢,特別是在一些監控盲區,無人機高空監測可以發揮重要作用。
目前,很多學者開展了基于無人機無人機圖像的的車輛目標識別研究,使用無人機可以增大檢測道路的靈活性,但處理圖像處理的速度影響了系統的實時性。許多算法對于高空圖像下的小目標識別精確度有待提高。趙凱迪等采用了改進后的SSD目標檢測算法,其優點在于網絡架構小、速度快,可直接用在便攜式計算板卡上搭載到無人機上。但其對小目標和大分辨率圖像的識別不夠完善,這限制了無人機的飛行高度和機載相機的性能。文中等測試了多種目標檢測算法對車輛的識別,并對其進行改進,但系統的可操作性不佳。
本文研究通過無人機實地拍攝獲取車輛目標高空圖像進行訓練;得到模型后對圖像進行預測處理,圖像處理部分運用到以神經網絡的YOLO4目標檢測算法;設計系統地面站界面顯示圖像信息;最后設計無人機圖像無線傳輸硬件實現系統軟硬件結合。經系統測試,及空地聯調,該車輛識別系統具有較好的檢測精度和運算速度。
系統由無人機和地面站(電腦)組成,其中無人機負責高空拍攝圖像并傳回,地面站負責處理傳回的數據。由于無人機未實現智能自動飛行,需要專業操作人員進行控制。數據傳回地面站后,通過智能預測、GUI顯示等功能使用戶獲取道路上車輛的分布情況更加便捷。從高空俯瞰,可以獲取更多人類不方便獲取的信息;無人機飛行器可以靈活地在可控范圍內高空飛行和采集信息,因此使用無人機偵察就成了車輛目標檢測系統需求的關鍵。系統概要設計如圖1所示。

圖1 系統概要設計圖
根據無人機車輛檢測系統要求,本系統包括三個功能:圖像檢測功能、數據顯示功能、圖像無線傳輸功能,其中數據顯示功能又包括圖像展示和數據分析。
1.2.1 目標檢測
目標檢測功能通過無人機高空飛行獲取圖像傳回地面站,地面站(電腦端)對獲取到的每一幀圖像中道路車輛目標進行檢測,獲取到道路車輛的位置以及類別信息。本文通過大疆無人機在一定區域內飛行采集獲取目標識別網絡訓練圖片,利用YOLO v4算法對無人機傳回來的道路車輛圖像進行檢測。
1.2.2 數據顯示
數據顯示功能通過構建一個用戶界面;設置按鍵、輸出數字(包括坐標、loss值等數據)區、圖像區方便人機交互。其中數據區是顯示圖像中道路車輛的位置、類別等信息的區域,圖像區將數據區的信息映射到原圖中方便用戶通過視覺直接獲得信息。
1.2.3 圖像無線傳輸
圖像無線傳輸功能主要是數字無線圖傳的軟硬件結合設計。設計利用樹莓派采集攝像頭圖像,利用無線網卡將圖像傳輸到另外一張樹莓派上,然后利用HDMI采集卡將視頻流傳輸到地面站(電腦)。
圖像無線功能模塊設計分為接收端和發射端,如圖2所示。圖2(a)是無線圖傳接收端,由一張樹莓派3B+、一張AC8812網卡、兩個5.3G天線和一塊樹莓派供電板組成。樹莓派供電板將鋰電池轉化成5V3A的穩壓電源為接收端供電。AC8812網卡通過usb與樹莓派相連,用于接收發射端傳回的數據。最終圖像從樹莓派的HDMI接口輸出。

圖2 無線圖傳模塊實物圖
圖2(b)是無線圖傳發射端,包括一張樹莓派3Bmini、一張AC8812網卡、一個攝像頭、兩個5.3G天線和穩壓電源。AC8812網卡與樹莓派相連用于發送攝像頭采集的圖像。
本實驗中無人機高空飛行采集的圖像分辨率為5472x3648。因為圖片過大,需要進行預處理才能作為YOLO v4網絡的輸入。
2.2.1 高分辨率圖像處理
數據預處理實驗表明,剪裁后拼接耗時是直接輸入的54倍,且兩者預測的準確度相當。因此,本文設計的系統將原圖resize處理后直接送入模型進行預測。將原圖通過resize的方式縮小到608x608大小,每幅原圖只需要進行一次預測。
2.2.2 Mosaic數據增強
數據增強可以使圖片數據變得更加多樣,放入模型訓練中可以提高模型的魯棒性,降低額外因素對預測結果的影響,比如:亮度和形態等。
YOLO v4的Mosaic數據增強參考了CutMix數據增強方式,因此兩者在原理上有一定的相似性。CutMix數據增強將兩張圖片進行拼接,而Mosaic則是拼接四張圖片。YOLO v4在讀取四張圖片后進行翻轉、扭曲、色域變化等,并且按照不同方向依次擺放進行圖片的組合和框的組合。
2.2.3 車輛目標檢測
訓練數據為960張大疆無人機在學校周邊高空拍攝的圖片。在圖片中標注出有用信息,將車輛框出來并標注類型,生成.xml文件;運行數據訓練程序,輸入預訓練框架。將圖片和標簽文件輸入YOLO v4模型中,利用預訓練框架訓練模型。多次訓練改善模型。系統的圖像處理部分流程如圖3所示,訓練集圖像經過resize處理后尺寸變為608x608,輸入到YOLO v4框架中加載預訓練權重文件進行訓練,經過數據增強算法、學習率退火算法的處理,輸出訓練結果。YOLO v4權重文件;測試集圖像經過resize處理后輸入到上述訓練好的YOLO v4權重文件進行預測,對輸出結果進行解碼:將預測框、類別、置信度等信息映射到原圖中。
根據計算機顯卡性能將模型的batch_size設置為8,學習率初始化為0.001,采用余弦退火算法,在經過280個epoch后,loss值低至16.8。
訓練用的圖片分為訓練集和測試集,訓練集圖片800張,總共含有不同樣式的車輛10000多輛,測試集圖片160張,總共含有車輛2500多輛。根據圖片中車輛的類別信息,將網絡輸入類別更改為car、truck、buugy、bus四類。在訓練進行14500次迭代后,模型達到飽和,loss不再繼續下降,訓練自動停止。
本文設計的系統是面向用戶的,因此,為目標識別系統最外層設計一個GUI界面是必要的,GUI界面中,車輛目標識別結果如圖3所示。

圖3 GUI界面演示圖
2.3.1 圖像顯示
利用tkinter工具創建菜單、創建畫布、創建label。菜單用來選取圖像,當未檢測時,在畫布上顯示原圖,label顯示狀態為“原圖”;檢測后畫布顯示處理后的圖片,label顯示狀態為“預測后”。
2.3.2 檢測結果顯示
創建文本框,讀取模型輸出后分辨出要顯示的信息并打印。
本文中代碼運行的硬件環境:CPU為酷睿處理器10代i5,GPU為英偉達gtx1660ti
本文中代碼運行的軟件環境:windows10+python 3.6.12+tensorflow-gpu 1.13.1+keras==2.1.5。
無人機配置:大疆精靈
圖像檢測功能測試:利用opencv觀察模型的輸出情況。
數據顯示功能測試:上述GUI界面創建完畢后,進行測試。
圖像無線傳輸功能測試:測試圖傳的距離、抗干擾能力與傳輸延時情況。經過實驗,測得圖傳在空中5km以內可以穩定傳輸,傳輸延時在200ms以內。
本文目標檢測的精度用準確率、漏檢率、虛檢率指標進行評價。經過多次訓練預測,系統的精度評價如表1所示,達到目標效果。

表1 車輛檢測精度評價
準確率=準確檢測車輛數/車輛總數
虛檢率=錯誤檢測車輛數/檢測到車輛數
漏檢率=漏掉檢測目標數/車輛總數
本文研究一種基于無人機的車輛識別系統的設計。根據中無人機性能和應用場景,利用了YOLO v4算法進行車輛目標檢測,結合數據增強算法、學習率退火衰減算法等,使得基于無人機圖像的車輛檢測可以達到預期效果。同時,選取樹莓派自制了一款無線數字圖傳模塊,自主開發了圖像無線傳輸模塊和系統控制界面。經聯調測試,該系統操作便捷,可搭載大多數無人機平臺,且具有較好的運算速度和識別精度。