⑴ 醫學圖像分割及應用
截至目前,我們已經學習了很多關於圖像分割的相關演算法,就此,對圖像的分割演算法做以下總結:
基於能量的分割 方法,有一些顯著的缺點,如:
水平集演算法的提出可以有效解決上述缺點,所謂水平,即指同一高度的一些像素點,將水平集的演算法引入到圖像分析的領域,水平集算此氏法提出了一個更高的維度來表達這些曲線。
水平集演算法對圖像的活動輪廓分割有一些新的術語表達:
contour front
contour energy forces
image energy speed function
為了避免3D 輪廓計算的復雜性,提出一個 零水平集(zero level set)的概念,並且提出了一個動態的坐標平面 表達front的演化,如下圖所示,我們總能帶鏈總結出當前 時刻的水平面,根據曲面的函數表達,總能總能計算出下一時刻的輪廓演化。與圖像能量表達的輪廓不同,水平集演算法多了一個平面的維度對輪廓施加影響。
水平集演算法通過零水平集的設置和初始輪廓的約束求解偏微分方程的方式實現。
如下圖所示,形象地表示了一個水平集演算法的原理示意圖,在front裡面的點小於0,而front外面的點大於0,零水平面所對應的點設為0
不需要移動輪廓,僅僅通過改變圖片中的一些值就可以很容易地實現圖像地分割。
水平集演算法的運算流程如下:
水平集演算法的一個重要概念是速度函數(speed function),而對速度函數
有以下三個概念:
front通過迭代實現繁衍,而迭代的過程必有一個停止條件,此條件是由森行散圖像本身的性質決定的,gradient函數來表示這一停止條件,如 ,有以下三種常用的函數:
而
水平集演算法的擴展可以從兩個方向進行:
為了改進水平,提出了一個快速行進演算法(Fast Marching)
Fast Marching 演算法使得front朝著一個方向前進,要麼擴展,要麼收縮,避免了分割輪廓的抖動,提高了演算法的運行速度,同時,為了避免輪廓的碰撞,每個網路與輪廓點只交叉一次。
在實際的演算法應用中,通常將Fast Marching演算法和 水平集演算法結合來完成圖像的分割,用Fast Marching 演算法高效的實現輪廓線的行進,完成一個粗分割,當演算法趨向於收斂時,用水平集演算法完成更為精準的分割。
如下圖所示,任意一個時刻點輪廓線網格點交叉的坐標 ,並且在任意高度處,表面會給出在 時刻所到達點的集合。
⑵ 圖像分割的分割方法
灰度閾值分割 法是一種最常用的並行區域技術,它是圖像分割中應用數量最多的一類。閾值分割方法實際上是輸入圖像f到輸出圖像g的如下變換:
其中,T為閾值,對於物體的圖像元素g(i,j)=1,對於背景的圖像元素g(i,j)=0。
由此可見,閾值分割演算法的關鍵是確定閾值,如果能確定一個合適的閾值就可准確地將圖像分割開來。閾值確定後,將閾值與像素點的灰度值逐個進行比較,而且像素分割可對各像素並行地進行,分割的結果直接給出圖像區域。
閾值分割的優點是計算簡單、運算效率較高、速度快。在重視運算效率的應用場合(如用於硬體實現),它得到了廣泛應用。
人們發展了各種各樣的閾值處理技術,包括全局閾值、自適應閾值、最佳閾值等等。
全局閾值是指整幅圖像使用同一個閾值做分割處理,適用於背景和前景有明顯對比的圖像。它是根據整幅圖像確定的:T=T(f)。但是這種方法只考慮像素本身的灰度值,一般不考慮空間特徵,因而對雜訊很敏感。常用的全局閾值選取方法有利用圖像灰度直方圖的峰谷法、最小誤差法、最大類間方差法、最大熵自動閾值法以及其它一些方法。
在許多情況下,物體和背景的對比度在圖像中的各處不是一樣的,這時很難用一個統一的閾值將物體與背景分開。這時可以根據圖像的局部特徵分別採用不同的閾值進行分割。實際處理時,需要按照具體問題將圖像分成若乾子區域分別選擇閾值,或者動態地根據一定的鄰域范圍選擇每點處的閾值,進行圖像分割。這時的閾值為自適應閾值。
閾值的選擇需要根據具體問題來確定,一般通過實驗來確定。對於給定的圖像,可以通過分析直方圖的方法確定最佳的閾值,例如當直方圖明顯呈現雙峰情況時,可以選擇兩個峰值的中點作為最佳閾值。
圖1(a)和(b)分別為用全局閾值和自適應閾值對經典的Lena圖像進行分割的結果。
區域生長和分裂合並法是兩種典型的串列區域技術,其分割過程後續步驟的處理要根據前面步驟的結果進行判斷而確定。 區域生長 區域生長的基本思想是將具有相似性質的像素集合起來構成區域。具體先對每個需要分割的區域找一個種子像素作為生長的起點,然後將種子像素周圍鄰域中與種子像素有相同或相似性質的像素(根據某種事先確定的生長或相似准則來判定)合並到種子像素所在的區域中。將這些新像素當作新的種子像素繼續進行上面的過程,直到再沒有滿足條件的像素可被包括進來。這樣一個區域就長成了。
區域生長需要選擇一組能正確代表所需區域的種子像素,確定在生長過程中的相似性准則,制定讓生長停止的條件或准則。相似性准則可以是灰度級、彩色、紋理、梯度等特性。選取的種子像素可以是單個像素,也可以是包含若干個像素的小區域。大部分區域生長准則使用圖像的局部性質。生長准則可根據不同原則制定,而使用不同的生長准則會影響區域生長的過程。區域生長法的優點是計算簡單,對於較均勻的連通目標有較好的分割效果。它的缺點是需要人為確定種子點,對雜訊敏感,可能導致區域內有空洞。另外,它是一種串列演算法,當目標較大時,分割速度較慢,因此在設計演算法時,要盡量提高效率。
區域分裂合並
區域生長是從某個或者某些像素點出發,最後得到整個區域,進而實現目標提取。分裂合並差不多是區域生長的逆過程:從整個圖像出發,不斷分裂得到各個子區域,然後再把前景區域合並,實現目標提取。分裂合並的假設是對於一幅圖像,前景區域由一些相互連通的像素組成的,因此,如果把一幅圖像分裂到像素級,那麼就可以判定該像素是否為前景像素。當所有像素點或者子區域完成判斷以後,把前景區域或者像素合並就可得到前景目標。
在這類方法中,最常用的方法是四叉樹分解法(如圖3所示)。設R代表整個正方形圖像區域,P代表邏輯謂詞。基本分裂合並演算法步驟如下:(1)對任一個區域,如果H(Ri)=FALSE就將其分裂成不重疊的四等份;
(2)對相鄰的兩個區域Ri和Rj,它們也可以大小不同(即不在同一層),如果條件H(Ri∪Rj)=TRUE滿足,就將它們合並起來。
(3)如果進一步的分裂或合並都不可能,則結束。
分裂合並法的關鍵是分裂合並准則的設計。這種方法對復雜圖像的分割效果較好,但演算法較復雜,計算量大,分裂還可能破壞區域的邊界。 圖像分割的一種重要途徑是通過邊緣檢測,即檢測灰度級或者結構具有突變的地方,表明一個區域的終結,也是另一個區域開始的地方。這種不連續性稱為邊緣。不同的圖像灰度不同,邊界處一般有明顯的邊緣,利用此特徵可以分割圖像。
圖像中邊緣處像素的灰度值不連續,這種不連續性可通過求導數來檢測到。對於階躍狀邊緣,其位置對應一階導數的極值點,對應二階導數的過零點(零交叉點)。因此常用微分運算元進行邊緣檢測。常用的一階微分運算元有Roberts運算元、Prewitt運算元和Sobel運算元,二階微分運算元有Laplace運算元和Kirsh運算元等。在實際中各種微分運算元常用小區域模板來表示,微分運算是利用模板和圖像卷積來實現。這些運算元對雜訊敏感,只適合於雜訊較小不太復雜的圖像。
由於邊緣和雜訊都是灰度不連續點,在頻域均為高頻分量,直接採用微分運算難以克服雜訊的影響。因此用微分運算元檢測邊緣前要對圖像進行平滑濾波。LoG運算元和Canny運算元是具有平滑功能的二階和一階微分運算元,邊緣檢測效果較好,如圖4所示。其中loG運算元是採用Laplacian運算元求高斯函數的二階導數,Canny運算元是高斯函數的一階導數,它在雜訊抑制和邊緣檢測之間取得了較好的平衡。關於微分運算元的邊緣檢測的詳細內容可參考文獻 。 與其他圖像分割方法相比,基於直方圖的方法是非常有效的圖像分割方法,因為他們通常只需要一個通過像素。在這種方法中,直方圖是從圖像中的像素的計算,並在直方圖的波峰和波谷是用於定點陣圖像中的簇。顏色和強度可以作為衡量。
這種技術的一種改進是遞歸應用直方圖求法的集群中的形象以分成更小的簇。重復此操作,使用更小的簇直到沒有更多的集群的形成。
基於直方圖的方法也能很快適應於多個幀,同時保持他們的單通效率。直方圖可以在多個幀被考慮的時候採取多種方式。同樣的方法是採取一個框架可以應用到多個,和之後的結果合並,山峰和山谷在以前很難識別,但現在更容易區分。直方圖也可以應用於每一個像素的基礎上,將得到的信息被用來確定的像素點的位置最常見的顏色。這種方法部分基於主動對象和一個靜態的環境,導致在不同類型的視頻分割提供跟蹤。
⑶ 圖象分割有哪三種不同的途徑
圖象分割有三種不同的途徑,其一是將各象素劃歸到相應物體或區域的象素聚類方法即區域法,其二是通過直接確定區域間的邊界來實現分割的邊界方法,其三是首先檢測邊緣象素再將邊緣象素連接起來構成邊界形成分割。早期的圖像分割方法可以分為兩大類。一類是邊界方法,這種方法假設圖像分割結果的某個子區域在原來圖像中一定會有邊緣存在;一類是區域方法,這種方法假設圖像分割結果的某個子區域一定會有相同的性質,而不同區域的像素則沒有共同的性質。這兩種方法都有優點和缺點,有的學者考慮把兩者結合起來進行研究。現在,隨著計算機處理能力的提高,很多方法不斷涌現,如基於彩色分量分割、紋理圖像分割。所使用的數學工具和分析手段也是不斷的擴展,從時域信號到頻域信號處理,小波變換等等。
圖像分割主要包括4種技術:並行邊界分割技術、串列邊界分割技術、並行區域分割技術和串列區域分割技術。下面是分別對每一項做簡單的介紹。
⑷ 醫學影像分割名詞解釋
定義
把影像分成若干個特定的、具有獨特性質的區域的影像處理技術。是影像分析前的關鍵步驟。
所謂醫學圖像分割,就是根據醫學圖像的某種相似性特徵(如亮度、顏色、紋理、面積、形狀、位置、局部統計特徵或頻譜特徵等)將醫學圖像劃分為若干個互不相交的「連通」的區域的過程,相關特徵在同一區域表現出一致性或相似性,而在不同區域表現出明顯的不同,也就是說在區域邊界上像素存在某種不連續特性。
區域作為圖像分割中像素的連通集合和基本分割單位,可以按照不同的連通性來定義:4連通區域和8連通區域。區域的連通性是指在一個區域中任意兩個像素之間,都存在一條完全屬於這個區域的像素所構成的連通路徑。如果只依據處於四正位(上、下、左、右)或四角位(左上、左下、右上、右下)的相鄰像素確定區域的連通性,就稱為4連通;如果同時依據處於四正位和四角位相鄰的像素確定區域的連通性則稱為8連通。
(1)需要適當的濾波演算法處理的偽影,如雜訊偽影、敏感性偽影、存在非清晰邊緣的偽影;(2)需要適當圖像修復演算法的偽影,如運動偽影;(3)需要特定演算法的偽影,如部分容積和灰度不均勻性。圖像處理領域盡管在已存在很多演算法處理上述問題,但是醫學圖像分割仍然是個復雜和具有挑戰性的問題。從醫學圖像處理過程的角度來看,基於灰度和基於紋理特徵技術的分類是常規的分類方式。此外,用機器學習的工具去優化這些圖像分割演算法是當前較受關注的技術.
4、CT圖像分割常用的一些方法有:基於閾值、基於區域、基於形變模型、基於模糊及基於神經網路。
5、影響因素:
(1)雜訊:由於成像設備、成像原理以及個體自身差異的影響,醫學圖像一般會含有很多雜訊。由於雜訊對於位置和空間的約束是獨立的,從而搜帆可以利用雜訊的分布來實現降噪。
(2)偽影:偽影一般是在圖像配准和三維重建時產生(如CT),從原理上來說,只能較少,無法消除。CT成像中的偽影包括:部分容積效應、條形偽影、運動偽影、束硬化偽影、環狀偽影、金屬偽影等。由於這些偽影的存在給CT圖像分割帶來了一定的難度,不同組織部位分割精度也不一樣。
⑸ 醫學圖像處理
圖像分割是前期的團茄宴工作重點,主要使用了現成的軟體來完成圖像分割任務:3DMed(中國科學院自動化醫學圖像處理研究所)。
該軟體集成了6種分割演算法插件,按照官方文檔的說法,區域生長演算法特別適合於分割小的結構如腫瘤和傷疤,下面是使用3DMed載入的原始29189000016.dcm圖像:
下面是使用區域生長演算法對腫瘤的分割結果:
其中Different Value和Change Value為控制區域增長的兩個參數,通過實驗發現選取2和10效果較好。
下面是分割後的保存結果:
3DMed中會自動將結果文件名保存為29189000016_segmented.dcm。
但是該演算法需要人工交互獲得種子節點,自動化程度不高。同時區域增長演算法對雜訊敏感,導致抽取出的區域有空洞或者無法正確抽取出感興趣區域。
特徵提取就是從分割的區域中提取出描述該區域特徵的一些數據,這一步的工作使用了兩種方法進行探索。
使用MATLAB進行常用的基本統計特徵的提取,該方法可以提取出 一階統計特徵 (描述感興趣區域內各提速參數的分布,通常是基於直方圖進行分析),在MATLAB中簡單的區域描繪如下:
l 周長:區域邊界的長度, 即位於區域邊界上的像素數目.
l 面積:, 區域中的像素總數.
l 緻密性:(周長) 2/面積.
l 區域的質心.
l 灰度均值: 區域中所有像塌銀素的平均值.
l 灰度中值: 區域中所有像素的排序中值.
l 包含區域的最小矩形.
l 最小或最大灰度級.
l 大於或小於均值的像素數.
l 歐拉數: 區域中的對象數減去這些對象的孔洞數。
MATLAB中的regionprops(L, properties)函數可以用來計算區域描繪特徵:首先使用bwlabel(I, n)對圖像I進行n(4或者8)連通標號,然後使用regionprops()進行統計計算。
Mazda是一個圖像紋理分析的工具,可以自動對圖像進行特徵提取。下面是使用Mazda載入分割好的結果:
下面是對分割結果進行特徵提取的結果:
對於Feature name的表示現在還沒有完全搞明白,正在研究。
Mazda還可以進行 高階統計量 的提取(就是進一步加入了過濾器),小波分析納賀就是高階統計量的一種,下面是小波分析的結果:
同時可以手動對Features進行feature selection,然後保存選擇的結果。
⑹ 圖像分割演算法總結
圖像處理的很多任務都離不開圖像分割。因為圖像分割在cv中實在太重要(有用)了,就先把圖像分割的常用演算法做個總結。
接觸機器學習和深度學習時間已經不短了。期間看過各種相關知識但從未總結過。本文過後我會盡可能詳細的從工程角度來總結,從傳統機器學習演算法,傳統計算機視覺庫演算法到深度學習目前常用演算法和論文,以及模型在各平台的轉化,量化,服務化部署等相關知識總結。
圖像分割常用演算法大致分為下面幾類。由於圖像的能量范函,邊緣追蹤等方法的效果往往只能解決特定問題,效果並不理想,這里不再闡述。當然二值化本身也可以分割一些簡單圖像的。但是二值化演算法較多,我會專門做一個文章來總結。這里不再贅述。
1.基於邊緣的圖像分割演算法:
有利用圖像梯度的傳統演算法運算元的sobel,roberts,prewitt,拉普拉斯以及canny等。
這些演算法的基本思想都是採用合適的卷積運算元,對圖像做卷積。從而求出圖像對應的梯度圖像。(至於為什麼通過如圖1這樣的運算元卷積,即可得到圖像的梯度圖像,請讀者復習下卷積和倒數的概念自行推導)由於圖像的邊緣處往往是圖像像素差異較大,梯度較大地方。因此我們通過合適的卷積核得到圖像的梯度圖像,即得到了圖像的邊緣圖像。至於二階運算元的推導,與一階類似。優點:傳統運算元梯度檢測,只需要用合適的卷積核做卷積,即可快速得出對應的邊緣圖像。缺點:圖像邊緣不一定準確,復雜圖像的梯度不僅僅出現在圖像邊緣,可以能出現在圖像內部的色彩和紋理上。
也有基於深度學習方法hed,rcf等。由於這類網路都有同一個比較嚴重的缺陷,這里只舉例hed網路。hed是基於FCN和VGG改進,同時引出6個loss進行優化訓練,通過多個層輸出不同scale的粒度的邊緣,然後通過一個訓練權重融合各個層的邊緣結果。hed網路結構如下:
可以得到一個比較完整的梯度圖像,可參考github的hed實現。優點:圖像的梯度細節和邊緣完整性,相比傳統的邊緣運算元要好很多。但是hed對於邊緣的圖像內部的邊緣並不能很好的區分。當然我們可以自行更改loss來嘗試只擬合外部的圖像邊緣。但最致命的問題在於,基於vgg的hed的網路表達能力有限,對於圖像和背景接近,或者圖像和背景部分相融的圖片,hed似乎就有點無能為力了。
2.基於區域分割的演算法:
區域分割比較常用的如傳統的演算法結合遺傳演算法,區域生長演算法,區域分裂合並,分水嶺演算法等。這里傳統演算法的思路是比較簡單易懂的,如果有無法理解的地方,歡迎大家一起討論學習。這里不再做過多的分析。
基於區域和語意的深度學習分割演算法,是目前圖像分割成果較多和研究的主要方向。例如FCN系列的全卷積網路,以及經典的醫學圖像分割常用的unet系列,以及rcnn系列發展下的maskrcnn,以及18年底的PAnet。基於語意的圖像分割技術,無疑會成為圖像分割技術的主流。
其中,基於深度學習語意的其他相關演算法也可以間接或直接的應用到圖像分割。如經典的圖像matting問題。18年又出現了許多非常優秀的演算法和論文。如Deep-Image-Matting,以及效果非常優秀的MIT的 semantic soft segmentation(sss).
基於語意的圖像分割效果明顯要好於其他的傳統演算法。我在解決圖像分割的問題時,首先嘗試用了hed網路。最後的效果並不理想。雖然也參考github,做了hed的一些fine-tune,但是還是上面提到的原因,在我多次嘗試後,最終放棄。轉而適用FCN系列的網路。但是fcn也無法解決圖像和背景相融的問題。圖片相融的分割,感覺即需要大的感受野,又需要未相融部分原圖像細節,所以單原FCN的網路,很難做出准確的分割。中間還測試過很多其他相關的網路,但都效果不佳。考慮到感受野和原圖像細節,嘗試了resnet和densenet作為圖像特徵提取的底層。最終我測試了unet系列的網路:
unet的原始模型如圖所示。在自己拍照爬蟲等手段採集了將近1000張圖片。去掉了圖片質量太差的,圖片內容太過類似的。爬蟲最終收集160多張,自己拍照收集200張圖片後,又用ps手動p了邊緣圖像,採用圖像增強變換,大約有300*24張圖片。原生unet網路的表現比較一般。在將unet普通的卷積層改為resnet後,網路的表達能力明顯提升。在將resnet改為resnet101,此時,即使對於部分相融的圖像,也能較好的分割了。但是unet的模型體積已經不能接受。
在最後階段,看到maskrcnn的實例分割。maskrcnn一路由rcnn,fasterrcnn發展過來。於是用maskrcnn來加入自己的訓練數據和label圖像進行訓練。maskrcnn的結果表現並不令人滿意,對於邊緣的定位,相比於其他演算法,略顯粗糙。在產品應用中,明顯還不合適。
3.基於圖的分割演算法
基於深度學習的deepgrab,效果表現並不是十分理想。deepgrab的git作者backbone採用了deeplabv2的網路結構。並沒有完全安裝原論文來做。
論文原地址參考: https://arxiv.org/pdf/1707.00243.pdf
整體結構類似於encode和decoder。並沒有太仔細的研究,因為基於resent101的結構,在模型體積,速度以及deeplab的分割精度上,都不能滿足當前的需求。之前大致總結過計算機視覺的相關知識點,既然目前在討論移動端模型,那後面就分模塊總結下移動端模型的應用落地吧。
由於時間實在有限。這里並沒有針對每個演算法進行詳細的講解。後續我會從基礎的機器學習演算法開始總結。
⑺ 逐張連續和麥凱分割法的優缺點分別是
逐張連續法和麥凱分割法都是常見的圖像分割方法,它們各有優缺點:
1. 逐張連續法
逐張連續法是一種常用的圖像分割演算法,其主要思想是將圖像分成若干個區域,通過對每張圖像的分割與處理,最終得到完整的分割結果。這種方法的優點是:
- 適應性強,可以銀閉用於各種類型和顏色的圖像。
- 可以進行自適應分割和動態更新,保證分割效果的持久性和精度。
- 可擴展性好,易於進行復雜的分割操作。
然而,逐張連續法也存在一些缺點:
- 難以處理大規模的數據集,計算時間較長。
- 演算法過於簡單,難以處理復雜的背景和雜訊干擾問題。
- 對圖像質量的要求較高,處理效果與圖像質量密切相關。
2. 麥凱分割法
麥凱分割法是一種基於像素點區域生長的圖像分割演算法,其主要思想是通過選擇合適的像素種子點進行區域生長,可以得到比較准確的圖像分割結果。這種方法的優點是:
- 分割准確度高,可以有效地減少圖像雜訊和其他不需要的信息。
- 分割速度較快,可以處理大規模的數據集。
- 適應性強,可以通過修改參數和調整實驗設計,實現對不同情況的應用。
然而,該方法也存在一些缺點:
- 對圖像質量的要辯如求較高,對雜訊敏感。
- 分割結果可能受到種子點位置和數目的影響,鋒灶裂在比較復雜的圖像中容易出現失誤。
- 演算法本身比較復雜,調參過程需要具有一定的經驗。
⑻ 圖像分割最好方法
1.基於閾值的分割方法
閾值法的基本思想是基於圖像的灰度特徵來計算一個或多個灰度閾值,並將圖像中每個像素的灰度值與閾值作比較,最後將像素根據比較結果分到合適的類別中。因此,該方法最為關鍵的一步就是按照某個准則函數來求解最佳灰度閾值。
閾值法特別適用於目標和背景占據不同灰度級范圍的圖。圖像若只有目標和背景兩大類,那麼只需要選取一個閾值進行分割,此方法成為單閾值分割;但是如果圖像中有多個目標需要提取,單一閾值的分割就會出現作物,在這種情況下就需要選取多個閾值將每個目標分隔開,這種分割方法相應的成為多閾值分割。
2.基於區域的圖像分割方法
基於區域的分割方法是以直接尋找區域為基礎的分割技術,基於區域提取方法有兩種基本形式:一種是區域生長,從單個像素出發,逐步合並以形成所需要的分割區域;另一種是從全局出發,逐步切割至所需的分割區域。
分水嶺演算法
分水嶺演算法是一個非常好理解的演算法,它根據分水嶺的構成來考慮圖像的分割,現實中我們可以想像成有山和湖的景象,那麼一定是水繞山山圍水的景象。
分水嶺分割方法,是一種基於拓撲理論的數學形態學的分割方法,其基本思想是把圖像看作是測地學上的拓撲地貌,圖像中每一點像素的灰度值表示該點的海拔高度,每一個局部極小值及其影響區域稱為集水盆,而集水盆的邊界則形成分水嶺。分水嶺的概念和形成可以通過模擬浸入過程來說明。在每一個局部極小值表面,刺穿一個小孔,然後把整個模型慢慢浸入水中,隨著浸入的加深,每一個局部極小值的影響域慢慢向外擴展,在兩個集水盆匯合處構築大壩,即形成分水嶺。