易冠霖,吳浩峻,吳韻哲,王浩亮,王丹,孫定翔
(大連海事大學 a.輪機工程學院;b.信息科學技術學院;c.船舶電氣工程學院,遼寧 大連 116026)
目前,船舶機艙火災探測器各種各樣,如煙敏式、溫敏式、光敏式等,但這些探測器檢測空間范圍有限且信息單一,識別速度存在較大的延遲,并且比較容易受到海上氣候、濕度,以及溫度等環境的干擾,較難適應海上復雜多變的環境[1]。傳統火焰和煙霧分割方法主要采用手動提取特征方法,如煙霧顏色[2-4]、形狀[5]和運動。由于煙霧和火焰外觀變化大且屬于非剛性物體,以及煙霧邊緣呈現半透明狀態,難以確定火災特征,導致分割效果很差。近年來,基于語義分割的算法得到了快速發展,相比于傳統的煙霧和火焰分割方法,基于深度學習的語義分割算法可以自動提取火焰和煙霧的特征。如今,大部分新建造船舶引入了視頻監控系統,這為加入基于深度學習的語義分割算法的船舶火災識別技術提供了便利。目前,已有不少研究者使用語義分割算法對火焰和煙霧進行檢測,如何進一步提升小火焰及稀薄煙霧的分割精度仍然是一個難題。對此, 提出改進DeepLabv3+[6]語義分割模型,重新設計模型的上采樣方式,由原解碼部分倍數為4的雙線性上采樣更改為倍數為2的近端插值逐步上采樣結構,并在編碼網絡采用更大的卷積核以增大模型感受野。此外,通過針對Focal Loss梯度曲線進行研究,即遠離真實值的預測概率值能快速接近真實值,接近真實值的預測概率值能繼續保持并繼續緩慢接近真實值,基于以上特點提出一個更靈活的冪次方損失函數。
DeepLabv3+網絡結構由編碼和解碼兩部分組成。編碼部分采用改進的Xception網絡,該網絡采用具有殘差連接的深度可分離卷積層的堆疊結構,為了在不同尺度上捕獲不同的上下文信息,使用具有多個并行不同膨脹系數的空洞卷積融合的空洞空間金字塔池化(atrous spatial pyramid pooling,ASPP)模塊。解碼部分則是對底層2次簡單的雙線性上采樣,其倍數為4。
改進后的DeepLabv3+網絡結構見圖1,DeepLabv3+網絡的上采樣結構為采用倍數為4的雙線性上采樣結構,上采樣倍數過大會導致底層特征細節信息丟失[7]。為了減少模型在上采樣過程中細節信息丟失,設計新的上采樣結構,由原解碼部分倍數為4的雙線性上采樣更改為倍數為2的近端插值逐步上采樣結構,上采樣后的特征圖經過2個3×3卷積進行提取特征,再將經過2個3×3卷積后的特征圖在通道維度拼接(concate),使特征得到充分融合,可大大減少細節特征信息在上采樣過程中丟失。此外,在保證模型性能不下降情況下,可減少編碼網絡的通道數。

圖1 改進的DeepLabv3+網絡結構
煙霧和火焰屬于非剛性目標,受周圍環境影響致使煙霧和火焰呈現多種多樣的姿態,因此,對于煙霧和火焰的特定分割任務中,適當的感受野可以使模型具有更好的分割性能。圖2為通過調整xception block的卷積核大小,即將xception block中的3×3深度可分離卷積換成7×7深度可分離卷積,以及將1×1深度可分離卷積換成3×3深度可分離卷積,使改進后的DeepLabv3+網絡模型具有更好的分割效果。

圖2 卷積核調整示意
損失函數影響著模型性能的好壞,并且損失函數會因模型的不同而產生不同的效果[8]。
由于Focal Loss損失函數[9]擁有良好的性能,并且能夠有效解決正負樣本不均衡以及難易分類樣本之間的不平衡問題,使得該損失函數在語義分割領域中得到了廣泛的應用。Focal Loss數學表達式如下。

(1)
FL(Pt)=-αt(1-Pt)γlg(Pt)
(2)
式中:p為模型對類別估計概率;y=1為真實類;γ為調節難易分類樣本之間的平衡因子,γ>0;αt為可控制正負樣本對總損失的權重。
一個合格的損失函數首先要符合損失函數的原則:①符合損失函數的意義,即預測值和真實值之間的差異越大,損失函數越大,反之,損失函數越小;②損失函數必須連續可導,通過求導,可以尋找能夠使損失函數最小的參數,這些參數對應的映射即最佳線性回歸或者邏輯回歸[10]。根據以上基本要求,開發了新的損失函數,并將其命名為冪次方損失函數,公式如下:
(3)
(4)
冪次方損失函數能夠滿足損失函數的2個基本原則,并且冪次方損失函數連續且可導,但這樣簡單的損失函數性能較差,并不能夠滿足目前的分割精度需求,為此,通過研究優秀的Focal loss損失函數并發現其自身的規律。Focal loss的預測值在[0,1]之間的損失值變化見圖3。

圖3 Focal loss函數損失值與類別估計概率Pt的關系
為了便于分析,將Pt值以0.5作為界線。由圖3可見:當Pt值處于區間[0,0.5]曲線梯度遠比區間[0.5,1]曲線梯度要大的多,因此,當Pt值處于區間[0,0.5]時,模型更傾向于區間[0,0.5]的優化,使得區間[0,0.5]的Pt值會隨著訓練的過程慢慢向區間[0.5,1]靠近,在模型訓練的前期,使得模型整體損失值快速下降以及分割精度的快速提升。當Pt值處于區間[0.5,1]時,模型給予區間[0,0.5]較少的優化,該區間的Pt值波動較小,損失下降緩慢。也就是說,遠離真實值的預測概率值能快速接近真實值,接近真實值的預測概率值能繼續保持并繼續緩慢接近真實值,使得這樣的梯度曲線具有較好的分割性能。
為了使冪次方損失函數與Focal loss具有類似梯度,通過加入μ,β和γ調節因子使冪次方損失函數能靈活調節梯度,得到下式。
(5)
(6)
通過β調節得到與Focal loss區間[0.5,1]類似的曲線梯度區間;通過γ調節得到與Focal loss區間[0,0.5]類似的曲線梯度區間,通過β和γ調節得到適合的曲線梯度后,使用μ選擇合適的梯度區間。如圖4所示,當β=1和γ=2時,得到式(3)和式(4)的曲線。當μ=0.63、β=0.2和γ=4以及μ=0.93、β=0.05和γ=5時,處于區間[0.63,1.63]和[0.93,1.93]的冪次方損失函數擁有一個良好的梯度。

圖4 冪次方損失函數損失值與類別估計概率Pk的關系
在損失計算時,通常將標簽中的各類別處理為one-hot編碼,0為背景,1為前景。在實際的訓練過程中,模型需要同時向背景和前景兩個方向優化,而背景占總損失的大部分,造成模型注意力分散,所有類別前景的識別精度決定總體的分割準度率,為此,將冪次方損失函數中的背景損失部分移除,使冪次方損失函數更專注于前景,減少背景部分的干擾,新的冪次方損失函數公式如下。
Pk=1-p+μy=1
(7)
(8)
目前,船舶機艙火災圖像數據收集還存在一定的難度,為此,通過使用相機在陸上機艙多方位多角度拍攝獲取火災數據集,并且覆蓋機艙中的各個角落。所收集到不同場景的部分數據見圖5。將收集到的機艙火災數據集經過整理篩選后得到2 132張圖像,并使用labelme中的Polygon工具對火焰和煙霧進行手動精細化標注,按照8∶1∶1的比例進行劃分為訓練集、驗證集和測試集。

圖5 部分火災數據
模型訓練及測試均采用tensorflow2.5深度學習框架,Windows10的64位操作系統,cuda11.1和python3.8實驗環境,中央CPU處理器為Intel core i5-10400F,GPU為NVIDIA GeForce RTX 3060。在訓練過程中,使用Adam優化器,初始學習率為0.0001并采用階層性下降學習率方法,連續3個epochs驗證集損失值不下降后將學習率乘0.5,batchsize為2,每輪次設置60個epochs進行訓練。
為確定冪次方損失函數最佳參數取值,選取2例進行分析,由圖4可知,當β=0.2和γ=4以及β=0.05和γ=5時,冪次方損失函數曲線的梯度都與Focal loss極為相似,為獲得效果最佳的μ取值,設置不同的μ值進行冪次方損失函數對比實驗,采用的評價指標為mIoU(平均交并比),見表1。

表1 冪次方損失函數不同參數分割性能
從表1中可以看出,當β=0.2,γ=4時,μ大于或者小于0.63,冪次方損失函數的分割性能均下降,μ=0.63時,冪次方損失函數的性能最佳;當β=0.05,γ=5時,μ大于或者小于0.93,冪次方損失函數的分割性能均下降,μ=0.93時,冪次方損失函數的性能最佳;并且在冪次方損失函數中β=0.2、γ=4和μ=0.63比β=0.05、γ=5和μ=0.93的分割性能更好。
為了評估新的冪次方損失函數的性能,將冪次方損失函數與多種主流損失函數進行對比,見表2。冪次方損失函數均優于Dice Loss、Tversky Loss、Focal Loss和MSE Loss損失函數,且均有不同程度的性能提升。

表2 與主流損失函數對比
為了充分驗證改進后的DeepLabv3+模型在船舶機艙火災中的分割性能,將改進后的Deep Labv3+網絡與主流語義分割網絡PSPNet[11]、SegNet[12]和DeepLabv3+進行對比,以下模型采用Focal loss損失函數中的參數為αt=0.25,γ=2,冪次方損失函數中的參數為β=0.2,γ=4,μ=0.63。由表3可見:改進后的DeepLabv3+網絡相比于原始的DeepLabv3+網絡提升了3.5%,并且改進后的DeepLabv3+網絡比原始網絡的參數量更少,該方法可有效減少模型在上采樣過程中細節信息丟失;在此基礎上,替換掉Focal Loss損失函數,新的冪次方損失函數相比于Focal Loss損失函數提升了1.79%,新的損失函數能更為靈活的調節損失函數整體的梯度,提升整體的分割精度;此外,通過加入New xception block,使改進后的DeepLabv3+模型mIoU達到了82.51%。在DeepLabv3+基礎模型上,通過一系列改進使得改進后的DeepLabv3+模型相比于原始的DeepLabv3+模型提升了6.26%,并且改進后的DeepLabv3+網絡均優于其他同類型主流網絡。

表3 與主流模型對比
改進后的DeepLabv3+算法與改進前在測試集上的部分可視化效果見圖6。
從圖6中可以看出,在第1和第6行圖像的矩形框中的DeepLabv3+算法的煙霧分割結果與真實值誤差較大,改進后的DeepLabv3+模型能夠更好地學習稀薄煙霧像素間的關聯性,具備更強的分割稀薄煙霧像素的能力;在第2和3行的三角框中的DeepLabv3+算法對于較遠的火焰識別能力不足,而本文算法對于較遠的火焰仍然具有較強的識別能力;在第2、3、4和7行中的圓形框中的DeepLabv3+算法將部分散落非煙霧像素誤判為煙霧像素,對于煙霧邊緣分割不完整;在第6和第7行圖像中人員走動存在遮檔,只有部分特征的情況下本文算法依然能較為準確識別,說明本文算法具有較好的魯棒性;總體上看,改進后的DeepLabv3+模型比原始DeepLabv3+模型的分割效果更為平滑和準確。
基于船舶機艙火災識別需求,在原始DeepLabv3+模型基礎上進行了模型改進和損失函數設計,提升了模型對小火焰及稀薄煙霧的分割性能,且在人遮檔部分火災特征的識別結果顯示出該算法具有較強的魯棒性。現實中船舶機艙火災場景較為復雜,船舶硬件計算資源有限,該算法模型參數量較大,實際應用成本較高,不利于實際工程應用。船舶機艙火災檢測算法仍有較大的提升空間,對于如何提升算法的分割精度和時間復雜度,以及減少模型參數量,將成為日后主要的研究方向。