栗俊杰, 毛鵬軍, 方 騫, 申禮瑞, 李鵬舉, 耿 乾
(河南科技大學(xué)機(jī)電工程學(xué)院, 洛陽 471003)
無人機(jī)作為新型消防裝備,在日益繁重、情況復(fù)雜多變的滅火救援任務(wù)中正發(fā)揮著極其重要的作用,其功能的擴(kuò)展與技術(shù)的更新直接影響消防滅火的效率?,F(xiàn)有無人機(jī)撲救火災(zāi)方式之一是通過機(jī)載噴頭向火點(diǎn)噴射滅火劑,而噴頭對(duì)火點(diǎn)定向的過程完全依靠人為通過視頻監(jiān)控不斷嘗試和調(diào)整,這一過程既耗時(shí)耗力又造成滅火噴劑的大量浪費(fèi)。為彌補(bǔ)這一不足,進(jìn)一步提高無人機(jī)智能化程度,選擇非圖形處理器 (graphics processing unit,GPU)設(shè)備實(shí)現(xiàn)火點(diǎn)檢測與精準(zhǔn)定向任務(wù)對(duì)提高無人機(jī)消防救援智能化程度具有非常重要的意義。
近年來,借助卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類的精度超過人工分類,將其作為特征提取層的目標(biāo)檢測算法在檢測精度和速度上取得巨大提升,如R-CNN(regions with convolutional neutral network)系列[1-3]、SSD[4](single shot multibox detector)、YOLO[5-7](you only look once)在火點(diǎn)檢測領(lǐng)域取得較好的表現(xiàn)。Wu等[1]創(chuàng)建了一個(gè)森林火災(zāi)基準(zhǔn),使用R-CNN、YOLO和SSD來檢測森林火災(zāi)。他們發(fā)現(xiàn)SSD具有較好的實(shí)時(shí)性、較高的檢測精度和早期檢測能力。同時(shí),對(duì)YOLO的結(jié)構(gòu)進(jìn)行調(diào)整,提出一種新的結(jié)構(gòu)tiny-yolo-voc,實(shí)驗(yàn)證明提高了火災(zāi)檢測的正確率。Kim等[2]使用Fast R-CNN根據(jù)其空間特征檢測火與非火區(qū)域。另外,通過LSTM(long short-term memory)來預(yù)測火災(zāi)報(bào)警的可靠性。Li等[3]為提高圖像火災(zāi)檢測技術(shù)性能,使用Fast R-CNN、SSD和YOLO與現(xiàn)有算法比較,發(fā)現(xiàn)基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neutral network,CNN)的火災(zāi)檢測算法精度明顯優(yōu)于其他算法,其中YOLO檢測速度最快,魯棒性最強(qiáng)。Shen等[6]使用簡化版本的YOLOv1網(wǎng)絡(luò)對(duì)火點(diǎn)進(jìn)行檢測和定位,該算法檢測速度較快,但易受到燈光光線的影響且邊界框不能框選出火點(diǎn)確切區(qū)域。以上方法中YOLO和R-CNN已成功地在檢測對(duì)象方面取得了不錯(cuò)的結(jié)果,但由于視頻監(jiān)控平臺(tái)的局限性,使得它們無法在具有實(shí)時(shí)性受限的消防環(huán)境中工作。
在滅火過程中,需要用噴劑準(zhǔn)確到達(dá)著火點(diǎn)位置,以保證快速滅火?,F(xiàn)有噴劑滅火主要是基于隔絕氧氣防復(fù)燃原理,噴劑下落過程會(huì)因空氣阻力形成速度梯度造成水體受力不均而擴(kuò)散,同時(shí)也易受到風(fēng)場影響。通過人工實(shí)時(shí)調(diào)整噴射角度,不僅精準(zhǔn)度低而且造成噴劑的浪費(fèi)。在精準(zhǔn)滅火方面,中外科研人員提出不同的研究方法。Lee等[8]提出了一種采用計(jì)算機(jī)視覺技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)實(shí)現(xiàn)在視圖中準(zhǔn)確地跟蹤對(duì)象的方法。同時(shí),利用混合運(yùn)動(dòng)學(xué)來實(shí)現(xiàn)噴頭的精確控制。伍毅等[9]通過建立噴頭霧場特性實(shí)驗(yàn)平臺(tái)來研究高壓細(xì)水霧噴頭流量系數(shù)與霧場特性的關(guān)系,實(shí)驗(yàn)結(jié)果表明,隨著流量系數(shù)在一定范圍內(nèi)變化,噴頭的霧場強(qiáng)度、液滴粒徑分布和霧化角度均有明顯增加,滅火能力也更強(qiáng)。Zhang等[10]建立了一個(gè)反向傳播 (back propagation,BP)神經(jīng)網(wǎng)絡(luò)模型,將噴口特性作為模型輸入,出水點(diǎn)坐標(biāo)作為模型輸出。模型能夠準(zhǔn)確預(yù)測出水點(diǎn),從而準(zhǔn)確地確定火點(diǎn)位置并調(diào)整噴頭。Zhu等[11]基于運(yùn)動(dòng)粒子半隱式(moving-particle semi-implicit, MPS) 方法建立了水射流軌跡模型預(yù)測火點(diǎn)位置。實(shí)驗(yàn)發(fā)現(xiàn)空氣阻力是產(chǎn)生偏差的主要原因,采用二值函數(shù)插值補(bǔ)償方法進(jìn)行誤差補(bǔ)償,利用未使用的數(shù)據(jù)驗(yàn)證了修正后模型的準(zhǔn)確性。上述研究中,應(yīng)用在無人機(jī)這一特定設(shè)備上,可行性和適用性依然是個(gè)難題。
現(xiàn)采用新一代智能AI芯片,使用YOLOv2-Tiny[12-13]檢測框架,模型部署到K210上可實(shí)現(xiàn)較為理想的目標(biāo)檢測效果,最后通過PID控制來調(diào)節(jié)火點(diǎn)框選中心與視頻中心的偏差值來控制噴頭定向火點(diǎn)并鎖定。同時(shí),所有圖像處理和噴頭控制決策都在移動(dòng)設(shè)備上進(jìn)行,以期進(jìn)一步提高無人機(jī)消防的部署速度與滅火效率。
YOLO[14-15]是一種基于CNN的對(duì)象檢測框架,將對(duì)象檢測任務(wù)作為一個(gè)統(tǒng)一的回歸問題。如圖1所示,YOLOv2[16]神經(jīng)網(wǎng)絡(luò)共有23個(gè)卷積層,目標(biāo)是在強(qiáng)大的硬件平臺(tái)上進(jìn)行高精度的目標(biāo)檢測,而YOLOv2的簡化版YOLOv2-Tiny只有9個(gè)卷積層,適用于移動(dòng)和嵌入式設(shè)備。YOLOv2和YOLOv2-Tiny都支持多分辨率輸入,通過適當(dāng)設(shè)置輸入圖像的分辨率,提供了一種方便的方法來平衡計(jì)算負(fù)載和檢測精度。
圖1 YOLOv2與YOLOv2-Tiny對(duì)象檢測框架Fig.1 YOLOv2 and YOLOv2-Tiny object detection framework
YOLOv2-Tiny火點(diǎn)檢測算法由如下幾步組成。
(1)對(duì)任意分辨率火點(diǎn)圖片按原圖長(w)、寬(h)比縮放至224×224。
(2)把步驟(1)得到的圖像網(wǎng)格化,把圖像劃分成7×7大小的網(wǎng)格,如圖2(a)所示。
(3)滑動(dòng)窗口遍歷所有網(wǎng)格并且每個(gè)網(wǎng)格預(yù)測5個(gè)候選框,每個(gè)候選框包含30維特征(共5×30=150維),如圖2(b)所示。
圖2 YOLOv2-Tiny算法流程Fig.2 Algorithm flow of YOLOv2-Tiny
(4)對(duì)含有火點(diǎn)網(wǎng)格的候選框與真實(shí)框(黃色框)進(jìn)行交并比計(jì)算,把置信度低于設(shè)定閾值的略去,高于設(shè)定閾值的使用非極大值抑制篩選得到最終的邊界框,如圖2(c)、圖2(d)所示。
本文中保留YOLOv2-Tiny提出的特征提取層,依據(jù)所要檢測的類別數(shù)量,修改最后一個(gè)1×1的卷積層。實(shí)驗(yàn)所要檢測的類別數(shù)量為1,最終的向量深度為30。YOLOv2-Tiny具體結(jié)構(gòu)組成如表1所示。為獲得高的交并比,進(jìn)一步提高錨框定位的準(zhǔn)確性,使用K-Means聚類方法對(duì)自制訓(xùn)練集Ground truth聚類分析,以解決錨框定位不準(zhǔn)確性問題,最終通過聚類得到5個(gè)anchor boxes為(0.67,0.81)、(1.27,1.81)、(1.71,3.71)、(3.07,2.34)、(3.42,4.62)。
表1 YOLOv2-Tiny具體結(jié)構(gòu)組成Table 1 The specific structure of YOLOv2-Tiny
二維旋轉(zhuǎn)噴頭如圖3所示,結(jié)構(gòu)主要是由兩個(gè)舵機(jī)組成,1號(hào)舵機(jī)用于控制噴頭上下移動(dòng),2號(hào)舵機(jī)用于左右移動(dòng),兩舵機(jī)調(diào)節(jié)范圍均為180°,可實(shí)現(xiàn)兩個(gè)方向的自由同步調(diào)節(jié)。噴頭定向火點(diǎn)如圖4所示。使用ov2640攝像頭獲取圖像,知識(shí)處理單元(knowledge processing unit,KPU)對(duì)視頻中每一幀圖像進(jìn)行YOLOv2-Tiny檢測,獲得圖像中火點(diǎn)目標(biāo)位置后,將火點(diǎn)框選中心與圖像中心之間距離參數(shù)傳遞給PID進(jìn)程。PID控制噴頭實(shí)時(shí)移動(dòng)保持火點(diǎn)框選中心在視頻中央,以實(shí)現(xiàn)定向火點(diǎn)。
圖3 二維旋轉(zhuǎn)噴頭Fig.3 Two dimensional rotating nozzle
圖4 PID控制噴頭定向火點(diǎn)Fig.4 PID control nozzle directional fire point
PID控制算法指比例(proportional)、積分(integral)和微分(derivative)3項(xiàng)全部或者部分組合的一種控制算法。PID控制幾乎適用各種被控對(duì)象,通過調(diào)整PID參數(shù),可以使系統(tǒng)兼顧穩(wěn)態(tài)性能和動(dòng)態(tài)性能。噴頭定向控制中,比例控制部分用于控制舵機(jī)帶動(dòng)噴頭跟蹤火點(diǎn)移動(dòng)而轉(zhuǎn)動(dòng),積分部分用于消除火點(diǎn)框選中心與視頻中心距離的穩(wěn)定誤差,微分部分用于控制兩點(diǎn)偏差的變化率。計(jì)算公式為
(1)
式(1)中:u(t)表示舵機(jī)最終輸出的角度;e(t)表示火點(diǎn)框選中心與視頻中心的偏差角度;Kp、Ki和Kd表示各增益系數(shù)。
1號(hào)和2號(hào)舵機(jī)初始角度分別為30°和50°。舵機(jī)控制信號(hào)周期為20 ms的脈寬調(diào)制(pulse width modulation,PWM)脈沖信號(hào),脈沖信號(hào)范圍為0.5~2.5 ms,即占空比為0.5%~12.5%。不同占空比的PWM對(duì)應(yīng)舵盤位置0°~180°,通過K210開發(fā)板產(chǎn)生指定的PWM脈沖信號(hào)給舵機(jī)。實(shí)際使用中,由于舵機(jī)零部件的差異、負(fù)載變化、減速齒輪磨損等影響,使得舵機(jī)機(jī)械特性不是嚴(yán)格線性的。為精確控制舵機(jī)轉(zhuǎn)動(dòng)至指定角度,通過數(shù)據(jù)擬合的方式得到舵機(jī)真實(shí)轉(zhuǎn)動(dòng)角度與占空比對(duì)應(yīng)關(guān)系,波形如圖5所示。
圖5 角度與占空比關(guān)系Fig.5 Relationship between angle and duty cycle
實(shí)時(shí)視頻中的目標(biāo)檢測一直是一項(xiàng)具有挑戰(zhàn)性的任務(wù),通常受到所需計(jì)算能力的限制。到目前為止,隨著深度學(xué)習(xí)優(yōu)化方法的到來,以及專門為嵌入式設(shè)備和深度神經(jīng)網(wǎng)絡(luò)加速而設(shè)計(jì)的新型片上系統(tǒng)的發(fā)布,有可能在小型廉價(jià)設(shè)備上實(shí)現(xiàn)實(shí)時(shí)性。K210[17-19]就是其中一款能夠在邊緣進(jìn)行深度學(xué)習(xí)模型推理的系統(tǒng)級(jí)芯片。
K210內(nèi)部配備的KPU(knowledge processing unit)是一種神經(jīng)網(wǎng)絡(luò)處理器,能夠在先前訓(xùn)練的模型上加快推理過程。KPU內(nèi)置卷積、批歸一化、激活和池化運(yùn)算單元,實(shí)時(shí)工作的最大固定點(diǎn)模型大小為5~5.9 MiB,并支持1×1和3×3卷積內(nèi)核。K210有6 MiB通用SRAM與2 MiB專用AI SRAM,共計(jì)8 MiB。模型的輸入輸出特征存儲(chǔ)在2 MiB的AI SRAM中,權(quán)重參數(shù)存儲(chǔ)在6 MiB通用SRAM中。圖6所示為嘉楠科技公司推出的一款MAIX DOCK開發(fā)板。
圖6 MAIX Dock開發(fā)板Fig.6 MAIX Dock development board
K210火點(diǎn)檢測過程如圖7所示。執(zhí)行流程為:①初始化KPU,部署CNN結(jié)構(gòu);②等待一幀圖像采集完成;③開始CNN運(yùn)算;④開始Region區(qū)域,計(jì)算火點(diǎn)區(qū)域;⑤繪制圖像;⑥繪制火點(diǎn)區(qū)域框。
圖7 K210火點(diǎn)識(shí)別執(zhí)行過程Fig.7 Implementation process of K210 fire point identification
模型訓(xùn)練與編譯流程如圖8所示。數(shù)據(jù)集訓(xùn)練是在TensorFlow框架下進(jìn)行的(①)。訓(xùn)練后的模型是.h5格式(②)。接下來.h5模型返回到TensorFlow(③),模型被轉(zhuǎn)換為.tflite格式(④),然后在nncase中編譯。nncase編譯器將模型壓縮、參數(shù)化和編譯為.kmodel格式(⑤)。生成的kmodel模型有兩種途徑到開發(fā)板上,一種為通過官方kflash軟件下載到Flash中(⑥),另一種直接存儲(chǔ)到設(shè)備SD卡上(⑦)。
圖8 模型訓(xùn)練與編譯流程Fig.8 Model training and compilation process
模型訓(xùn)練硬件平臺(tái)CPU為Inter i7 10750H @ 2.59 GHz,GPU為GeForce RTX 2060,6 G顯存,32 G運(yùn)行內(nèi)存,運(yùn)行系統(tǒng)為Windows10專業(yè)版,CUDA版本為10.1。
隨機(jī)選取一定量圖片進(jìn)行訓(xùn)練,模型在K210上的檢測效果并理想。因此,實(shí)驗(yàn)中所用到數(shù)據(jù)集是通過25 600張數(shù)據(jù)集中篩選得到的。目前,自制數(shù)據(jù)集只選擇1 500張火點(diǎn)圖片,分為訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)兩部分。所使用的訓(xùn)練數(shù)據(jù)是1 200張來自監(jiān)控?cái)z像頭圖片和100張網(wǎng)上下載圖片,共計(jì)1 300張圖片。驗(yàn)證集使用200張監(jiān)控?cái)z像頭圖片。通過labelImg對(duì)數(shù)據(jù)集進(jìn)行手工打標(biāo)。網(wǎng)絡(luò)訓(xùn)練超參數(shù)設(shè)置如下:批次大小為8,迭代次數(shù)為50,學(xué)習(xí)率為0.001。模型檢測結(jié)果如圖9所示。
圖9 模型檢測結(jié)果Fig.9 Model checking results
訓(xùn)練損失在深度學(xué)習(xí)中是衡量網(wǎng)絡(luò)模型性能優(yōu)良的重要指標(biāo)。圖10描繪了YOLOv2-Tiny訓(xùn)練損失隨迭代次數(shù)變化的關(guān)系。當(dāng)?shù)螖?shù)較小時(shí),網(wǎng)絡(luò)模型對(duì)火點(diǎn)圖片特征進(jìn)行學(xué)習(xí),訓(xùn)練損失值由1.3快速下降。當(dāng)?shù)螖?shù)增大時(shí),訓(xùn)練損失曲線下降并逐漸趨近穩(wěn)定。最終在40附近時(shí),訓(xùn)練損失曲線趨近于0.04的穩(wěn)定值,符合訓(xùn)練預(yù)期。
圖10 訓(xùn)練損失與迭代次數(shù)關(guān)系Fig.10 Relationship between training loss and iteration times
為選取最優(yōu)模型,分別對(duì)同一批火點(diǎn)圖片、不同迭代次數(shù)的訓(xùn)練模型進(jìn)行檢測。迭代次數(shù)分別為10、15、30、40、50。采用多項(xiàng)指標(biāo)對(duì)模型進(jìn)行性能評(píng)估,具體評(píng)估指標(biāo)包括精確率P、調(diào)和平均值F1、召回率R和每秒傳輸幀數(shù)(frames per second,F(xiàn)PS)。表2列出了5種不同迭代次數(shù)模型相對(duì)應(yīng)的指標(biāo)參數(shù)。選擇最優(yōu)模型不僅需要權(quán)衡準(zhǔn)確率和召回率,同時(shí)也要選擇能夠綜合反映模型性能的指標(biāo)。F1是P、R的加權(quán)調(diào)和平均指標(biāo),因此選擇F1數(shù)值最大的模型作為最優(yōu)訓(xùn)練模型。測試結(jié)果對(duì)比如表2所示,F(xiàn)1最大值為95.54%,故本次模型中迭代次數(shù)為40的為最優(yōu)檢測模型。將最優(yōu)模型下載至K210開發(fā)板上,對(duì)200張測試圖片進(jìn)行檢測,檢測精度達(dá)到96.5%。MAIX DOCK開發(fā)板火點(diǎn)檢測效果如圖11所示。
表2 測試結(jié)果對(duì)比Table 2 Comparison of test results
圖11 MAIX DOCK開發(fā)板火點(diǎn)檢測效果Fig.11 Fire detection effect of MAIX DOCK development board
噴頭噴射軌跡與現(xiàn)場環(huán)境密切相關(guān),實(shí)際環(huán)境中的風(fēng)速、空氣阻力等都對(duì)噴頭射流有很大的影響,射流曲線與目標(biāo)關(guān)系如圖12所示。本實(shí)驗(yàn)中忽略風(fēng)力與空氣阻力影響,以射流理想軌跡測定射流落點(diǎn)與火點(diǎn)形心之間誤差來衡量定向精度。實(shí)驗(yàn)中無人機(jī)固定至1.5 m高度,噴頭加裝一個(gè)點(diǎn)狀激光器,共計(jì)測定100次AB之間的誤差。實(shí)驗(yàn)場景如圖13所示,實(shí)驗(yàn)測定結(jié)果如圖14所示。
圖12 射流軌跡與火點(diǎn)中心誤差圖Fig.12 Error diagram of jet trajectory and fire center
圖13 實(shí)驗(yàn)場景Fig.13 Experimental scenario
圖14 誤差實(shí)驗(yàn)圖Fig.14 Error experimental diagram
實(shí)驗(yàn)中射流落點(diǎn)位置誤差的最大值為9 cm,平均誤差為3.7 cm。隨著次數(shù)的增加,誤差持續(xù)在一定的范圍內(nèi)變化。一方面,由于0v2640攝像頭安裝的角度及高度使得采集得到的火點(diǎn)圖像出現(xiàn)“近大遠(yuǎn)小”。具體表現(xiàn)為,當(dāng)采集距離在焦距附近時(shí),圖像質(zhì)量好,位置誤差變小。當(dāng)采集距離偏離該距離時(shí),圖像像素分辨率降低,位置誤差略有變大。另一方面,由于火點(diǎn)屬于非剛性物體,輪廓相對(duì)不規(guī)則和散漫。同時(shí),圖片擺放位置造成框選中心與火點(diǎn)形心不一致,導(dǎo)致誤差持續(xù)存在。相同實(shí)驗(yàn)條件下,實(shí)驗(yàn)中發(fā)現(xiàn)隨著高度(距離火點(diǎn)最高至8 m位置)的增加和火點(diǎn)面積的增大,誤差逐漸有變小的趨勢,這對(duì)精準(zhǔn)滅火是有利的。通過調(diào)節(jié)PID參數(shù),最終發(fā)現(xiàn)參數(shù)分別為0.23、0、0.015,滿足穩(wěn)定且快速響應(yīng)的條件。
現(xiàn)有消防無人機(jī)噴頭是不具備火點(diǎn)定向功能的。同時(shí),考慮到視頻監(jiān)控平臺(tái)的局限性,使用基于K210的可移動(dòng)設(shè)備來實(shí)現(xiàn)火點(diǎn)檢測與精準(zhǔn)定向火點(diǎn)任務(wù),得到如下結(jié)論。
(1)提出了YOLOv2-Tiny目標(biāo)檢測框架實(shí)現(xiàn)火點(diǎn)檢測。通過建立真實(shí)數(shù)據(jù)集對(duì)其進(jìn)行訓(xùn)練和測試,模型對(duì)火點(diǎn)的檢測,精確率達(dá)94.6%,召回率達(dá)96.5%。模型下載至K210開發(fā)板上實(shí)現(xiàn)良好的檢測效果,基于K210實(shí)現(xiàn)火點(diǎn)檢測具有可行性,運(yùn)用到火災(zāi)場景值得深入研究。
(2)提出了固有K210開發(fā)板的舵機(jī)帶動(dòng)噴頭定向火點(diǎn)的控制方法。通過PID控制來調(diào)節(jié)火點(diǎn)框選中心與視頻中心的偏差值來控制噴頭定向火點(diǎn)。同時(shí),為實(shí)現(xiàn)噴頭的精確定向,通過數(shù)據(jù)擬合的方式找到舵機(jī)精確角度對(duì)應(yīng)的PWM脈沖信號(hào)。在4 m×4 m×3 m的室內(nèi)實(shí)驗(yàn)環(huán)境下,射流位置平均誤差為3.7 cm,能夠滿足精準(zhǔn)定向火點(diǎn)的服務(wù)需求。
本研究也存在一定的不足:
(1)為避免積分飽和所造成舵機(jī)角度滯后和震蕩等問題,從而導(dǎo)致系統(tǒng)動(dòng)態(tài)性能下降,本文中只使用了比例微分控制算法。盡管PD控制的穩(wěn)定余度不小,但具有好的動(dòng)態(tài)品質(zhì)余度不大。為實(shí)現(xiàn)最優(yōu)的控制品質(zhì),后續(xù)中將引入自抗擾控制算法。
(2)模型在K210上對(duì)火點(diǎn)的定位存在不精準(zhǔn)問題。此外,一些類火焰物體,如帶有黃色帽子和穿有黃色衣服的行人易引起誤框選。后續(xù)研究中,會(huì)通過增加數(shù)據(jù)集和避免框選煙霧、火盆、干柴等不相干物體,有針對(duì)性地對(duì)火點(diǎn)區(qū)域進(jìn)行打標(biāo)。