與其他目標檢測問題相比,自動駕駛本身有著特殊性。那么,在自動駕駛的訓練中,沿用一般的數據增強手段是否有較好的效果呢?本文介紹分享DeepScale深度學習軟件工程師Matthew Cooper在針對該問題的一些實驗和探討。
DeepScale 從2019年起由于被特斯拉收購的消息而備受關注,其旨在幫助汽車制造商使用大多數汽車中標準的低功率處理器來提供非常精確的計算機視覺,專注于開發自動駕駛汽車的深度神經網絡。而在深度神經網絡應用中,數據可以通過多種方式進行擴充,以避免過度擬合,從而提高模型檢測性能。
圖像增強實驗與結果
為了改善目標檢測性能,在構建數據增強器時,經常會使用一種稱為Cutout的正則化技術。簡而言之,Cutout會在圖像中使隨機放置的正方形變黑。
Cutout應用于CIFAR-10 dataset中的圖像
一般情況下,Cutout可以顯著提高視覺應用的準確性。但是,當將其應用于這些數據時,我們的檢測mmAP降低了。我們搜索了這個問題后驚訝地發現,我們使用的所有增強器都極大地損害了檢測性能。
在探索的開始,我們使用了Filp(翻轉)、Crop(裁剪)和權重衰減正則化,這些都是用于目標檢測的常用方案。通過研究,我們發現這些數據在我們的數據集上均會損害檢測性能。而刪除這些增強器可使網絡的初始性能提高13%mmAP 。(mmAP是COCO目標檢測挑戰中的默認評估指標)
目標檢測常用方案的效果
通常,我們希望使用權重衰減、Flip和Crop來將性能提高幾個點,如上圖中虛線所示。但是,在這次的案例中,這些增強器分別對mmAP造成8.4%、0.1%和4.5%的損害。刪除所有增強器可將整體性能提升13%。
那么,為什么這些標準的增強器會損害檢測性能呢?為了解釋這些,我們要從根本原理來重新審視圖像增強的想法。
為什么使用數據增強?
過度擬合是深度神經網絡的常見問題。神經網絡非常靈活;但是,考慮到常見數據集的大小,它們通常會被過度參數化。這將導致一個模型,該模型學習數據集中的“噪聲”而不是“信號”。換句話說,他們可以記住數據集的意外屬性,而不是學習有意義的常規信息。結果,當提供新的實際數據時,過擬合網絡無法得到正確的結果。
為了解決過度擬合問題,我們經常選擇擴充訓練數據。擴充圖像數據的常用方法包括水平隨機翻轉圖像(Flip)、改變其色相(色相抖動)或裁剪隨機部分(Crop)。
原始長頸鹿圖像(左上方)、Flip(右上方)、色相抖動(左下方)、Crop(右下方)。雖然進行了不同的變換,但每個圖像依然都是長頸鹿。
諸如Flip、色相抖動和Crop之類的增強器有助于消除過度擬合,因為它們提高了網絡的泛化能力。如果訓練網絡以識別面向右的長頸鹿并在面向左的長頸鹿的翻轉圖像上進行訓練,則網絡將知道長頸鹿是長頸鹿,而不管朝向如何。這就使得網絡正確學習有關長頸鹿的相關信息(如棕色斑點毛皮),也能正確地排除一般信息。
諸如COCO目標檢測挑戰之類的公共數據集一般具有泛化的需求。由于這些數據集包含從多種來源聚合而來的圖像,這些圖像是在不同條件下從不同的相機拍攝的,因此網絡需要概括出許多因素才能發揮出色的性能。網絡需要應對的一些變量是:光、比例、攝像機固有特性(如焦距,主點偏移和軸偏斜)以及攝像機外部特性(如位置、角度和旋轉)。通過使用數據增強器,我們可以訓練網絡來概括所有這些變量,就像在上一個示例中我們能夠概括長頸鹿的方向一樣。
來自COCO數據集的這些示例是使用不同的相機,不同的角度,比例和姿勢拍攝的,因此有必要學習這些屬性的不變性以在COCO目標檢測中表現良好。
為什么自動駕駛汽車的數據不一樣?
與來自COCO和其他公共數據集的數據不同,自動駕駛汽車收集的數據非常一致。
汽車通常相對于其他車輛和道路物體具有一致的姿勢。此外,所有圖像都來自相同的攝像機,安裝在一樣的位置和角度。這意味著同一系統收集的所有數據都具有一致的相機屬性,例如上面提到的外部特征和固有特征。我們可以使用與量產時相同的傳感器系統來收集訓練數據,因此自動駕駛汽車中的神經網絡不必擔心這些屬性的泛化。因此,適應系統的特定攝像機屬性實際上可能是有益的。
這些來自Berkeley Deep Drive數據集中每個汽車的示例都是從同一攝像機以相同的角度和姿勢拍攝的。它們還具有相同的偽影,例如擋風玻璃反射和每幀右下角的物體。
由于自動駕駛汽車數據具有一致性,這導致使用一般數據增強器(例如Flip和Crop)對性能的損害超過其幫助。原因很簡單:翻轉訓練圖像是沒有意義的,因為攝像頭將始終處于相同角度,并且汽車將始終位于道路的右側(因國家而已)。汽車幾乎永遠不會在道路的左側,攝像頭也永遠不會翻轉角度,因此對翻轉數據進行訓練會導致模型過度包含一些不會發生的場景。同樣,裁剪具有移動和縮放原始圖像的效果。由于汽車的攝像頭將始終位于相同位置,因此這種移動和縮放會導致網絡會浪費其對不相關場景的預測能力。
如何改進?
現在,我們理解了自動駕駛汽車數據具有一致性,導致了之前那些增強器不太理想的結果。接下來,我們來看看是否可以利用這種一致性來進一步提高性能。
在引入任何新的擴充器之前,我檢查了我們的數據集以查看是否可以在數據級別進行任何改進。我們的訓練集最初包括來自兩個廣角相機和一個帶變焦鏡頭的相機的圖像。變焦鏡頭產生類似于Crop的縮放和移動效果。在測試時,我們僅使用廣角相機,因此對縮放圖像進行訓練會使得網絡過于籠統。我發現,從訓練集中刪除縮放圖像可以大大提高mmAP。這證實了我們的假設,即訓練集和測試集之間的一致性對于性能至關重要。
刪除原始圖像增強器后,我們在新的更一致的新數據集上進行了訓練和測試。相對于原始方案,mmAP額外提高了10.5%。
之后,我們考慮了可以在不更改相機屬性的情況下更改訓練數據的增強器。我在該項目開始時實施的Cutout增強似乎是一個不錯的選擇。與Flip和Crop不同,Cutout不會以嚴重影響相機屬性的方式(即通過翻轉,移動或縮放)來更改輸入。取而代之的是,Cutout可以模擬障礙物。障礙物在現實世界的駕駛數據中很常見,而障礙物的不變性可以幫助網絡檢測部分被遮擋的物體。
障礙物在現實世界的駕駛數據中很常見。在此圖像中,兩個行人擋住了我們對警車的視野,而大包擋住了我們對行人的視野。
色相抖動(Hue jitter)還可以在不影響相機屬性的情況下幫助泛化。色相抖動只是將輸入的色相移動一個隨機量。這有助于網絡對顏色進行泛化(例如,紅色汽車和藍色汽車都應被檢測為汽車)。不出所料,Cutout和色相抖動都改善了在新數據集上的性能。
向新數據集中添加Cutout和色相抖動增強,相對mmAP分別增加了1%和0.2%。這比原始方案(即舊數據集上的Flip、Crop和權重衰減)提高了24.7%。
值得注意的是,這些增強技巧不適用于包含來自不同相機類型、不同角度和比例的圖像數據集。為了證明這一點,我們通過隨機翻轉和剪裁創建了具有多種相機屬性的測試集。不出所料,在更通用的數據集上,我們新的增強方案的性能比原始的一般增強器差。
當應用于具有一致性的自動駕駛汽車數據時,我們的新增強方案(Cutout和色相抖動)與一般增強方案(Flip、Crop和權重衰減)相比,mmAP提升了11.7%。但是,當我們將其應用到更多樣化的數據時,與一般方案相比,其結果會下降24.3%。
最后
Flip和Crop等增強方式在很多研究工作上取得了廣泛的成功,以至于我們從沒想過要質疑它們對我們特定問題的適用性。當我們從根本原理重新審視增強概念時,很明顯我們可以做得更好。機器學習領域有許多類似的“通用最佳實踐”,例如如何設置學習率,使用什么優化器以及如何初始化模型。對于機器學習工程師來說,不斷重新審視我們關于如何訓練模型的假設非常重要,尤其是在針對特定應用進行構建時。學術界尚未對此類問題進行探討,而通過以嶄新的眼光看它們,我們可以極大地改善機器學習的實際應用。
責任編輯:PSY
-
數據
+關注
關注
8文章
7089瀏覽量
89247 -
自動駕駛
+關注
關注
784文章
13880瀏覽量
166660 -
自動駕駛汽車
+關注
關注
4文章
376瀏覽量
40847
發布評論請先 登錄
相關推薦
評論