侵權(quán)投訴
訂閱
糾錯
加入自媒體

關于數(shù)據(jù)增強在自動駕駛中的探討

2020-10-27 09:06
智車科技IV
關注

本文來源:智車科技

導讀

與其他目標檢測問題相比,自動駕駛本身有著特殊性。那么,在自動駕駛的訓練中,沿用一般的數(shù)據(jù)增強手段是否有較好的效果呢?本文介紹分享DeepScale深度學習軟件工程師Matthew Cooper在針對該問題的一些實驗和探討。

DeepScale 從2019年起由于被特斯拉收購的消息而備受關注,其旨在幫助汽車制造商使用大多數(shù)汽車中標準的低功率處理器來提供非常精確的計算機視覺,專注于開發(fā)自動駕駛汽車的深度神經(jīng)網(wǎng)絡。而在深度神經(jīng)網(wǎng)絡應用中,數(shù)據(jù)可以通過多種方式進行擴充,以避免過度擬合,從而提高模型檢測性能。

圖像增強實驗與結(jié)果

為了改善目標檢測性能,在構(gòu)建數(shù)據(jù)增強器時,經(jīng)常會使用一種稱為Cutout的正則化技術(shù)。簡而言之,Cutout會在圖像中使隨機放置的正方形變黑。

Cutout應用于CIFAR-10 dataset中的圖像

一般情況下,Cutout可以顯著提高視覺應用的準確性。但是,當將其應用于這些數(shù)據(jù)時,我們的檢測mmAP降低了。我們搜索了這個問題后驚訝地發(fā)現(xiàn),我們使用的所有增強器都極大地損害了檢測性能。

在探索的開始,我們使用了Filp(翻轉(zhuǎn))、Crop(裁剪)和權(quán)重衰減正則化,這些都是用于目標檢測的常用方案。通過研究,我們發(fā)現(xiàn)這些數(shù)據(jù)在我們的數(shù)據(jù)集上均會損害檢測性能。而刪除這些增強器可使網(wǎng)絡的初始性能提高13%mmAP 。(mmAP是COCO目標檢測挑戰(zhàn)中的默認評估指標)

目標檢測常用方案的效果

通常,我們希望使用權(quán)重衰減、Flip和Crop來將性能提高幾個點,如上圖中虛線所示。但是,在這次的案例中,這些增強器分別對mmAP造成8.4%、0.1%和4.5%的損害。刪除所有增強器可將整體性能提升13%。

那么,為什么這些標準的增強器會損害檢測性能呢?為了解釋這些,我們要從根本原理來重新審視圖像增強的想法。

為什么使用數(shù)據(jù)增強?

過度擬合是深度神經(jīng)網(wǎng)絡的常見問題。神經(jīng)網(wǎng)絡非常靈活;但是,考慮到常見數(shù)據(jù)集的大小,它們通常會被過度參數(shù)化。這將導致一個模型,該模型學習數(shù)據(jù)集中的“噪聲”而不是“信號”。換句話說,他們可以記住數(shù)據(jù)集的意外屬性,而不是學習有意義的常規(guī)信息。結(jié)果,當提供新的實際數(shù)據(jù)時,過擬合網(wǎng)絡無法得到正確的結(jié)果。

為了解決過度擬合問題,我們經(jīng)常選擇擴充訓練數(shù)據(jù)。擴充圖像數(shù)據(jù)的常用方法包括水平隨機翻轉(zhuǎn)圖像(Flip)、改變其色相(色相抖動)或裁剪隨機部分(Crop)。

原始長頸鹿圖像(左上方)、Flip(右上方)、色相抖動(左下方)、Crop(右下方)。雖然進行了不同的變換,但每個圖像依然都是長頸鹿。

諸如Flip、色相抖動和Crop之類的增強器有助于消除過度擬合,因為它們提高了網(wǎng)絡的泛化能力。如果訓練網(wǎng)絡以識別面向右的長頸鹿并在面向左的長頸鹿的翻轉(zhuǎn)圖像上進行訓練,則網(wǎng)絡將知道長頸鹿是長頸鹿,而不管朝向如何。這就使得網(wǎng)絡正確學習有關長頸鹿的相關信息(如棕色斑點毛皮),也能正確地排除一般信息。

諸如COCO目標檢測挑戰(zhàn)之類的公共數(shù)據(jù)集一般具有泛化的需求。由于這些數(shù)據(jù)集包含從多種來源聚合而來的圖像,這些圖像是在不同條件下從不同的相機拍攝的,因此網(wǎng)絡需要概括出許多因素才能發(fā)揮出色的性能。網(wǎng)絡需要應對的一些變量是:光、比例、攝像機固有特性(如焦距,主點偏移和軸偏斜)以及攝像機外部特性(如位置、角度和旋轉(zhuǎn))。通過使用數(shù)據(jù)增強器,我們可以訓練網(wǎng)絡來概括所有這些變量,就像在上一個示例中我們能夠概括長頸鹿的方向一樣。

來自COCO數(shù)據(jù)集的這些示例是使用不同的相機,不同的角度,比例和姿勢拍攝的,因此有必要學習這些屬性的不變性以在COCO目標檢測中表現(xiàn)良好。

為什么自動駕駛汽車的數(shù)據(jù)不一樣?

與來自COCO和其他公共數(shù)據(jù)集的數(shù)據(jù)不同,自動駕駛汽車收集的數(shù)據(jù)非常一致。

汽車通常相對于其他車輛和道路物體具有一致的姿勢。此外,所有圖像都來自相同的攝像機,安裝在一樣的位置和角度。這意味著同一系統(tǒng)收集的所有數(shù)據(jù)都具有一致的相機屬性,例如上面提到的外部特征和固有特征。我們可以使用與量產(chǎn)時相同的傳感器系統(tǒng)來收集訓練數(shù)據(jù),因此自動駕駛汽車中的神經(jīng)網(wǎng)絡不必擔心這些屬性的泛化。因此,適應系統(tǒng)的特定攝像機屬性實際上可能是有益的。

這些來自Berkeley Deep Drive數(shù)據(jù)集中每個汽車的示例都是從同一攝像機以相同的角度和姿勢拍攝的。它們還具有相同的偽影,例如擋風玻璃反射和每幀右下角的物體。

由于自動駕駛汽車數(shù)據(jù)具有一致性,這導致使用一般數(shù)據(jù)增強器(例如Flip和Crop)對性能的損害超過其幫助。原因很簡單:翻轉(zhuǎn)訓練圖像是沒有意義的,因為攝像頭將始終處于相同角度,并且汽車將始終位于道路的右側(cè)(因國家而已)。汽車幾乎永遠不會在道路的左側(cè),攝像頭也永遠不會翻轉(zhuǎn)角度,因此對翻轉(zhuǎn)數(shù)據(jù)進行訓練會導致模型過度包含一些不會發(fā)生的場景。同樣,裁剪具有移動和縮放原始圖像的效果。由于汽車的攝像頭將始終位于相同位置,因此這種移動和縮放會導致網(wǎng)絡會浪費其對不相關場景的預測能力。

如何改進?

現(xiàn)在,我們理解了自動駕駛汽車數(shù)據(jù)具有一致性,導致了之前那些增強器不太理想的結(jié)果。接下來,我們來看看是否可以利用這種一致性來進一步提高性能。

在引入任何新的擴充器之前,我檢查了我們的數(shù)據(jù)集以查看是否可以在數(shù)據(jù)級別進行任何改進。我們的訓練集最初包括來自兩個廣角相機和一個帶變焦鏡頭的相機的圖像。變焦鏡頭產(chǎn)生類似于Crop的縮放和移動效果。在測試時,我們僅使用廣角相機,因此對縮放圖像進行訓練會使得網(wǎng)絡過于籠統(tǒng)。我發(fā)現(xiàn),從訓練集中刪除縮放圖像可以大大提高mmAP。這證實了我們的假設,即訓練集和測試集之間的一致性對于性能至關重要。

刪除原始圖像增強器后,我們在新的更一致的新數(shù)據(jù)集上進行了訓練和測試。相對于原始方案,mmAP額外提高了10.5%。

之后,我們考慮了可以在不更改相機屬性的情況下更改訓練數(shù)據(jù)的增強器。我在該項目開始時實施的Cutout增強似乎是一個不錯的選擇。與Flip和Crop不同,Cutout不會以嚴重影響相機屬性的方式(即通過翻轉(zhuǎn),移動或縮放)來更改輸入。取而代之的是,Cutout可以模擬障礙物。障礙物在現(xiàn)實世界的駕駛數(shù)據(jù)中很常見,而障礙物的不變性可以幫助網(wǎng)絡檢測部分被遮擋的物體。

障礙物在現(xiàn)實世界的駕駛數(shù)據(jù)中很常見。在此圖像中,兩個行人擋住了我們對警車的視野,而大包擋住了我們對行人的視野。

色相抖動(Hue jitter)還可以在不影響相機屬性的情況下幫助泛化。色相抖動只是將輸入的色相移動一個隨機量。這有助于網(wǎng)絡對顏色進行泛化(例如,紅色汽車和藍色汽車都應被檢測為汽車)。不出所料,Cutout和色相抖動都改善了在新數(shù)據(jù)集上的性能。

向新數(shù)據(jù)集中添加Cutout和色相抖動增強,相對mmAP分別增加了1%和0.2%。這比原始方案(即舊數(shù)據(jù)集上的Flip、Crop和權(quán)重衰減)提高了24.7%。

值得注意的是,這些增強技巧不適用于包含來自不同相機類型、不同角度和比例的圖像數(shù)據(jù)集。為了證明這一點,我們通過隨機翻轉(zhuǎn)和剪裁創(chuàng)建了具有多種相機屬性的測試集。不出所料,在更通用的數(shù)據(jù)集上,我們新的增強方案的性能比原始的一般增強器差。

當應用于具有一致性的自動駕駛汽車數(shù)據(jù)時,我們的新增強方案(Cutout和色相抖動)與一般增強方案(Flip、Crop和權(quán)重衰減)相比,mmAP提升了11.7%。但是,當我們將其應用到更多樣化的數(shù)據(jù)時,與一般方案相比,其結(jié)果會下降24.3%。

最后

Flip和Crop等增強方式在很多研究工作上取得了廣泛的成功,以至于我們從沒想過要質(zhì)疑它們對我們特定問題的適用性。當我們從根本原理重新審視增強概念時,很明顯我們可以做得更好。機器學習領域有許多類似的“通用最佳實踐”,例如如何設置學習率,使用什么優(yōu)化器以及如何初始化模型。對于機器學習工程師來說,不斷重新審視我們關于如何訓練模型的假設非常重要,尤其是在針對特定應用進行構(gòu)建時。學術(shù)界尚未對此類問題進行探討,而通過以嶄新的眼光看它們,我們可以極大地改善機器學習的實際應用。

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號