湯斯鵬,池鴻源,張培煒,張炳華,蔡 毅
(1.中國移動通信集團廣東有限公司AI能力支撐中心,廣東 汕頭 515000;2.中國移動通信集團廣東有限公司AI能力支撐中心,廣東 廣州 510000;3.華南理工大學 軟件學院,廣東 廣州 510000)
旨在完成百萬級規(guī)模數據分類和檢測的ImageNet挑戰(zhàn)賽2009年開始在CVPR舉辦,自2012至2017年挑戰(zhàn)賽結束冠軍隊伍均采用了深度學習算法,物體分類錯誤率從0.28降到了0.03;物體識別的平均準確率從0.23上升到了0.66。ImageNet的成功推動了基于卷積神經網絡的深度學習技術在視覺領域的快速發(fā)展,利用卷積、池化操作具備位移不變性、能夠合并相似語意特征的特點,在自然場景下圖像物體的分類和檢測的精度上已經接近并超過人類的水平,為解決視覺分類和物體檢測問題提供了強大的支撐。
光網絡單元(以下簡稱ONU)屬于接入網的用戶側設備[1],是電信運營商寬帶業(yè)務實現“光電轉換”的重要設備。不同廠商生產的ONU外形不盡相同(見圖1),普通用戶受專業(yè)限制,一旦ONU異?;蚬收?,往往難以描述并只能等待裝維人員上門檢修。對用戶而言浪費時間等待,對運營商而言消耗大量人力成本檢修。如果可以通過計算機視覺技術識別故障甚至引導客戶自助排除簡單故障,有利于提升用戶體驗同時降低企業(yè)人力成本。
文中以物體檢測實現故障識別為切入點,綜合應用了SSD,Inception-V4和Inception-Resnet-V2,提出了一種識別ONU故障的設計,并在“廣東移動手機營業(yè)廳”APP中投入了實際應用。從用戶數據上看,該系統(tǒng)的端到端準確率超過84%。
圖1 幾款不同型號的ONU設備示例
SSD(single shot multibox detector[2])是一種單步驟的目標檢測方法:比同為單步驟的YOLO V1[3]速度快而精度達到兩步驟方法Faster-RCNN[4]的水平;SSD的思想是用小尺寸卷積核對預設候選框預測坐標偏移量和分類概率;SSD產生固定比例的候選框集合并對這些候選框中存在的目標類的概率,使用非最大化抑制步驟以產生最終檢測,利用多個尺寸的特征圖預測不同長寬比的候選框綜合起來提升檢測精度;是一種同時權衡了精度和速度的端到端的目標檢測算法。
SSD在主干網絡的末尾添加了卷積層。卷積層的尺寸從大到小,得到不同尺度檢測的概率。每個添加的特征層(或可選的基礎網絡中已存在的特征層)可以使用一組卷積濾波器產生固定的預測集合。對于具有p個通道的大小為m×n的特征層,使用3×3×p卷積核進行卷積操作,使每個類別產生一個預測概率,以及相對于候選框的坐標偏移。
Inception[5]網絡是卷積神經網絡分類器發(fā)展史上一個重要的里程碑。在Inception出現之前,大部分流行卷積神經網絡僅僅是把卷積層堆疊得越來越多,使網絡越來越深,以此希望能夠得到更好的性能。但這種簡單粗暴的方法存在一些問題:會導致更大的參數空間,更容易過擬合、需要更多的計算資源、網絡越深,梯度容易消失,優(yōu)化困難。Inception的目標是,提高網絡計算資源的利用率,在計算量不變的情況下,提高網絡的寬度和深度。Inception把全連接改成稀疏連接,卷積層也是稀疏連接,卷積網絡可以近似最優(yōu)局部稀疏結構,并且該結構下可以用現有的密度矩陣計算硬件實現,產生的結果就是Inception,其作用是替代了人工確定卷積層中過濾器的類型或者是否創(chuàng)建卷積層和池化層,讓網絡自動學習參數。Inception-V2[6]在Inception的基礎上增加了批數據歸一化。Inception-V3[7]在Inception的基礎上對卷積核進行了分解,將5*5的卷積核替換成2個3*3的卷積核;將n*n的卷積核替換成1*n和n*1的卷積核堆疊。這樣加速了計算,還增加了網絡的非線性,減小了過擬合的概率。
在Inception-V3的基礎上,受ResNet的優(yōu)越性能啟發(fā)引入殘差結構,提出了Inception-Resnet-V2[8],并修改Inception模塊提出了Inception-V4結構,基于Inception-V4的網絡實驗發(fā)現在不引入殘差結構的基礎上也能達到和Inception-Resnet-V2結構相似的結果。ILSVR2012比賽中Inception-V3、Inception-V4、Inception-Resnet-V2的Top-5 Error分別為4.3%、3.8%和3.7%。
不同生產廠商制造的ONU設備的型號和外形不盡相同。據廣東移動統(tǒng)計,截至2017年12月,廣東移動投放至市場的ONU類型有34種。各種型號ONU市場占有率如表1所示。雖然ONU型號眾多,但ONU設備上具有Power、Pon、Los、Lan,4種類型指示燈,通過ONU設備上指示燈的狀態(tài)組合,可以識別ONU所處的工作狀態(tài)。如表1所示,ONU設備的指示燈狀態(tài)可以分為7個場景,包含了ONU常見的7種狀態(tài)。從表中可以知道場景1、4、5、6代表設備故障,場景2、3、7代表設備正常。如圖2所示,不同型號的ONU外形不同,指示燈的排列和顯示不盡相同,因此識別ONU的型號是必要的。
表1 ONU指示燈對應場景
圖2 不同型號ONU指示燈
針對以上陳述,文中提出的系統(tǒng)從視覺領域著手主要實現了以下核心功能:
·識別自然場景圖像中是否包含ONU設備;
·識別圖像中ONU設備型號;
·識別圖像中ONU設備指示燈對應場景。
核心功能的開發(fā)采用了谷歌開源的tensorflow[9]深度學習框架。
為了完成整體系統(tǒng)應用,系統(tǒng)采用了CS模式[10]。用戶打開APP調用攝像頭采集圖像,利用webser-vice[11]方式上傳圖像到后臺GPU服務器,GPU服務器調用經過訓練的模型識別ONU型號和場景并返回手機APP前端,APP前端使用虛擬現實[12]方式與用戶交互。數據流程如圖3所示。下面章節(jié)將詳細介紹識別相關的核心功能設計與實現,其余部分將不再贅述。
深度學習模塊實現分為以下3個階段:
階段1(檢測ONU):自然場景下的用戶圖片往往采集隨意且包含許多噪音,為了聚焦主體任務,有必要將圖片中無關信息進行裁剪。使用SSD算法進行物體檢測,檢測的目標是ONU和ONU指示燈在圖片中的位置,如圖4所示。值得注意的是此時并未進行分類,而是將所有型號的ONU共同訓練,檢測的物體只有2種類型(類型1:ONU,類型2:ONU指示燈),目的是為了將不同型號的特征充分融合,提升魯棒性,同時有利于減輕數據不平衡所帶來的不利影響。用戶的輸入可能不是ONU圖片,但是這個階段并不進行數據過濾,而是將所裁剪的圖片送入階段2的分類模型中。
圖3 應用數據流程
階段2(分類ONU):完成位置檢測將裁剪后類型1(ONU分類)的圖片送入Inception-Resnet-V2分類算法訓練分類模型可以預測出ONU型號,為了能夠判定用戶是否按要求輸入,訓練ONU型號分類器時除已知的ONU型號類型之外增加了一個“未知”分類。巧妙地將“未知”分類的圖片在型號分類時融入分類器的訓練,不僅可以加快模型收斂速度,而且有利于提升ONU型號的分類準確率、提升判定該物體是否為ONU的準確率。即,經過階段1的檢測會將圖片中最像ONU的部分裁剪后再進行分類,能夠有效降低分類的難度。
圖4 ONU檢測
階段3(分類ONU指示燈):如圖2所示,各種ONU的指示燈不盡相同,為了識別ONU的各種場景,可以將每個場景作為一個類來對待。同時為了平衡識別時長和識別準確率,使用Iception-V4算法分類ONU的7個場景;為了保證準確率,每個型號的ONU訓練一個場景分類模型,輸入數據使用經過SSD裁剪后的ONU指示燈圖片。3個階段的數據流程如圖5所示。
圖5 深度學習模塊數據流程
階段1檢測ONU的損失函數沿用了SSD的損失函數,SSD損失函數分為兩個部分,即對應搜索框的位置Lloc和類別置信度Lconf:
其中,N是匹配的包圍框的個數,x表示匹配的框是否屬于類別p,取值(0,1);l是預測框,g是真實值;c是指所框選目標屬于類別p的置信度。
階段2和階段3的損失函數均使用了交叉熵,yi就表示期望輸出,yi_表示原始的實際輸出。
為了實現冷啟動,在未得到用戶數據之前,模型的訓練采用了人工拍攝的數據進行,在應用上線1個月后收集用戶數據進行標注。在原有模型的基礎上進行訓練,加入用戶數據顯著提升了模型的準確率,同時在訓練的過程中進行了角度、亮度、對比度、飽和度的數據增強[13],提升模型魯棒性,利用數據過采樣[14]的方式解決型號ONU數據不平衡問題。SSD中輸入圖片的分辨率為300*300,L2正則化系數為4*10-5,使用了RMSProp優(yōu)化器,初始學習率為0.004,衰減系數為0.95;在Inception-V4和Inception-Resnet-V2中輸入圖片統(tǒng)一縮放到299*299,使用了Adam[15]優(yōu)化器,初始學習率為0.001,衰減率為0.93。圖6是分類指示燈在加入用戶數據之前和加入用戶數據之后的準確率對比,最終分類ONU指示燈的平均準確率是87%。運用同樣的方法,檢測ONU準確率達到了98%(50%IOU)、分類ONU的準確率達到了99%,整體端到端準確率為3者乘積,達到84.4%;硬件方面GPU使用了一塊NVIDIA Tesla P100顯卡,從大規(guī)模壓力測試情況來看使用Inception-Resnet-V2與Inception-V4組合達到了精度和速度的平衡,實際識別速度可達10 FPS。
圖6 準確率對比
提出了使用深度學習技術識別ONU故障的設計和實現方法,巧妙地綜合運用了檢測和分類的思想,將核心模塊分為3個階段逐步求精實現,有效減少了環(huán)境的干擾,運用分類的方法對非ONU圖片可以有效過濾,最終識別出不同ONU型號的不同場景。經分析,端到端準確率超過84%,產品上線“廣東移動手機營業(yè)廳”,據統(tǒng)計該功能的月均使用次數超過1萬人次,不僅有效節(jié)約了客戶等待時間,而且減少了裝維上門成本,是電信行業(yè)提升客戶服務品質的一次成功探索。