<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

眾多常見的有效圖像預處理方法

新機器視覺 ? 來源:機器之心 ? 作者:機器之心 ? 2021-05-03 18:26 ? 次閱讀

一個經歷了 39 場 Kaggle 比賽的團隊在 reddit 上發帖表示,他們整理了一份結構化的圖像分割技巧列表,涵蓋數據增強、建模、損失函數、訓練技巧等多個方面,不失為一份可以參考的圖像分割技巧資料。

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

圖像分割也是 Kaggle 中的一類常見賽題,比如衛星圖像分割與識別、氣胸疾病圖像分割等。除了密切的團隊配合、給力的 GPU 配置等條件,技巧在這類比賽中也發揮了很大的作用。但這些技巧去哪里找呢?Medium、大牛博客、參賽經驗帖中都散落著各種技巧分享,但這些資源往往比較零散,于是就有人想到,為什么不把它們集中到一起呢? Derrick Mwiti 就帶頭做了這么一件事,他和他所在的團隊將過去 39 場 Kaggle 比賽中討論過的圖像分割技巧、資料都匯總到了一起,希望可以幫到在圖像分割任務中遇到困難的同學。 這份列表分為十大板塊,包括外部數據、預處理、數據增強、建模、硬件配置、損失函數、訓練技巧、評估和交叉驗證、集成方法以及后處理。

每個版塊的具體內容以條目的形式呈現,每個條目又都嵌入了一些鏈接,點開可以看到一些優秀的 Kaggle 解決方案分享、Medium 博客教程、高贊的 GitHub 項目等,讀者可以根據自己的具體問題和需要進行查找。 本文選取了其中一部分內容進行介紹,具體細節及鏈接請參見原文。 接下來,我們來看每個步驟都有哪些技巧吧。 預處理 這一部分包含眾多常見的有效圖像預處理方法,例如:

使用高斯差分方法進行斑點檢測;

使用基于圖像塊的輸入進行訓練,以減少訓練時間;

加載數據時,用 cudf 替換 Pandas;

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

使用 OpenCV 對所有常規圖像進行預處理;

采用自主學習并手動添加注釋;

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

數據增強 數據增強能夠使網絡具有更復雜的表征能力,從而減小網絡性能在驗證集和訓練集以及最終測試集上的差距,讓網絡更好地學習遷移數據集上的數據分布。這部分介紹了一些常用的數據增強方法:

用 albumentations 包進行數據增強;

使用 90 度隨機旋轉;

使用水平、垂直翻轉或這兩個方向都做翻轉;

嘗試進行復雜的幾何變換,包括彈性變換、透視變換、分段仿射變換、枕形失真;

應用隨機 HSV;

使用損失較小的增強數據進行泛化,以防止有用圖像信息丟失;

應用通道 shuffle;

根據類別頻率進行數據擴充;

應用高斯噪聲等。

建模網絡架構 這一部分介紹了一些可用在圖像分割上的常用網絡框架,例如:

使用基于 U-net 的架構;

用 inception-ResNet v2 架構得到具備不同感受野的訓練特征;

經過對抗訓練的 Siamese 網絡;

以密集(FC)層作為最后一層的 ResNet50、Xception、Inception ResNet v2 x 5;

使用全局最大池化層,無論輸入尺寸如何,該層都將返回固定長度的輸出;

使用堆疊的膨脹卷積;

VoxelNet;

用 concat 和 conv1x1 替換 LinkNet 跳躍連接中的加號;

廣義平均池化;

用 3D 卷積網絡在圖像上滑動;

使用在 Imagenet 數據集上預訓練的 ResNet152 作為特征提取器等。

以及下列經典網絡框架:

23f94f26-9cde-11eb-8b86-12bb97331649.png

損失函數 損失函數常用來估計模型預測結果與真值之間的差距。選擇合適的損失函數,對模型效果很重要。 這部分介紹了一系列損失函數和使用場景,例如:

dice 系數:能夠很好地處理不平衡數據;

加權邊界損失:減少預測分割與真值之間的距離;

MultiLabelSoftMarginLoss:基于最大熵優化多標簽一對多損失的標準;

具備 logit 損失的平衡交叉熵(Balanced cross entropy,BCE):以特定系數權衡正例和負例;

……

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

訓練技巧 這部分介紹了常用的模型訓練技巧,如:

嘗試不同的學習率;

嘗試不同批大??;

使用帶有動量項的 SDG,并且手動設置學習率衰減;

數據增強過多會降低準確率;

使用裁剪后的圖像訓練,并在完整的圖像上做預測;

在學習速率調整上使用 Keras 中的 ReduceLROnPlateau() 方法;

凍結除了最后一層以外所有的網絡層,并使用 Stage1 中的 1000 張圖片進行模型微調;

開發一個能使標簽更加均勻的采樣器;

使用類別感知采樣(class aware sampling)等。

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

集成方法 許多機器學習競賽(包括 Kaggle)中最優秀的解決方案所采用的集成方法都建立在一個這樣的假設上:將多個模型組合在一起通??梢援a生更強大的模型。 這部分介紹了多種集成方法,如多數投票法、XGBoost、LightGBM、CatBoost 等方法,以及集成 ResNet50、InceptionV3 和 InceptionResNetV2 的方法。

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

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

均衡使用測試預測概率,而不是僅使用預測類;

將幾何平均數應用于預測;

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

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

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

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

原文標題:圖像分割的實用技巧

文章出處:【微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像處理
    +關注

    關注

    26

    文章

    1236

    瀏覽量

    55975
  • 機器視覺
    +關注

    關注

    161

    文章

    4082

    瀏覽量

    118662

原文標題:圖像分割的實用技巧

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    常見的醫學圖像讀取方式和預處理方法

    基于深度學習做醫學圖像數據分析,例如病灶檢測、腫瘤或者器官分割等任務,第一步就是要對數據有一個大概的認識。但是我剛剛入門醫學圖像分割的時候,很迷茫不知道自己該干啥,不知道需要準備哪些知識,慢慢到現在才建立了一個簡陋的知識體系。
    發表于 04-19 11:43 ?206次閱讀
    <b class='flag-5'>常見</b>的醫學<b class='flag-5'>圖像</b>讀取方式和<b class='flag-5'>預處理</b><b class='flag-5'>方法</b>

    C語言中的預處理

    所有的預處理器命令都是以井號(#)開頭。它必須是第一個非空字符,為了增強可讀性,預處理器指令應從第一列開始。
    發表于 03-01 12:16 ?304次閱讀
    C語言中的<b class='flag-5'>預處理</b>器

    C語言有哪些預處理操作?

    C語言的預處理是在編譯之前對源代碼進行處理的階段,它主要由預處理器完成。預處理器是一個獨立的程序,它負責對源代碼進行一些文本替換和處理,生成
    的頭像 發表于 12-08 15:40 ?327次閱讀
    C語言有哪些<b class='flag-5'>預處理</b>操作?

    FPGA圖像處理方法

    圖像在采集和傳輸的過程中,通常會產生噪聲,使圖像質量降低,影響后續處理。因此須對圖像進行一些圖像濾波、
    的頭像 發表于 12-02 13:15 ?673次閱讀

    激光雷達點云預處理介紹

    激光雷達作為自動駕駛最常用的傳感器,經常需要使用激光雷達來做建圖、定位和感知等任務。 而這時候使用降低點云規模的預處理方法,可以能夠去除無關區域的點以及降低點云規模。并能夠給后續的PCL點云分割帶來
    的頭像 發表于 11-27 18:11 ?509次閱讀

    機器視覺之圖像增強和圖像處理

    一、圖像處理技術概述1.定義對原始獲取圖像進行一系列的運算處理,稱為圖像處理。
    的頭像 發表于 10-26 08:07 ?541次閱讀
    機器視覺之<b class='flag-5'>圖像</b>增強和<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>

    機器視覺之圖像增強和圖像處理

    對原始獲取圖像進行一系列的運算處理,稱為圖像處理。圖像處理是機器視覺技術的
    發表于 10-23 10:43 ?251次閱讀
    機器視覺之<b class='flag-5'>圖像</b>增強和<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>

    圖像處理預處理方法

    灰度化,在RGB模型中,如果R=G=B時,則彩色表示一種灰度顏色,其中R=G=B的值叫灰度值,因此,灰度圖像每個像素只需一個字節存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。一般有分量法 最大值法平均值法加權平均法四種方法對彩色
    的頭像 發表于 10-20 17:08 ?616次閱讀
    <b class='flag-5'>圖像</b><b class='flag-5'>處理</b>之<b class='flag-5'>預處理</b><b class='flag-5'>方法</b>

    機器視覺:圖像處理技術、圖像增強技術

    對原始獲取圖像進行一系列的運算處理,稱為圖像處理。圖像處理是機器視覺技術的
    發表于 10-20 10:17 ?403次閱讀
    機器視覺:<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>技術、<b class='flag-5'>圖像</b>增強技術

    圖像預處理方法研究

    圖像預處理的主要目的是消除圖像中無關的信息,恢復有用的真實信息,增強有關信息的可檢測性、最大限度地簡化數據,從而改進特征提取、圖像分割、匹配和識別的可靠性。一般的
    發表于 09-20 09:35 ?253次閱讀

    圖像的幾種常見的灰度是什么

    作用: 改善圖像的質量,使圖像能夠顯示更多的細節 ,提高圖像的對比度(對比度拉伸); 有選擇的 突出圖像感興趣的特征或者抑制圖像中不需要的特
    的頭像 發表于 08-07 10:02 ?1383次閱讀
    <b class='flag-5'>圖像</b>的幾種<b class='flag-5'>常見</b>的灰度是什么

    C語言預處理命令有哪些?

    往往我說今天上課的內容是預處理時,便有學生質疑:預處理不就是include 和define么?這也用得著講???。是的,非常值得討論,即使是include 和define。但是預處理僅限于此嗎?遠遠
    發表于 06-25 06:15

    人體分割識別圖像技術的原理及應用

    人體分割識別圖像技術是一種將人體從圖像中分割出來,并對人體進行識別和特征提取的技術。該技術主要利用計算機視覺和圖像處理算法對人體圖像進行
    的頭像 發表于 06-15 17:44 ?750次閱讀

    PyTorch教程之數據預處理

    電子發燒友網站提供《PyTorch教程之數據預處理.pdf》資料免費下載
    發表于 06-02 14:11 ?0次下載
    PyTorch教程之數據<b class='flag-5'>預處理</b>

    PyTorch教程-2.2.數據預處理

    到目前為止,我們一直在處理以現成張量形式到達的合成數據。然而,要在野外應用深度學習,我們必須提取以任意格式存儲的雜亂數據,并對其進行預處理以滿足我們的需要。幸運的是,pandas 庫可以完成大部分繁重的工作。本節雖然不能替代適當的pandas 教程,但將為您提供一些最
    的頭像 發表于 06-02 09:34 ?400次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>