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

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

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

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

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

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

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

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

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

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