遺傳演算法圖像分割
A. 圖像分割演算法總結
圖像處理的很多任務都離不開圖像分割。因為圖像分割在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的分割精度上,都不能滿足當前的需求。之前大致總結過計算機視覺的相關知識點,既然目前在討論移動端模型,那後面就分模塊總結下移動端模型的應用落地吧。
由於時間實在有限。這里並沒有針對每個演算法進行詳細的講解。後續我會從基礎的機器學習演算法開始總結。
B. 跪求圖像分割snake演算法詳細解釋_基於遺傳演算法的圖像分割
這個不太熟悉,下面是轉載,希望能幫到你:
圖像分割有那些方法區別如何
圖像分割有那些方法區別如何?
圖像分割是圖像處理領域中的一個基本問題。從大的方面來說,圖像分割方法可大致分為基於區域的方法、基於邊緣的方法、區域與邊緣相結合的方法,以及在此基礎上的、採用多解析度圖像處理理論的多尺度分割方法。基於區域的方法採用某種准則,直接將圖像劃分為多個區域,基於邊緣的方法則通過檢測包含不同區域的邊緣,獲得關於各區域的邊界輪廓描述,達到圖像分割的目的,而區域與邊緣相結合的方法通過區域分割與邊緣檢測的相互作用,得到分割結果。
·1基於區域的圖像分割兄旅螞
圖像分割中常用的直方圖門限法、區域生長法、基於圖像的隨機場模型法、鬆弛標記區域分割法等均屬於基於區域的方法。
(1)直方圖門限分割就是在一定的准則下,用一個或幾個門限值將圖像的灰度直方圖(一維的或多維的)分成幾個類,認為圖像中灰度值在同一個灰度類內的象素屬於同一個物體,可以採用的准則包括直方圖的谷底、最小類內方差(或最大類間方差)、最大熵(可使用各種形式的熵)、最小錯誤率、矩不變、最大繁忙度(由共生矩陣定義)等。門限法的缺陷在於它僅僅考慮了圖像的灰度信息,而忽略了圖像中的空間信息,對於圖像中不存在明顯的灰度差異或各物體的灰度值范圍有較大重疊的圖像分割問題難以得到准確的結果。
(2)區域生長是一種古老的圖像分割方法,最早的區域生長圖像分割方法是由Levine等人提出的。該方法一般有兩種方式,一種是先給定圖像中要分割的目標物體內的一個小塊或者說種子區域,再在鎮悶種子區域基礎上不斷將其周圍的像素點以一定的規則加入其中,達到最終將代表該物體的所有像素點結合成一個區域的目的;另一種是先將圖像分割成很多的一致性較強,如區域內像素灰度值相同的小區域,再按一定的規則將小區域融合成大區域,達到分割圖像的目的,典型的區域生長法如T.C.Pong等人提出的基於小面(facet)模型的區域生長法,區域生長法固有的缺點是往往會造成過度分割,即將圖像分割成過多的區域。
(3)基於圖像的隨機場模型法主要以Markov隨機場作為圖像模型,並假定該隨機場符合Gibbs分布。使用MRF模型進行圖像分割的問題包括:鄰域系統的定義;能量函數的選擇及其參數的估計;極小化能量函數從而獲得最大後驗概率的策略。鄰域系統一般是事先定義的,因而主要是後面兩個問題。S.Geman,首次將基於Gibbs分布的Markov隨機場模型用於圖像處理,詳細討論了MRF模型的鄰域系統,能量函數,Gibbs采樣方法等各種問題,提出用模擬退火演算法來極小化能量函數的方法,並給出了模擬退火演算法收斂性的證明,同時給出了MRF模型在圖像恢復中的應用實例。在此基礎上,人們提出了大量的基於MRF模型的圖像分割演算法。
(4)標記法(labeling)就是將圖像欲分割成的幾個區域各以一個不同的標號來表示,對圖像中的每一個象素,用一定的方式賦之以這些標記中的某一個,標記相同的連通象素就組成該標記所代表的區域。標記法常採用鬆弛技術來給圖像中的各個象素賦予標記,一般可分為離散鬆弛、概率鬆弛、模糊鬆弛等三種。Smith等人最先採用鬆弛標記技術進行圖像分割,以後人們又提出了大量的圖像鬆弛分割演算法。另外,鬆弛標記不僅可用於圖像分割,還可用於邊緣檢測、目標識別等。
·2基於邊緣的圖像分割
基於邊緣的分割方法則與邊緣檢測理論緊密相關,此類方法大多是基於局部信息的,一般利用圖像—階導數的極大值或二階導數的過零點信息來提供判斷邊緣點的基本依據,進一步還可以採用各種曲線擬合技術獲得劃分不同區域邊界的連續曲線。根據檢測邊緣所採用的方式的不同,邊緣檢測方法可大致分為以下幾類:基於局部圖像函數的方法、圖像濾波法、基於反應—擴散方程的方法、基於邊界曲線擬合的方法及活動輪廊(activecontour)法等。
(1)基於局部圖像函數羨埋法的基本思想是將灰度看成高度,用一個曲面來擬合一個小窗口內的數據,然後根據該曲面來決定邊緣點.
(2)圖像濾波法是基於如下理論的:即對濾波運算元與圖像的卷積結果求導,相當於用運算元的同階導數與圖像做卷積。於是,只要事先給出運算元的一階或二階導數,就可以將圖像平滑濾波與對平滑後的圖像求一階或二階導數在一步完成。因而,這種方法的核心問題是濾波器的設計問題。
常用的濾波器主要是高斯(Gaussian)函數的一階和二階層數,Canny認為高斯函數的一階導數是他求得的最優濾波器的較好似近,一般採用Laplacian運算元求高斯函數的二階導數得到LOG(LaplacianofGaussian)濾波運算元,該運算元由計算機視覺的創始人Marr首先提出.近年來研究的濾波器還有可控濾波器(steerable),B-樣條濾波器等。
問題提出:圖像濾波的方法是基於對平滑濾波後的圖像求其一階導數的極大值或二階導數的過零點來決定邊緣的,必然遇到的問題是,一階的極大值或二階導數的過零點對應的像素點是否真的就是邊緣點?
(3)基於反應—擴散方程的方法是從傳統意義上的Gaussian核函數多尺度濾波來的。由於本人閱讀文獻有限,這里不多做介紹了。
(4)基於邊界曲線擬合的方法用平面曲線來表示不同區域之間的圖像邊界線,試圖根據圖像梯度等信息找出能正確表示邊界的曲線從而得到圖像分割的目的,而且由於它直接給出的是邊界曲線而不象一般的方法找出的是離散的、不相關的邊緣點,因而對圖像分割的後繼處理如物體識別等高層處理有很大幫助。即使是用一般的方法找出的邊緣點,用曲線來描述它們以便於高層處理也是經常被採用的一種有效的方式。L.H.Staib等人在文獻中給出了一種用Fourier參數模型來描述曲線的方法,並根據Bayes定理,按極大後驗概率的原則給出了一個目標函數,通過極大化該目標函數來決定Fourier系數。實際應用中,先根據對同類圖像的分割經驗,給出一條初始曲線,再在具體分割例子中根據像數據優化目標函數來改變初始曲線的參數,擬合圖像數據,得到由圖像數據決定的具體曲線。這種方法比較適合於醫學圖像的分割。除了用Fourier模型來描述曲線外,近年來還研究了一些其它的曲線描述方法,如A.Goshtasby詳細介紹了用有理Gaussian曲線和曲面來設計和擬合二維及三維形狀的方法。R.Legault等人給出了一種曲線平滑的方法。M.F.Wu等人給出了一種雙變數三維Fourier描述子來描述三維曲面。
(5)活動輪廓(又稱Snake模型)是一種可變形模型(或稱彈性模型),最初由Kass等人提出。活動輪廓法邊緣檢測認為圖像中各區域的輪廓線應為平滑曲線,各輪廓線的能量由內部能量及外部能量(包括圖像能量及控制能量)兩部分組成,其中內部能量表徵了輪廓線的光滑約束,圖像能量由輪廓線上對應點的灰度、梯度和角點曲率半徑(若該點為角點)等決定,而控制能量則代表了圖像平面上固定點對輪廓線的吸引或排斥作用。採用變分法求解該能量函數的極小值就可得到與區域邊界相對應的輪廓線。
C. 機器人視覺系統中圖像分割技術傳統方法概論1
姓名:寇世文
學號:21011110234
【嵌牛導讀】:隨著人工智慧技術的不斷發展,智能機器人領域也得到了空前的發展。尤其是深度神經網路廣泛應用於視覺系統中後,取得了許多很明顯的成效。對於自主移動機器人來說,視覺系統有著十分重要的作用,而圖像分割技術更是在這個系統中擔任著十分重要的角色。傳統的圖像分割技術基本上已經能夠將圖像的前景和後景分隔開來,但是近年來隨著深度學習演算法的發展,人們開始將其應用到圖像分割中,提出了很多分割網路,也達到了很好的分割效果。在實現圖像分割的基礎上,人們還使得分割具有了語義類別和標簽,就是現在的語義分割。本文在介紹了語義分割的基礎上又引出了新的任務分割場景,實例分割和全景分割。並且介紹了最近研究的熱點三維點雲的語義分割問題,闡述了其實現的必要性。
【嵌牛鼻子】智能機器人,圖像分割、語義分割、計算機視覺
【嵌牛提問】圖像分割技術的傳統常見方法
【嵌牛正文】
一、引言
計算機視覺,即computer vision,就是通過計算機來模擬人的視覺工作原理,來獲取和完成一系列圖像信息處理的機器。計算機視覺屬於機器學習在視覺領域的應用,是一個多學科交叉的研究領域,其涉及數學、物理、生物、計算機工程等多個學科。
計算機視覺的主要應用有無人駕駛、人臉識別、無人安防、車輛車牌識別、智能傳圖、3D重構、VR/AR、智能拍照、醫學圖像處理、無人機、工業檢測等。人駕駛又稱自動駕駛,是目前人工智慧領域一個比較重要的研究方向,讓汽車可以進行自主駕駛,或者輔助駕駛員駕駛,提升駕駛操作的安全性。人臉識別技術目前已經研究得相對比較成熟,並在很多地方得到了應用,且人臉識別准確率目前已經高於人眼的識別准確率。安防一直是我國比較重視的問題,也是人們特別重視的問題,在很多重要地點都安排有巡警巡查,在居民小區以及公司一般也都有保安巡查來確保安全。車輛車牌識別目前已經是一種非誠成熟的技術了,高速路上的違章檢測,車流分析,安全帶識別,智能紅綠燈,還有停車場的車輛身份識別等都用到了車輛車牌識別。3D重構之前在工業領域應用比較多,可以用於對三維物體進行建模,方便測量出物體的各種參數,或者對物體進行簡單復制。計算機視覺還有很多應用,隨著技術的發展,應用領域也會越來越多。在工業領域的應用,在機器人技術方面的應用等。
對於傳統的圖像分割過程,通常可以分為5個步驟,即特徵感知、圖像預處理、特徵提取、特徵篩選和推理預測與識別。通過研究發現,在視覺的早期的發展過程中,人們對於圖像中的特徵並沒有表現出足夠的關注。且傳統的分割過程是把特徵提取和分類分開來做的,等到需要輸出結果的時候再結合到一起,可想而知其實現的困難程度。
在深度學習演算法出來之後,卷積神經網路被廣泛應用於計算機視覺技術中,也因此衍生出了很多的研究方向。深度學習主要是以特徵為基礎來進行比對,如在人臉識別方面,使用卷積神經網路分別對兩張人臉進行不同位置的特徵提取,然後再進行相互比對,最後得到比對結果。目前的計算機視覺的主要研究方向有圖像分類、目標檢測、圖像分割、目標跟蹤、圖像濾波與降噪、圖像增強、風格化、三維重建、圖像檢索、GAN等。本文主要是針對圖像分割這一領域,進行簡要的概述。
圖像分割技術是計算機視覺領域的個重要的研究方向,是圖像語義理解的重要一環。圖像分割是指將圖像分成若干具有相似性質的區域的過程,從數學角度來看,圖像分割是將圖像劃分成互不相交的區域的過程。近些年來隨著深度學習技術的逐步深入,圖像分割技術有了突飛猛進的發展,該技術相關的場景物體分割、人體前背景分割、人臉人體Parsing、三維重建等技術已經在無人駕駛、增強現實、安防監控等行業都得到廣泛的應用。
二、發展現狀
近來已經有很多學者將圖像分割技術應用到移動機器人的控制中,能夠做到在機器人運動的同時定位、構建地圖並分割出不同的前景和後景,使視覺系統掃描到的圖像具有語義信息。並有學者也致力於分割得更為准確和精細,不僅能夠做到區分不同類的物體,也能夠實現對同類的不同物體的分類,甚至可以做到在此基礎上加上對背景的分割。由於我們生活的世界是三維空間,還有學者將圖像場景還原到三維中,然後使用相關方法對整個三維場景進行分割。作為計算機視覺的研究中的一個較為經典的難題,圖像分割這一領域也越來越被人們所關注。
首先是傳統的圖像分割方法。在傳統分割方面,人們使用數字圖像處理、拓撲學、數學等方面的知識來進行圖像分割。雖然現在的算力逐漸增加且深度學習不斷發展,一些傳統的分割方法所取得的效果不如深度學習,但是其分割的思想仍有很多值得我們去學習的。
第一種方法是基於閾值的圖像分割方法。這種方法的核心思想是想根據圖像的灰度特徵來給出一個或多個灰度閾值,將此閾值作為一個標准值與圖像中的每個像素逐一進行比較。很容易想到,通過這個逐一比較過程能夠得到兩類結果,一類是灰度值大於閾值的像素點集,另一類是灰度值小於閾值的像素點集,從而很自然地將圖像進行了分割。所以,不難發現,此方法的最關鍵的一步就是按照一定的准則函數來得到最佳灰度閾值,這樣才能夠得到合適的分類結果。值得一提的是,如果圖像中需要分割的目標和背景分別占據了不同的灰度值甚至是不同的等級,那使用這種方法會得到很好的效果。並且,假如對於一張圖像的處理,我們只需要設定一個閾值時,可以將其稱為單閾值分割。但是圖像中如果不止一個目標,即有多個目標需要進行提取的時候,單一閾值分割就無法做到將它們都分割開來,此時應選取多個閾值對其進行處理,這個分割的過程為多閾值分割。總的來說,閾值分割法有著其獨特的特點,其計算簡單、效率較高。但是,由於這種方法只考慮的是單個像素的灰度值及其特徵,而完全忽略了空間特徵,這也就導致了其對雜訊比較敏感且魯棒性不高。
第二種方法是基於區域的圖像分割方法。這種方法具有兩種基本形式:一種是區域生長,這種分割方法是從單個像素出發,逐漸將相似的區域進行合並,最終得到需要的區域。另一種方法是直接從圖像的全局出發,一點一點逐步切割至所需要的區域。區域生長指的是,給定一組種子像素,其分別代表了不同的生長區域,然後讓這些種子像素逐漸合並鄰域里符合條件的像素點。如果有新的像素點添加進來,同樣把它們作為種子像素來處理。
區域分裂合並的分割過程可以說是區域生長的逆過程,這種方法是從圖像的全局出發通過不斷分裂得到各個子區域,然後提取目標的過程。此外,在此過程中,還需要合並前景區域。
在區域分割方法中還有一種分水嶺演算法。受啟發於分水嶺的構成,這種分割方法將圖像看作是測地學上的拓撲地貌,這樣圖像中每一個像素點對應的海拔高度可以用該點的灰度值來表示。分水嶺的形成過程實際上可以通過模擬浸入過程來實現。具體做法是,在每個局部極小值的表面都刺穿一個小孔,然後把模型慢慢浸入水中,隨著水慢慢浸入其中,分水嶺就隨之形成了。
第三種方法是基於邊緣檢測的分割方法。邊緣檢測的思想就是試圖通過檢測不同物體的邊緣來將圖像分割開來,這種方法是人們最先想到的也是研究最多的方法之一。如果我們將圖片從空間域變換到頻率域中去,其中物體的邊緣部分就對應著高頻部分,很容易就能夠找到邊緣信息,因此也使得分割問題變得容易。邊緣檢測的方法能夠實現快而且准確的定位,但是其不能保證邊緣的連續性和封閉性,且當一幅圖像的細節信息過多時,其就會在邊緣處產生大量的細碎邊緣,在形成完整的分割區域時就會有缺陷。
第四種圖像分割方法結合了特定的工具。這里所說的特定工具是各種圖像處理工具以及演算法等,隨著圖像分割研究工作的深入,很多學者開始將一些圖像處理的工具和一些演算法應用到此工作中,並取得了不錯的結果。小波變換在數字圖像處理中發揮著很重要的作用,它能夠將時域和頻域統一起來研究信號。尤其是在圖像邊緣檢測方面,小波變換能夠檢測二元函數的局部突變能力。其次是基於遺傳演算法的圖像分割,遺傳演算法主要借鑒了生物界自然選擇和自然遺傳機制的隨機化搜索方法。其模擬了由基因序列控制的生物群體的進化過程,其擅長於全局搜索,但是局部搜多能力不足。將遺傳演算法應用到圖像處理中也是當前研究的一個熱點問題,在此選擇這種方法的主要原因是遺傳演算法具有快速的隨機搜索能力,而且其搜索能力與問題的領域沒有任何關系。
除此之外,還有基於主動輪廓模型的分割方法,這種方法具有統一的開放式的描述形式,為圖像分割技術的研究和創新提供了理想的框架。此方法也是對邊緣信息進行檢測的一種方法,主要是在給定圖像中利用曲線演化來檢測目標。
D. 有無跟遺傳演算法和圖像處理相關的參考書目推薦,最好有pdf版的
以下是一些有關遺傳演算法和圖像處理的參考書目推薦,其中一些可能有 PDF 版本可用:
《遺傳演算法基礎及應用》(Genetic Algorithm: Basic Theory and Applications)(英)戴維·戈德伯格著,唐飛等譯,斗寬機械工業出版社,2003 年。這本書深入淺出地介紹了遺傳演算法的原理和實現,以及它們在各種應用中的使用。
《遺傳演算法+圖像處理》(Genetic Algorithm + Image Processing)(英)馬克·舍納斯著,劉揚等譯,電子工業出版社,2014 年。這本書結合了遺傳演算法和圖像處理的應用,介紹了如何使用遺傳演算法來解決圖像處理中的問題。
《基於遺傳演算法的圖像處理優化設計研究》(王慶龍,2009)這是一本博士論文,介紹了如何使用遺傳演算法來進行圖像處理的優化衡銷戚設計。該論文詳細介紹了遺傳演算法的咐陵原理和實現,並提供了大量實驗結果和數據分析。
《圖像處理基礎及其應用》(Digital Image Processing)(英)Gonzalez, Rafael C. and Woods, Richard E.著,唐學智等譯,電子工業出版社,2010 年。這是一本經典的圖像處理教材,包括圖像處理的基礎知識和常見技術,如濾波、變換和分割等。
《圖像處理的數學原理》(Mathematical Principles for Optical Imaging and Reconstruction)(英)James R. Fienup著,北京航空航天大學出版社,2014 年。這本書介紹了圖像處理中的數學原理,包括線性代數、波動光學和最小二乘等。
《數字圖像處理(第三版)》(Digital Image Processing (3rd Edition))(英)Rafael C. Gonzalez and Richard E. Woods著,丁漢譯,機械工業出版社,2008 年。這本書是一本經典的數字圖像處理教材,講述了數字圖像處理的基本原理和演算法。
希望這些書目能對你有所幫助。