農(nóng)作物地塊范圍識(shí)別(圖像分割)

來(lái)源:機(jī)器學(xué)習(xí)AI算法工程、知乎@Now more 本文約5500字,建議閱讀15分鐘 本文為你介紹 以薏仁米作物識(shí)別以及產(chǎn)量預(yù)測(cè)為比賽命題,及對(duì)對(duì)應(yīng)獲獎(jiǎng)的開(kāi)發(fā)算法模型。

評(píng)估指標(biāo)
不同類別的標(biāo)簽統(tǒng)計(jì),背景類最多,人造建筑最少。

一、亞軍方案介紹
1. 總體方案

2. 預(yù)處理
裁剪

數(shù)據(jù)增強(qiáng)
3. 農(nóng)作物分割

模型這里也可以考慮換成deeplab v3+,結(jié)果應(yīng)該會(huì)有一點(diǎn)提升,決賽的幾個(gè)隊(duì)伍中,很多都是使用的deeplab v3+,deeplab的ASPP同樣有融合context信息的作用。
4. 建筑物分割
下圖中可以看出,圖中右面在訓(xùn)練集的標(biāo)簽上是屬于建筑物的一部分,可是跟左邊的水泥路十分相似。

解決方法是將建筑物單獨(dú)使用一個(gè)網(wǎng)絡(luò)進(jìn)行分割,并且訓(xùn)練集降低分辨率,最終嘗試將原圖降低16倍分辨率作為建筑物的訓(xùn)練集。
如下圖,單獨(dú)分割后顯著地降低了建筑的錯(cuò)誤。

網(wǎng)絡(luò)使用的是HRNet,HRNet一直保持的高分辨率feature map對(duì)于建筑物的邊界細(xì)節(jié)預(yù)測(cè)較準(zhǔn)確。

5. 訓(xùn)練細(xì)節(jié)
由于訓(xùn)練集中標(biāo)簽有噪聲,如下:

6. 半監(jiān)督
半監(jiān)督方法應(yīng)該算是比賽中比較常用的方法,在比賽中也是在A榜的最后一次提交中才使用了半監(jiān)督的方法,單模型結(jié)果達(dá)到了0.788,是除了建筑物單獨(dú)分割以外提升最大的trick了,對(duì)于置信度等參數(shù)也沒(méi)有機(jī)會(huì)進(jìn)行進(jìn)一步的嘗試,感覺(jué)半監(jiān)督還有潛力可以挖掘。
感覺(jué)半監(jiān)督方法在這個(gè)數(shù)據(jù)集中尤為適合,對(duì)于原因也不太明確。
這里看到過(guò)一個(gè)說(shuō)法:“半監(jiān)督帶來(lái)的提升不只是數(shù)據(jù)量帶來(lái)的提升,而是對(duì)于那些數(shù)據(jù)難以精確標(biāo)注的場(chǎng)合,”結(jié)合這次比賽的數(shù)據(jù),雖然是語(yǔ)義分割的比賽,但是label并不是像素級(jí)精度的,標(biāo)注的時(shí)候應(yīng)該使用的是多邊形的標(biāo)注,所以對(duì)于邊界的標(biāo)注很不精細(xì),并且對(duì)于農(nóng)田其實(shí)也很難找到一個(gè)很明確的邊界來(lái)標(biāo)記,感覺(jué)可能符合難以精細(xì)標(biāo)注這個(gè)描述,但是對(duì)于這個(gè)說(shuō)法并沒(méi)有找到相關(guān)的論文,哪位大佬如果有更好的解釋或者相關(guān)的論文推薦,希望不吝賜教。
7. 預(yù)測(cè)

8. 最終結(jié)果

二、冠軍整體方案
1. 數(shù)據(jù)預(yù)處理
滑窗裁剪
類別平衡:過(guò)濾掉mask無(wú)效占比大于7/8的區(qū)域,在背景類別比例小于1/3時(shí)減小滑窗步長(zhǎng),增大采樣率; patch:實(shí)驗(yàn)中沒(méi)有觀察到patch對(duì)模型性能有顯著影響,最后采取策略同時(shí)保留1024和512兩種滑窗大小,分別用來(lái)訓(xùn)練不同的模型,提高模型的差異度,有利于后期模型集成; 速度:決賽時(shí)算法復(fù)現(xiàn)時(shí)間也是一定的成績(jī)考量,建議使用gdal庫(kù),很適合處理遙感大圖的場(chǎng)景。本地比賽中我們直接多進(jìn)程加速opencv,patch為1024時(shí),單張圖5~6min可以切完;
策略一:以1024x1024的窗口大小,步長(zhǎng)900滑窗,當(dāng)窗口中mask無(wú)效區(qū)域比例大于7/8則跳過(guò),當(dāng)滑動(dòng)窗口中背景類比例小于1/3時(shí),增加采樣率,減小步長(zhǎng)為512; 策略二:以1024x1024的窗口大小,步長(zhǎng)512滑窗,當(dāng)滑動(dòng)窗口中無(wú)效mask比例大于1/3則跳過(guò)。
數(shù)據(jù)增強(qiáng)
2. 模型選擇



三、漲分點(diǎn)
1. 膨脹預(yù)測(cè)

填充1 (黃色部分) : 填充右下邊界至滑窗預(yù)測(cè)窗口大小的整數(shù)倍,方便整除切割; 填充2(藍(lán)色部分) : 填充1/2滑窗步長(zhǎng)大小的外邊框(考慮邊緣數(shù)據(jù)的膨脹預(yù)測(cè)); 以1024x1024為滑窗,512為步長(zhǎng),每次預(yù)測(cè)只保留滑窗中心512x512的預(yù)測(cè)結(jié)果(可以調(diào)整更大的步長(zhǎng),或保留更大的中心區(qū)域,提高效率)。

2. 測(cè)試增強(qiáng)

3. snapshot ensemble

4. 后處理
針對(duì)本次賽題數(shù)據(jù)場(chǎng)景為大面積農(nóng)田預(yù)測(cè),通過(guò)簡(jiǎn)單的填充孔洞、去除小連通域等后處理,可以去除一些不合理的預(yù)測(cè)結(jié)果。

5. 邊緣平滑

圖像邊緣:卷積時(shí)零填充太多,信息缺少,難以正確分類(參考3.1的方格效應(yīng)) 不同類間交界處: 標(biāo)注錯(cuò)誤,類間交界難以界定,訓(xùn)練時(shí)可能梯度不穩(wěn)定 類間交界的點(diǎn),往往只相差幾個(gè)像素偏移,對(duì)網(wǎng)絡(luò)來(lái)說(shuō)輸入信息高度相似,但訓(xùn)練時(shí)label 卻不同,也是訓(xùn)練過(guò)程的不穩(wěn)定因素。



6. 偽標(biāo)簽

利用在測(cè)試集表現(xiàn)最好的融合模型結(jié)果作偽標(biāo)簽,用多組不同置信度閾值過(guò)濾數(shù)據(jù),結(jié)合訓(xùn)練集訓(xùn)練模型; 選取多個(gè)snapshot的方法對(duì)模型進(jìn)行自融合提高模型的泛化能力; 集成2中的預(yù)測(cè)結(jié)果,更新偽標(biāo)簽,重復(fù)步驟1~3。
四、總結(jié)
膨脹預(yù)測(cè)消除邊緣預(yù)測(cè)不準(zhǔn)問(wèn)題; 使用測(cè)試增強(qiáng)、消除空洞和小連通域等后處理提高精度; 使用snapshot模型自融合、標(biāo)簽平滑、偽標(biāo)簽等方法提高模型穩(wěn)定性和對(duì)新地形泛化能力;
編輯:黃繼彥
評(píng)論
圖片
表情
