說起自動駕駛技術(shù)的最強王者,語義分割技術(shù)挺直了腰板!
原創(chuàng)【51CTO.com原創(chuàng)稿件】
看了就懂!
什么是語義分割技術(shù)?
近年來,隨著深度學習技術(shù)的快速發(fā)展,計算機視覺領(lǐng)域中的許多使用傳統(tǒng)方法難以解決的任務(wù)都取得了巨大的突破。特別是在圖像語義分割領(lǐng)域,深度學習技術(shù)的作用表現(xiàn)尤為突出。圖像語義分割作為計算機視覺中一項基礎(chǔ)且具有挑戰(zhàn)性的任務(wù),其目標是將對應的語義標簽分配給圖像中的每個像素,其結(jié)果是將給定圖像劃分為若干視覺上有意義或感興趣的區(qū)域,以利于后續(xù)的圖像分析和視覺理解。
下圖是在 Cityscapes 數(shù)據(jù)集上的圖像原圖和其對應的 ground truth。可以看到,圖像分割任務(wù)要求對原圖的每一個像素進行逐像素預測其類別。由于需要逐像素預測該物體所屬類別,這對深度學習模型提出了巨大的挑戰(zhàn),比如部分目標尺寸較小、難以識別,部分目標大部分被遮擋,導致其辨識度降低等。
盡管存在著上述各種各樣的困難,語義分割技術(shù)仍因其巨大的不可替代的價值,成為自動駕駛技術(shù)棧中不可或缺的一部分。自動駕駛技術(shù)中的許多地方都需要使用到語義分割技術(shù)。比如車道線識別中,毫末智行的感知算法工程師們就使用了語義分割技術(shù)來識別車道線的位置和輪廓。如下圖所示,使用語義分割得到的車道線,相較于其他方法,有更加清晰的邊緣,準確率和召回率也高很多。
車道線語義分割的結(jié)果展示
左邊是分割后的結(jié)果,右邊是原圖
紅色的區(qū)域就是分割算法分割出來的車道線的位置
三類“流量小生”
常見的語義分割網(wǎng)絡(luò)
從 FCN 算法、UNet 算法,到適用于自動駕駛?cè)蝿?wù)的 STDC 算法,接下來為大家詳細的介紹分割技術(shù)中最熱門的的三類“流量”擔當。
2.1 FCN 算法
(Fully Convolutional Networks for Semantic Segmentation)
2012年,AlexNet 以超越第二名(特征點匹配法+SVM)10個點的精度宣告深度學習時代的來臨。隨后人們開始嘗試使用類似 AlexNet 的方法進行圖像語義分割,但是由于 AlexNet 是對圖像整體進行分類的,無法做到像素級的分類。而究竟怎么做到對圖像中的每一個像素都進行分類預測,在那個時候仍然是一個世界難題。在當時,無數(shù)的科研人員嘗試將圖片分為若干個 Patch 后送入網(wǎng)絡(luò)中學習,希望網(wǎng)絡(luò)能夠?qū)?Patch 進行分類,但最終效果都不理想。直到2015年,Jonathan Long 發(fā)表了《Fully Convolutional Networks for Semantic Segmentation》。至此,圖像語義分割的天空迎來了第一縷陽光。
FCN 算法的主要流程如下圖所示,主要原理是讓圖片經(jīng)過不同的卷積層和池化層,從而提取到圖片的特征。每一層卷積就像一個放大鏡一樣去遍歷圖片的每一個像素,每遍歷一個位置,放大鏡就會輸出對應位置的物體類別。舉個簡單的例子,用一個3x3的卷積核和圖片做卷積,就可以簡單的理解為用一個放大鏡去遍歷圖片的每一個位置,放大鏡每次看一個位置后,就輸出對應位置的類別。
FCN 算法是圖像分割技術(shù)中里程碑式的一站,但是正如其他行業(yè)的里程碑一樣,F(xiàn)CN 只是起點。其仍然有一定的缺點。具體包括以下兩點:
- FCN 算法的結(jié)果仍然不夠精細;
- FCN 只是逐像素預測,而沒有考慮像素間的關(guān)系。
2.2 UNet 算法
(UNet++: A Nested U-Net Architecture for Medical Image Segmentation)
2015 年,在 FCN 的基礎(chǔ)之上,Olaf Ronneberge 等人提出了一種被稱為 U-Net 的 U 型網(wǎng)絡(luò)架構(gòu),該算法在醫(yī)學圖像分割、遙感分割等分割任務(wù)中獲得了廣泛應用。該網(wǎng)絡(luò)的特征在于,編碼器由一系列的卷積和最大匯合層構(gòu)成,解碼端由鏡像對稱的卷積層和轉(zhuǎn)置卷積序列組成。由于分割網(wǎng)絡(luò)結(jié)構(gòu)中不同的卷積層對特征的抽象層次不同,為了產(chǎn)生高質(zhì)量的分割結(jié)果,因此 U-Net 結(jié)構(gòu)使用跳層連接將編碼端的特征圖鏡像堆疊到解碼端對應層級,如圖所示。
U-Net 的結(jié)構(gòu)特點為:編碼器能夠提取深層的圖像語義信息,解碼器通過跳層連接機制來連接位置信息豐富的淺層特征圖和語義特征信息豐富的深層特征圖,然后進行逐層上采樣。這種逐層上采樣和特征融合的方式有利于將深層的語義信息往淺層傳遞,同時跳層連接促進了網(wǎng)絡(luò)收斂。
U-Net 算法是語義分割技術(shù)中的第二個里程碑式的算法。后續(xù)的許多算法都是基于 U-Net 算法進行改進。其優(yōu)點是精度很高,但是其速度較慢,難以滿足自動駕駛的要求。
2.3 適用于自動駕駛?cè)蝿?wù)的 STDC 算法
(Rethinking BiSeNet For Real-time Semantic Segmentation)
U-Net 算法雖然具有精度高的特點,但是其速度并不能滿足自動駕駛的要求。為了解決速度不夠的問題,STDC 算法應運而生。
STDC 算法的基本原理如下圖所示。
STDC 算法采用了類似 FCN 算法的結(jié)構(gòu),其去掉了 U-Net 算法復雜的 decoder 結(jié)構(gòu)。但同時在網(wǎng)絡(luò)下采樣的過程中,利用 ARM 模塊不斷的去融合來自不同層的特征圖的信息,因此也避免了 FCN 算法只考慮單個像素關(guān)系的缺點。可以說,STDC 算法很好的做到了速度與精度的平衡,其可以滿足自動駕駛系統(tǒng)實時性的要求。
更接地氣?
語義分割的未來
雖然語義分割技術(shù)已經(jīng)取得了許多的進展,但其距離實用仍然或多或少存在一定的差距。我們認為,語義分割技術(shù)在未來的發(fā)展趨勢主要包括以下幾點:
- 更加清晰的邊緣分割結(jié)果。目前各大主流語義分割技術(shù)對邊緣的分割都存在分割不夠清晰的問題,這對實際應用會造成很大影響。
- 與頻率域相結(jié)合。一個更加魯棒的表示會極大提高模型的表現(xiàn),多項研究發(fā)現(xiàn),把圖像從空間域轉(zhuǎn)換到頻率域的表達會提高分割模型的表現(xiàn)同時降低模型的復雜度。
- 使用 Transformer。Transformer 技術(shù)最近在計算機視覺的各項任務(wù)中一枝獨秀,在分割領(lǐng)域中更是如此。這主要得益于 transformer 的 self-attention 模塊可以兼顧全局感受野和局部感受野的信息,這對于分割任務(wù)而言是及其重要的。可以預見,Transformer 模型將帶領(lǐng)語義分割領(lǐng)域邁上新的臺階。
本期的干貨分享就到這里啦。關(guān)于語義分割技術(shù)對自動駕駛技術(shù),大家都“拿捏”了嗎?下期我們會繼續(xù)為大家?guī)砀鼌柡Φ淖詣玉{駛知識,卷起來!
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】