林曉燕,邱天,張昕,吳建邦,寧洪龍
(1.五邑大學(xué)智能制造學(xué)部,廣東江門 529020;2.華南理工大學(xué)材料科學(xué)與工程學(xué)院,廣東廣州 510640)
隨著攝像頭的廣泛部署,利用圖像進(jìn)行火災(zāi)識別已成為一個重要的研究方向[1]。將雙目視覺與視頻圖像處理相結(jié)合,是目前對火焰進(jìn)行感知及定位常用的研究方法[2]。
雖然目前基于圖像方法對火災(zāi)進(jìn)行定位的研究已取得一定的成果,但是大部分研究存在定位誤差較大且不涉及對火勢大小估算等不足[3]。為配合自動滅火裝置的噴水定位,提出利用雙目相機(jī)估算火焰相對面積的方法,為更好地判斷火情大小奠定基礎(chǔ)。
該研究的主要任務(wù)為檢測室內(nèi)環(huán)境是否存在火源并根據(jù)火焰區(qū)域深度估算火焰相對面積。為提高檢測和測距速度,該文結(jié)合YOLOv5s 和雙目視覺構(gòu)建一個火焰定位及相對面積估算系統(tǒng),圖1 為該系統(tǒng)整體框架圖[4]。

圖1 系統(tǒng)整體框架圖
首先獲取雙目相機(jī)的內(nèi)外參,之后利用雙目攝像頭獲取雙目圖像并對圖像進(jìn)行校正[5]。其次采用YOLOv5s 算法對火焰目標(biāo)進(jìn)行檢測,獲得圖像中火焰的區(qū)域。接著利用左右視圖的火焰區(qū)域灰度質(zhì)心點,依據(jù)雙目視差原理計算得到火焰的深度。最后通過圖像處理計算出火焰像素面積占比,再根據(jù)火焰深度及火焰像素占比估算出火焰相對面積。
YOLO(You Only Look Once)是一個經(jīng)典的endto-end 目標(biāo)檢測網(wǎng)絡(luò)系列,為解決CNN 對目標(biāo)檢測速度慢且精度不高的問題提出的[6]。YOLOv4 將近些年比較火的方法加入得到Y(jié)OLO 中,如mish 激活函數(shù)等,從而提高了識別精度和速度[7]。YOLOv5是在YOLOv4 的基礎(chǔ)上進(jìn)行改進(jìn)的,其對比YOLOv4具有更加簡潔的網(wǎng)絡(luò)結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示。

圖2 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)簡圖
YOLOv5 網(wǎng)絡(luò)主要包括四個部分,分別為輸入層、特征提取網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)和預(yù)測網(wǎng)絡(luò)[8-9]。YOLOv5 沿用了YOLOv4 多種增強(qiáng)技術(shù)的組合,在增加縮放,色彩空間調(diào)整和馬賽克增強(qiáng)這三種數(shù)據(jù)增強(qiáng)的同時,也對自適應(yīng)錨定框進(jìn)行改進(jìn)[10]。另外,YOLOv5 包含四個大小不同的版本,其中,YOLOv5s是YOLOv5 系列中模型最小且推理速度快的網(wǎng)絡(luò)[11],有利于部署到移動設(shè)備上,由此該設(shè)計選用YOLOv5s 進(jìn)行實驗。
在雙目測距過程中,通常采用極線約束方法進(jìn)行對應(yīng)點匹配,即將左右視圖的匹配對應(yīng)點從二維搜索降為一維搜索,減少計算量[12]。
雙目校正是通過標(biāo)定相機(jī)來獲得相機(jī)內(nèi)外參數(shù),在對圖像進(jìn)行失真校正的同時利用極線約束對相機(jī)進(jìn)行雙目立體校正,使得相機(jī)左右視圖的成像原點坐標(biāo)一致、對極線行對齊,即世界坐標(biāo)系中的任一點在相機(jī)左右視圖中保持行坐標(biāo)一致,由此矯正為理想的雙目系統(tǒng)[13]。而像素坐標(biāo)系與世界坐標(biāo)系之間相互轉(zhuǎn)換的過程稱為重投影過程[14]。
設(shè)P(Xw,Yw,Zw)為世界坐標(biāo)系中的任意一點,以左攝像頭為基準(zhǔn)的情況下,xl和xr表示左右成像點到圖像平面最左側(cè)的垂直距離,并且理想情況下,yl=yr。B為左右相機(jī)光心Ol和Or之間的距離,也稱為基線。f為相機(jī)焦距,Z為P點與左相機(jī)之間的距離,也稱為物距。由相似三角形的原理可知:
理論上深度Z的計算公式如下:
視差d=xl-xr,其為P點在左右成像平面中成像點Pleft(xl,yl)和Pright(xr,yr)的y軸對應(yīng)關(guān)系。通過式(2)可知視差d是雙目相機(jī)中求解深度的核心問題。
以深度和寬度分別為0.33 和0.5 的YOLOv5s 網(wǎng)絡(luò)為基礎(chǔ),對2 000 張(共包含2 500 個火焰)圖片進(jìn)行模型訓(xùn)練。圖3 為模型的檢測結(jié)果圖,為評估訓(xùn)練所得模型的檢測效果,選取平均精度均值(mAP_0.5)、查準(zhǔn)率、召回率為網(wǎng)絡(luò)學(xué)習(xí)的評價指標(biāo)[15]。其中模型的查準(zhǔn)率為80.68%,召回率為65.19%,mAP_0.5 為66.98%。從訓(xùn)練結(jié)果可看出,該模型查準(zhǔn)率較高、召回率和mAP_0.5 較低,實現(xiàn)了收斂。

圖3 檢測結(jié)果
該實驗使用HBV-1780 雙目攝像頭,根據(jù)張正友棋盤標(biāo)定法,用雙目攝像頭模組拍攝20 組不同姿態(tài)及位置的30 mm×30 mm 方形棋盤格圖片(大小為640×480),之后用Matlab 對這20 組圖片進(jìn)行處理。
Matlab 是以左相機(jī)坐標(biāo)系為參考坐標(biāo)系,右相機(jī)坐標(biāo)系對左相機(jī)坐標(biāo)系進(jìn)行相對變換,從而得到雙目攝像頭的內(nèi)外參[16]。采用該方法標(biāo)定完相機(jī)后可得到以下參數(shù):
其中,Ml、Mr、Dl、Dr、R和T分別為左右攝像頭的內(nèi)部參數(shù)、畸變參數(shù)、旋轉(zhuǎn)矩陣和平移矩陣。
攝像頭識別到火焰后,截取目標(biāo)檢測框并對目標(biāo)檢測框內(nèi)的圖像進(jìn)行圖像處理操作。分別嘗試采用分水嶺、K-means 算法、二值化、Canny 邊緣檢測算法進(jìn)行實驗,分別對200 張火焰圖像進(jìn)行處理,取其中部分實驗效果圖為例。不同實驗左視圖火焰圖像處理結(jié)果如圖4 所示。

圖4 不同實驗左視圖火焰圖像處理結(jié)果
從圖4 可以看出,基于分水嶺算法和K-means算法都能有效地將火焰分割出來,但同時也會將大部分的光暈包含在內(nèi),檢測效果不佳;Canny 邊緣檢測雖然能準(zhǔn)確檢測出火焰的邊緣,但是在火焰邊緣的光暈區(qū)域容易出現(xiàn)干擾或無法形成一個連通區(qū)域;自適應(yīng)中值二值化和自適應(yīng)高斯二值化雖然能將火焰邊緣大致繪制出來,但是出現(xiàn)很多斷點區(qū)域,無法形成連通的火焰邊緣;另外,RGB 色彩空間只能檢測出火焰光暈部分,且不連通;相比之下,基于YCbCr 色彩空間的火焰分割效果最好,不僅將火焰區(qū)域準(zhǔn)確分割出來,并且只有小部分火焰光暈被包含在內(nèi),不影響面積計算結(jié)果。
通過對比,該實驗最終選擇YCbCr 進(jìn)行實驗,且實驗效果對比如表1 所示。

表1 不同實驗方法對火焰進(jìn)行分割的效果對比
目標(biāo)物體的深度估計是根據(jù)該物體在雙目攝像頭左右視圖中的視差計算得到。一般情況下,計算深度需要得到左右視圖的多組匹配特征點對。該文為提高計算速度,將左右視圖的灰度質(zhì)心作為對應(yīng)的特征點對,以此估算火焰深度。
4.4.1 質(zhì)心
在YOLOv5s 獲得目標(biāo)物體識別框的基礎(chǔ)上,計算其質(zhì)心。質(zhì)心本身不作為判斷物體的依據(jù),僅是作為測距的坐標(biāo)點。一張圖像中的圖像矩,也稱為空間矩,其計算公式為:
式中,array(p,q) 表示像素在(p,q) 處的像素值,i和j為大于零的整數(shù),其不同取值代表圖像中的不同空間矩。在OpenCV 中,通常將圖像二值化后找到圖像的質(zhì)心,即通過計算一階矩可得到質(zhì)心,公式如下:
圖5 列出三種不同火焰形狀的質(zhì)心實驗效果圖,從圖中可以看出無論檢測框中火焰形狀如何,該質(zhì)心算法在檢測框中找到的一對對應(yīng)點始終落在火焰區(qū)域中。所以在原始圖像中,目標(biāo)物體的質(zhì)心坐標(biāo)為式(10)計算得出的質(zhì)心坐標(biāo)值加上目標(biāo)檢測框左上角的坐標(biāo)值,即:

圖5 不同形狀火焰質(zhì)心實驗結(jié)果圖
當(dāng)?shù)玫阶笥蚁鄼C(jī)圖像中目標(biāo)物體的質(zhì)心坐標(biāo),相當(dāng)于得到左右圖像的一對對應(yīng)點,可由此計算出目標(biāo)物體的與雙目相機(jī)之間的距離。
4.4.2 雙目測距
將雙目相機(jī)置于水平桌面上,通過USB2.0 數(shù)據(jù)線連接計算機(jī)完成雙目環(huán)境的搭建。在4.4.1 節(jié)得到相機(jī)左右圖像的一對對應(yīng)點(質(zhì)心)后,計算對應(yīng)點列坐標(biāo)的差值,即可得出視差。接著將質(zhì)心坐標(biāo)、視差和重投影矩陣代入式(1),進(jìn)行歸一化計算后即可得到目標(biāo)物體與相機(jī)之間的距離。
實驗結(jié)果如表2 所示,表中的實際距離D通過量尺測量得到。從表2 中可看出存在一定的誤差,其可能的原因如下:火焰具有動態(tài)特性,會不斷隨機(jī)晃動,且左右視圖的視差對應(yīng)點不一定與實際測量距離的點為同一個點。

表2 目標(biāo)物體測距結(jié)果
所以實際上測距的最大相對誤差不超過10%,滿足實際應(yīng)用的要求。
當(dāng)YOLOv5s 識別出火焰后,計算目標(biāo)檢測框的總像素點個數(shù)PixA,同時對火焰圖像進(jìn)行二值化操作,并計算出二值化圖像中白色像素點的總個數(shù)PixW,即火焰像素個數(shù)。則目標(biāo)檢測框中火焰部分占整個目標(biāo)檢測框圖像的比例ratio 計算公式為:
由前文計算出火焰與相機(jī)之間的距離Z和目標(biāo)檢測框左上角和右下角的像素坐標(biāo)(Lx,Ly) 與(Rx,Ry),有:
根據(jù)雙目相機(jī)理想模型推理可知:
其中,Dx、Dy和DX、DY分別為像素坐標(biāo)系下以及世界坐標(biāo)系下目標(biāo)檢測框的長和寬,所以目標(biāo)檢測框在世界坐標(biāo)系中的面積S為:
通過計算可得到火焰的實際相對面積Sflame:
火焰提取及質(zhì)心圖如圖6 所示,通過YOLOv5s檢測雙目相機(jī)是否存在火焰,若存在則對左相機(jī)視圖的火焰區(qū)域求取火焰相對面積,同時對左右相機(jī)視圖的火焰區(qū)域求取灰度質(zhì)心,從而計算出火焰與相機(jī)之間的距離,最后通過式(16)估算出火焰的相對面積。

圖6 火焰提取及質(zhì)心圖
火焰相對面積估算結(jié)果如表3 所示,其中實際距離D與目標(biāo)檢測框測量面積S′為手動測量的數(shù)據(jù)。以序號1 的實驗為例,當(dāng)測量到火焰距離左相機(jī)的距離為247.37 mm 時,實際測量的目標(biāo)檢測框面積為3 750 mm2,而計算得到左視圖中火焰的目標(biāo)檢測框面積為4 303.37 mm2,比實際面積大15%。其中火焰面積占目標(biāo)檢測框計算面積的34.31%,由此可求出火焰相對面積為1 476.49 mm2。實驗結(jié)果表明,該文算法可以有效地檢測火焰,且通過估算火焰相對面積可以有效地判斷火情大小。

表3 火焰相對面積計算結(jié)果
該文提出一種基于雙目相機(jī)和YOLOv5s 的火焰面積估算方法。通過YOLOv5s 檢測是否存在火焰,若存在,則對左右相機(jī)視圖的火焰區(qū)域求取灰度質(zhì)心得到火焰與相機(jī)之間的距離。同時求出目標(biāo)識別框的大小,再通過火焰像素點占比求出火焰的相對面積。經(jīng)實驗,該文提出的方法能準(zhǔn)確提取圖像中的火焰區(qū)域,且可以較為準(zhǔn)確地估算火焰相對面積,估算平均誤差為12.2%。該實驗為室內(nèi)火災(zāi)實時檢測及滅火技術(shù)的發(fā)展提供一定思路的同時,也能為戶外火勢評估提供參考。