秦 操,曹 旺,王 靜
(四川大學電子信息學院,成都 610065)
隨著人們對幸福生活的需求日益增長,科技水平不斷提高,人們對于出行方式有了更多期待,交通工具由傳統(tǒng)的依賴人力的駕駛方式逐漸開始轉向機器輔助人類,甚至有著逐漸由人工智能替代人力的趨勢。然而,傳統(tǒng)的駕駛方式在很長一段時間仍然沒有被取代,其可靠性在復雜狀況下往往更令人信服。受制于勞動力短缺、成本上漲,自動駕駛技術目前在物流倉儲,園區(qū)交通中落地更多。為了解放社會生產力于機械重復的駕駛流程,發(fā)展和提升現有的技術手段來解決上述問題,讓其變得更可靠成為了人們的關注點。
自動駕駛是一個綜合了周圍狀況感知、決策機制和控制系統(tǒng)等方面的綜合軟硬件系統(tǒng),集成了很多方面的技術。目前,主要通過圖像捕捉設備來捕獲二維圖像,或者采用激光雷達來采集點云數據等信息讓系統(tǒng)來完成環(huán)境感知的任務,通過多途徑增加信息量,以便更好地完成物體檢測、識別、分類、定位。例如對路上行動中行人和車輛的識別,車道線的檢測,交通指示牌內容的識別,以及對障礙物的檢測等。決策機制主要負責處理在機動行駛過程中的軌跡,根據模型部署前的規(guī)則指導機動車行進,完成如避讓障礙物的規(guī)劃類型的任務??刂葡到y(tǒng)主要基于決策系統(tǒng)規(guī)劃好的行駛方式,對動力系統(tǒng)、轉向系統(tǒng)、制動系統(tǒng)進行綜合控制,實現對車輛速度、行駛方向等狀態(tài)的自適應調節(jié),保證行駛過程中的安全性和穩(wěn)定性。
本文主要研究內容為周圍環(huán)境感知的圖像處理部分,屬于計算機視覺學科內容,通過提出在算法系統(tǒng)部署前優(yōu)化方案,讓決策系統(tǒng)處在自動駕駛在實際應用場景中,更好地理解其應該對整體軟硬件系統(tǒng)作出的指導。當系統(tǒng)復雜程度上升,對泛化能力的要求增強時,同時增大自動駕駛系統(tǒng)訓練時交通場景的數據量是極有必要的。由于通過無人車采集到的原始數據需要通過人力標注的方式來讓自動駕駛系統(tǒng)理解其面對的圖像的語義內容,這個過程通常耗時、費力,如果僅僅依靠大量勞動力來對數據進行清洗、篩選和標注,在數據集大小快速增長的情況下幾乎不可能對其進行一一詳實的標注,這使得自動駕駛系統(tǒng)部署成本居高不下。因此,對缺少人工標注的真實場景數據進行有效的利用,是當前迫切需要解決的問題。
圖像的語義分割在計算機視覺領域是一項基本的識別任務。語義分割的訓練數據通常需要像素級別的人工標注,和其他類型的視覺任務相比,例如圖像分類和目標檢測,成本通常更高。采用半監(jiān)督的訓練方式使用少量標注數據和額外的為標注數據來進行語義分割模型的學習過程是一種切實可行的解決方案。
在現代的基于深度學習的語義分割方法中,最普遍使用的是基于全卷積神經網絡的結構。對于語義分割模型的研究,主要從三個方面展開:分辨率提升,上下文信息挖掘和分割邊緣的優(yōu)化。
為了解決語義分割中手動對圖像進行像素級別的標注昂貴又費時的問題,目前面向自動駕駛場景的語義分割往往采用半監(jiān)督的方式來幫助模型進行學習,以此充分利用無標注數據的價值。在半監(jiān)督語義分割中,一致性約束被廣泛使用。它利用網絡在不同擾動情況下的預測結果有著相似的結果,比如:通過對輸入的圖像進行增強,或者對特征進行一定程度的改變,自訓練也在半監(jiān)督語義分割中得到了廣泛的研究。通過在有標注數據上訓練過的模型對無標注數據生成的分割結果圖,將其作為偽標簽對另一模型進行分割結果的監(jiān)督就是通過一致性約束對模型進行訓練的方法。
本文使用了一種簡單但有效的半監(jiān)督語義分割算法,其網絡結構是兩個結構相同但獨立進行參數初始化的分割網絡,將同一張圖片同時輸入兩個網絡,利用彼此輸出的分割結果作為偽標簽交叉指導訓練過程。另一方面,和常見的半監(jiān)督學習方式相比,本文的方法在兩個語義分割網絡上都進行了反向傳播操作,而不是僅僅在對輸入進行了增強的分支上。
本文采用了帶有空洞卷積模塊(見圖2)的DeepLab v3 分割頭作為完成下游任務的模塊來完成圖像的分割任務??斩淳矸e是一種在需要多尺度特征時被廣泛使用的模塊,可以通過人為控制參數的方式精確控制由深度卷積神經網絡提取的特征的分辨率,同時調整卷積核的大小來改變感受野的變化,以此捕捉多尺度信息。
圖2 空洞卷積示意圖
如公式(1)所示,假設輸入為二維信息,輸出為,卷積核為,是輸入和輸出上的位置,膨脹系數為。膨脹系數在數值上等于采樣操作的步長,其意義是在輸入的信息的每個空間維度上,和在本應連續(xù)的卷積核取值之間插入-1個零值的上采樣卷積核進行卷積操作。
假設給定一組有標簽數據D,總共存在張有標注的圖片數據,另外還有一個共由張無標注數據組成的數據集D,半監(jiān)督語義分割的任務主要是通過同時利用有標注和無標注的數據集對網絡進行訓練,使其能夠完成對于場景中不同種類物體的分割任務。
如圖1所示,圖中的網絡結構由兩條平行的分割網絡構成:
圖1 語義分割網絡結構圖
其中,和分別代表著兩個網絡的權重參數,和分別表示兩個網絡在進行Softmax 歸一化之后的輸出結果。兩個網絡擁有相同的結構,有著相同的輸入圖像,但在隨機初始化的過程中產生了差異。
當輸入圖片為有標注圖像時,數據流動方向如圖1 中虛線框外上下分支所示,網絡1 與網絡2 分別對輸入生成分割結果與,將網絡各自的分割結果與ground truth 作對比,并通過計算得到損失函數,將損失函數回傳給網絡,指導網絡參數更新。
當輸入的圖像為無標注圖像時,數據流動方向如圖1虛線框內無監(jiān)督部分所示,兩個網絡分別對輸入生成f()和f(),代表網絡對圖片預測的One-hot編碼的結果圖,也叫偽分割結果圖。在每個像素點的位置,生成的One-hot編碼結果是從其對應位置的置信度向量計算得到的。
對網絡訓練的損失函數包含兩方面:通過有標注圖像進行訓練得到的Loss,用L表示,以及在無表述數據集上通過交叉?zhèn)螛撕炗柧毞绞降玫降腖oss,記作L。
有監(jiān)督訓練中得到的L,由兩個平行網絡針對輸入的圖像輸出的分割結果分別與ground truth 進行標準的逐像素交叉熵求得,如公式(4)所示:
在公式中,l是交叉熵損失函數,和分別代表著面向不同網路的同一個ground truth,和分別代表輸入圖像的寬度和高度。
通過交叉?zhèn)螛撕灧绞降玫降膿p失函數,通過互相回傳至另一支網絡對學習過程進行指導。以網絡1 舉例,將網絡2 逐像素計算得到的One-hot 編碼的分割結果作為偽標簽分割結果,作為網絡1的真實標簽對其自身得到的分割概率圖求交叉熵損失,指導自身學習,對于網絡2來說同理。
對無標簽數據利用交叉?zhèn)螛撕灧绞接柧毜玫降膿p失函數可以寫作:
有標簽的數據同樣會通過無監(jiān)督方式丟棄標簽進行無標簽訓練,因此通過交叉?zhèn)螛撕灧绞接柧毜玫降膿p失函數可以表示為:
綜上所述,整個訓練過程的損失函數可以寫作公式(7),表示權重參數:
當智能系統(tǒng)涉及到分類任務時,通常需要通過獲取海量經過標注的數據才能達到良好的性能和效果。能夠收集到一個正確標注的數據集通常因為很多因素并不總是易事,例如對醫(yī)學圖像標注的過程往往需要耗費大量人力和時間,而就算有了輔助算法幫助人類進行數據集的標注,完全正確地對數據進行這個過程仍然是無法保證的,甚至是讓領域內的專家來標注圖像也是一樣。
通常情況下,深度神經網絡對標簽噪聲有一定的魯棒性,但是其對數據進行過擬合的趨勢很容易讓網絡在面對噪聲的情況下變得十分脆弱。因此,將標簽噪聲納入設計算法并設法有效地減弱或者消除對網絡訓練帶來的負面效果顯得很有必要。
針對交叉熵損失函數魯棒性的研究表明,交叉熵損失函數在涉及到分類任務時,如果存在著標簽噪聲的情況,網絡的穩(wěn)定性會受到很大影響。由于語義分割是對每個像素點進行分類的密集型預測任務,相似的問題和挑戰(zhàn)也同樣存在于語義分割中。
另外,在半監(jiān)督學習的語義分割框架中,最終學習進行對比時會用到偽標簽,而生成的偽標簽也許由于網絡還未充分得到訓練,整體性能較弱,導致結果中包含置信度較低的區(qū)域。
為了避免在利用偽標簽進行訓練時網絡對標簽噪聲過擬合,本文提出了一種動態(tài)適應的篩選模塊來優(yōu)化語義分割網絡。根據網絡在不同訓練階段的狀態(tài),它會根據每個像素點在分類結果的置信程度分配自適應的程度。此外,針對結果不太可靠的區(qū)域,本文還引入了反向交叉熵損失。
如公式(8)所示,是像素位置的指示,代表的是對于當前網絡分支像素分類結果的預測,y代表著另一側網絡對對應位置上像素生成的偽標簽,w表示動態(tài)權重,其值為當前網絡分支預測值在Softmax 之后在種類別中的最大值。
通過這種方式,本文利用網絡的預測值來評估訓練過程中無監(jiān)督分支對于分割結果的置信程度。如果置信程度非常高,就將動態(tài)權重置為1,按照普通交叉熵損失函數進行網絡訓練;但如果置信程度非常低,我們可以將偽標簽視作是不可靠的,因此引入公式(8)中的第二項來減輕標簽噪聲對網絡訓練造成的干擾。
為了使視覺深度學習算法順利落地,網絡對于復雜條件下的城市街景的視覺理解程度成為了重要的賦能因素。受益于大規(guī)模的數據集,在深度學習背景下的目標檢測工作從成熟的數據集中受益頗多。而對于城市街道的語義分割任務,在Cityscape之前并沒有可以充分反映現實世界中城景街道復雜性的數據集。Cityscape 數據集是一個可以應用于像素和實例級別分割任務的大型數據集,每張圖片的分辨率為2048×1024,總共有5000 張包含高質量像素級標注的圖像,另外還有20000張可以用作弱標注數據的粗標注圖片。
對于語義分割任務,一般有四種評價算法性能的指標:像素精度、均像素精度、頻權交并比和均交并比。在這四種評價指標中,均交并比(Mean Intersection over Union,MIoU)最簡潔直觀,是圖像分割精度評估的一個常用重要指標。它將不同類別的預測結果與真實值的交集以及并集相除,在求和之后取得平均值。本文中的實驗采用作為對模型性能的評價標準,如公式(10)所示:
P表示假正例,P表示假負例,P表示真正例的數量。
為了訓練和測試本文算法,實驗使用了四張NVIDIA GTX 2080Ti 顯卡以及4 顆E5-2620 CPU 核心,具體實驗軟件環(huán)境包括Python3.6,PyTorch1.0.0,CUDA10.2,訓練開始前首先對數據集進行預處理。為了與現行方法進行比較,我們與GCT一文中對數據集進行劃分和測試的操作保持一致,將Cityscape 數據集劃分為兩個隨機采樣的子集,分別將1/8 抽取出來作為有標注的訓練集,而剩下的就都作為沒有標注的訓練集。
本文算法中的特征提取網絡部分使用了同一個在ImageNet 上預訓練的網絡,而對各自的分割頭進行隨機參數初始化。訓練過程中,采用了隨機梯度下降優(yōu)化器,對學習率調整采用的是多項式衰減策略,如公式(11)所示:
由于使用了模型并行計算加速訓練,初始學習率為0.02。
在使用相同比例的有標注數據,訓練周期相同的條件下,對Cityscapes 城市街景數據集進行語義分割的性能測試,計算各種模型的預測性能。我們對以下幾種網絡模型進行測試對比:
(1)Baseline 為以Imagenet 數據集上預訓練后的Resnet-50作為骨干網絡,使用DeeplabV3+的分割頭在所有有標注訓練集圖像上進行訓練和測試得到的結果。
(2)ClassMix在無標注數據中采樣兩張圖像,分別記為A和B,使用分割模型分別進行預測,在A 的預測結果中通過argmax 生成預測結果,隨機選取一般預測標簽作為Mask,將A 圖中區(qū)域合并到B圖中。
(3)CutMix-Seg使用同數據集中其他圖像快剪切粘貼到訓練樣本上,同時真實標簽也成比例地疊加到圖像塊區(qū)域。
(4)SDA使用了優(yōu)化的強增強方式,利用設計歸一化層的方式防止特征偏移。
為了證明本文提出的DA(Dynamic Adaption)模塊的有效性,同時在數據集上進行了消融實驗,結果如圖3所示。第一列表明是否加入DA 模塊,第二列為其在每個語義類別上的平均交并比指標,用于衡量分割模型的準確度。
圖3 分割結果可視化
從表1可以看出,在實驗結果中,相較于不添加DA 模塊的算法,平均交并比指標提升了1.85%,這證明了模塊的有效性。
表1 在Cityscapes數據集上的消融實驗結果對比
各種網絡模型的預測結果如表2所示。
表2 不同模型的分割結果對比
從表2 可以看出,本文方法在Cityscape 數據集上的評估指標顯著優(yōu)于其他對比方法,平均交并比指標最多提升了12.43%。
本文提出了一種面向自動駕駛場景的基于動態(tài)適應策略的半監(jiān)督語義分割模型,模型同時使用有標注和無標注數據對網絡進行訓練,提高了算法在實際落地過程中的可行性;在交叉?zhèn)螛撕灥挠柧氝^程中,利用針對應用場景很可能遇到的標簽噪聲問題對損失函數進行優(yōu)化,引入了對抗噪聲的反向交叉熵損失函數項,以改善網絡性能表現;通過使用平行的雙網絡結構,提升了網絡特征提取部分對于數據集圖片的特征提取。與現有方法相比,本文的方法提升了分割結果準確率。