




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于深度學習的圖像分割主講人信息工程學院高政霞老師《實戰深度學習—原理、框架和應用》圖像分割技術是計算機視覺領域的一個重要的研究方向,是圖像語義理解的重要一環。圖像分割是指將圖像分成若干個具有相似性質的區域的過程,從數學的角度來看,圖像分割是將圖像劃分成互不相交的區域的過程。近些年來隨著深度學習技術的逐步深入,圖像分割技術有了突飛猛進的發展,該技術相關的場景物體分割、人體前背景分割、人臉人體語義分析和三維重建等技術已經在無人駕駛、增強現實、安防監控等行業都得到了廣泛的應用。圖像分割技術從算法演進歷程上,大體可分為基于圖論的方法、基于像素聚類的方法和基于深度語義的方法這三大類,圖像分割技術在不同的時期涌現出了一批又一批經典的分割算法。前言第一章第二章第三章第四章基于圖論的方法基于聚類的方法基于深度語義的方法本章總結01基于圖論的方法分割原則就是使劃分后的子圖在內部保持相似度最大,而子圖之間保存最小。把G=(V,E)分成兩個子集B,F,且有B∪F=V,B∩F=??,節點之間的邊的連接權為w(vi,vj),則將圖G劃分為B,F兩部分的代價函數為:圖8-1基于圖論的圖像分割方法基于圖論的代表有NormalizedCut、GraphCut和GrabCut等方法。01基于圖論的方法
此類方法是基于圖論的方法利用圖論領域的理論和方法,將圖像映射為帶權無向圖,把像素視作節點,將圖像分割問題看作是圖的頂點劃分問題,利用最小剪切準則得到圖像的最佳分割。此類方法把圖像分割問題與圖的最小分割問題相關聯,通常的做法是將待分割的圖像映射為帶權無向圖G=(V,E),其中,V={-,…,-}是頂點的集合,E為邊的集合。使得左側公式值(剪切值)最小的劃分(B,F),即為圖G的最優二元劃分,這一劃分準則稱為最小割集準則,如圖8-1所示。想要理解NormalizedCut,需要先理解什么是分割(Cut)與最小化分割(MIN-CUT))。圖8-2最小化分割如圖8-2所示,可以把圖看成一個整體G,把圖分成兩部分的黑色虛線就是最小化分割。最小化分割解決了把權重圖G分成兩部分的任務。但問題來了,如圖8-3所示,想要的結果是中間黑實線表示的分割,但是最小化分割卻切割了邊緣的角。圖8-3有偏差的最小化分割01基于圖論的方法
NormalizedCut使用NormalizedCut進行分割后,得到Cut(A,B),然后分別除以表現頂點集大小的某種量度(如:volA=所有A中頂點集的度之和,含義是A中所有點到圖中所有點的權重的和),也就是式(8-2):通過公式可以很清晰地看到NormalizedCut在追求不同子集間點的權重最小值的同時也追求同一子集間點的權重和最大值。01基于圖論的方法
NormalizedCutGraphCut圖是在普通圖的基礎上多了2個頂點,分別用符號“S”和“T”表示,稱為終端頂點。其他所有的頂點都必須和這2個頂點相連形成邊集合中的一部分,所以GraphCut中有兩種頂點,也有兩種邊。第一種普通頂點對應于圖像中的每個像素。每兩個鄰域頂點的連接就是一條邊,這種邊也叫n-link。除圖像像素外,還有另外兩個終端頂點,叫S源點和T匯點。每個普通頂點和這2個終端頂點之間都有連接,組成第二種邊,這種邊也叫t-link。如圖8-4所示。圖8-4GraphCut的整體架構01基于圖論的方法
GraphCutGraphCut算法利用了圖像的像素灰度信息和區域邊界信息,代價函數構建在全局最優的框架下,保證了分割效果。如圖8-5可知GraphCut算法和GrabCut算法下的分割差異。在Rother等人提出了基于迭代的圖割方法,稱為GrabCut算法。該算法使用高斯混合模型對目標和背景建模,利用了圖像的RGB色彩信息和邊界信息,通過少量的交互操作得到非常好的分割效果。圖8-5GrabCuts的整體架構01基于圖論的方法
GrabCut此案例在Windows10系統的Python3.5.4環境下基于OpenCV的4.0.1版本實現GrabCut前景提取。本案例使用了OpenCV自帶的GrabCut函數進行前景提取。原理是首先用矩形將要選擇的前景區域選定,其中前景區域應該完全包含在矩形框當中。然后算法進行迭代式分割,直到達到效果最佳。1.首先需要導入所需的包或模塊2.加載圖像。3.創建掩模、背景圖和前景圖。4.初始化矩形區域5.插入新維度,將二維矩陣擴充為三維。6.顯示圖片01基于圖論的方法
綜合案例:GrabCut前景提取要完成GrabCut前景提取首先需要導入所需的包或模塊。01基于圖論的方法
綜合案例:GrabCut前景提取然后,加載圖像。03
接著,創建掩模、背景圖和前景圖。可以直接輸入0,1,2,3。bdgModel,fgdModel-算法內部使用的數組.你只需要創建兩個大小為(1,65),數據類型為np.float64的數組。123再初始化矩形區域,這個矩形必須完全包含前景。引用OpenCV自帶的GrabCut函數,傳參,迭代10次。其中,cv2.GC_INIT_WITH_RECT,使用矩陣模式還是蒙板模式。cv2.GC_INIT_WITH_RECT:默認為0,表示框出的矩形圖案。mask中,值為2和0的統一轉化為0,1和3轉化為1。并插入一個新維度,將二維矩陣擴充為三維。01基于圖論的方法
綜合案例:GrabCut前景提取54顯示代碼結果圖如圖8-6所示。圖8-6GrabCuts的前景提取與原圖對比01基于圖論的方法
綜合案例:GrabCut前景提取602基于聚類的方法機器學習中聚類方法解決圖像分割問題的一般步驟為:初始化一個粗糙的聚類;使用迭代的方式將顏色、亮度、紋理等特征相似的像素點聚類到同一超像素,迭代直至收斂,從而得到最終的圖像分割結果。基于像素聚類的代表方法有K-means(K均值)、譜聚類、Meanshift和SLIC等。02基于聚類的方法
分割的一個常觀點是試圖知道數據集中的某部分應自然歸某類。這就是所說的聚類,屬于無監督學習。分級聚類表示針對一個較大的數據集,根據樣本在數據集中的某種關系將它們劃分。聚類是一種方法,它將一個數據集轉化成一堆聚類,聚類包含屬于同一類的數據點。簡單的聚類方法包括分解式聚類和凝聚式聚類兩種。K-means算法是輸入聚類個數K,以及包含N個數據對象的數據庫,輸出滿足方差最小標準K個聚類的一種算法。K-means算法接受輸入量K,然后將N個數據對象劃分為K個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。算法過程如下:02基于聚類的方法
K均值聚類(1)從N個數據文檔(樣本)隨機選取K個數據文檔作為質心(聚類中心);(2)對每個數據文檔測量其到每個質心的距離,并把它歸到最近的質心的類;(3)重新計算已經得到的各個類的質心;(4)迭代(2)~(3)步直至新的質心與原質心相等或小于指定閾值,算法結束。譜聚類(SpectralClustering,SC)是一種基于圖論的聚類方法。將帶權的無向圖劃分為兩個或以上的最優子圖,使子圖內部盡量相似,而子圖間距離盡量較遠,以達到常見的聚類的目的。譜聚類以關聯矩陣為基礎,構建Laplacian矩陣,從而計算出矩陣的特征值和特征向量,接下根據某種規則選取一個或多個特征向量進行聚類分析。但是它面臨兩個亟需解決的難題,一是如何設置構造關聯矩陣所需的高斯核尺度參數,對參數非常敏感;二是直接對Laplacian矩陣進行特征值分解的計算復雜度高達O(n3),時間復雜度和空間復雜度大。這兩個難題制約了傳統譜聚類方法在實際中的應用。對于K-way譜聚類算法,一般分為以下步驟:02基于聚類的方法
譜聚類(1)構建相似度矩陣W;(2)根據相似度矩陣W構建拉普拉斯矩陣L(不同的算法有不同的拉普拉斯矩陣L矩陣);(3)對拉普拉斯矩陣L矩陣進行特征分解,選取特征向量組成特征空間;(4)在特征空間中利用K均值算法,輸出聚類結果。Meanshift算法的原理是在d維空間中,任選一點作為圓心,以h為半徑做圓。圓心和圓內的每個點都構成一個向量。將這些向量進行矢量加法操作,得到的結果就是Meanshift向量。繼續以Meanshift向量的終點為圓心做圓,得到下一個Meanshift向量。通過有限次迭代計算,Meanshift算法一定可以收斂到圖中概率密度最大的位置,即數據分布的穩定點,稱為模點。利用Meanshift做圖像分割,就是把具有相同模點的像素聚類到同一區域的過程,其形式化定義為:其中,xi表示待聚類的樣本點,yk代表點的當前位置,代表點的下一個位置,h表示帶寬。Meanshift算法的穩定性、魯棒性較好,有著廣泛的應用。但是分割時所包含的語義信息較少,分割效果不夠理想,無法有效地控制超像素的數量,且運行速度較慢,不適用于實時處理任務。02基于聚類的方法
MeanshiftSLIC(simplelineariterativeclustering)是Achanta等人2010年提出的一種思想簡單、實現方便的算法,可以將彩色圖像轉化為CIELAB顏色空間和XY坐標下的5維特征向量,然后對5維特征向量構造距離度量標準,對圖像像素進行局部聚類的過程,如圖8-7所示。圖8-7SLIC的整體架構02基于聚類的方法
SLICSLIC算法能生成緊湊、近似均勻的超像素,在運算速度,物體輪廓保持、超像素形狀方面具有較高的綜合評價,比較符合人們期望的分割效果。SLIC具體的實現步驟為:
將圖像轉為CIELab顏色空間;
初始化K個種子點(聚類中心),在圖像上平均撒落K個點,K個點均勻的占滿整幅圖像;
對種子點在內的N*N(一般為3*3)區域計算每個像素點梯度值,選擇值最小(最平滑)的點作為新的種子點,這一步主要是為了防止種子點落在了輪廓邊界上;
對種子點周圍2S*2S的方形區域內的所有像素點計算距離度量,對于K均值算法是計算整張圖的所有像素點,而SLIC的計算范圍是2S*2S,所以SLIC實驗法收斂速度很快。其中,S=sqrt(N/K),N是圖像像素個數;
每個像素點都可能被幾個種子點計算距離度量,選擇其中最小的距離度量對應的種子點作為其聚類中心。
如圖8-8可知K-means與SLIC在空間搜索上的差異。圖8-8K-means和SLIC空間搜索02基于聚類的方法
SLIC2鏡頭的邊界檢測1背景差分通過從圖像中減去背景圖像的估計值,然后從結果中尋找絕對值較大的部分來獲得有用的分割。主要的問題在于獲得一個背景圖像好的估計值。一種簡單的方法就是直接取一張背景圖片。這種簡易的辦法太不精確,因為一般情況下,背景隨著時間的推移是在慢慢改變的。理想情況下,運動平均應該跟隨背景圖像變化,也就是說如果天氣變化很快,那么只有很少幀的像素點是非零的權重,如果變化比較慢,像素點中權重非零的先前幀數目就會增加一些。較長的視頻流是由一系列鏡頭組成的。鏡頭指的是基本上顯示的是同一物體的較短視頻流。一般來說,這些鏡頭是編輯處理過程的產物。很少有兩鏡頭在何處銜接的記錄。用一些鏡頭來表示一段視頻是很有用的,而每一個鏡頭又可以用關鍵幀表示。這種表示可以用于視頻的檢索或者概括視頻內容以便用戶進行瀏覽。一般來說,這種檢測采用某種形式的距離度量;如果距離大于一個給定閾值,則一個鏡頭邊界被檢測到。02基于聚類的方法
聚類應用此案例在Windows10系統的Python3.5.4環境下基于skimage實現SLIC分割超像素。本案例使用了skimage自帶的SLIC函數分割超像素原理是首先用矩形將要選擇的前景區域選定,其中前景區域應該完全包含在矩形框當中。然后算法進行迭代式分割,直到達到效果最佳。1完成GrabCut前景提取先需要導入所需包或模塊。2加載圖片3引用skimage自帶的SLIC函數,傳參并顯示4顯示結果02基于聚類的方法
綜合案例:SLIC分割超像素完成GrabCut前景提取首先需要導入所需的包或模塊加載圖片引用skimage自帶的SLIC函數,傳參并顯示。n_segments為分割的超像素塊數;compactness控制顏色和空間之間的平衡,約高越方塊,和圖關系密切,最好先確定指數級別,再微調。34結果如圖8-9所示。圖8-9SLIC分割超像素02基于聚類的方法
綜合案例:SLIC分割超像素1203基于深度語義的方法聚類方法可將圖像分割成大小均勻、緊湊度合適的超像素塊,為后續的處理任務提供基礎,但在實際場景的圖片中,一些物體的結構比較復雜,內部差異性較大,僅利用像素點的顏色、亮度、紋理等較低層次的內容信息,不足以生成好的分割效果,而易產生錯誤的分割。因此,需要更多的結合圖像提供的中高層內容信息輔助圖像分割,稱之為圖像語義分割。深度學習技術出現后,在圖像分類任務取得了很大的成功,尤其是深度學習技術對高級語義信息的建模能力,很大程度上解決了傳統圖像分割方法中語義信息缺失的問題。2013年,LeCun的學生Farabet等人使用有監督的方法訓練了一個多尺度的深度卷積分類網絡。該網絡以某個分類的像素為中心進行多尺度采樣,將多尺度的局部圖像patch送到CNN分類器中逐一進行分類,最終得到每個像素所屬的語義類別。03基于深度語義的方法
全卷積網絡的語義分割(FullyConvolutionalNetworksforSemanticSegmentation,FCN),是深度學習在圖像分割領域的開山之作。針對圖像分割問題設計另一種針對任意大小的輸入圖像,訓練端到端的全卷積神經網絡的框架,實現逐像素分類,奠定了使用深度網絡解決圖像語義分割問題的基礎框架。圖8-10FCN的整體架構03基于深度語義的方法
FCN為了克服卷積網絡最后輸出層缺失空間信息這一不足,通過雙線性插值上采樣和組合中間層輸出的特征圖,將粗糙(coarse)分割結果轉換為密集(dense)分割結果。不過,FCN由于采用了如圖8-10所示的采樣技術會丟失很多細節信息,白色的方塊全為卷積層DeepLab-v1在FCN框架的末端增加可fullyconnectedCRFs,使得分割更精確。DeepLab模型,首先使用雙線性插值法對FCN的輸出結果上采樣得到粗糙分割結果,以該結果圖中每個像素為一個節點構造CRF模型,提高模型捕獲細節的能力。DeepLab-v2提出了一個類似的結構,在給定的輸入上以不同采樣率的空洞卷積并行采樣,相當于以多個比例捕捉圖像的上下文,稱為ASPP模塊,同時用深度殘差網絡替換掉VGG16,增加模型的擬合能力圖8-11DeepLab的整體架構03基于深度語義的方法
DeepLab系列金字塔場景分析網絡,在CVPR2017(IEEEConferenceonComputerVisionandPatternRecognition)論文中提出的金字塔池化模塊(pyramidpoolingmodule)能夠聚合不同區域的上下文信息,從而提高獲取全局信息的能力。在一般CNN中感受野可以粗略地認為是使用上下文信息的大小,在許多網絡中沒有充分的獲取全局信息,所以效果不好。03基于深度語義的方法
PSPNet要解決這一問題,常用的方法是:(1)用全局平均池化處理。但這在某些數據集上,可能會失去空間關系并導致模糊;(2)由金字塔池化產生不同層次的特征最后被平滑地連接成一個矩陣信息,然后放入FC層(全連接層)做分類。這樣可以去除CNN固定大小的圖像分類約束,減少不同區域之間的信息損失。圖8-12金字塔池化模塊pyramidpoolingmodule是一個有層次全局優先級并包含不同子區域間的不同尺度信息模塊該模塊融合4種不同金字塔尺度的特征,第一行紅色是最粗糙的特征——全局池化生成單個并輸出,后面三行是不同尺度的池化特征。為了保證全局特征的權重,如果金字塔共有N個級別,則在每個級別后使用1×1的卷積將級別通道降為原本的1/N。再通過雙線性插值獲得未池化前的大小,最終合并到一起。03基于深度語義的方法
PSPNet如圖8-12所示的金字塔池化模塊(pyramidpoolingmodule)能夠聚合不同區域的上下文信息,從而提高獲取全局信息的能力,通過金字塔結構將多尺度信息的全局特征和局部特征嵌入基于FCN的預測框架中,針對上下文復雜的場景和小目標做了提升。金字塔等級的池化核大小可設定,與送到金字塔輸入有關。圖8-13四個等級核大小為1×1,2×2,3×3和6×6圖8-13PSPNet的整體架構在圖8-13中,輸入的圖像經過預訓練模型和空洞卷積策略提取特征數組,然后再經過金字塔池化模塊(pyramidpoolingmodule)得到融合的帶有整體信息的特征,在上采樣(up-sample)與池化前的特征數組相合并,最后過一個卷積層得到最終輸出。03基于深度語義的方法
PSPNetU-Net由菲茲保大學的OlafRonneberger等人在2015年提出,相較于FCN多尺度信息更加豐富,最初是用在醫療圖像分割上,其整體架構如圖8-14所示。圖8-14U-Net的整體架構U-Net解決兩個問題第一個問題的方法是通過數據擴大使用在粗糙的3*3點陣上的隨機取代向量來生成平緩的變形。第二個問題是通過使用加權損失(weightedloss),這是基于相鄰細胞的分界的背景標簽在損耗函數中有很高的權值。03基于深度語義的方法
U-Net在圖8-14中的編碼部分,每經過一個池化層就構造一個新的尺度,包括原圖尺度一共有5個尺度。解碼部分,每上采樣一次,就和特征提取部分對應的通道數相同尺度融合。SegNet和FCN思路十分相似,只是編碼器中的池化和解碼器中的上采樣使用的技術不一致。此外SegNet的編碼器部分使用的是VGG16的前13層卷積網絡,每個編碼器層都對應一個解碼器層。圖8-15SegNet神經網絡模塊圖8-16講解一張圖片通過圖8-13的SegNet神經網絡模塊時,經過卷積編碼解碼實現一個圖片的分割。圖8-16SegNet的整體架構03基于深度語義的方法
SegNet如圖8-15,藍色定義卷積層、激活函數和批量正規化,綠色定義池化層,紅色定義上采樣,黃色定義分類函數,組成SegNet神經網絡模塊如圖8-17所示,講解池化與逆池化。在SegNet中的pooling與FCN的Pooling相比多一個記錄位置index的功能,也就是每次pooling,都會保存通過最大運算(maxop)選出的權值在濾波器(filter)中的相對位置。max-pooling之后,每個觸發器會丟失的權重是無法復原的,但是在Unpooling層中可以得到在pooling中相對poolingfilter的位置,所以Unpooling中先對輸入的特征圖放大兩倍,然后把輸入特征圖的數據根據poolingindices放入,總體計算效率也比FCN略高。圖8-17Pooling和Unpooling03基于深度語義的方法
SegNet案例代碼來源于git:/zhixuhao/unet,在Windows10系統的Python3.5.4環境下基于Keras實現U-Net圖像分割。以上代碼是屬于數據增強時的變換方式的字典。定義好數據增強的變換方式后傳參生成。03基于深度語義的方法
綜合案例:細胞壁檢測首先準備數據,參考數據來自于ISBI挑戰的數據集含30張訓練圖、30張對應的標簽。30張測試圖片,均為.tif格式文件。程序含有3個文件:一個文件為data.py:該文件是用來將訓練數據轉化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供電線路維修合同范例
- 企業營銷設計合同樣本
- 2014超市供貨合同樣本
- 2025年餐飲店租賃合同范本
- 買賣狗狗合同樣本
- 光船租船合同樣本是
- 個人酒柜出售合同樣本
- 上海咨詢合同樣本
- 佛像貼金合同標準文本
- 供貨方逾期交貨合同樣本
- 2023-2024學年上海交大附中高三上英語10月周練卷及答案
- 病理生理學病例分析報告
- 三D打印公開課
- 補鐵劑中鐵元素的檢驗-應用配合物進行物質檢驗高二化學魯科版(2019)選擇性必修2
- 給水管網改造工程施工組織設計概述
- 營業收入的預測分析報告
- 無人機工藝技術方案
- 從趙紫宸的神學思想看基督教與中國社會之關系
- 專車接送服務租賃合同
- 華為QSA審核報告
- 鋼筋籠(螺旋箍筋)工程量自動計算表
評論
0/150
提交評論