圖像分割的實用技巧
本文轉(zhuǎn)自 | 視覺算法
一個經(jīng)歷了 39 場 Kaggle 比賽的團(tuán)隊在 reddit 上發(fā)帖表示,他們整理了一份結(jié)構(gòu)化的圖像分割技巧列表,涵蓋數(shù)據(jù)增強、建模、損失函數(shù)、訓(xùn)練技巧等多個方面,不失為一份可以參考的圖像分割技巧資料。



使用高斯差分方法進(jìn)行斑點檢測;
使用基于圖像塊的輸入進(jìn)行訓(xùn)練,以減少訓(xùn)練時間;
加載數(shù)據(jù)時,用 cudf 替換 Pandas;
確保所有圖像保持相同的方向;
使用 OpenCV 對所有常規(guī)圖像進(jìn)行預(yù)處理;
采用自主學(xué)習(xí)并手動添加注釋;
將所有圖像調(diào)整成相同的分辨率,以便將相同的模型用于不同厚度的掃描等。

用 albumentations 包進(jìn)行數(shù)據(jù)增強;
使用 90 度隨機旋轉(zhuǎn);
使用水平、垂直翻轉(zhuǎn)或這兩個方向都做翻轉(zhuǎn);
嘗試進(jìn)行復(fù)雜的幾何變換,包括彈性變換、透視變換、分段仿射變換、枕形失真;
應(yīng)用隨機 HSV;
使用損失較小的增強數(shù)據(jù)進(jìn)行泛化,以防止有用圖像信息丟失;
應(yīng)用通道 shuffle;
根據(jù)類別頻率進(jìn)行數(shù)據(jù)擴充;
應(yīng)用高斯噪聲等。
使用基于 U-net 的架構(gòu);
用 inception-ResNet v2 架構(gòu)得到具備不同感受野的訓(xùn)練特征;
經(jīng)過對抗訓(xùn)練的 Siamese 網(wǎng)絡(luò);
以密集(FC)層作為最后一層的 ResNet50、Xception、Inception ResNet v2 x 5;
使用全局最大池化層,無論輸入尺寸如何,該層都將返回固定長度的輸出;
使用堆疊的膨脹卷積;
VoxelNet;
用 concat 和 conv1x1 替換 LinkNet 跳躍連接中的加號;
廣義平均池化;
用 3D 卷積網(wǎng)絡(luò)在圖像上滑動;
使用在 Imagenet 數(shù)據(jù)集上預(yù)訓(xùn)練的 ResNet152 作為特征提取器等。

dice 系數(shù):能夠很好地處理不平衡數(shù)據(jù);
加權(quán)邊界損失:減少預(yù)測分割與真值之間的距離;
MultiLabelSoftMarginLoss:基于最大熵優(yōu)化多標(biāo)簽一對多損失的標(biāo)準(zhǔn);
具備 logit 損失的平衡交叉熵(Balanced cross entropy,BCE):以特定系數(shù)權(quán)衡正例和負(fù)例;
……

嘗試不同的學(xué)習(xí)率;
嘗試不同批大小;
使用帶有動量項的 SDG,并且手動設(shè)置學(xué)習(xí)率衰減;
數(shù)據(jù)增強過多會降低準(zhǔn)確率;
使用裁剪后的圖像訓(xùn)練,并在完整的圖像上做預(yù)測;
在學(xué)習(xí)速率調(diào)整上使用 Keras 中的 ReduceLROnPlateau() 方法;
凍結(jié)除了最后一層以外所有的網(wǎng)絡(luò)層,并使用 Stage1 中的 1000 張圖片進(jìn)行模型微調(diào);
開發(fā)一個能使標(biāo)簽更加均勻的采樣器;
使用類別感知采樣(class aware sampling)等。



測試時增強(Test Time Augmentation,TTA):向模型多次展示經(jīng)過不同隨機變換的圖像,取預(yù)測平均值;
均衡使用測試預(yù)測概率,而不是僅使用預(yù)測類;
將幾何平均數(shù)應(yīng)用于預(yù)測;
在推理過程中將圖塊重疊,使每個邊緣像素至少覆蓋 3 次,因為 UNET 在邊緣區(qū)域范圍的預(yù)測往往較差;
非極大抑制和邊界框收縮;
分水嶺后處理:在實例分割問題中分離對象。

End 
聲明:部分內(nèi)容來源于網(wǎng)絡(luò),僅供讀者學(xué)術(shù)交流之目的,文章版權(quán)歸原作者所有。如有不妥,請聯(lián)系刪除。

