语义分割和实例分割_语义分割入门的一点总结
點(diǎn)擊上方“CVer”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
作者:Yanpeng Sun
https://zhuanlan.zhihu.com/p/74318967
本文已由作者授權(quán),未經(jīng)允許,不得二次轉(zhuǎn)載
語義分割
目的:給定一張圖像,我們要對這張圖像上的每個pixel逐一進(jìn)行分類,結(jié)果展示如下圖:
上圖中的實(shí)例分割是語義分割的延伸,要區(qū)別出相同類別的不同個體。
應(yīng)用場景:無人駕駛、輔助醫(yī)療等。
語義分割方法發(fā)展過程:
1.灰度分割(Gray Level Segmentation)
語義分割的最簡單形式是對一個區(qū)域設(shè)定必須滿足的硬編碼規(guī)則或?qū)傩?#xff0c;進(jìn)而指定特定類別標(biāo)簽. 編碼規(guī)則可以根據(jù)像素的屬性來構(gòu)建,如灰度級強(qiáng)度(gray level intensity). 基于該技術(shù)的一種分割方法是 Split and Merge 算法. 該算法是通過遞歸地將圖像分割為子區(qū)域,直到可以分配標(biāo)簽;然后再合并具有相同標(biāo)簽的相鄰子區(qū)域。
這種方法的問題是規(guī)則必須是硬編碼的. 而且,僅使用灰度級信息是很難表示比如人類等復(fù)雜類別的. 因此,需要特征提取和優(yōu)化技術(shù)來正確地學(xué)習(xí)復(fù)雜類別的特征表示。
2.條件隨機(jī)場(Conditional Random Fields)
CRFs 是一類用于結(jié)構(gòu)化預(yù)測的統(tǒng)計(jì)建模方法. 不同于分類算法,CRFs 在進(jìn)行預(yù)測前,會考慮像素的鄰近信息(neighboring context),如像素間的關(guān)系. 這使得 CRFs 成為語義分割的理想候選者. 這里介紹下 CRFs 在語義分割中的應(yīng)用.
圖像中的每個像素都是與有限的可能狀態(tài)集相關(guān). 在語義分割中,target 類別標(biāo)簽就是可能狀態(tài)集. 將一個狀態(tài)(或,label u) 分配給的單個像素 x 的成本(cost) 被稱為一元成本(unary cost). 為了對像素間的關(guān)系進(jìn)行建模, 還進(jìn)一步考慮將一對標(biāo)簽(labels (u, v)) 分配給一對像素 (x, y),其被成為成對成本(pairwise cost). 可以采用直接相鄰的像素對作為像素對(Grid CRF);也可以采用圖像中所有的像素構(gòu)建像素對(Denser CRF)。
圖像中所有 unary cost 和 pairwise cost 的相加和作為 CRF 的能量函數(shù)(或損失函數(shù),loss). 求解最小化即可得到較好的分割輸出。
深度學(xué)習(xí)極大地簡化了語義分割的流程(pipeline),并得到了較高質(zhì)量的分割結(jié)果
3.FCN
FCN方法的提出成功的將深度學(xué)習(xí)方法成功的引入到了語義分割領(lǐng)域,由于要預(yù)測的圖像是一個二維的表示,因此提出了全卷積網(wǎng)絡(luò)用來抽取圖像中的特征,將得到的高級語義特征上采樣到指定的維度,從而得到了最終的預(yù)測結(jié)果,從而自然的形成了Encoder-Decoder框架,這也成為了語義分割領(lǐng)域中通用框架之一。
具體的模型圖如下:
由于在Encoder中獲取到圖像的高級語義,但是其并不是最終分割的結(jié)果,因此作者采用轉(zhuǎn)置卷積的方法將該高級特征上采樣到指定的維度,從而得到最終的分割結(jié)果。由于直接上采樣之后的結(jié)果并不好,因此在改論文中引入了跳躍模型就是將不同卷積層下獲取到的特征相融合,從而改善模型的效果,其具體結(jié)構(gòu)如下所示:
4.U-NET, SegNet 等
為了改善FCN中的弊端,隨后提出了很多模型最經(jīng)典的是U-Net,SegNet,但是他們的本質(zhì)上并沒有改變Encoder-Decoder模型的架構(gòu)。
5.DeepLab系列
DeepLab的出現(xiàn)帶來了一個新的方法就是擴(kuò)展卷積(空洞卷積)方法,卷積層引入了一個稱為 “擴(kuò)張率(dilation rate)”的新參數(shù),該參數(shù)定義了卷積核處理數(shù)據(jù)時(shí)各值的間距。其目的是為了擴(kuò)大模型的感受野,使其能夠感受到更大范圍下的特征信息。具體的體現(xiàn)如下所示:
擴(kuò)展卷積方法的提出讓人們可以去除Encoder-Decoder框架的限制。隨后deeplab算法的改進(jìn)也提出了例如多尺度學(xué)習(xí)的通則紅描述方法(ASPP等)
6.NOW
面對監(jiān)督式方法---最近的方法大家更注重于實(shí)時(shí)的語義分割任務(wù),也就是輕量級的語義分割網(wǎng)絡(luò)的設(shè)計(jì)。當(dāng)然還有一些其他的方法,例如針對不同的領(lǐng)域設(shè)計(jì)不同的語義分割網(wǎng)絡(luò)、改進(jìn)上采樣方法等。
面對弱監(jiān)督方法---目前出現(xiàn)了很多弱監(jiān)督方法,就是通過學(xué)習(xí)圖像分類的數(shù)據(jù)集(image-level tag)中的信息,來完成語義分割這種密度預(yù)測的任務(wù)。當(dāng)然還有使用框架注釋來標(biāo)注數(shù)據(jù)(bounding-boxes tag)的。
語義分割領(lǐng)域中困難的地方:
1、數(shù)據(jù)問題:分割不像檢測等任務(wù),只需要標(biāo)注一個類別就可以拿來使用,分割需要精確的像素級標(biāo)注,包括每一個目標(biāo)的輪廓等信息,因此使得制作數(shù)據(jù)集成本過高;
2、計(jì)算資源問題:現(xiàn)在想要得到較高的精度的語義分割模型就需要使用類似于ResNet101等深網(wǎng)絡(luò)。同時(shí),分割預(yù)測了每一個像素,這就要求feature map的分辨率盡可能的高,這都說明了計(jì)算資源的問題,雖然也有一些輕量級的網(wǎng)絡(luò),但精度還是太低了;
3、精細(xì)分割:目前的方法中對于圖像中的大體積的東西能夠很好的分類,但是對于細(xì)小的類別,由于其輪廓太小,從而無法精確的定位輪廓,造成精度較低;
4、上下文信息:分割中上下文信息很重要,否則會造成一個目標(biāo)被分成多個part,或者不同類別目標(biāo)分類成相同類別;
評價(jià)指標(biāo):
1、執(zhí)行時(shí)間:速度或運(yùn)行時(shí)間是一個非常有價(jià)值的度量,因?yàn)榇蠖鄶?shù)系統(tǒng)需要保證推理時(shí)間可以滿足硬實(shí)時(shí)的需求。然而在通常的實(shí)驗(yàn)中其影響是很不明顯的,并且該指標(biāo)非常依賴硬件設(shè)備及后臺實(shí)現(xiàn),致使一些比較是無用的。
2、內(nèi)存占用:在運(yùn)行時(shí)間相同的情況下,記錄系統(tǒng)運(yùn)行狀態(tài)下內(nèi)存占用的極值和均值是及其有價(jià)值的。
3、精確度:這里指的是逐像素標(biāo)記的精度測量,假設(shè)共有k個類(從l0到lk其中有一個類別是屬于背景的。),Pij表示本屬于i類但是被預(yù)測為j類的像素個數(shù),Pii表示為真正分對類的數(shù)量,而Pij與Pji分別被稱為假正樣本和假負(fù)樣本。
1)Pixel Accuracy(PA,像素精度):標(biāo)記正確的像素占總像素的比例
2)Mean Pixel Accuracy(MPA,平均像素精度):計(jì)算每個類內(nèi)被正確分類像素?cái)?shù)比例,之后求所有類的平均數(shù)。
3)Mean Intersection over Union(MIoU,均交并比):為語義分割的標(biāo)準(zhǔn)度量,其計(jì)算兩個集合的交集和并集之比,這兩個集合分別為ground truth 與predicted segmentation,在每個類上計(jì)算IoU,之后將其求平均。
-----IoU即真正樣本數(shù)量/(真正樣本數(shù)量+假正樣本數(shù)量+假負(fù)樣本數(shù)量)
4)Frequency weighted Intersection over Union(FWIoU,頻權(quán)交并):是MIoU的一種提升,這種方法根據(jù)每個類出現(xiàn)的頻率為期設(shè)置權(quán)重。
CVer-圖像分割交流群
掃碼添加CVer助手,可申請加入CVer-圖像分割交流群。一定要備注:研究方向+地點(diǎn)+學(xué)校/公司+昵稱(如圖像分割+上海+上交+卡卡)
▲長按加群
▲長按關(guān)注我們
麻煩給我一個在看!
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的语义分割和实例分割_语义分割入门的一点总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单存取款机的实现---控制输入变量的规
- 下一篇: 如何在intellj Idea中给新建的