<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>

          從39個(gè)kaggle競賽中總結(jié)出來的圖像分割的Tips和Tricks

          共 5930字,需瀏覽 12分鐘

           ·

          2020-12-07 18:30

          ↑ 點(diǎn)擊藍(lán)字?關(guān)注極市平臺

          作者丨Derrick Mwiti
          來源丨AI公園
          編輯丨極市平臺

          極市導(dǎo)讀

          ?

          作者參加了39個(gè)Kaggle比賽,按照整個(gè)比賽的順序,總結(jié)了賽前數(shù)據(jù)的處理,模型的訓(xùn)練,以及后處理等可以助力大家的tips和tricks,非常多的技巧和經(jīng)驗(yàn),現(xiàn)在全部分享給大家。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿

          想象一下,如果你能得到所有的tips和tricks,你需要去參加一個(gè)Kaggle比賽。我已經(jīng)超過39個(gè)Kaggle比賽,包括:

          • Data Science Bowl 2017 – $1,000,000

          • Intel & MobileODT Cervical Cancer Screening – $100,000

          • 2018 Data Science Bowl – $100,000

          • Airbus Ship Detection Challenge – $60,000

          • Planet: Understanding the Amazon from Space – $60,000

          • APTOS 2019 Blindness Detection – $50,000

          • Human Protein Atlas Image Classification – $37,000

          • SIIM-ACR Pneumothorax Segmentation – $30,000

          • Inclusive Images Challenge – $25,000

          現(xiàn)在把這些知識都挖出來給你們!

          外部數(shù)據(jù)

          • 使用 LUng Node Analysis Grand Challenge 數(shù)據(jù),因?yàn)檫@個(gè)數(shù)據(jù)集包含了來自放射學(xué)的標(biāo)注細(xì)節(jié)。

          • 使用 LIDC-IDRI 數(shù)據(jù),因?yàn)樗哂姓业搅四[瘤的所有放射學(xué)的描述。

          • 使用Flickr CC,維基百科通用數(shù)據(jù)集

          • 使用Human Protein Atlas Dataset

          • 使用IDRiD數(shù)據(jù)集

          數(shù)據(jù)探索和直覺

          • 使用0.5的閾值對3D分割進(jìn)行聚類

          • 確認(rèn)在訓(xùn)練集和測試集的標(biāo)簽分布上有沒有不一樣的地方

          預(yù)處理

          • 使用DoG(Difference of Gaussian)方法進(jìn)行blob檢測,使用skimage中的方法。

          • 使用基于patch的輸入進(jìn)行訓(xùn)練,為了減少訓(xùn)練時(shí)間。

          • 使用cudf加載數(shù)據(jù),不要用Pandas,因?yàn)樽x數(shù)據(jù)更快。

          • 確保所有的圖像具有相同的方向。

          • 在進(jìn)行直方圖均衡化的時(shí)候,使用對比度限制。

          • 使用OpenCV進(jìn)行通用的圖像預(yù)處理。

          • 使用自動化主動學(xué)習(xí),添加手工標(biāo)注。

          • 將所有的圖像縮放成相同的分辨率,可以使用相同的模型來掃描不同的厚度。

          • 將掃描圖像歸一化為3D的numpy數(shù)組。

          • 對單張圖像使用暗通道先驗(yàn)方法進(jìn)行圖像去霧。

          • 將所有圖像轉(zhuǎn)化成Hounsfield單位(放射學(xué)中的概念)。

          • 使用RGBY的匹配系數(shù)來找到冗余的圖像。

          • 開發(fā)一個(gè)采樣器,讓標(biāo)簽更加的均衡。

          • 對測試圖像打偽標(biāo)簽來提升分?jǐn)?shù)。

          • 將圖像/Mask降采樣到320x480。

          • 直方圖均衡化(CLAHE)的時(shí)候使用kernel size為32×32

          • 將DCM轉(zhuǎn)化為PNG。

          • 當(dāng)有冗余圖像的時(shí)候,為每個(gè)圖像計(jì)算md5 hash值。

          數(shù)據(jù)增強(qiáng)

          • 使用 albumentations 進(jìn)行數(shù)據(jù)增強(qiáng)。

          • 使用隨機(jī)90度旋轉(zhuǎn)。

          • 使用水平翻轉(zhuǎn),上下翻轉(zhuǎn)。

          • 可以嘗試較大的幾何變換:彈性變換,仿射變換,樣條仿射變換,枕形畸變。

          • 使用隨機(jī)HSV。

          • 使用loss-less增強(qiáng)來進(jìn)行泛化,防止有用的圖像信息出現(xiàn)大的loss。

          • 應(yīng)用channel shuffling。

          • 基于類別的頻率進(jìn)行數(shù)據(jù)增強(qiáng)。

          • 使用高斯噪聲。

          • 對3D圖像使用lossless重排來進(jìn)行數(shù)據(jù)增強(qiáng)。

          • 0到45度隨機(jī)旋轉(zhuǎn)。

          • 從0.8到1.2隨機(jī)縮放。

          • 亮度變換。

          • 隨機(jī)變化hue和飽和度。

          • 使用D4:https://en.wikipedia.org/wiki/Dihedral_group增強(qiáng)。

          • 在進(jìn)行直方圖均衡化的時(shí)候使用對比度限制。

          • 使用AutoAugment:https://arxiv.org/pdf/1805.09501.pdf增強(qiáng)策略。

          模型

          結(jié)構(gòu)

          • 使用U-net作為基礎(chǔ)結(jié)構(gòu),并調(diào)整以適應(yīng)3D的輸入。

          • 使用自動化主動學(xué)習(xí)并添加人工標(biāo)注。

          • 使用inception-ResNet v2 architecture結(jié)構(gòu)使用不同的感受野訓(xùn)練特征。

          • 使用Siamese networks進(jìn)行對抗訓(xùn)練。

          • 使用_ResNet50_, Xception, Inception ResNet v2 x 5,最后一層用全連接。

          • 使用global max-pooling layer,無論什么輸入尺寸,返回固定長度的輸出。

          • 使用stacked dilated convolutions。

          • VoxelNet。

          • 在LinkNet的跳躍連接中將相加替換為拼接和conv1x1。

          • Generalized mean pooling。

          • 使用224x224x3的輸入,用Keras NASNetLarge從頭訓(xùn)練模型。

          • 使用3D卷積網(wǎng)絡(luò)。

          • 使用ResNet152作為預(yù)訓(xùn)練的特征提取器。

          • 將ResNet的最后的全連接層替換為3個(gè)使用dropout的全連接層。

          • 在decoder中使用轉(zhuǎn)置卷積。

          • 使用VGG作為基礎(chǔ)結(jié)構(gòu)。

          • 使用C3D網(wǎng)絡(luò),使用adjusted receptive fields,在網(wǎng)絡(luò)的最后使用64 unit bottleneck layer 。

          • 使用帶預(yù)訓(xùn)練權(quán)重的UNet類型的結(jié)構(gòu)在8bit RGB輸入圖像上提升收斂性和二元分割的性能。

          • 使用LinkNet,因?yàn)橛挚煊质?nèi)存。

          • MASKRCNN

          • BN-Inception

          • Fast Point R-CNN

          • Seresnext

          • UNet and Deeplabv3

          • Faster RCNN

          • SENet154

          • ResNet152

          • NASNet-A-Large

          • EfficientNetB4

          • ResNet101

          • GAPNet

          • PNASNet-5-Large

          • Densenet121

          • AC-GAN

          • XceptionNet (96), XceptionNet (299), Inception v3 (139), InceptionResNet v2 (299), DenseNet121 (224)

          • AlbuNet (resnet34) from ternausnets

          • SpaceNet

          • Resnet50 from selim_sef SpaceNet 4

          • SCSEUnet (seresnext50) from selim_sef SpaceNet 4

          • A custom Unet and Linknet architecture

          • FPNetResNet50 (5 folds)

          • FPNetResNet101 (5 folds)

          • FPNetResNet101 (7 folds with different seeds)

          • PANetDilatedResNet34 (4 folds)

          • PANetResNet50 (4 folds)

          • EMANetResNet101 (2 folds)

          • RetinaNet

          • Deformable R-FCN

          • Deformable Relation Networks

          硬件設(shè)置

          • Use of the AWS GPU instance p2.xlarge with a NVIDIA K80 GPU

          • Pascal Titan-X GPU

          • Use of 8 TITAN X GPUs

          • 6 GPUs: 2_1080Ti + 4_1080

          • Server with 8×NVIDIA Tesla P40, 256 GB RAM and 28 CPU cores

          • Intel Core i7 5930k, 2×1080, 64 GB of RAM, 2x512GB SSD, 3TB HDD

          • GCP 1x P100, 8x CPU, 15 GB RAM, SSD or 2x P100, 16x CPU, 30 GB RAM

          • NVIDIA Tesla P100 GPU with 16GB of RAM

          • Intel Core i7 5930k, 2×1080, 64 GB of RAM, 2x512GB SSD, 3TB HDD

          • 980Ti GPU, 2600k CPU, and 14GB RAM

          損失函數(shù)

          • Dice Coefficient ,因?yàn)樵诓痪鈹?shù)據(jù)上工作很好。

          • Weighted boundary loss 目的是減少預(yù)測的分割和ground truth之間的距離。

          • MultiLabelSoftMarginLoss 使用one-versus-all損失優(yōu)化多標(biāo)簽。

          • Balanced cross entropy (BCE) with logit loss 通過系數(shù)來分配正負(fù)樣本的權(quán)重。

          • Lovasz 基于sub-modular損失的convex Lovasz擴(kuò)展來直接優(yōu)化平均IoU損失。

          • FocalLoss + Lovasz 將Focal loss和Lovasz losses相加得到。

          • Arc margin loss 通過添加margin來最大化人臉類別的可分性。

          • Npairs loss 計(jì)算y_true 和 y_pred之間的npairs損失。

          • 將BCE和Dice loss組合起來。

          • LSEP – 一種成對的排序損失,處處平滑因此容易優(yōu)化。

          • Center loss 同時(shí)學(xué)習(xí)每個(gè)類別的特征中心,并對距離特征中心距離太遠(yuǎn)的樣本進(jìn)行懲罰。

          • Ring Loss 對標(biāo)準(zhǔn)的損失函數(shù)進(jìn)行了增強(qiáng),如Softmax。

          • Hard triplet loss 訓(xùn)練網(wǎng)絡(luò)進(jìn)行特征嵌入,最大化不同類別之間的特征的距離。

          • 1 + BCE – Dice 包含了BCE和DICE損失再加1。

          • Binary cross-entropy – ?log(dice) 二元交叉熵減去dice loss的log。

          • BCE, dice和focal 損失的組合。

          • BCE + DICE - Dice損失通過計(jì)算平滑的dice系數(shù)得到。

          • Focal loss with Gamma 2 標(biāo)準(zhǔn)交叉熵?fù)p失的升級。

          • BCE + DICE + Focal – 3種損失相加。

          • Active Contour Loss 加入了面積和尺寸信息,并集成到深度學(xué)習(xí)模型中。

          • 1024 * BCE(results, masks) + BCE(cls, cls_target)

          • Focal + kappa – Kappa是一種用于多類別分類的損失,這里和Focal loss相加。

          • ArcFaceLoss?—? 用于人臉識別的Additive Angular Margin Loss。

          • soft Dice trained on positives only – 使用預(yù)測概率的Soft Dice。

          • 2.7 * BCE(pred_mask, gt_mask) + 0.9 * DICE(pred_mask, gt_mask) + 0.1 * BCE(pred_empty, gt_empty) 一種自定義損失。

          • nn.SmoothL1Loss()

          • 使用Mean Squared Error objective function,在某些場景下比二元交叉熵?fù)p失好。

          訓(xùn)練技巧

          • 嘗試不同的學(xué)習(xí)率。

          • 嘗試不同的batch size。

          • 使用SGD + 動量 并手工設(shè)計(jì)學(xué)習(xí)率策略。

          • 太多的增強(qiáng)會降低準(zhǔn)確率。

          • 在圖像上進(jìn)行裁剪做訓(xùn)練,全尺寸圖像做預(yù)測。

          • 使用Keras的ReduceLROnPlateau()作為學(xué)習(xí)率策略。

          • 不使用數(shù)據(jù)增強(qiáng)訓(xùn)練到平臺期,然后對一些epochs使用軟硬增強(qiáng)。

          • 凍結(jié)除了最后一層外的所有層,使用1000張圖像進(jìn)行微調(diào),作為第一步。

          • 使用分類別采樣

          • 在調(diào)試最后一層的時(shí)候使用dropout和增強(qiáng)

          • 使用偽標(biāo)簽來提高分?jǐn)?shù)

          • 使用Adam在plateau的時(shí)候衰減學(xué)習(xí)率

          • 用SGD使用Cyclic學(xué)習(xí)率策略

          • 如果驗(yàn)證損失持續(xù)2個(gè)epochs沒有降低,將學(xué)習(xí)率進(jìn)行衰減

          • 將10個(gè)batches里的最差的batch進(jìn)行重復(fù)訓(xùn)練

          • 使用默認(rèn)的UNET進(jìn)行訓(xùn)練

          • 對patch進(jìn)行重疊,這樣邊緣像素被覆蓋兩次

          • 超參數(shù)調(diào)試:訓(xùn)練時(shí)候的學(xué)習(xí)率,非極大值抑制以及推理時(shí)候的分?jǐn)?shù)閾值

          • 將低置信度得分的包圍框去掉。

          • 訓(xùn)練不同的卷積網(wǎng)絡(luò)進(jìn)行模型集成。

          • 在F1score開始下降的時(shí)候就停止訓(xùn)練。

          • 使用不同的學(xué)習(xí)率。

          • 使用層疊的方法用5 folds的方法訓(xùn)練ANN,重復(fù)30次。

          評估和驗(yàn)證

          • 按類別非均勻的劃分訓(xùn)練和測試集

          • 當(dāng)調(diào)試最后一層的時(shí)候,使用交叉驗(yàn)證來避免過擬合。

          • 使用10折交叉驗(yàn)證集成來進(jìn)行分類。

          • 檢測的時(shí)候使用5-10折交叉驗(yàn)證來集成。

          集成方法

          • 使用簡單的投票方法進(jìn)行集成

          • 對于類別很多的模型使用LightGBM,使用原始特征。

          • 對2層模型使用CatBoost。

          • 使用 ‘curriculum learning’ 來加速模型訓(xùn)練,這種訓(xùn)練模式下,模型先在簡單樣本上訓(xùn)練,再在困難樣本上訓(xùn)練。

          • 使用ResNet50, InceptionV3, and InceptionResNetV2進(jìn)行集成。

          • 對物體檢測使用集成。

          • 對Mask RCNN, YOLOv3, 和Faster RCNN 進(jìn)行集成。

          后處理

          • 使用test time augmentation?,對一張圖像進(jìn)行隨機(jī)變換多次測試后對結(jié)果進(jìn)行平均。

          • 對測試的預(yù)測概率進(jìn)行均衡化,而不是使用預(yù)測的類別。

          • 對預(yù)測結(jié)果進(jìn)行幾何平均。

          • 在推理的時(shí)候分塊重疊,因?yàn)閁Net對邊緣區(qū)域的預(yù)測不是很好。

          • 進(jìn)行非極大值抑制和包圍框的收縮。

          • 在實(shí)例分割中使用分水嶺算法后處理來分離物體。


          推薦閱讀






          添加極市小助手微信(ID : cvmart2),備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳),即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群:月大咖直播分享、真實(shí)項(xiàng)目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

          △長按添加極市小助手

          △長按關(guān)注極市平臺,獲取最新CV干貨

          覺得有用麻煩給個(gè)在看啦~??
          瀏覽 56
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  成人在线大香蕉 | 人妻精品综合 码 | 依依成人网站 | 蜜桃91精品秘 成人取精库 | 亚洲天堂手机在线 |