馬振偉, 何高奇,2, 袁玉波
(1. 華東理工大學信息科學與工程學院,上海 200237;2. 華東師范大學計算機科學與軟件工程學院,上海 200062)
化學實驗室的安全管理一直是廣大科研機構(gòu)關(guān)注的重點難題。近年來發(fā)生的一些安全事故的主要原因之一是實驗室人員離開實驗室或者下班后未關(guān)閉通風柜櫥窗,導致一些長時間加熱的設(shè)備過熱,進而造成火災(zāi)事故,輕則造成設(shè)備、財產(chǎn)的損失,重則導致人員的傷亡[1]。同時由于通風柜櫥窗內(nèi)通風排風系統(tǒng)均按照通風分壓傳感器進行設(shè)備的開啟和關(guān)閉,櫥窗不按照規(guī)定關(guān)閉也造成了大量的能源浪費。因此,對于通風柜櫥窗的安全管理是實驗室安全的重要一環(huán),準確地識別通風柜櫥窗的開閉狀態(tài),能夠有效杜絕火災(zāi)等事故發(fā)生并減少能源浪費。
目前對通風柜櫥窗狀態(tài)識別的研究較少,較為相關(guān)的研究是關(guān)于門窗狀態(tài)的檢測,主要是通過檢測傳感器及各類電子控制系統(tǒng)來進行。文獻[2]提出了一種用于檢測汽車車窗開閉的系統(tǒng),通過可編程邏輯單元以及RS232 通訊接口對車窗開閉狀態(tài)進行檢測。文獻[3]設(shè)計了一種家用門窗自動開關(guān)控制系統(tǒng),利用CAN 總線作為通信總線與PC 機進行門窗開關(guān)狀態(tài)信息的傳遞。該類方法雖然識別準確率較高,技術(shù)較為成熟,但不適用于通風柜櫥窗安全管理,主要有以下兩方面的原因:(1)需要對現(xiàn)有通風柜櫥窗進行改造來安裝上述電子控制系統(tǒng),安裝難度較高[4],并且化學實驗設(shè)備有安全要求,肆意改造會造成潛在的安全風險。(2)無效識別次數(shù)過多。使用電子控制系統(tǒng)雖然能夠識別櫥窗狀態(tài),但當實驗人員在場時都是無效識別,故需要增加額外的人員檢測傳感器等,使問題復(fù)雜化。
隨著人工智能的快速發(fā)展,將計算機視覺技術(shù)用于多種目標的開閉識別已成為可能。文獻[5]提出了基于圖像處理的電氣控制柜開關(guān)識別系統(tǒng),對電氣柜圖像采用陰影去除、二值化等預(yù)處理方法結(jié)合方向灰度特征進行開關(guān)狀態(tài)識別。文獻[4]設(shè)計了基于視覺的電梯轎廂門狀態(tài)識別系統(tǒng),在嵌入式Linux 系統(tǒng)上實現(xiàn)圖像采集、圖像預(yù)處理,采用基于Hough 線變換算法來實現(xiàn)開關(guān)門狀態(tài)監(jiān)測。與電子控制系統(tǒng)相比,基于計算機視覺的櫥窗開閉識別具有3 個方面的優(yōu)勢:(1)非接觸性。無需改造現(xiàn)有通風柜櫥窗,因此不會產(chǎn)生櫥窗自身的安全隱患。(2)擴展性強。支持通過不同算法實現(xiàn)通風柜櫥窗狀態(tài)識別和人員檢測,無需裝配新的傳感器硬件,并且方便擴充新功能。(3)可追溯性。通風柜櫥窗如未關(guān)閉,可以通過截圖保存實時狀態(tài),作為事故追責的有力證據(jù)。此外,由于視頻監(jiān)控設(shè)備的普及,利用實驗室現(xiàn)有的監(jiān)控設(shè)備,可以進一步降低經(jīng)濟成本,避免重復(fù)投資。然而,由于通風柜櫥窗中實驗設(shè)備類別較多,因此很難設(shè)計出類似文獻[4]的有效人工特征。
卷積神經(jīng)網(wǎng)絡(luò)能夠自動從大量數(shù)據(jù)中學習到有用的特征表示,有效地解決了傳統(tǒng)方法的弊端,但該方法需要大量的圖像及對應(yīng)的標注。與通用目標識別數(shù)據(jù)集如ImageNet[6]的目標類別(人,動物,車等)不同,通風柜櫥窗一般存在于大學及研究機構(gòu),并且一個機構(gòu)中的櫥窗數(shù)量有限,若構(gòu)建一個有1 萬張圖像以上規(guī)模的通風柜櫥窗數(shù)據(jù)集需耗費大量人力。因此,本文針對現(xiàn)有電子控制系統(tǒng)改造成本高、櫥窗特征難以提取和櫥窗數(shù)據(jù)樣本量少等問題,提出了一種基于小樣本學習的通風柜櫥窗狀態(tài)識別方法。利用視覺運動特征提取櫥窗區(qū)域,然后訓練改進的多尺度空洞原型網(wǎng)絡(luò),用于通風柜櫥窗狀態(tài)的準確識別。同時,設(shè)計了櫥窗狀態(tài)識別的平臺架構(gòu),在中科院上海有機所進行了應(yīng)用部署與識別優(yōu)化。
自2012 年AlexNet[7]在ImageNet 數(shù)據(jù)集中取得巨大成功后,卷積神經(jīng)網(wǎng)絡(luò)獲得了廣泛的關(guān)注。文獻[8]探索了卷積神經(jīng)網(wǎng)絡(luò)中深度和性能之間的關(guān)系,通過反復(fù)堆疊3×3 小型卷積核來獲得增大的感受野,構(gòu)建了16 層用于分類的VGGNet。文獻[9]基于稀疏結(jié)構(gòu)提出了InceptionNet,利用1×1卷積核自然地將同一個空間位置中相關(guān)性很高的特征結(jié)合起來,并通過22 層的深度超越了VGGNet。文獻[10]提出了152 層深的ResNet,采用跳躍連接構(gòu)建了殘差塊,解決了層數(shù)過深導致的梯度消失問題。
卷積神經(jīng)網(wǎng)絡(luò)除了在網(wǎng)絡(luò)層數(shù)上的改進之外,研究者對于卷積運算也進行了多種改進以適應(yīng)不同的任務(wù)。文獻[11]提出了轉(zhuǎn)置卷積運算,將傳統(tǒng)卷積進行轉(zhuǎn)置得到了可用于上采樣運算的卷積核,取代了傳統(tǒng)上采樣中使用的插值方法,能很好地運用于場景分割、生成模型等領(lǐng)域。文獻[12]提出了一種基于深度可分卷積的MobileNet,通過將傳統(tǒng)卷積分解為深度卷積和1×1 卷積的方式,大幅降低了卷積模型中的參數(shù)量和計算量,在不降低模型性能的前提下實現(xiàn)效率提升。文獻[13]提出了一種用于圖像分割的空洞卷積網(wǎng)絡(luò),相對于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)對圖像進行先卷積后池化所導致的信息損失問題,空洞卷積通過對卷積核進行擴張,在增大感受野的同時保證了信息的完整性,提取出的特征更為魯棒。
深度學習的成功很大程度上歸功于大量有標簽的數(shù)據(jù)集。然而許多實際任務(wù)中,可用的標簽樣本數(shù)量有限,因而研究者們利用小規(guī)模的樣本數(shù)量開展目標任務(wù)的深度學習。樣本數(shù)量的規(guī)模與任務(wù)相對應(yīng),一般在10~102數(shù)量級。
文獻[14]提出了一種用于小樣本學習的孿生網(wǎng)絡(luò),通過組合方式構(gòu)造不同的成對樣本對孿生網(wǎng)絡(luò)進行訓練,在最上層通過樣本對的距離判斷它們是否屬于同一個類,并產(chǎn)生對應(yīng)的概率分布。相比孿生網(wǎng)絡(luò),文獻[15]提出了一個新的匹配網(wǎng)絡(luò),為支持集和查詢集構(gòu)建了不同的編碼器,最終分類器的輸出是支持集和查詢集之間預(yù)測值的加權(quán)求和。該方法在匹配網(wǎng)絡(luò)建模過程中使用了記憶和注意力機制,使模型的訓練速度加快,并且符合傳統(tǒng)機器學習中訓練和測試過程一致的原則。匹配網(wǎng)絡(luò)在框架設(shè)計以及速度上優(yōu)于孿生網(wǎng)絡(luò),并取得了更高的準確率。文獻[16]對匹配網(wǎng)絡(luò)進行改進,提出了原型網(wǎng)絡(luò),其核心在于計算支持集在嵌入空間中的原型,然后通過度量測試圖像到原型的距離來進行分類。原型網(wǎng)絡(luò)選用歐式距離來代替匹配網(wǎng)絡(luò)中的余弦距離,取得了顯著優(yōu)于匹配網(wǎng)絡(luò)的實驗結(jié)果。
通風柜櫥窗狀態(tài)識別的任務(wù)定義如下:對于每一間實驗室,若有實驗人員在場則不需要對櫥窗的開閉狀態(tài)進行識別;若實驗人員離開超過t 分鐘,則對該實驗室中的第 1 ,2,···,n 個通風柜櫥窗的狀態(tài)進行識別,對未按規(guī)定關(guān)閉到位的櫥窗進行拍照存檔及通知警報。
通常一個研究機構(gòu)里有許多實驗室,并且已經(jīng)部署了許多視頻監(jiān)控設(shè)備??紤]到監(jiān)控設(shè)備的可重用性以及降低監(jiān)控設(shè)備硬件上構(gòu)建的復(fù)雜性,本文將通風柜櫥窗安全管理系統(tǒng)構(gòu)建在云平臺上,監(jiān)控端只需發(fā)送抓取的畫面到云平臺上即可進行識別。采用這樣的架構(gòu)可以方便地適配各類已安裝的監(jiān)控設(shè)備,大大提升了本文方案的普及能力。
本文設(shè)計的通風柜櫥窗狀態(tài)識別平臺系統(tǒng)架構(gòu)如圖1 所示。平臺分為監(jiān)控端和服務(wù)端兩部分,監(jiān)控端的功能是將實時視頻流發(fā)送到服務(wù)端;服務(wù)端包括配置階段和識別階段,并根據(jù)所處階段執(zhí)行不同的功能。
實驗室監(jiān)控設(shè)備抓取的圖像通常不僅包括通風柜櫥窗區(qū)域,還包括實驗臺、實驗器材等無關(guān)區(qū)域。這些無關(guān)區(qū)域會增加輸入數(shù)據(jù)的噪聲,影響最終櫥窗狀態(tài)識別的準確率。因此,配置階段需要對實驗室中每個需要進行狀態(tài)識別的櫥窗位置進行提取,為避免人工定位帶來的錯誤與不便,本文利用運動特征與幾何先驗知識進行實驗室通風柜櫥窗區(qū)域的提取。
在識別階段,首先通過改進的人員檢測方法判斷實驗室中是否有人,有人員時無需進行櫥窗狀態(tài)識別,無人員時通過小樣本深度學習方法對通風柜櫥窗的狀態(tài)進行識別,進而判斷是否需要拍照存檔并發(fā)出警報,該策略可以大大減少識別算法的運行次數(shù),提高服務(wù)端的利用率。
Yolov3[19]是一種先進的實時目標檢測方法,但依然存在漏檢和誤檢情況。本文利用高斯混合前景模型對其進行改進以適用于實驗室環(huán)境。
首先,通過高斯混合模型對場景進行前景建模。設(shè){I1,I2,…,It}為任意一個像素點{x,y}從1 時刻到t 時刻的灰度值,則t 時刻像素{x,y}屬于背景的概率如下:
圖1 通風柜櫥窗安全管理平臺系統(tǒng)架構(gòu)Fig. 1 System architecture of fume hood safety management platform
在小樣本學習的過程中,首先需要將一幅W×H×C 維的櫥窗圖像轉(zhuǎn)換為一個M 維的特征表示,然后才能計算每種狀態(tài)的原型,因此,轉(zhuǎn)換模型結(jié)構(gòu)的好壞直接影響到最終的預(yù)測效果。相比于直接使用多個全連接層對圖像進行特征轉(zhuǎn)換,原型網(wǎng)絡(luò)使用了全卷積的方式,利用卷積層的權(quán)重共享特性大幅減少參數(shù)量,加快了檢測速度。然而,原型網(wǎng)絡(luò)是基于手寫字符數(shù)據(jù)集提出的網(wǎng)絡(luò)模型,手寫字符的尺度相對較小,一般在28×28 像素左右,而櫥窗的尺寸在全高清(1 920×1 080)分辨率下約為400×300 像素。因此,需要對網(wǎng)絡(luò)結(jié)構(gòu)進行改進以提取出較大尺度圖像的特征表示。本文利用空洞卷積(Dilated Convolution)[13]來改進傳統(tǒng)的卷積方式,能夠有效地擴大對圖像的感受野,提取更為全局的特征,二維空洞卷積的公式定義如下:
其中:x(m,n)是輸入張量;w(i,j)是一個M×N 的過濾器;y(m,n)是經(jīng)過空洞卷積后得到的張量;參數(shù)r 表示空洞率,其值越大,對圖像的感受野越大。
本文利用InceptionNet 的思想改進ProtoNet,提出了多尺度空洞卷積的原型網(wǎng)絡(luò)(DProtoNet),通過設(shè)置不同的空洞率來得到多尺度的感受野,進一步提高特征的魯棒性。圖2 所示為DProtoNet 的網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)前4 層是Inception 層,每層包括3 個不同空洞率的空洞卷積并進行深度連接,后3 層為卷積層。在網(wǎng)絡(luò)的每一層后,依次進行批標準化、Relu 非線性激活和步長為2×2 的最大池化。網(wǎng)絡(luò)中的所有卷積核尺寸均為3×3,圖像輸入尺寸為128×128×3,使用隨機梯度下降(SGD)作為訓練時的優(yōu)化算法。
實 驗 的 硬 件 環(huán) 境 為Dell T7810,Intel Xeon E5-2630 V4 2.20 GHz,32 GB RAM,顯卡為NVIDIA Quadro M4000。實驗代碼基于Python 3.6 實現(xiàn),小樣本學習DProtoNet 及對比的卷積神經(jīng)網(wǎng)絡(luò)采用開源深度學習框架Pytorch 實現(xiàn),對比的機器學習方法采用開源庫opencv 與sklearn 實現(xiàn),使用集成開發(fā)環(huán)境Spyder進行編碼測試。
本文收集并構(gòu)建了一個包含300 張櫥窗圖像的數(shù)據(jù)集且進行了標注。其中櫥窗圖像采用2.1 節(jié)中的櫥窗區(qū)域方法從監(jiān)控圖像中進行定位裁剪得到。狀態(tài)為開的圖像共147 張,狀態(tài)為關(guān)的圖像共153 張。利用水平和垂直翻折對數(shù)據(jù)集進行增強,將原始數(shù)據(jù)集擴充為原來的4 倍,使用留出法進行交叉驗證,隨機提取其中的960 個樣本作為訓練集,剩余的240 個樣本作為測試集。
實驗采用分類準確率Accuracy=n'/n 來衡量算法的性能,并將本文方法與多種識別分類算法進行比較。其中,n'為測試集中預(yù)測結(jié)果與真實結(jié)果一致的樣本個數(shù),n 為測試集的樣本總個數(shù)。分類準確率越高,則算法的性能越好。
為了證明本文算法的有效性,分別與支持向量機(SVM)、隨機森林(Random Forest )和卷積神經(jīng)網(wǎng)絡(luò)(CNN)的識別結(jié)果進行了比較。由于機器學習算法的性能與特征提取的好壞有很大的關(guān)聯(lián),因此從紋理、降維、顏色、形狀等方面選取了局部二值模式(LBP)、主成分分析(PCA)、顏色直方圖(ColorHist)、方向梯度直方圖(HOG)作為分類特征進行實驗。實驗結(jié)果如表1 所示,本文提出的DProtoNet 算法通過對訓練數(shù)據(jù)的多輪學習準確率可以達到99.29%,比傳統(tǒng)方法中效果最好的HOG 結(jié)合Random Forest 的準確率提高了17.17%,說明通過深度網(wǎng)絡(luò)學習得到的特征,其魯棒性要優(yōu)于傳統(tǒng)人工設(shè)計的特征;比直接使用卷積神經(jīng)網(wǎng)絡(luò)的準確率提高了10.95%,說明基于小樣本的深度網(wǎng)絡(luò)學習方式效果顯著,適用于本文樣本量不足的應(yīng)用場景;比原始的ProtoNet 提高了1.97%,說明多尺度空洞卷積的使用能夠提取到不同感受野組成更為魯棒的特征,取得了更好的實驗效果。
圖2 多尺度空洞原型網(wǎng)絡(luò)架構(gòu)Fig. 2 System framework of DProtoNet
表1 不同方法的準確率對比Table 1 Accuracy of different methods
圖3 展示了一些實例樣本,包括櫥窗不同程度的開、閉情況,以及算法的預(yù)測結(jié)果。針對前8 個實例,本文方法能夠準確識別櫥窗的開關(guān)狀態(tài)識別。在櫥窗內(nèi)化學品種類密集、櫥窗邊緣干擾以及櫥窗部分被遮擋情況下,本文方法依然給出了正確的結(jié)果,魯棒性很高。然而本文方法在某些邊界條件下會出現(xiàn)誤判,如圖3 中的實例9。在該實例中,櫥窗未關(guān)閉完全,但出現(xiàn)了關(guān)閉狀態(tài)下的特征域,因此算法基于學習的信息判斷櫥窗狀態(tài)為關(guān)閉,導致了誤判,但是,在數(shù)據(jù)集以及實際使用過程中,這種情況發(fā)生的概率很低,不影響系統(tǒng)的實際應(yīng)用效果。
在實際應(yīng)用中,光照變化是影響圖像算法性能的一個重要因素,為了實現(xiàn)全天候的化學實驗櫥窗安全管理,需要對不同光照條件下的櫥窗圖像進行實驗。由于采集條件的限制,實驗通過對比度變換(H,S,V)=(H,SRandom(β,γ),VRandom(β,γ))來 改 變 圖 像 的 光 照 情況。先將數(shù)據(jù)集中圖像的顏色空間從RGB 轉(zhuǎn)換到HSV,然后對飽和度S 和亮度V 通道進行指數(shù)運算,指數(shù)因子(β,γ)為對比度變化范圍,Random 函數(shù)表示隨機選取范圍中的一個浮點數(shù)。實驗中,設(shè)β=0.25,γ=4.0。圖4 展示了不同指數(shù)因子α 下的櫥窗圖像,可以發(fā)現(xiàn),使用該指數(shù)因子范圍可以覆蓋不同時段的櫥窗光照狀態(tài)。
實驗結(jié)果如表2 所示。本文提出的DProtoNet方法在不同光照條件下取得了95.74%的準確率,比傳統(tǒng)方法中效果最好的HOG 結(jié)合Random Forest 的準確率提高了23.18%;比直接使用卷積神經(jīng)網(wǎng)絡(luò)的準確率提高了18.49%,比原始的ProtoNet 提高了1.31%。此外,對比同一種方法在表1 和表2 中的準確率,發(fā)現(xiàn)本文算法的準確率變化為3.55%,低于HOG 集合Random forest 的9.56%和卷積神經(jīng)網(wǎng)絡(luò)的11.09%。
圖3 樣本實例預(yù)測結(jié)果展示Fig. 3 Demonstration of sample prediction results
此外,針對本文提出的多尺度空洞網(wǎng)絡(luò),進行了消融實驗,采用4 種不同的空洞率組合來驗證多尺度空洞率的有效性,結(jié)果如表3 所示。從結(jié)果中可以看到,多尺度空洞率有效地提高了準確率,但是使用過多的尺度組合的提升效果有限,并且會增加網(wǎng)絡(luò)參數(shù)數(shù)量,增加識別時間,因此最終選擇1、2、3 的空洞率組合作為實際應(yīng)用。
圖4 不同指數(shù)因子的光照變換Fig. 4 Illumination transformation with different factors
表2 光照變化下的準確率對比Table 2 Accuracy under illumination changes
表3 不同空洞率組合下的準確率Table 3 Accuracy under different dilation rate combination
本文針對通風柜櫥窗安全管理問題,提出了基于小樣本深度學習的櫥窗狀態(tài)識別方法。利用運動特征及幾何先驗提出了櫥窗區(qū)域提取算法,避免了無關(guān)因素對櫥窗狀態(tài)識別的影響。利用改進的目標檢測算法來確定實驗室內(nèi)是否有人,減少了無效的櫥窗識別次數(shù)。本文提出的多尺度空洞原型網(wǎng)絡(luò)(DProtoNet)充分利用了空洞卷積及小樣本學習的優(yōu)勢,能夠?qū)τ邢薜臋淮皥D像數(shù)據(jù)進行有效學習。實驗結(jié)果表明:本文算法不僅在正常條件下準確率明顯高于傳統(tǒng)方法及卷積神經(jīng)網(wǎng)絡(luò),在光照變化條件下也可以取得較高的準確率。下一步工作將嘗試引入更多的干擾因素,進一步提高模型的魯棒性。