李偉達, 葉靚玲, 鄭力新,朱建清, 曾遠躍, 林俊杰
(1. 華僑大學 工學院, 福建 泉州 362021;2. 華僑大學 工業(yè)智能化與系統(tǒng)福建省高校工程研究中心, 福建 泉州 362021;3. 福建省特種設備檢驗研究院 泉州分院, 福建 泉州 362021)
近年來,因為扶梯行人摔倒、頭部探出扶手帶、扶梯上逆行、攜帶寵物或嬰兒車等不安全行為而引發(fā)的安全事故層出不窮,造成了大量的人員傷亡和經濟糾紛案件.然而,傳統(tǒng)的視頻監(jiān)控系統(tǒng)僅提供視頻的獲取、存儲和回放等簡單功能,只能依靠監(jiān)控人員時刻監(jiān)看視頻來預防此類事故的發(fā)生.但是監(jiān)控人員容易疲憊,尤其在面對多路監(jiān)控時,往往目不暇接,很難及時對乘客的不安全行為做出反應.因此,迫切需要設計一套扶梯不安全行為檢測算法,來輔助監(jiān)控人員的工作.
目前,國內外在異常事件檢測方面的研究已經取得一定的進展.楊冠寶等[1]提出了基于全景視覺的自動扶梯節(jié)能及智能監(jiān)控系統(tǒng),使用基于混合高斯背景差分的方向梯度直方圖(histogram of oriented gradient,HOG)特征匹配算法,對逆行、越界、意外摔倒等異常行為進行自動識別.管業(yè)鵬等[22]基于動態(tài)粒子流場,將視頻運動對象的運動行為映射為有效反映其運動變化狀態(tài)的動態(tài)粒子流,從而進行異常行為的分類與識別.Fust[2]提出基于主題隱馬爾可夫模型的實時檢測異常行為方法,但該方法不能進行異常行為的分類.田聯(lián)房等[3]提出了基于人體骨架序列的手扶電梯乘客異常行為識別方法,基于支持向量機 (SVM) 人臉分類器對異常行為進行判別.吉訓生等[4]提出了基于深度神經網絡的扶梯異常行為檢測,改進Tiny-YOLOv3模型用于扶梯異常行為的判別,能夠滿足實時性要求.目前,我國多數(shù)場所配備給監(jiān)控系統(tǒng)的電腦配置較低,不具備圖形處理器(GPU),且中央處理器(CPU)的性能較差.由于現(xiàn)有高精度的目標檢測算法所需參數(shù)量和計算量普遍較大,導致算法的推廣成本較高.因此,保持高檢測精度的情況下,降低檢測算法所需的參數(shù)量和計算量進而降低推廣成本,是解決扶梯不安全行為檢測算法實用化的一個方向.
目標檢測領域當下流行的算法可以分為兩類,一類是以YOLO(you only look once)算法[5-8]、SSD(single shot multibox detector)算法[9]等為代表的基于回歸的一階檢測算法,另一類是基于候選區(qū)域以RCNN(regions with convolutional neural network features)系列算法[10]為代表的二階檢測算法.一般來說前者的檢測速度更快,但檢測精度相對較低.2020年,由Ultralytics公司LLC團隊開發(fā)的YOLOv5系列算法,整合了近年來卷積神經網絡領域優(yōu)秀的算法與模型,達到了較高的檢測精度和檢測速度.綜合考慮當前扶梯不安全行為檢測算法的不足和目標檢測算法的發(fā)展,以及受到田聯(lián)房等[3]、吉訓生等[4]的啟發(fā),本文提出基于深度神經網絡設計面向扶梯不安全行為的改進型深度學習檢測算法.
扶梯不安全行為檢測系統(tǒng)的檢測流程,如圖1所示.首先,將監(jiān)控攝像頭的實時視頻流推送到視頻引入模塊后,視頻流被解碼成圖像幀,送入訓練后的檢測模型進行檢測;然后,使用方框標出檢測到的不安全行為的類別和在圖片中的位置;最后,將檢測后生成的圖像再編碼成視頻流,推入WEB播放器中播放.在整個流程中,核心模塊就是檢測模型,它決定了檢測系統(tǒng)對扶梯不安全行為的識別能力并消耗了絕大部分的計算資源.因此,改進模型的檢測精度、降低其所需的參數(shù)量和計算量是提高檢測系統(tǒng)性能的關鍵.
圖1 檢測流程Fig.1 Inspection process
YOLOv5s網絡結構延續(xù)了之前YOLOv3的特點,可分為輸入端、主干網絡、頸部網絡、預測頭等4個模塊.輸入端主要是對數(shù)據(jù)進行預處理,采用Mosaic技術進行數(shù)據(jù)增廣,將輸入的隨機4張圖片通過隨機縮放、隨機裁剪、隨機排布的方式進行拼接,從而提高模型的泛化能力.主干網絡采用Focus結構和CSP結構[11]用以提取輸入圖像的特征.頸部網絡在特征金字塔FPN[12]的基礎上,引入了空間聚合網絡PANet[13]和空間金字塔池SPP[14],用來對主干網絡所提取的特征進行特征融合等再加工操作,其在整個模型中起承上啟下的作用.預測頭模塊采用GIOU_Loss損失函數(shù),通過從頸部網絡接收的3個尺度的特征信息對目標類別和位置進行預測.
圖2 CBAM模塊原理圖Fig.2 CBAM module schematic diagram
扶梯不安全行為檢測算法的檢測對象是扶梯上的乘客,扶梯以外的背景信息對不安全行為檢測沒有幫助.根據(jù)這一特點,引入注意力機制CBAM模塊[15]來強調扶梯上的信息而抑制背景信息.注意力機制是一種數(shù)據(jù)處理方法,其作用在于使神經網絡能夠將注意力集中在圖片或文字序列中需要關注的地方.具體操作是對神經網絡提取的特征信息生成一個掩碼,對任務需要關注的點進行評價打分,通過評分進行強調或抑制信息的操作.注意力機制可以分為通道注意力機制和空間注意力機制,它們分別將通道信息和空間信息作為評價對象.引入的CBAM模塊依次應用了通道和空間注意力機制,對輸入的特征信息從通道和空間兩個方面進行評價,通過強調扶梯上的信息和抑制背景信息,提高模型對扶梯不安全行為的識別能力.CBAM模塊的原理圖,如圖2所示.
根據(jù)YOLOv5s網絡的結構特點,在主干網絡末端和頸部網絡送入預測頭模塊的3個尺度特征加工模塊后面分別嵌入1個CBAM模塊,總計使用4個注意力機制CBAM模塊,從而改進模型針對扶梯不安全行為檢測任務的識別能力.所嵌入的CBAM模塊的結構,如圖3所示.引入多個CBAM模塊的YOLOv5s模型稱為YOLOv5s-4CBAM.
(a) CBAM模塊 (b) 通道注意力模塊 (c) 空間注意力模塊圖3 CBAM模塊結構圖Fig.3 CBAM module structure diagram
YOLOv5s網絡使用了大量的卷積Conv模塊和BottleneckCSP模塊來進行輸入圖像的特征提取、特征融合等操作,消耗了大部分的參數(shù)量和計算量,其結構如圖4所示.
(a) BottleneckCSP模塊 (b) Conv模塊 (c) Bottleneck模塊圖4 BottleneckCSP模塊結構圖Fig.4 BottleneckCSP module structure diagram
為了使檢測模型輕量化,基于Ghost模塊[16]重構了這兩個卷積模塊.Ghost模塊與剪枝[17]、量化[18]、緊湊的模型設計主流的減少神經網絡消耗方法不同,通過采用傳統(tǒng)卷積生成少量的本征特征圖;然后,利用廉價的線性運算去擴充特征和增加通道的方式,在影響檢測精度極小的情況下,大幅降低檢測所需參數(shù)量和計算量.Ghost原理示意圖,如圖5所示.
(a) 傳統(tǒng)卷積 (b) Ghost卷積 圖5 Ghost原理示意圖Fig.5 Schematic diagram of Ghost principle
從圖5(a)可知:對于傳統(tǒng)卷積神經網絡,給定一個輸入X∈Rc×h×w,其中h和w分別為輸入數(shù)據(jù)的高和寬,c為輸入數(shù)據(jù)的通道數(shù).使用一個具有n個大小為k×k卷積核的卷積層f跟輸入X進行卷積操作,則其特征圖的計算公式是Y=X*f+b,其中b為偏置項.為簡化計算,假設輸入與輸出的尺度大小完全相同,并忽略掉偏置項.根據(jù)以上條件,可以算出傳統(tǒng)卷積操作的計算量為n×c×h×w×k×k,其中,因為卷積核個數(shù)n和通道數(shù)c在YOLOv5s網絡中經常是512和1 024級別,這就導致一個卷積層的計算量非常大.
在傳統(tǒng)卷積生成的特征圖中,有很大一部分是相似的,即存在冗余問題.Ghost模塊將相似的特征圖當成一些少數(shù)的傳統(tǒng)卷積生成的本征特征圖的“偽影”.從圖5(b)可知:Ghost卷積模塊使用傳統(tǒng)卷積生成一部分本征特征圖,然后將其放入不帶激活函數(shù)的線性卷積層中,通過線性變換的方式來得到它們的“偽影”;最后將這兩部分特征圖進行拼接,從而減少了卷積消耗的參數(shù)量和計算量.于是同上,給定一個相同的輸入數(shù)據(jù)X∈Rc×h×w,使用一個具有p個大小為k×k卷積核的卷積層f′ 跟輸入數(shù)據(jù)X進行卷積運算,得到輸出特征圖Y′=X*f′,其中p≤n.于是,為了獲得冗余的n-p個特征圖,利用卷積核大小為l×l的線性卷積層對這輸出的p個本征特征圖進行t-1次線性運算,其中t=n/p,而減掉的“1”即為圖5b中相同特征的部分.最終將本征特征圖與其線性運算生成的冗余特征圖拼接成n個特征圖.其線性操作可以表示為
(1)
Y=[y1,y2,…,yn]=[y1,1,y1,2,…,y1,t,…,yp,1,…,yp,t].
(2)
根據(jù)式(1),(2),可以算出Ghost卷積跟傳統(tǒng)卷積之間的計算量之比rf和參數(shù)量之比rp為
(4)
式(3),(4)中的所有符號含義同上所述.
當t?c且l×l≤k×k時,可以將上述公式進一步地簡化為
(5)
由此可以發(fā)現(xiàn),使用Ghost模塊,其計算量和參數(shù)量與傳統(tǒng)卷積之比理想情況下約等于1/t.Ghost模塊通過線性運算Φ來替代部分傳統(tǒng)卷積操作,從而達到降低計算量和參數(shù)量的目的.
(a) GhostBottleneck模塊 (b) GhostConv模塊圖6 GhostBottleneck模塊結構圖Fig.6 GhostBottleneck module structure diagram
綜合考慮上述t的取值及YOLOv5s原有卷積模塊在各個網絡中的效果,將t的值設為2,即輸出特征圖的一半來自傳統(tǒng)卷積,另一半來自廉價的線性操作.將圖4所示的YOLOv5s中所有的Conv模塊和主干網絡中的BottleneckCSP模塊替換成GhostConv模塊和GhostBottleneck模塊(圖6),而對頸部網絡中的BottleneckCSP模塊維持不變.這樣,可在對算法檢測精度影響最小的同時,達到大幅降低檢測模型參數(shù)量和計算量的效果.
模型修改完成后,檢測模型的網絡結構圖如圖7所示.輸入圖像在輸入端進行數(shù)據(jù)增廣后,送入主干網絡提取特征;然后,在頸部網絡進行特征加工等操作,最后將3個不同尺度的特征信息送入預測頭模塊進行目標類別和位置的預測.
圖7 檢測模型的網絡結構Fig.7 Network structure of detection model
本次實驗的硬件配置為Inter Core i7-10700K處理器;NVIDIA GTX 2080Ti顯卡*1;操作系統(tǒng)為Ubuntu 18.04;軟件環(huán)境為CUDA Toolkit v10.2,Cudnn7.6.5;使用深度學習框架Pytorch1.7.0。
由于沒有現(xiàn)成公開的扶梯不安全行為數(shù)據(jù)集,因此自制了扶梯乘客的不安全行為實驗數(shù)據(jù)樣本集,包括扶梯行人跌倒、逆行、越界、攜帶寵物、攜帶嬰兒車共5種不安全行為.采集扶梯不安全行為數(shù)據(jù)的方式包括人員現(xiàn)場模擬及收集網絡數(shù)據(jù).采集的每種不安全行為數(shù)據(jù)各1 200張圖片,共6 000張圖片,使用LableImg軟件標注出圖像中不安全行為的類別及位置信息.最后通過加高斯噪聲、翻轉、平移等方法對數(shù)據(jù)集進行數(shù)據(jù)增廣,最終獲得24 000張圖片,每種扶梯行人不安全行為各4 800張.圖8為各類扶梯不安全行為示例.
(a) 逆行 (b) 跌倒 (c) 攜帶寵物 (d) 越界 (e) 攜帶嬰兒車圖8 各類扶梯不安全行為示例Fig.8 Examples of unsafe behaviors of various types of escalators
將融入CBAM模塊并替換Ghost卷積模塊的YOLOv5s-4CBAM-Ghost算法(文中所提算法)分別與YOLOv5s算法、融入多個注意力機制CBAM模塊的YOLOv5s-4CABM算法,以及目前的主流目標檢測算法如YOLOv5x算法、傳統(tǒng)的方向梯度直方圖(histogram of oriented gradient,HOG)算法[19]、神經網絡YOLOv3算法、Tiny-YOLOv3算法、FCOS算法[20]和RetinaNet算法[21]等進行對比,比較它們在扶梯不安全行為數(shù)據(jù)集上的表現(xiàn),結果如表1所示.其中:RetinaNet算法與FCOS算法的主干網絡均采用殘差網絡ResNet50;所有實驗模型的輸入圖片尺寸均為640 px×640 px;評價指標為在CPU環(huán)境下推理1張輸入圖片所需浮點型運算量(FLOPs)、參數(shù)量、檢測時間(t),以及各類不安全行為的平均檢測精度(mAP).
表1 不同算法模型在扶梯不安全行為數(shù)據(jù)集上的表現(xiàn)對比Tab.1 Performance comparison of unstable escalator behavior data set in different algorithm models
為了降低推廣的成本,扶梯不安全行為檢測算法應適應沒有GPU加速的環(huán)境,在維持高檢測精度的條件下,盡可能減少參數(shù)量與計算量,同時檢測速度還要達到10 F·s-1以上.即檢測一張圖片的時間要小于100 ms,以滿足扶梯不安全行為檢測的實時性要求.YOLOv5s-4CBAM-Ghost模型部分識別效果,如圖9所示.
(a) 逆行1 (b) 跌倒1 (c) 攜帶寵物1 (d) 越界1 (e) 攜帶嬰兒車1
(f) 逆行2 (g) 跌倒2 (h) 攜帶寵物2 (i) 越界2 (j) 攜帶嬰兒車2
(k) 逆行3 (l) 跌倒3 (m) 攜帶寵物3 (n) 越界3 (o) 攜帶嬰兒車3圖9 YOLOv5s-4CBAM-Ghost模型識別效果Fig.9 YOLOv5s-4CBAM-Ghost model recognition effect
從表1可知:融入了4個CBAM模塊后,YOLOv5s-4CBAM模型雖然略微增加了計算量、參數(shù)量和檢測時間,但檢測精度比原有模型提高了1.5%.在使用Ghost卷積模塊重構主干網絡的卷積操作后,計算量相比原始YOLOv5s模型降低了44.7%,參數(shù)量降低了41.1%,檢測時間減少了0.8%,檢測精度仍比原模型提高了1.3%.即文中所提算法在各個指標上均有較大優(yōu)勢,檢測精度更高、檢測速度更快、所需的計算量和參數(shù)量更少.
從表1還可知:對比于YOLOv5系列模型中精度最高、消耗最大的YOLOv5x模型,其計算量是文中所提算法的23倍,但檢測精度仍略低于文中所提算法.將改進方法應到到YOLOv5x中,達到眾模型中檢測精度最優(yōu),但計算量仍較大,同時檢測時間過長.因此,不適合將其應用于扶梯不安全行為檢測這個任務上.
針對當下扶梯不安全行為檢測算法難以兼顧高檢測精度和低計算量要求的問題,提出一種面向扶梯不安全行為的改進型深度學習檢測算法.基于YOLOv5s檢測模型,融入多個注意力機制CBAM模塊,并利用Ghost卷積模塊重構模型主干網絡的卷積操作.
根據(jù)實驗結果可知,相較于原始YOLOv5s算法,文中所提算法的浮點型計算量減少44.7%,參數(shù)量減少41.1%,檢測精度提高1.3%,達到98.5%,在CPU環(huán)境下檢測速度仍能滿足實時性要求,從而降低了算法在資源有限的實際監(jiān)控系統(tǒng)上的部署成本,這說明文中所提算法具有較強競爭力.
然而,文中所提算法仍存在一部分進步空間.下一步的工作是,將聚焦兩個方向提高扶梯不安全檢測算法的性能.一是通過模型剪枝等模型壓縮方法,來嘗試進一步降低模型所需參數(shù)量和計算量;二是通過生成對抗網絡等數(shù)據(jù)增廣方法,來擴充數(shù)據(jù)集進而提高模型的泛化能力.