史夢安,陸振宇
(1.蘇州大學應用技術學院,江蘇蘇州 215325;2.南京信息工程大學人工智能學院,南京 210044;3.江蘇省大氣環境與裝備技術協同創新中心(南京信息工程大學),南京 210044)
(?通信作者電子郵箱mashi@suda.edu.cn)
在我國龐大的電力系統當中,存在大量的儀器設備需要人員進行定期的巡檢維護。但電站地處偏遠,因而可能長期處于無人值守的狀態。如果能夠借助于自動巡檢機器人和計算機視覺技術實現儀器的實時檢測,那么電力系統就能夠減少人力成本的投入,提升管理效率。
機器人操作系統(Robot Operating System,ROS)是開源的,被很多機器人項目所采用,其模塊式的設計使得用戶能夠根據自身的需求定制該系統。遵照ROS 定義的標準信息表達和通信機制,開發者的功能模塊能夠輕松地和ROS 進行無縫對接。由于ROS 能夠在C++和Python 環境中運行,因此將深度學習模型融合到機器人系統當中也非常方便。
近十年,深度學習在圖像處理的多個領域,如圖像分類、語義分割、目標識別等領域都取得了重大的突破。每一年都會有新的網絡結構在ImageNet、Pascal VOC、MS COCO 等大型數據集上取得突破。觀察這些模型的發展過程,可以發現模型的表現與模型的深度有著很大的關聯。從2012 年提出的VGG16[1]到2016 年的ResNet(Residual Network)[2],網絡模型的深度從當初的十幾層擴展到了一百多層。模型準確率提升和深度的拓展也意味著模型參數量的增加。對于移動設備而言,這些網絡的結構過于龐大,移動設備無法滿足其計算要求。因而,為了能夠在移動設備上使用神經網絡這一強大的技術,就需要在模型的結構上做出優化裁剪。為尋找到計算量和準確率之間的平衡點,很多研究者對較深的網絡模型在深度和寬度上進行裁剪來達到減少計算量的目的。如YOLO(You Only Look Once)系列[3-5]的輕量版本YOLO-tiny。而有些研究者則是對輕量級的模型加以特殊的結構設計,如MobileNet[6-7]、ShuffleNet[8]、RFB(Respective Field Block)[9]等,通過注入更多的先驗知識,使得輕量級模型也能取得較好的識別準確率。其中RFB 模塊的設計,融合了人眼感受野和視網膜折射率的關系函數這一先驗知識。RFB通過網絡結構模擬人眼的觀察事物的特征,提升模型的準確率。
由于RFB 的結構輕便、計算量小,能夠很方便地結合在其他識別模型的頂層,因而本文提出了一種基于輕量級神經網絡YOLO-tiny 和RFB 模塊的儀器狀態識別模塊,希望結合兩者,在小幅增加模型計算量的同時大幅提升模型的識別準確率。對于細粒度的旋鈕狀態分類,本文采用了MobileNet 為基礎模型實現旋鈕8 個狀態的判斷。針對旋鈕狀態分布的極度不均衡,本文還通過翻轉等數據增廣方式平衡各類別以抵消數據分布不均的影響。由于是電站巡檢任務,不同時刻統一表計的狀態追蹤非常重要。所提出的模塊還采用數據跨時間關聯機制,將不同時間點的數據聯合在一起。
本文的主要工作如下:
1)對YOLO-tiny 進行結構調整,融合YOLO-tiny 和RFB 提出了YOLO-tiny-RFB 模型。在保證模型輕量化的同時,大幅提升目標檢測的準確率。
2)設計了基于ROS 的儀器狀態識別系統,將目標檢測模型與分類模型嵌入到機器人操作系統(ROS)當中。作為機器人的儀器狀態識別模塊,其賦予機器人定點儀器的識別能力。
3)由于機器人巡檢過程中會對同一巡檢點進行多次監測,本文還提出了跨時間的目標檢測數據關聯機制。該機制能使同一監測點下不同時間點的識別結果有效地整合,從而賦予機器人儀器狀態追蹤的能力。
ROS是一個開源的、專為機器人開發、模塊化的分布式操作系統。其中模塊化的好處在于用戶可以自由地選擇裝載工具庫,亦或是手動實現功能。ROS 定義了一系列標準的機器人數據表述,如機器人的幾何關系轉換、位姿表示、傳感器數據表示、里程計等定位信息的表示。只要開發者通過標準的信息表述進行功能開發,就能與ROS生態進行無縫的對接。
ROS 底層提供了信息傳遞的接口,該接口會提供進程間的通信功能。通信功能包括:1)發布或訂閱匿名消息;2)記錄或回溯信息;3)請求響應、遠程調用;4)分布式參數系統。
除了進程間的通信功能,ROS 系統還提供了基礎的機器人工具庫,其包含有導航定位、機器人姿勢調整、機器人硬件信息診斷等。這些基礎功能使一個機器人快速地運作起來。
基于深度學習的目標檢測方法在實際中已經有了相當廣泛的應用,在行人[10]、車輛[11]、船舶[12]等各類目標的監測任務當中都有著良好的效果?;谏疃葘W習的目標檢測主要可以分成兩大類:1)多階段處理實現目標檢測;2)單模型實現目標檢測。
多階段的目標檢測算法有RCNN(Regions with Convolutional Neural Network features)[13]。首先通過Selective Search[14]算法,在輸入圖像內尋找所有可能包含物體的候選框。隨后,利用卷積神經網絡對各候選框內的物體進行特征提取。最后,基于各候選框內物體特征,使用分類器支持向量機(Support Vector Machine,SVM)進行框內物體類別的判斷。另外,該階段還會使用一個回歸模型對候選框的大小進行調節??梢园l現,RCNN 實現目標檢測主要分為3 個階段,其識別過程包含多個模型的協作。因而RCNN 不管是模型的訓練過程還是預測過程,都較為復雜。Fast RCNN[15]則將分類模型和回歸模型直接整合到了卷積神經網絡當中,大大地提升了模型的預測速度和檢測精度。Faster RCNN[16]則更進一步,提出了Region Proposal Network,以此來替換Selective Search 等檢測算法產生候選框,Faster RCNN 相較于Fast RCNN 在預測速度和精確度上進一步提升。
單模型實現目標檢測的模型有SSD(Single Shot multibox Detector)[17]、YOLO等。相較于多階段處理利用單獨的模型尋找候選框,YOLO 和SSD 都是端到端模型,即將一幅圖像輸入到模型,模型會直接輸出在圖像內識別到的物體的位置和該位置的物體類別。該類方法通過在特征圖上設置“錨”點,避免了使用單獨的模型或算法產生候選框的過程。“錨”即一系列設定好大小和長寬比的候選框。對于卷積神經網絡輸出的特征圖,模型會在特征圖的每一個像素位置都預設N個設定好的候選框(“錨”)。模型會根據輸入圖像的特征,對該特征點處是否包含物體進行判斷,并對包含物體的“錨”的大小進行調整。
端到端的模型依靠單一模型實現目標檢測,因而在計算復雜度上具有一定優勢,因此本文采用端到端的目標檢測模型完成嵌入式設備中的目標檢測任務。
本文所提出的儀器狀態識別模塊結構如圖1 所示。該模塊能夠對儀器狀態進行實時檢測,并整合同一檢測點K在不同時間點的識別結果。本章首先將對數據關聯機制作一個詳細地介紹,隨后對提出的目標檢測模型YOLO-tiny-RFB 的結構進行解釋。
巡檢機器人在日常巡檢中的某一段時間內的執行流程如下:某一時刻t,機器人執行巡檢任務依靠定位系統來到檢測點K前。機器人調用云臺相機對儀器柜內的儀器進行拍攝,得到圖像Gt。隨后,通過調用目標識別模型完成Gt內儀器狀態的識別,結果記作rt。下一時刻t+1,機器人執行下一次巡檢任務,再次來到檢測點K前,拍照后得到儀器圖像。同樣調用目標識別模型完成Gt+1內儀器狀態的識別,結果記作rt+1。

圖1 儀器狀態識別模塊結構Fig.1 Structure of instrument status recognition module
雖然是同一檢測點K,但由于機器人的定位并非百分之百精準,對于同一個面板,各時間點間拍攝到的圖像會存在位移和角度偏差。如圖像Gt和Gt+1,雖然拍攝的都是相同的一組儀器,但是各儀器在兩張圖像內的位置會存在偏差。因此識別結果rt和rt+1內所包含的相同儀器的坐標并不一致,就無法直接對儀器狀態的識別結果進行整合。將rt和rt+1內的識別結果關聯起來,對于儀器狀態的全局檢測非常重要。
為實現跨時間的監測數據關聯,首先,拍攝監測點K處的開關柜的標準圖像Gs并標注標準圖像Gs中的儀器位置;隨后,以標準圖像Gs為“錨點”,讓相同場景下,不同時間點拍攝的圖像Gt都和標準圖像Gs進行圖像配準;接著,對配準后的圖像進行目標識別;最后,讓識別結果和標注標準的儀器位置進行相似度的計算,使得識別結果都和標準圖像中的儀器關聯起來,從而對各時間點的數據完成整合。其過程如圖2所示。

圖2 跨時間檢測數據關聯流程Fig.2 Flowchart of detecting data association across time
識別前,為儀器面板K拍攝一幅標準的儀器面板圖Gs,并對Gs上所有的儀器位置進行標注,標注數據用矩陣A表示。A包含Gs上各儀器Ij的坐標,用(xj1,yj1,xj1,yj2)四個值表示。(xj1,yj1)為包含儀器的矩形框的左上角像素坐標,(xj2,yj2)為矩形框的右下角像素坐標。標準圖像Gs和標注信息A將分別存儲在圖像數據庫和儀器面板數據庫當中。
2.1.1 特征點提取
當前機器人巡檢拍攝的圖像記作Gs,將Gt和Gs進行圖像配準。首先,要在兩幅圖像中尋找相似的特征點。本文通過ORB(Oriented FAST and Rotated BRIEF)圖像特征檢測算法在兩幅圖像Gt和Gs中尋找特征點坐標向量,以及特征點的描述特征。
ORB 算法通過FAST(Features from Accelerated Segment Test)算法來尋找具有旋轉不變性的特征點。FAST算法假設,當一個像素與其周圍大部分的像素差別較大時,它應該是一個特征點。算法會比較中心像素與周邊像素的灰度值,當大部分周邊像素的灰度值和中心像素灰度值之差大于某一閾值時,該中心點就是一個候選特征點。由于只進行像素值的比較,FAST算法的計算效率很高。
隨后,ORB 用 BRIEF(Binary Robust Independent Elementary Features)描述子對特征點的周邊像素進行特征描述,從而得到各特征點的特征。BRIEF 是一種二進制描述子,即它的描述特征的向量由許多個0 和1 組成,這里的0 和1 編碼了特征點附近兩個像素點(例如說q1和q2)的大小關系:如果q1的像素值比q2大,則此維度的特征取1;反之就取0。如果選取了特征點附近128個q1、q2對,最后就得到128維由0、1組成的特征向量。
最后,根據特征,計算Gt和Gs各特征點間的距離。根據距離排序,設定閾值篩選出一定數量的相似點對()。
2.1.2 單應矩陣推斷及數據聯合
根據多個特征點對()求解單應矩陣H。H為一個3×3的矩陣,表示了兩幅圖像間各像素坐標的轉換關系。由于H具有8 個自由度,所以至少需要在配準的兩幅圖像之間找到4對特征點,才能求解出單應矩陣H。單應矩陣H的求解過程如下:

將式(2)寫成聯立的方程組,可得:

由于式(3)中的第3項等于1,將其代入前兩項,得:

進而,整理式(4),再次整理成矩陣形式,得式(5):

其中:

式(4)中為一個2×9 矩陣。每一對點都對應一個矩陣Ai。將四對點的矩陣進行堆疊,即會得到8×9 的矩陣。對A進行奇異值分解(Singular Value Decomposition,SVD),即可求得H。
利用H對Gt進行轉換,可將Gt轉換到Gs的“視角”。完成圖像的轉換也分為兩個步驟:1)通過H將Gt的各像素坐標轉換為,計算過程中,需先將轉換為齊次坐標的形式;2)利用插值算法如近鄰插值法,計算變化后的坐標處的像素值。最后得到配準之后的圖像。

目標檢測模型的結構如圖3 所示。左側的虛線框架內為YOLO-tiny 模型的下采樣結構。本文提出的模型采用了與YOLO-tiny 相同的下采樣結構。實驗時對下采樣結構的參數進行“凍結”,即該部分參數不會進行梯度的更新。該部分的參數為YOLO-tiny 在COCO 數據集上的預訓練的參數。采用這種方式:一是為了防止模型的過擬合;二是提升模型的識別準確率。
下采樣過程的每一個模塊的結構均類似,下采樣過程由3×3 的卷積核、Batch Normalization 層、非線性變換Leakey RELU(Leakey REctified Linear Unit)(未在圖3中畫出)和Maxpooling 層構成。需要注意的是,本實驗去除了YOLO-tiny 模型下采樣的倒數第二個模塊中,步長為1的Max-pooling層。
圖3 右側為模型的上采樣過程。由于在進行目標識別時,圖像中的物體尺度變化較大。因此,在上采樣過程中,模型采用了多尺度特征融合的方式。即在不同尺度的特征圖進行上采樣操作之后,與來自下采樣過程的同樣大小的特征圖在通道維度上進行疊加。這種跨連接方式在U-net[18]上已經得到證明,它可以減少模型對于訓練數據數量的要求。在YOLO-tiny 模型中,網絡只對兩個尺度的特征圖進行特征融合,而本文提出的模型則增加了一個尺度,即在三個特征尺度上進行目標檢測。特征圖的上采樣方法采用的是近鄰插值法,上采樣方法會將特征圖插值到原來的兩倍。
RFB 模塊的結構如圖4 所示。由于生物學的研究表明,人眼的感受野是關于視網膜折射率的函數。它由多個分支構成,與Inception[19]的結構類似。RFB 模塊通過各分支的前端卷積核模擬不同大小的人眼感受野;利用后端的空洞卷積[20]模擬人眼的感受野和視網膜的折射率的關系,從而實現模擬人眼提取事物特征的過程。在RFB 模塊的最右側還引入了ResNet 的跨連接結構。由于RFB 模塊結構參數量較少,且和其他模型的結合方式簡便,可直接銜接其他識別模型的頂端。因此本文引入RFB 到YOLO-tiny 模型當中,提出YOLO-tiny-RFB。

圖3 YOLO-tiny-RFB模型結構Fig.3 Structure of YOLO-tiny-RFB model

圖4 RFB結構Fig.4 Structure of RFB
本文所提出的模型YOLO-tiny-RFB 與YOLO-tiny 有兩處不同:
1)由于電站的儀器在尺度上的變化較大,YOLO-tiny-RFB會在三個不同的尺度上進行特征融合,YOLO-tiny則是僅僅在兩個特征尺度上進行特征的融合。圖3 右上角的虛線框中的結構即為新增的特征尺度提取模塊。模型還去除了YOLOtiny 在下采樣過程中的最后一個步長為1 的池化層。由于該步長為1的池化層對YOLO-tiny并未起到減小計算量的作用,而Max-pooling 會破壞圖像的細粒度特征,因此本實驗去除了該層。
2)在進行跨連接和特征融合之后,YOLO-tiny通過相同的1×1 卷積核對兩個尺度的特征圖進行特征提取并直接輸入給YOLO Layer。而YOLO-tiny-RFB 則在特征輸入YOLO Layer 之前,引入了RFB 模塊,以不同大小的卷積核對特征圖進行提取,幫助YOLO Layer 對相似的物體進行更好的類別判斷。圖3中的右下虛線框內為模型新增的RFB結構。
對于旋鈕的8 個子狀態的判斷,本文使用了MobileNetV2,其結構如表1所示。為了提升模型的表現,實驗使用了MobileNetV2在ImageNet上的預訓練參數,隨后在旋鈕狀態分類任務上繼續訓練。

表1 MobileNetV2結構Tab.1 Structure of MobileNetV2
MobileNetV2的主要結構由多個Bottleneck Residual Block組成,其同樣引入了殘差的概念。但與ResNet 中的殘差塊的不同之處在于,Bottleneck Residual Block 引入了拓展因子(expansion factor)t,通過改變t的值可以控制模塊中的通道數,進行模型的裁切。表1 中,c表示模塊的輸出通道,n表示模塊的重復次數,s則表示模塊的步長。
本章將會對實驗數據的采集過程中,各物體類別的具體分布、保持各類平衡的方法以及數據的增廣方式做一個詳細的介紹。
本文用于模型訓練的儀器圖片均采自于高壓變電站,儀器柜的圖像如圖5所示。

圖5 儀器柜圖像Fig.5 Image of instrument cabinet
數據集中各類儀器類型及出現的次數如表2 所示。本文一共采集了1 300張高壓屏柜的儀器面板圖。在一幅圖片中,如果出現了某種類型的儀器,則其數量計數增加1,多次出現會進行多次計數。表2 中的統計結果表明數據集中各類的分布較為均衡。本文也考慮到了保持類內各儀器狀態分布相對平衡的重要性,采集時也盡量使各類內狀態保持平衡,避免模型在訓練過程中傾向于某一大類。
在進行數據類別標注時,本文將同一類型儀器的不同狀態視作不同類別。如斷路器有“開”和“關”兩種狀態,在標注時會以不同的標簽來表示。類似的壓板儀器、指示燈、指針表計、按鈕的各自的子狀態都視作一個單獨的類別。這么做的目的是讓目標檢測模型在實現儀器類型判斷的同時也進行儀器狀態的判斷。

表2 數據集中的儀器類型及分布Tab.2 Categories and distribution of instruments in dataset
唯一例外的是旋鈕開關,旋鈕開關包含8 個子狀態,即可能會被置于8個不同的方向(左、右、上、下、左上、左下、右上、右下)。其子狀態數量較多,但各子狀態的圖片卻較少。因此在實驗時,會首先將所有旋鈕開關視作一類,不論其處于什么狀態。對于旋鈕開關的子狀態的進一步判斷,本文則通過訓練一個輕量級分類模型來完成。
從表3 可以發現,在采集到的旋鈕開關圖片中,旋鈕開關的子狀態主要集中在左上、上、右上3 個方向,各狀態下旋鈕的具體形態可以參考圖6,而其他的子狀態出現的情況較少。為保持各類均衡,防止分類模型判斷偏向于某一方向的判斷,本文通過翻轉旋鈕開關圖像的方式來平衡各類數據。例如,旋鈕開關置于“下”狀態的圖像可以通過垂直翻轉置于“上”狀態的旋鈕圖像得到。類似地,出現次數較少的旋鈕狀態,也均可通過水平或垂直翻轉出現次數較多的旋鈕狀態圖像來填充。從而,使得各子狀態下的旋鈕數量達到均衡,均衡后的數量如表3所示。

表3 旋鈕開關各狀態的數量分布Tab.3 Quantity distribution of different statuses of rotary switches
雖然本文采用的均是較為輕量級的模型,但模型參數總量依舊遠多于實驗樣本的數量。因而,在實驗中引入數據增廣防止模型的過擬合是有必要的。本文采用的數據增廣方式有兩種:1)隨機地左右翻轉圖像;2)隨機改變圖像的對比度和光照強度。采用左右翻轉圖像的數據增廣方式,是因為各類儀器基本都呈現左右對稱,且左右翻轉也不會改變儀器的狀態。而隨機改變圖像的對比度和光照強度則是為了讓機器人適應在電場中的工作環境,使模型在各種的照度下都能有好的識別結果。
遷移學習[21]是目前眾多基于深度學習的項目采用的提升模型準確率的方式。遷移學習旨在通過利用類似領域的數據集讓模型學習到泛化的特征,從而減少當前任務的數據量需求。因為,在眾多的實際應用中,數據集的采集和標注是相當昂貴費時的過程,即使花費時間精力,采集到的數據數量對于深度學習而言也遠遠不夠。較少的數據集也往往會導致模型的過擬合。
因而,為了在相對較小的數據上取得好的識別結果,首先讓模型在大型的數據集,如ImageNet 上進行訓練;隨后,保留并固定模型前部的模型參數用以提取模型的特征,只對模型后部的網絡參數進行迭代更新,可以使得模型在少量數據上也取得較好的效果。本文以YOLO-tiny 在COCO 數據集上訓練的目標檢測模型的參數為基礎,在儀器識別的任務上進行參數微調(Fine tuning)。因為同為目標識別任務,在COCO 數據集上進行預訓練能夠使本文的識別模型學習到泛化的圖像特征提取,從而提升模型的識別精度。

圖6 旋鈕開關的8種置位方向Fig.6 Eight setting directions of rotary switch
模型訓練所采用的設備為RTX2080TI,CPU i7-9700K,內存16 GB,系統Ubuntu16.04,編程語言Python3.7,深度學習框架Pytorch1.3。對于目標檢測模型的訓練,實驗對各模型分別進行了2×105次迭代,模型選取的學習率lr=3×10-4,正則化項的參數λ=1×10-5。為實現數據增廣,對于每一幅輸入圖像,程序有30%的概率會對其進行翻轉,有50%的概率會對其進行亮度和對比度的變換。對于旋鈕開關狀態的識別,實驗采用了MobileNetV2,模型選取的學習率lr=1×10-3,正則化項的參數λ=1×10-5,一共迭代了5×104次。所采用的數據增廣方式為50%概率對圖像亮度和對比度進行變換。
訓練集、驗證集及測試集按照7∶1∶2 的比例在各類別內進行隨機分割,從而保證各類數據在訓練集、驗證集及測試集中均保持相對均衡。
由于YOLO-tiny-RFB 模型除了引入RFB 模塊,比YOLOtiny 還多了一個尺度的特征圖。因此,為了驗證加入RFB 模塊對于模型表現的提升是確實有效的,而不是僅僅依賴于多引入的特征尺度。實驗去除了圖3 結構中的Respective Field Block 模塊,保留其他的修改,即僅僅去除圖3 中右下虛線框當中的結構,并將該模型記作YOLO-tiny-modified。以YOLOtiny-modified作為一個參照模型。
實驗使用了平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP)來評估各模型的目標識別表現,使用Precision 和Recall 來評估旋鈕狀態分類模型的表現。
目標識別模型的實驗結果如表4 和表5 所示。從表4 中可以發現,YOLO-tiny-modified 和YOLO-tiny-RFB 分別在4 個類(旋鈕、斷路器-開、指示燈-關、壓板-開)和5個類別(斷路器-關、指示燈-開、壓板-關、壓板-閑置、按鈕)上取得了最好的識別結果。在這九種類別的識別中,YOLO-tiny-modified和YOLO-tiny-RFB 的表現均遠優于YOLO-tiny。對于電壓、電流表類的表計識別,YOLO-tiny 的表現最好,不過3 種模型識別準確度的差距并不明顯。
表5 表明,在所有類別的識別表現上,YOLO-tiny-RFB 是最好的,其mAP 為0.824。YOLO-tiny-modified 在參數量較YOLO-tiny 增加0.37×106的情況下,mAP 提升了0.107。YOLO-tiny-RFB 相較YOLO-tiny 增加了1.38×106的參數量,mAP 提升了0.125。YOLO-tiny-modified 只增加了4.5%的參數,就獲得了最有效的性能提升,表明多特征尺度的輸入以及取消步長為1 的池化層,使得模型擁有了更加豐富和準確的特征用作類別判斷。對于按鈕識別的表現,YOLO-tiny-RFB則明顯較YOLO-tiny-modified 和YOLO-tiny 要好得多,可見,RFB 模塊的加入進一步提升了模型對于相似物體的判別能力。YOLO-tiny-RFB模型的識別結果如圖7所示。
MobileNetV2 模型的旋鈕狀態識別結果如表6 所示。MobileNetV2 模型旋鈕開關識別的平均準確率為0.907,基本能夠對旋鈕的狀態進行準確的分類。通過觀察各類的Recall和Precision,可以發現MobileNetV2 模型對于“上”“下”“右”“右上”的狀態判斷要比其他類別準確,兩項指標均高于或接近0.9。
表3 中旋鈕各狀態的原始分布中,“上”“下”“右上”在未進行過人工增廣的原數據集占有的比重很大?!吧稀薄跋隆薄坝疑稀痹谶M行訓練時,包含的人工數據是較少的。因而MobileNetV2 模型能夠從真實的數據中學習到該狀態下的旋鈕特征。而其他狀態的旋鈕則幾乎都是通過這幾個狀態旋轉變換得到的。相比之下,MobileNetV2 模型對于“左”“左上”“右下”等狀態的判斷要稍差一些,Recall 和Precision 均低于0.9。

圖7 YOLO-tiny-RFB的儀器識別結果Fig.7 Instrument recognition results of YOLO-tiny-RFB

表6 MobileNetV2模型的旋鈕開關狀態分類結果Tab.6 Status classification results of rotary switch based on MobileNetV2 model
通過表4 和表5 的實驗結果可以發現,YOLO-tinymodified 相較于YOLO-tiny 的參數量提升了4.5%,mAP 取得了15.3%的性能增幅;相對的,YOLO-tiny-RFB 相較于YOLOtiny,在參數量增加了16.7%的的情況下,mAP 獲得了17.9%的表現增幅。雖然YOLO-tiny-RFB 看起來收益較小,但是YOLO-tiny-RFB 卻在較為困難的按鈕識別中遠優于其他模型。RFB 模塊的加入使YOLO-tiny 能夠捕捉到更多的細節,對于較為細粒度的特征更加地敏感。從結果上綜合來看,YOLO-tiny-RFB比另外兩種模型表現更好。
三種模型對于按鈕的狀態判斷都較差,因此本文進一步分析測試集中數據集的相關特點以尋找原因。本文發現,按鈕和指示燈在外觀上是非常相似的,其特征如圖8 所示。它們外觀上的區別在于:指示燈在熄滅時,其外圍為黑色;按鈕的外圍為一層銀色的外包。當指示燈亮起時,指示燈和按鈕則比較容易區分。兩者的相似性是三種模型在區分按鈕和指示燈時表現不佳的原因。模型無法準確判斷兩者之間的特征差別。
對旋鈕狀態判斷模型進行進一步的分析,觀察測試集中分類錯誤的圖像,發現模型對于圖像的細粒度特征有所忽視。另外圖像的拍攝角度也對模型的判斷有較大的影響。圖9(a)、(b)兩幅圖像均偏離正視視角,開關具有一定形變,此時本文模型無法準確判斷旋鈕的正確方向。圖9(c)、(d)兩幅圖像中,模型對開關狀態做出了相反的判斷。作為人類,可以通過“手把”上的顏色準確地判斷出旋鈕分別是朝向“左上”和“左下”的狀態;但模型沒有捕捉到這一特征,作出了相反的判斷。

圖8 按鈕和指示燈的外觀特征對比Fig.8 Appearance feature comparison of button and light

圖9 旋鈕狀態分類錯誤數據Fig.9 Rotary switch status misclassification data
針對算力資源有限情況下的多類別小型物體狀態識別,本文通過在輕量級模型YOLO-tiny 中引入RFB 結構,以此提出了YOLO-tiny-RFB 模型。該模型在小幅度提升模型參數量的情況下,大幅提升了在自建的儀器識別數據集上的精度。本文提出的YOLO-tiny-RFB 較YOLO-tiny 增加了1.38×106的參數量,mAP提升了17.9%。通過數據的增廣,本文也較好地完成了在極度不均衡數據集上的分類任務,對于旋鈕狀態的判斷,本文模型的平均準確率可達90.7%。另外,本文還考慮到儀器巡檢場景中,同一儀器在不同時間段的狀態會被多次監測,因而設計了儀器狀態數據的跨時間聯合機制。該機制確保同一儀器在不同時刻下的狀態能夠得到準確追蹤。
在隨后的工作中,一方面工作的重點將繼續著力于控制模型的參數總量,例如加入圖像通道的注意力機制[22]。因為網絡捕獲到的特征眾多,但對于識別任務,并不是所有的特征均通道對于最終的識別結果都是有效或貢獻相同的,讓模型自動去學習各通道之間的權重關系,或許是更好的選擇;亦或是引入MobileNetV2 的擴張系數(expansion factor),更好地控制模型的寬度。另一方面,會繼續提升模型對于細粒度特征的敏感度,加入新的數據增廣方式,如仿射變換、隨機圖像切割、隨機圖像噪聲等[23],提升模型的泛化能力。