<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          圖像分割的實用技巧

          共 2978字,需瀏覽 6分鐘

           ·

          2021-04-13 13:19

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


          圖像分割是圖像處理和計算機視覺的熱點之一,是根據(jù)圖像內(nèi)容對指定區(qū)域進(jìn)行標(biāo)記的計算機視覺任務(wù)。它基于某些標(biāo)準(zhǔn)將輸入圖像劃分為多個相同的類別,簡言之就是「這張圖片里有什么,其在圖片中的位置是什么?」以便提取人們感興趣的區(qū)域。圖像分割是圖像分析和圖像特征提取及識別的基礎(chǔ)。


          圖像分割也是 Kaggle 中的一類常見賽題,比如衛(wèi)星圖像分割與識別、氣胸疾病圖像分割等。除了密切的團(tuán)隊配合、給力的 GPU 配置等條件,技巧在這類比賽中也發(fā)揮了很大的作用。但這些技巧去哪里找呢?Medium、大牛博客、參賽經(jīng)驗帖中都散落著各種技巧分享,但這些資源往往比較零散,于是就有人想到,為什么不把它們集中到一起呢?

          Derrick Mwiti 就帶頭做了這么一件事,他和他所在的團(tuán)隊將過去 39 場 Kaggle 比賽中討論過的圖像分割技巧、資料都匯總到了一起,希望可以幫到在圖像分割任務(wù)中遇到困難的同學(xué)。

          這份列表分為十大板塊,包括外部數(shù)據(jù)、預(yù)處理、數(shù)據(jù)增強、建模、硬件配置、損失函數(shù)、訓(xùn)練技巧、評估和交叉驗證、集成方法以及后處理。


          每個版塊的具體內(nèi)容以條目的形式呈現(xiàn),每個條目又都嵌入了一些鏈接,點開可以看到一些優(yōu)秀的 Kaggle 解決方案分享、Medium 博客教程、高贊的 GitHub 項目等,讀者可以根據(jù)自己的具體問題和需要進(jìn)行查找。

          本文選取了其中一部分內(nèi)容進(jìn)行介紹,具體細(xì)節(jié)及鏈接請參見原文。

          接下來,我們來看每個步驟都有哪些技巧吧。

          預(yù)處理

          這一部分包含眾多常見的有效圖像預(yù)處理方法,例如:

          • 使用高斯差分方法進(jìn)行斑點檢測;

          • 使用基于圖像塊的輸入進(jìn)行訓(xùn)練,以減少訓(xùn)練時間;

          • 加載數(shù)據(jù)時,用 cudf 替換 Pandas;

          • 確保所有圖像保持相同的方向;

          • 使用 OpenCV 對所有常規(guī)圖像進(jìn)行預(yù)處理;

          • 采用自主學(xué)習(xí)并手動添加注釋;

          • 將所有圖像調(diào)整成相同的分辨率,以便將相同的模型用于不同厚度的掃描等。



          數(shù)據(jù)增強

          數(shù)據(jù)增強能夠使網(wǎng)絡(luò)具有更復(fù)雜的表征能力,從而減小網(wǎng)絡(luò)性能在驗證集和訓(xùn)練集以及最終測試集上的差距,讓網(wǎng)絡(luò)更好地學(xué)習(xí)遷移數(shù)據(jù)集上的數(shù)據(jù)分布。這部分介紹了一些常用的數(shù)據(jù)增強方法:

          • 用 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)用高斯噪聲等。


          建模

          網(wǎng)絡(luò)架構(gòu)

          這一部分介紹了一些可用在圖像分割上的常用網(wǎng)絡(luò)框架,例如:

          • 使用基于 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 作為特征提取器等。


          以及下列經(jīng)典網(wǎng)絡(luò)框架:


          損失函數(shù)

          損失函數(shù)常用來估計模型預(yù)測結(jié)果與真值之間的差距。選擇合適的損失函數(shù),對模型效果很重要。

          這部分介紹了一系列損失函數(shù)和使用場景,例如:

          • 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ù)例;

          • ……


          此外,作者還介紹了 Arc margin 損失、BCE 和 dice 系數(shù)的組合等等,更多詳情參見原文。


          訓(xùn)練技巧

          這部分介紹了常用的模型訓(xùn)練技巧,如:

          • 嘗試不同的學(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)等。



          評估和交叉驗證

          這部分介紹了 k 折交叉驗證、對抗驗證和權(quán)衡等方法,以及在調(diào)整模型最后一層時使用交叉驗證方法以有效避免過擬合。



          集成方法

          許多機器學(xué)習(xí)競賽(包括 Kaggle)中最優(yōu)秀的解決方案所采用的集成方法都建立在一個這樣的假設(shè)上:將多個模型組合在一起通常可以產(chǎn)生更強大的模型。

          這部分介紹了多種集成方法,如多數(shù)投票法、XGBoost、LightGBM、CatBoost 等方法,以及集成 ResNet50、InceptionV3 和 InceptionResNetV2 的方法。


          后處理

          這部分介紹了多種后處理方法:

          • 測試時增強(Test Time Augmentation,TTA):向模型多次展示經(jīng)過不同隨機變換的圖像,取預(yù)測平均值;

          • 均衡使用測試預(yù)測概率,而不是僅使用預(yù)測類;

          • 將幾何平均數(shù)應(yīng)用于預(yù)測;

          • 在推理過程中將圖塊重疊,使每個邊緣像素至少覆蓋 3 次,因為 UNET 在邊緣區(qū)域范圍的預(yù)測往往較差;

          • 非極大抑制和邊界框收縮;

          • 分水嶺后處理:在實例分割問題中分離對象。


          最后需要注意的是,這份列表給出的某些技巧可能有一定的適用范圍,具體能不能用還要視數(shù)據(jù)而定。


          資源鏈接:https://neptune.ai/blog/image-segmentation-tips-and-tricks-from-kaggle-competitions?utm_source=reddit&utm_medium=post&utm_campaign=blog-image-segmentation-tips-and-tricks-from-kaggle-competitions

          參考鏈接:https://www.reddit.com/r/MachineLearning/comments/g1okir/d_we_are_putting_together_a_list_of_image/

           End 


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


          點「在看」的人都變好看了哦!
          瀏覽 25
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  九九性爱视频 | 久久伊人一区二区 | www.jiba | 亚洲色情免费视频 | 黄色亚洲视频在线观看 |