洪愷臨,曹江濤,姬曉飛
(1. 遼寧石油化工大學 信息與控制工程學院,遼寧 撫順 113001; 2. 沈陽航空航天大學 自動化學院,遼寧 沈陽110136)
隨著城鎮化水平的不斷提高,室內裝修領域的自動化發展水平受到越來越多人的關注。目前大部分的室內噴涂工作仍然是以人工噴涂為主,噴涂的效率低且質量難以保證。現有的室內噴涂機器人雖然可以進行簡單的墻面噴涂,但是都缺少環境中不可噴涂區域的識別,如果希望噴涂機器人真正地做到自主噴涂,那么對于窗戶的檢測就是必不可少的。室內窗戶的檢測有如下幾個難點:1)光照強度變化使得算法的準確性很容易受到影響;2)窗戶透光屬性的存在導致窗戶外面的環境對窗戶檢測存在很大的干擾;3)噴涂過程中距離墻面很近時只能捕捉到窗戶局部的影像。正是因為上述問題的存在使得室內窗戶檢測變得更加復雜。與此同時,在實際的機器人開發過程中,機器人的成本、功耗都要在考慮的范圍內。因此應用于噴涂機器人上的窗戶檢測算法必須要保證所使用傳感器和處理器的成本與功耗符合實際的開發需求。因此開發一種實時高效的室內窗戶檢測算法對機器人的落地具有十分重要的意義。
目前常用的窗戶檢測數據包括3D點云數據[1]和圖像數據[2-4],其中3D點云數據的獲取需要搭載造價較為昂貴的雙目相機或深度相機,考慮到圖像數據采集成本較低,因此基于圖像數據的研究更具有可行性。Ali等[2]使用多尺度小波對采集圖像進行表示,再將其輸入到級聯分類器中進行窗戶檢測;孔倩倩等[3]通過對窗戶進行輪廓分析篩選出符合條件的輪廓,并利用最小生成樹對所有矩形進行合并以此確定窗戶的位置;繆君等[4]結合窗戶的直線特征、顏色特征和紋理特征使用分割技術提取完整的窗戶。總體來說,目前的方法都是基于手工設計的特征進行室內窗戶檢測,該種方式受環境的影響較大,無法在噴涂機器人上得到很好的應用。
而基于深度學習的方法因其適應性強,易于轉換等特點已被應用到各個領域。針對目標檢測領域的深度學習方法無論是兩階段的Fast RCNN(fast region-based convolutional neural networks)[5]、Faster R-CNN(faster region-based convolutional neural networks)[6]、SPP-Net(spatial pyramid pooling networks)[7],還是單階段的YOLO(you only look once)[8]、SSD(single shot multi-box detector)[9]、Retina-Net[10],都先預設大量不同尺度和橫縱比的錨框(anchor),再通過非極大值抑制(nonmaximum suppression, NMS)的方式進行篩選得到最終的檢測框。但是對于室內窗戶檢測而言,機器人所采集到的圖片中窗戶的數量比較少,會導致大量的anchor被NMS去除掉,使得網絡效率不高。而無錨框(Anchor-free)[11]類型的網絡則通過在特征圖中直接檢測目標的關鍵點,并回歸出目標所在的位置,極大地提升了網絡的效率。Anchor-free類型具有代表性的網絡包括Corner-Net[12]、CornerNet-Lite[13]、Center-Net[14]、FCOS(fully convolutional one-stage object detection)[15]等。其中,Center-Net算法在識別速度和準確性上均具有非常好的效果,但是由于其復雜特征提取網絡的存在,很難應用于機器人所搭載的嵌入式設備上。
本文設計一種基于深度學習的室內窗戶檢測算法,引入Anchor-free類型的Center-Net網絡作為基礎網絡,并對其網絡結構進行改進,在不損失精度的情況下提升其檢測速度,減少網絡的參數量,使其適用于噴涂機器人窗戶檢測的特定應用。本文的創新點是簡化Center-Net原始特征提取網絡的結構,在提升速度的同時也防止由于參數量過多而導致過擬合的問題;將普通的卷積操作替換成更加高效的Ghost模塊[16],以此進一步提升網絡推理速度;在編碼結構的最后一層引入注意力機制,通過添加壓縮激勵模塊(squeeze and excitation block, SE-block)[17]來保證網絡在有限的參數量下盡可能表達重要信息。實驗結果表明,該網絡即使在嵌入式設備上也可以滿足其準確性和實時性的需求。
Center-Net是Zhou等于2019年4月提出的Anchor-free目標檢測網絡。算法框架如圖1所示,將待檢測目標中心視為關鍵點,然后再分別對目標的長寬以及中心點的偏移量進行回歸以此完成目標檢測任務。

圖1 Center-Net算法框架Fig.1 Center-Net algorithm framework
原始的Center-Net分別使用Resnet-18(residual networks-18)[18]、DLA-34(deep layer aggregation-34)和Hourglass-104[19]編碼解碼(encoder-decoder)結構作為特征提取網絡,實驗結果表明,DLA-34網絡在速度和準確性上得到了很好的平衡。因此本文窗戶檢測算法也是在DLA-34網絡基礎上進行的改進。
DLA是Yu等[20]于2019年提出的一種特征聚合的方式,分為迭代深層聚合(iterative deep aggregation, IDA)和層次深度聚合(hierarchical deep aggregation,HDA)。Center-Net特征提取網絡還對原始DLA-34進行了一些改進,網絡框架如圖2所示,圖中綠色箭頭對應IDA,紅色方框對應HDA。HDA的作用是將數據的淺層與深層表達進行更好地融合,這種融合方式比簡單的殘差網絡(Res-Net)和稠密網絡(DenseNet)[21]更好。而IDA的作用則是通過不斷迭代將淺層特征重新定義從而完善最終輸出的特征。網絡的編碼階段就是將IDA與HDA相結合。解碼部分則是對相鄰的HDA結構的輸出進行合并,在合并的過程中將小分辨率的特征使用逆卷積(deconv)[22]操作進行上采樣并將得到的結果與相鄰HDA的輸出進行可形變卷積(deformconv)[23],最后再相加,以該種方式迭代生成樹狀結構,最終得到256×128×128的輸出。

圖2 Center-Net中的DLA-34算法框架Fig.2 DLA-34 algorithm framework in Center-Net
將特征提取網絡的結果分別送入3個網絡分支中,分別是關鍵點預測層、中心點偏移量回歸層以及檢測框寬高回歸層。
其中關鍵點預測層的輸出為80×128×128,128對應輸出特征的長寬,而80則對應COCO數據集的80類目標。首先將關鍵點通過高斯核分布到128×128分辨率的熱圖(heatmap)上,再將熱圖與網絡的輸出逐點計算損失函數。該損失函數為了解決正負樣本不平衡的問題,使用了Focal Loss損失函數[10]的思想,其公式為


目標框長寬和目標框的中心點坐標偏移量估計層的輸出都是2×128×128。中心點坐標偏移量估計層存在的意義是由于該網絡中對圖像進行了4次下采樣,所以特征圖重新映射到原始圖像上的時候會帶來精度損失,因此對于每一個中心點,都額外用一個偏移量去補償它。這兩個層的損失函數都使用L1損失函數:


在網絡的測試階段,將測試圖片送入到網絡得到3個分支的輸出之后,由于該網絡沒有使用anchor所以在進行多余檢測框剔除的時候不使用NMS,而是使用一個3×3的最大池化操作(maxpool),以此抑制關鍵點預測輸出中極大值的8鄰域,起到去掉多余框的作用。最后將得到的輸出進行解碼得到檢測框。
Center-Net網絡雖然在MSCOCO、PASCAL VOC等數據集上表現良好,但是被應用于噴涂機器人上的目標檢測算法在考慮其準確性的同時還需要考慮算法的實時性,所以網絡的大小、參數量以及網絡的運行時間在算法的評估層面都需要被考慮。本文在原有Center-Net的基礎上進行優化改進,分別為:對特征提取網絡結構進行簡化;將網絡中的普通卷積模塊替換為高性能的Ghost模塊;在編碼階段的最后一層添加SE模塊。本文通過上述3種方式提升網絡的速度與準確性。
在COCO數據集中待檢測物體一共有80個類別,并且各類目標的形態尺寸變化較大,但是對于室內窗戶檢測這種單分類物體檢測來說可以對網絡進行一些簡化,在提升速度的同時還可以防止因存在大量冗余的特征而導致網絡過擬合。改進的特征提取網絡如圖3所示。

圖3 改進的Center-Net特征提取網絡框架Fig.3 Improved Center-Net feature extraction network framework
對比圖2與圖3,可以看出特征提取網絡改進的部分在于編碼階段減少了一個HDA模塊,這種操作使得網絡下采樣輸出的分辨率從原來的16×16變到32×32,該操作減少了編碼解碼所需要的時間。實驗結果表明,網絡的簡化沒有導致檢測精度的過分下降。
為了使網絡的推理速度進一步提升,對普通的卷積模塊也進行了優化。目前有很多高效的網絡結構可以應用于移動設備,比如MobileNet[24]、ShuffleNet[25]等。本文使用華為諾亞方舟實驗室于2020年由韓凱等[16]提出的Ghost結構來替換原始網絡中所使用的普通卷積模塊。Ghost結構見圖4左側,其核心思想是先使用卷積核生成一部分特征,之后使用生成的特征通過一些計算代價小的線性變換來生成另外一部分特征,最終將這兩部分特征疊加到一起得到最終的輸出。
Ghost結構這種高效的卷積操作可以使網絡的運行時間進一步縮短。通過Ghost結構搭建的Ghost模塊如圖4右側所示,網絡輸入首先經過一個Ghost結構,然后通過深度可分離卷積[26]對特征進行重新整合,再經過一個Ghost結構得到輸出。其中,BN(batch normalization)為批歸一化操作,Relu (rectified linear unit)為激活函數。在圖4中,使用黑色小方框表示Ghost模塊。

圖4 Ghost模塊結構Fig.4 Ghost block structure
上述操作盡可能地減少了網絡的參數量和運行時間,為了讓網絡在有限參數量下盡可能表達重要信息,在網絡編碼結構的最后一層引入了注意力機制,使用了壓縮激勵模塊(SE-block)[17],如圖5所示。

圖5 壓縮激勵模塊結構Fig.5 SE-block structure
該結構主要包括3個操作,首先壓縮操作是對所有通道的特征圖做一個全局平均池化(global average pooling, GAP),得到c×1×1個特征。其中每個特征都具有全局的感受野,表征特征通道上響應的全局分布。之后是激勵操作,通過參數W為每個特征通道生成權重,公式為
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
式中:δ 對應Sigmoid激活函數; σ 對應Relu激活函數;z是上一層的輸出。最后是權重調整操作,公式為
?xc=Fscale(uc,sc)=uc·sc
式中:uc為上一個卷積層的輸出;sc為經過壓縮激勵操作的輸出。相乘的作用是對原始的特征進行重標定,這樣有助于網絡更關注具有代表性的特征。在圖3中使用藍色方框代表SE模塊,從圖3中可以看到,在網絡完成3個HDA操作得到的聚合節點不直接送到解碼網絡中,而是經過SE模塊之后再進行解碼。這種注意力機制的引入讓網絡更加集中于重要特征的學習,以此保證網絡在數據量大幅度減小的情況下也能很好地完成檢測任務。
本文所檢測的目標還沒有公開的數據集,所以文中使用的數據集是通過噴涂機器人所搭載的攝像頭進行采集室內窗戶影像,分辨率為640×480。使用labelimg軟件進行手工標注。一共10 000張圖像,其中8 000張用作訓練集,2 000張用作測試集。
相較于大型開源數據集,本次實驗所使用的數據集相對較小,所以需要通過圖像預處理對圖像進行數據增強,除了常規對圖像進行簡單的位移、縮放、顏色空間變換之外,本次實驗還對室內噴涂場景進行了相應的分析,以此讓數據集得到更為有效的增強。由于噴涂機器人在噴涂過程中具有距離墻面比較近的工作特性,更多時候需要識別的窗戶是不完整的,所以本實驗對于圖像的預處理還加入了多圖拼接,即每次隨機選取4張圖片,然后對其進行隨機拼接,得到訓練圖,如圖6所示。這樣做大幅度地增廣了數據,還使得訓練集中存在大量的局部窗戶圖。因此本實驗將測試集的圖片分成2個部分,1 000張是采集的完整窗戶,1 000張是采集的局部窗戶。以此驗證改進網絡的窗戶檢測效果,以及拼接方式增強的數據集是否更有利于網絡學習局部窗戶的特征。

圖6 使用多圖拼接得到的訓練數據Fig.6 Training data obtained by multi-graph splicing
如表1所示,本實驗在訓練和測試階段分別使用了2種不同的處理器。訓練階段使用圖形工作站,加快網絡的訓練速度,節省實驗時間。而在測試階段,使用噴涂機器人上所搭載的移動端處理器對網絡的準確性和實時性進行驗證,以此檢驗算法是否符合要求。

表1 訓練和測試過程實驗平臺對比Table 1 Comparison of training and testing process experimental platform
訓練階段首先使用網絡在COCO數據集上進行訓練,以此得到較為健壯的權重參數,然后將網絡在本次實驗中的窗戶數據集上進行遷移學習。將圖片的分辨率轉換為512×512,然后送入網絡訓練200次,前100次凍結特征提取網絡的權重,只訓練3個網絡分支,后100次將所有網絡層解凍,并且使用不同的學習率進行訓練,以此得到網絡最終的權重值。
在測試階段改變圖像的分辨率,噴涂機器人上攝像頭所采集的是640×480的分辨率,在訓練的時候將圖像統一映射到512×512的分辨率,如果測試階段也沿用這種方式那么網絡就會計算很多使用灰色填充的空缺位置,這無疑使得網絡進行了很多沒有價值的計算。所以在測試階段,本文將圖片映射成為512×384,由于網絡中沒有全連接層,所以該種分辨率網絡仍然可以輸出想要的結果。
本實驗首先驗證多圖拼接訓練窗戶的可行性。使用2種不同的數據增強方式訓練數據集,并且分別在完整窗戶和局部窗戶的測試集上進行驗證,使用mAP(mean average precision)作為算法的評估指標,對比結果如表2所示。

表2 使用不同數據增強方式訓練的結果對比Table 2 Comparison of training results using different data enhancement methods
通過表2,可以看出使用多圖拼接的方式對訓練集進行增強之后無論是完整窗戶檢測還是局部的窗戶檢測其mAP值都得到了大幅度的提升,其主要原因在于圖像拼接可以使得訓練集中的正樣本數量得到提升,這樣可以緩解其正負樣本不平衡的問題,并且使用隨機拼接的方式大大增強了訓練數據集的多樣性,很大程度上抑制了由于訓練數據集相對較少而導致的過擬合問題。其中局部窗戶檢測的mAP值得到了更大的提升,原因是數據拼接使得網絡在訓練的過程中可以遇到大批量局部窗戶的影像,并且隨機裁剪的方式也使得局部窗戶的多樣性大幅度地提升。因此使用該種數據增強的方式可以讓網絡更好地學習完整和局部窗戶的特征,以此更好地解決室內窗戶識別的問題。
本實驗還使用上述數據增強的方式分別對Center-Net、yolov3-tiny、yolo-nano以及本文改進的Center-Net進行了訓練,得到的不同網絡之間mAP值、運行時間和參數量的對比,如表3所示。

表3 不同檢測網絡性能對比Table 3 Performance comparison of different detection networks
從測試結果可以看出,由于原始的Center-Net具有復雜的特征網絡,其參數量巨大,而改進的Center-Net網絡,通過對特征提取網絡的簡化,以及將剩余的普通卷積模塊替換成為更加高效的Ghost模塊使得網絡的參數量得到了大幅度的減少,甚至小于yolov3_tiny和yolo_nano這2個輕量級目標檢測網絡。與此同時,網絡的運行時間也被大幅度縮短,可以滿足在嵌入式設備上實時檢測的需求。從表3中還可以看出,改進的Center-Net網絡的精度沒有因為網絡結構的簡化而大幅度降低,雖然其mAP值由原始網絡的89.3%降低為88.7%,但是對比yolov3-tiny和yolo-nano網絡mAP指標仍然有極大的提升。說明Ghost模塊和SE模塊可以讓網絡變得更加高效,并且Anchor-free這種思想的目標檢測網絡可以非常好地處理室內窗戶目標檢測問題,檢測效果如圖7所示。從圖7中可以看出,無論是整體窗戶還是局部窗戶,都得到了準確的檢測。

圖7 改進的Center-Net檢測效果Fig.7 Improved Center-Net detection renderings
針對室內窗戶檢測的問題,本文為自主噴涂機器人設計了一種基于深度學習的窗戶檢測算法。主要借鑒了Center-Net的思想,將其特征提取層進行簡化,使用更加高效的卷積模塊代替原始的卷積模塊,并且引入注意力機制使得所提取的特征更有針對性。通過在實際場景中的驗證,該網絡可以很好地解決室內窗戶檢查的問題,具有廣闊的應用前景。由于室內噴涂機器人在進行窗戶檢查的時候主要是對視頻的分析,而本文算法并未考慮視頻的時序信息,所以接下來的研究方向是根據視頻中窗戶的連續性等特點,結合時間信息進一步降低算法運算的時間成本,使得算法的性能再次得到提升。