安徽師范大學(xué)物理與電子信息學(xué)院 王 鑫
安徽師范大學(xué)物理與電子信息學(xué)院 安徽華通電纜集團(tuán)有限公司 陳 浩
安徽華通電纜集團(tuán)有限公司 陶天寶
無(wú)人機(jī)體積小、視野廣、靈活性好,在事故處理、交通疏導(dǎo)、流量監(jiān)測(cè)等方面具有巨大優(yōu)勢(shì)。本文設(shè)計(jì)了一種基于無(wú)人機(jī)圖像的車(chē)輛識(shí)別系統(tǒng),設(shè)計(jì)開(kāi)發(fā)實(shí)時(shí)圖像傳輸模塊,用于將無(wú)人機(jī)采集的圖像同步傳輸?shù)絇C端,利用YOLO v4目標(biāo)檢測(cè)算法對(duì)車(chē)輛進(jìn)行實(shí)時(shí)檢測(cè),設(shè)計(jì)用戶(hù)界面顯示數(shù)據(jù)信息、基本操作以及檢測(cè)結(jié)果。測(cè)試結(jié)果表明,該車(chē)輛識(shí)別系統(tǒng)具有較好的檢測(cè)精度和實(shí)時(shí)性。
利用無(wú)人機(jī)圖像的車(chē)輛識(shí)別系統(tǒng),具有視野好、時(shí)效性強(qiáng)、靈活采集等優(yōu)點(diǎn),對(duì)于道路監(jiān)管,尤其是春運(yùn)、大型集會(huì)(如運(yùn)動(dòng)比賽、演唱會(huì))等時(shí)段的道路監(jiān)管尤其重要。相對(duì)于傳統(tǒng)的道路監(jiān)控,無(wú)人機(jī)高度機(jī)動(dòng)、布點(diǎn)靈活,在事故處理、交通疏導(dǎo)、流量檢測(cè)等方面具有巨大應(yīng)用優(yōu)勢(shì),特別是在一些監(jiān)控盲區(qū),無(wú)人機(jī)高空監(jiān)測(cè)可以發(fā)揮重要作用。
目前,很多學(xué)者開(kāi)展了基于無(wú)人機(jī)無(wú)人機(jī)圖像的的車(chē)輛目標(biāo)識(shí)別研究,使用無(wú)人機(jī)可以增大檢測(cè)道路的靈活性,但處理圖像處理的速度影響了系統(tǒng)的實(shí)時(shí)性。許多算法對(duì)于高空?qǐng)D像下的小目標(biāo)識(shí)別精確度有待提高。趙凱迪等采用了改進(jìn)后的SSD目標(biāo)檢測(cè)算法,其優(yōu)點(diǎn)在于網(wǎng)絡(luò)架構(gòu)小、速度快,可直接用在便攜式計(jì)算板卡上搭載到無(wú)人機(jī)上。但其對(duì)小目標(biāo)和大分辨率圖像的識(shí)別不夠完善,這限制了無(wú)人機(jī)的飛行高度和機(jī)載相機(jī)的性能。文中等測(cè)試了多種目標(biāo)檢測(cè)算法對(duì)車(chē)輛的識(shí)別,并對(duì)其進(jìn)行改進(jìn),但系統(tǒng)的可操作性不佳。
本文研究通過(guò)無(wú)人機(jī)實(shí)地拍攝獲取車(chē)輛目標(biāo)高空?qǐng)D像進(jìn)行訓(xùn)練;得到模型后對(duì)圖像進(jìn)行預(yù)測(cè)處理,圖像處理部分運(yùn)用到以神經(jīng)網(wǎng)絡(luò)的YOLO4目標(biāo)檢測(cè)算法;設(shè)計(jì)系統(tǒng)地面站界面顯示圖像信息;最后設(shè)計(jì)無(wú)人機(jī)圖像無(wú)線傳輸硬件實(shí)現(xiàn)系統(tǒng)軟硬件結(jié)合。經(jīng)系統(tǒng)測(cè)試,及空地聯(lián)調(diào),該車(chē)輛識(shí)別系統(tǒng)具有較好的檢測(cè)精度和運(yùn)算速度。
系統(tǒng)由無(wú)人機(jī)和地面站(電腦)組成,其中無(wú)人機(jī)負(fù)責(zé)高空拍攝圖像并傳回,地面站負(fù)責(zé)處理傳回的數(shù)據(jù)。由于無(wú)人機(jī)未實(shí)現(xiàn)智能自動(dòng)飛行,需要專(zhuān)業(yè)操作人員進(jìn)行控制。數(shù)據(jù)傳回地面站后,通過(guò)智能預(yù)測(cè)、GUI顯示等功能使用戶(hù)獲取道路上車(chē)輛的分布情況更加便捷。從高空俯瞰,可以獲取更多人類(lèi)不方便獲取的信息;無(wú)人機(jī)飛行器可以靈活地在可控范圍內(nèi)高空飛行和采集信息,因此使用無(wú)人機(jī)偵察就成了車(chē)輛目標(biāo)檢測(cè)系統(tǒng)需求的關(guān)鍵。系統(tǒng)概要設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)概要設(shè)計(jì)圖
根據(jù)無(wú)人機(jī)車(chē)輛檢測(cè)系統(tǒng)要求,本系統(tǒng)包括三個(gè)功能:圖像檢測(cè)功能、數(shù)據(jù)顯示功能、圖像無(wú)線傳輸功能,其中數(shù)據(jù)顯示功能又包括圖像展示和數(shù)據(jù)分析。
1.2.1 目標(biāo)檢測(cè)
目標(biāo)檢測(cè)功能通過(guò)無(wú)人機(jī)高空飛行獲取圖像傳回地面站,地面站(電腦端)對(duì)獲取到的每一幀圖像中道路車(chē)輛目標(biāo)進(jìn)行檢測(cè),獲取到道路車(chē)輛的位置以及類(lèi)別信息。本文通過(guò)大疆無(wú)人機(jī)在一定區(qū)域內(nèi)飛行采集獲取目標(biāo)識(shí)別網(wǎng)絡(luò)訓(xùn)練圖片,利用YOLO v4算法對(duì)無(wú)人機(jī)傳回來(lái)的道路車(chē)輛圖像進(jìn)行檢測(cè)。
1.2.2 數(shù)據(jù)顯示
數(shù)據(jù)顯示功能通過(guò)構(gòu)建一個(gè)用戶(hù)界面;設(shè)置按鍵、輸出數(shù)字(包括坐標(biāo)、loss值等數(shù)據(jù))區(qū)、圖像區(qū)方便人機(jī)交互。其中數(shù)據(jù)區(qū)是顯示圖像中道路車(chē)輛的位置、類(lèi)別等信息的區(qū)域,圖像區(qū)將數(shù)據(jù)區(qū)的信息映射到原圖中方便用戶(hù)通過(guò)視覺(jué)直接獲得信息。
1.2.3 圖像無(wú)線傳輸
圖像無(wú)線傳輸功能主要是數(shù)字無(wú)線圖傳的軟硬件結(jié)合設(shè)計(jì)。設(shè)計(jì)利用樹(shù)莓派采集攝像頭圖像,利用無(wú)線網(wǎng)卡將圖像傳輸?shù)搅硗庖粡垬?shù)莓派上,然后利用HDMI采集卡將視頻流傳輸?shù)降孛嬲荆娔X)。
圖像無(wú)線功能模塊設(shè)計(jì)分為接收端和發(fā)射端,如圖2所示。圖2(a)是無(wú)線圖傳接收端,由一張樹(shù)莓派3B+、一張AC8812網(wǎng)卡、兩個(gè)5.3G天線和一塊樹(shù)莓派供電板組成。樹(shù)莓派供電板將鋰電池轉(zhuǎn)化成5V3A的穩(wěn)壓電源為接收端供電。AC8812網(wǎng)卡通過(guò)usb與樹(shù)莓派相連,用于接收發(fā)射端傳回的數(shù)據(jù)。最終圖像從樹(shù)莓派的HDMI接口輸出。
圖2 無(wú)線圖傳模塊實(shí)物圖
圖2(b)是無(wú)線圖傳發(fā)射端,包括一張樹(shù)莓派3Bmini、一張AC8812網(wǎng)卡、一個(gè)攝像頭、兩個(gè)5.3G天線和穩(wěn)壓電源。AC8812網(wǎng)卡與樹(shù)莓派相連用于發(fā)送攝像頭采集的圖像。
本實(shí)驗(yàn)中無(wú)人機(jī)高空飛行采集的圖像分辨率為5472x3648。因?yàn)閳D片過(guò)大,需要進(jìn)行預(yù)處理才能作為YOLO v4網(wǎng)絡(luò)的輸入。
2.2.1 高分辨率圖像處理
數(shù)據(jù)預(yù)處理實(shí)驗(yàn)表明,剪裁后拼接耗時(shí)是直接輸入的54倍,且兩者預(yù)測(cè)的準(zhǔn)確度相當(dāng)。因此,本文設(shè)計(jì)的系統(tǒng)將原圖resize處理后直接送入模型進(jìn)行預(yù)測(cè)。將原圖通過(guò)resize的方式縮小到608x608大小,每幅原圖只需要進(jìn)行一次預(yù)測(cè)。
2.2.2 Mosaic數(shù)據(jù)增強(qiáng)
數(shù)據(jù)增強(qiáng)可以使圖片數(shù)據(jù)變得更加多樣,放入模型訓(xùn)練中可以提高模型的魯棒性,降低額外因素對(duì)預(yù)測(cè)結(jié)果的影響,比如:亮度和形態(tài)等。
YOLO v4的Mosaic數(shù)據(jù)增強(qiáng)參考了CutMix數(shù)據(jù)增強(qiáng)方式,因此兩者在原理上有一定的相似性。CutMix數(shù)據(jù)增強(qiáng)將兩張圖片進(jìn)行拼接,而Mosaic則是拼接四張圖片。YOLO v4在讀取四張圖片后進(jìn)行翻轉(zhuǎn)、扭曲、色域變化等,并且按照不同方向依次擺放進(jìn)行圖片的組合和框的組合。
2.2.3 車(chē)輛目標(biāo)檢測(cè)
訓(xùn)練數(shù)據(jù)為960張大疆無(wú)人機(jī)在學(xué)校周邊高空拍攝的圖片。在圖片中標(biāo)注出有用信息,將車(chē)輛框出來(lái)并標(biāo)注類(lèi)型,生成.xml文件;運(yùn)行數(shù)據(jù)訓(xùn)練程序,輸入預(yù)訓(xùn)練框架。將圖片和標(biāo)簽文件輸入YOLO v4模型中,利用預(yù)訓(xùn)練框架訓(xùn)練模型。多次訓(xùn)練改善模型。系統(tǒng)的圖像處理部分流程如圖3所示,訓(xùn)練集圖像經(jīng)過(guò)resize處理后尺寸變?yōu)?08x608,輸入到Y(jié)OLO v4框架中加載預(yù)訓(xùn)練權(quán)重文件進(jìn)行訓(xùn)練,經(jīng)過(guò)數(shù)據(jù)增強(qiáng)算法、學(xué)習(xí)率退火算法的處理,輸出訓(xùn)練結(jié)果。YOLO v4權(quán)重文件;測(cè)試集圖像經(jīng)過(guò)resize處理后輸入到上述訓(xùn)練好的YOLO v4權(quán)重文件進(jìn)行預(yù)測(cè),對(duì)輸出結(jié)果進(jìn)行解碼:將預(yù)測(cè)框、類(lèi)別、置信度等信息映射到原圖中。
根據(jù)計(jì)算機(jī)顯卡性能將模型的batch_size設(shè)置為8,學(xué)習(xí)率初始化為0.001,采用余弦退火算法,在經(jīng)過(guò)280個(gè)epoch后,loss值低至16.8。
訓(xùn)練用的圖片分為訓(xùn)練集和測(cè)試集,訓(xùn)練集圖片800張,總共含有不同樣式的車(chē)輛10000多輛,測(cè)試集圖片160張,總共含有車(chē)輛2500多輛。根據(jù)圖片中車(chē)輛的類(lèi)別信息,將網(wǎng)絡(luò)輸入類(lèi)別更改為car、truck、buugy、bus四類(lèi)。在訓(xùn)練進(jìn)行14500次迭代后,模型達(dá)到飽和,loss不再繼續(xù)下降,訓(xùn)練自動(dòng)停止。
本文設(shè)計(jì)的系統(tǒng)是面向用戶(hù)的,因此,為目標(biāo)識(shí)別系統(tǒng)最外層設(shè)計(jì)一個(gè)GUI界面是必要的,GUI界面中,車(chē)輛目標(biāo)識(shí)別結(jié)果如圖3所示。
圖3 GUI界面演示圖
2.3.1 圖像顯示
利用tkinter工具創(chuàng)建菜單、創(chuàng)建畫(huà)布、創(chuàng)建label。菜單用來(lái)選取圖像,當(dāng)未檢測(cè)時(shí),在畫(huà)布上顯示原圖,label顯示狀態(tài)為“原圖”;檢測(cè)后畫(huà)布顯示處理后的圖片,label顯示狀態(tài)為“預(yù)測(cè)后”。
2.3.2 檢測(cè)結(jié)果顯示
創(chuàng)建文本框,讀取模型輸出后分辨出要顯示的信息并打印。
本文中代碼運(yùn)行的硬件環(huán)境:CPU為酷睿處理器10代i5,GPU為英偉達(dá)gtx1660ti
本文中代碼運(yùn)行的軟件環(huán)境:windows10+python 3.6.12+tensorflow-gpu 1.13.1+keras==2.1.5。
無(wú)人機(jī)配置:大疆精靈
圖像檢測(cè)功能測(cè)試:利用opencv觀察模型的輸出情況。
數(shù)據(jù)顯示功能測(cè)試:上述GUI界面創(chuàng)建完畢后,進(jìn)行測(cè)試。
圖像無(wú)線傳輸功能測(cè)試:測(cè)試圖傳的距離、抗干擾能力與傳輸延時(shí)情況。經(jīng)過(guò)實(shí)驗(yàn),測(cè)得圖傳在空中5km以?xún)?nèi)可以穩(wěn)定傳輸,傳輸延時(shí)在200ms以?xún)?nèi)。
本文目標(biāo)檢測(cè)的精度用準(zhǔn)確率、漏檢率、虛檢率指標(biāo)進(jìn)行評(píng)價(jià)。經(jīng)過(guò)多次訓(xùn)練預(yù)測(cè),系統(tǒng)的精度評(píng)價(jià)如表1所示,達(dá)到目標(biāo)效果。
表1 車(chē)輛檢測(cè)精度評(píng)價(jià)
準(zhǔn)確率=準(zhǔn)確檢測(cè)車(chē)輛數(shù)/車(chē)輛總數(shù)
虛檢率=錯(cuò)誤檢測(cè)車(chē)輛數(shù)/檢測(cè)到車(chē)輛數(shù)
漏檢率=漏掉檢測(cè)目標(biāo)數(shù)/車(chē)輛總數(shù)
本文研究一種基于無(wú)人機(jī)的車(chē)輛識(shí)別系統(tǒng)的設(shè)計(jì)。根據(jù)中無(wú)人機(jī)性能和應(yīng)用場(chǎng)景,利用了YOLO v4算法進(jìn)行車(chē)輛目標(biāo)檢測(cè),結(jié)合數(shù)據(jù)增強(qiáng)算法、學(xué)習(xí)率退火衰減算法等,使得基于無(wú)人機(jī)圖像的車(chē)輛檢測(cè)可以達(dá)到預(yù)期效果。同時(shí),選取樹(shù)莓派自制了一款無(wú)線數(shù)字圖傳模塊,自主開(kāi)發(fā)了圖像無(wú)線傳輸模塊和系統(tǒng)控制界面。經(jīng)聯(lián)調(diào)測(cè)試,該系統(tǒng)操作便捷,可搭載大多數(shù)無(wú)人機(jī)平臺(tái),且具有較好的運(yùn)算速度和識(shí)別精度。