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