標籤:line 基礎 分割 貴的 注意力 通道 方式 穿戴式 展望
魏秀參
連結:https://zhuanlan.zhihu.com/p/21824299
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
說起特斯拉,大家可能立馬會想到今年5月份發生在特斯拉Model S自動駕駛上的一宗奪命車禍。初步的調查表明,在強烈的日照條件下,駕駛員和自動駕駛系統都未能注意到牽引式挂車的白色車身,因此未能及時啟動刹車系統。而由於牽引式挂車正在橫穿公路,且車身較高,這一特殊情況導致Model S從挂車底部通過時,其前擋風玻璃與挂車底部發生撞擊,導致駕駛員不幸遇難。
無專屬偶,8月8日美國密蘇里州的一名男子、特斯拉Model X車主約書亞·尼利(Joshua Neally)在上班途中突發肺栓塞。在Model X的Autopilot自動駕駛功能的協助下,他安全抵達了醫院。這“一抑一揚”著實讓人回味無窮,略有些“敗也蕭何,成也蕭何”之意。
好奇的讀者一定會有疑問:這“一成一敗”背後的原理到底是什嗎?是自動駕駛系統中的哪個部分發生了失誤而造成車禍?又是哪部分技術支撐了自動駕駛過程呢?
今天,我們就來談談自動駕駛系統中的一項重要核心技術——映像語義分割(Semantic image segmentation)。映像語義分割作為電腦視覺(Computer vision)中映像理解(Image understanding)的重要一環,不僅在工業界的需求日益凸顯,同時語義分割也是當下學術界的研究熱點之一。
什麼是映像語義分割?
映像語義分割可以說是映像理解的基石性技術,在自動駕駛系統(具體為街景識別與理解)、無人機應用(著陸點判斷)以及穿戴式裝置應用中舉足輕重。
我們都知道,映像是由許多像素(Pixel)組成,而「語義分割」顧名思義就是將像素按照映像中表達語義含義的不同進行分組(Grouping)/分割(Segmentation)。取自映像分割領域的標準資料集之一PASCAL VOC。其中,左圖為原始映像,右圖為分割任務的真實標記(Ground truth):紅色地區表示語義為“person”的映像像素地區,藍綠色代表“motorbike”語義地區,黑色表示“background”,白色(邊)則表示未標記地區。顯然,在映像語義分割任務中,其輸入為一張的三通道彩色映像,輸出則是對應的一個矩陣,矩陣的每一個元素表明了原圖中對應位置像素所表示的語義類別(Semantic label)。因此,映像語義分割也稱為“映像語義標註”(Image semantic labeling)、“像素語義標註”(Semantic pixel labeling)或“像素語義分組”(Semantic pixel grouping)。
從和題圖中,大家可以明顯看出映像語義分割任務的痛點便在於這“語義”二字。在真實映像中,表達某一語義的同一物體常由不同組件組成(如,building,motorbike,person等),同時這些部分往往有著不同的顏色、紋理甚至亮度(如building),這給映像語義的精確分割帶來了困難和挑戰。
前DL時代的語義分割從最簡單的像素層級“閾值法”(Thresholding methods)、基於像素聚類的分割方法(Clustering-based segmentation methods)到“圖劃分”的分割方法(Graph partitioning segmentation methods),在深度學習(Deep learning, DL)“一統江湖”之前,映像語義分割方面的工作可謂“百花齊放”。在此,我們僅以“Normalized cut” [1]和“Grab cut” [2]這兩個基於圖劃分的經典分割方法為例,介紹一下前DL時代語義分割方面的研究。
- Normalized cut (N-cut)方法是基於圖劃分(Graph partitioning)的語義分割方法中最著名的方法之一,於2000年Jianbo Shi和Jitendra Malik發表於相關領域頂級期刊TPAMI。通常,傳統基於圖劃分的語義分割方法都是將映像抽象為圖(Graph)的形式(為圖節點,為圖的邊),然後藉助圖理論(Graph theory)中的理論和演算法進行映像的語義分割。常用的方法為經典的最小割演算法(Min-cut algorithm)。不過,在邊的權重計算時,經典min-cut演算法只考慮了局部資訊。如所示,以二分圖為例(將分為不相交的,兩部分),若只考慮局部資訊,那麼分離出一個點顯然是一個min-cut,因此圖劃分的結果便是類似或這樣離群點,而從全域來看,實際想分成的組卻是左右兩大部分。
針對這一情形,N-cut則提出了一種考慮全域資訊的方法來進行圖劃分(Graph partitioning),即,將兩個分割部分,與全圖節點的串連權重(和)考慮進去:
.
如此一來,在離群點劃分中,中的某一項會接近1,而這樣的圖劃分顯然不能使得是一個較小的值,故達到考慮全域資訊而摒棄劃分離群點的目的。這樣的操作類似於機器學習中特徵的正常化(Normalization)操作,故稱為Normalized cut。N-cut不僅可以處理二類語義分割,而且將二分圖擴充為路(-way)圖劃分即可完成多語義的映像語義分割,如例。
- Grab cut是微軟劍橋研究院於2004年提出的著名互動式映像語義分割方法。與N-cut一樣,grab cut同樣也是基於圖劃分,不過grab cut是其改進版本,可以看作迭代式的語義分割演算法。Grab cut利用了映像中的紋理(顏色)資訊和邊界(反差)資訊,只要少量的使用者互動操作即可得到比較好的前後背景分割結果。
在Grab cut中,RGB映像的前景和背景分別用一個高斯混合模型(Gaussian mixture model, GMM)來建模。兩個GMM分別用以刻畫某像素屬於前景或背景的機率,每個GMM高斯組件(Gaussian component)個數一般設為。接下來,利用吉布斯能量方程(Gibbs energy function)對整張映像進行全域刻畫,而後迭代求取使得能量方程達到最優值的參數作為兩個GMM的最優參數。GMM確定後,某像素屬於前景或背景的機率就隨之確定下來。
在與使用者互動的過程中,Grab cut提供兩種互動方式:一種以包圍框(Bounding box)為輔助資訊;另一種以塗寫的線條(Scribbled line)作為輔助資訊。以為例,使用者在開始時提供一個包圍框,grab cut預設的認為框中像素中包含主要物體/前景,此後經過迭代圖劃分求解,即可返回扣出的前景結果,可以發現即使是對於背景稍微複雜一些的映像,grab cut仍有不俗表現。
不過,在處理時,grab cut的分割效果則不能令人滿意。此時,需要額外人為的提供更強的輔助資訊:用紅色線條/點標明背景地區,同時用白色線條標明前景地區。在此基礎上,再次運行grab cut演算法求取最優解即可得到較為滿意的語義分割結果。Grab cut雖效果優良,但缺點也非常明顯,一是僅能處理二類語義分割問題,二是需要人為幹預而不能做到完全自動化。
DL時代的語義分割
其實大家不難看出,前DL時代的語義分割工作多是根據映像像素自身的低階視覺資訊(Low-level visual cues)來進行映像分割。由於這樣的方法沒有演算法訓練階段,因此往往計算複雜度不高,但是在較困難的分割任務上(如果不提供人為的輔助資訊),其分割效果並不能令人滿意。
在電腦視覺步入深度學習時代之後,語義分割同樣也進入了全新的發展階段,以全卷積神經網路(Fully convolutional networks,FCN)為代表的一系列基於卷積神經網路“訓練”的語義分割方法相繼提出,屢屢重新整理映像語義分割精度。下面就介紹三種在DL時代語義分割領域的代表性做法。
全卷積神經網路FCN可以說是深度學習在映像語義分割任務上的開創性工作,出自UC Berkeley的Trevor Darrell組,發表於電腦視覺領域頂級會議CVPR 2015,並榮獲best paper honorable mention。
FCN的思想很直觀,即直接進行像素層級端到端(end-to-end)的語義分割,它可以基於主流的深度卷積神經網路模型(CNN)來實現。正所謂“全卷積神經網路”,在FCN中,傳統的全串連層fc6和fc7均是由卷積層實現,而最後的fc8層則被替代為一個21通道(channel)的1x1卷積層,作為網路的最終輸出。之所以有21個通道是因為PASCAL VOC的資料中包含21個類別(20個object類別和一個“background”類別)。為FCN的網路結構,若原圖為,在經過若干堆疊的卷積和池化層操作後可以得到原圖對應的響應張量(Activation tensor),其中,為第層的通道數。可以發現,由於池化層的下採樣作用,使得響應張量的長和寬遠小於原圖的長和寬,這便給像素層級的直接訓練帶來問題。
為瞭解決下採樣帶來的問題,FCN利用雙線性插值將響應張亮的長寬上採樣到原圖大小,另外為了更好的預測映像中的細節部分,FCN還將網路中淺層的響應也考慮進來。具體來說,就是將Pool4和Pool3的響應也拿來,分別作為模型FCN-16s和FCN-8s的輸出,與原來FCN-32s的輸出結合在一起做最終的語義分割預測(如所示)。
是不同層作為輸出的語義分割結果,可以明顯看出,由於池化層的下採樣倍數的不同導致不同的語義分割精細程度。如FCN-32s,由於是FCN的最後一層卷積和池化的輸出,該模型的下採樣倍數最高,其對應的語義分割結果最為粗略;而FCN-8s則因下採樣倍數較小可以取得較為精細的分割結果。
FCN的一個不足之處在於,由於池化層的存在,響應張量的大小(長和寬)越來越小,但是FCN的設計初衷則需要和輸入大小一致的輸出,因此FCN做了上採樣。但是上採樣並不能將丟失的資訊全部無損地找回來。
對此,dilated convolution是一種很好的解決方案——既然池化的下採樣操作會帶來資訊損失,那麼就把池化層去掉。但是池化層去掉隨之帶來的是網路各層的感受野(Receptive field)變小,這樣會降低整個模型的預測精度。Dilated convolution的主要貢獻就是,如何在去掉池化下採樣操作的同時,而不降低網路的感受野。
以的卷積核為例,傳統卷積核在做卷積操作時,是將卷積核與輸入張量中“連續”的的patch逐點相乘再求和(如a,紅色圓點為卷積核對應的輸入“像素”,綠色為其在原輸入中的感知野)。而dilated convolution中的卷積核則是將輸入張量的patch隔一定的像素進行卷積運算。如b所示,在去掉一層池化層後,需要在去掉的池化層後將傳統卷積層換做一個“dilation=2”的dilated convolution層,此時卷積核將輸入張量每隔一個“像素”的位置作為輸入patch進行卷積計算,可以發現這時對應到原輸入的感知野已經擴大(dilate)為;同理,如果再去掉一個池化層,就要將其之後的卷積層換成“dilation=4”的dilated convolution層,c所示。這樣一來,即使去掉池化層也能保證網路的感受野,從而確保映像語義分割的精度。
從下面的幾個映像語義分割可以看出,在使用了dilated convolution這一技術後可以大幅提高語義類別的辨識度以及分割細節的精細度。
當下許多以深度學習為架構的映像語義分割工作都是用了條件隨機場(Conditional random field,CRF)作為最後的後處理操作來對語義預測結果進行最佳化。
一般來講,CRF將映像中每個像素點所屬的類別都看作一個變數,然後考慮任意兩個變數之間的關係,建立一個完全圖(如所示)。
在全連結的CRF模型中,對應的能量函數為:
其中是一元項,表示像素對應的語義類別,其類別可以由FCN或者其他語義分割模型的預測結果得到;而第二項為二元項,二元項可將像素之間的語義聯絡/關係考慮進去。例如,“天空”和“鳥”這樣的像素在物理空間是相鄰的機率,應該要比“天空”和“魚”這樣像素的相鄰機率大。最後通過對CRF能量函數的最佳化求解,得到對FCN的映像語義預測結果進行最佳化,得到最終的語義分割結果。值得一提的是,已經有工作[5]將原本與深度模型訓練割裂開的CRF過程嵌入到神經網路內部,即,將FCN+CRF的過程整合到一個端到端的系統中,這樣做的好處是CRF最後預測結果的能量函數可以直接用來指導FCN模型參數的訓練,而取得更好的映像語義分割結果。
展望
俗話說,“沒有免費的午餐”(“No free lunch”)。基於深度學習的映像語義分割技術雖然可以取得相比傳統方法突飛猛進的分割效果,但是其對資料標註的要求過高:不僅需要海量映像資料,同時這些映像還需提供精確到像素層級的標記資訊(Semantic labels)。因此,越來越多的研究者開始將注意力轉移到弱監督(Weakly-supervised)條件下的映像語義分割問題上。在這類問題中,映像僅需提供映像層級標註(如,有“人”,有“車”,無“電視”)而不需要昂貴的像素層級資訊即可取得與現有方法可比的語義分割精度。
另外,樣本層級(Instance level)的映像語義分割問題也同樣熱門。該類問題不僅需要對不同語義物體進行映像分割,同時還要求對同一語義的不同個體進行分割(例如需要對圖中出現的九把椅子的像素用不同顏色分別標示出來)。
最後,基於視頻的前景/物體分割(Video segmentation)也是今後電腦視覺語義分割領域的新熱點之一,這一設定其實更加貼合自動駕駛系統的真實應用環境。
(首發於機器之心公眾號,連結請戳:專欄 | 從特斯拉到電腦視覺之「映像語義分割」)
魏秀參,謝晨偉
References:
[1] Jianbo Shi and Jitendra Malik. Normalized Cuts and Image Segmentation, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 22, No. 8, 2000.
[2] Carsten Rother, Vladimir Kolmogorov and Andrew Blake. "GrabCut"--Interactive Foreground Extraction using Iterated Graph Cuts, ACM Transactions on Graphics, 2004.
[3] Jonathan Long, Evan Shelhamer and Trevor Darrell. Fully Convolutional Networks for Semantic Segmentation. IEEE Conference on Computer Vision and Pattern Recognition, 2015.
[4] Fisher Yu and Vladlen Koltun. Multi-scale Context Aggregation by Dilated Convolutions. International Conference on Representation Learning, 2016.
[5] Shuai Zheng, Sadeep Jayasumana, Bernardino Romera-Paredes, Vibhav Vineet, Zhizhong Su, Dalong Du, Chang Huang and Philip H. S. Torr. Conditional Random Fields as Recurrent Neural Networks. International Conference on Computer Vision, 2015.
從特斯拉到電腦視覺之「映像語義分割」