日本护士毛茸茸高潮,亚洲精品自偷自拍无码,久久精品国产一区二区三区,日韩人妻无码免费视频一二区

澎湃Logo
下載客戶端

登錄

  • +1

如何用PyTorch進行語義分割?一個教程教會你

2020-11-29 08:49
來源:澎湃新聞·澎湃號·湃客
字號

木易 發(fā)自 凹非寺

量子位 報道 | 公眾號 QbitAI

很久沒給大家?guī)斫坛藤Y源啦。

正值PyTorch 1.7更新,那么我們這次便給大家?guī)硪粋€PyTorch簡單實用的教程資源:用PyTorch進行語義分割。

△圖源:stanford

該教程是基于2020年ECCV Vipriors Chalange Start Code實現了語義分割,并且添加了一些技巧。

友情提示:教程中的所有文件均可以在文末的開源地址獲取。

預設置

在開始訓練之前,得首先設置一下庫、數據集等。

庫準備

pip install -r requirements.txt

下載數據集

教程使用的是來自Cityscapes的數據集MiniCity Dataset。

數據集的簡單數據分析

將各基準類別進行輸入:

之后,便從0-18計數,對各類別進行像素標記:
使用deeplab v3進行基線測試,結果發(fā)現次要類別的IoU特別低,這樣會導致難以跟背景進行區(qū)分。

如下圖中所示的墻、柵欄、公共汽車、火車等。

分析結論:數據集存在嚴重的類別不平衡問題。

訓練基準模型

使用來自torchvision的DeepLabV3進行訓練。

硬件為4個RTX 2080 Ti GPU (11GB x 4),如果只有1個GPU或較小的GPU內存,請使用較小的批處理大?。?lt; = 8)。

python baseline.py --save_path baseline_run_deeplabv3_resnet50 --crop_size 576 1152 --batch_size 8;

python baseline.py --save_path baseline_run_deeplabv3_resnet101 --model DeepLabv3_resnet101 --train_size 512 1024 --test_size 512 1024 --crop_size 384 768 --batch_size 8;

損失函數

有3種損失函數可供選擇,分別是:交叉熵損失函數(Cross-Entropy Loss)、類別加權交叉熵損失函數(Class-Weighted Cross Entropy Loss)和焦點損失函數(Focal Loss)。

交叉熵損失函數,常用在大多數語義分割場景,但它有一個明顯的缺點,那就是對于只用分割前景和背景的時候,當前景像素的數量遠遠小于背景像素的數量時,模型嚴重偏向背景,導致效果不好。

# Cross Entropy Loss

python baseline.py --save_path baseline_run_deeplabv3_resnet50 --crop_size 576 1152 --batch_size 8;

類別加權交叉熵損失函數是在交叉熵損失函數的基礎上為每一個類別添加了一個權重參數,使其在樣本數量不均衡的情況下可以獲得更好的效果。

# Weighted Cross Entropy Loss

python baseline.py --save_path baseline_run_deeplabv3_resnet50_wce --crop_size 576 1152 --batch_size 8 --loss weighted_ce;

焦點損失函數則更進一步,用來解決難易樣本數量不平衡。

# Focal Loss

python baseline.py --save_path baseline_run_deeplabv3_resnet50_focal --crop_size 576 1152 --batch_size 8 --loss focal --focal_gamma 2.0;

歸一化層

有4種歸一化方法:BN(Batch Normalization)、IN(Instance Normalization)、GN(Group Normalization)和EvoNorm(Evolving Normalization)。

BN是在batch上,對N、H、W做歸一化,而保留通道 C 的維度。BN對較小的batch size效果不好。

# Batch Normalization

python baseline.py --save_path baseline_run_deeplabv3_resnet50 --crop_size 576 1152 --batch_size 8;

IN在圖像像素上,對H、W做歸一化,用在風格化遷移。

# Instance Normalization

python baseline.py --save_path baseline_run_deeplabv3_resnet50_instancenorm --crop_size 576 1152 --batch_size 8 --norm instance;

GN將通道分組,然后再做歸一化。

# Group Normalization

python baseline.py --save_path baseline_run_deeplabv3_resnet50_groupnorm --crop_size 576 1152 --batch_size 8 --norm group;

EvoNorm則是4月份由谷歌和DeepMind 聯(lián)合發(fā)布的一項新技術。實驗證明,EvoNorms 在多個圖像分類模型上效果顯著,而且還能很好地遷移到 Mask R-CNN 模型和 BigGAN。

# Evolving Normalization

python baseline.py --save_path baseline_run_deeplabv3_resnet50_evonorm --crop_size 576 1152 --batch_size 8 --norm evo;

數據增強

2種數據增強技術:CutMix、Copy Blob。

CutMix

將一部分區(qū)域cut掉但不填充0像素,而是隨機填充訓練集中的其他數據的區(qū)域像素值,分類結果按一定的比例分配。

而在這里,則是在原有CutMix的基礎上,引入了語義分割。

# CutMix Augmentation

python baseline.py --save_path baseline_run_deeplabv3_resnet50_cutmix --crop_size 576 1152 --batch_size 8 --cutmix;

Copy Blob

在 Blob 存儲的基礎上構建,并通過Copy的方式增強了性能。

另外,如果要解決前面所提到的類別不平衡問題,則可以使用視覺歸納優(yōu)先的CopyBlob進行增強。

# CopyBlob Augmentation

python baseline.py --save_path baseline_run_deeplabv3_resnet50_copyblob --crop_size 576 1152 --batch_size 8 --copyblob;

推理

訓練結束后,對訓練完成的模型進行評估。

python baseline.py --save_path baseline_run_deeplabv3_resnet50 --batch_size 4 --predict;

多尺度推斷

使用[0.5,0.75,1.0,1.25,1.5,1.75,2.0,2.2]進行多尺度推理。另外,使用H-Flip,同時必須使用單一批次。

# Multi-Scale Inference

python baseline.py --save_path baseline_run_deeplabv3_resnet50 --batch_size 1 --predict --mst;

使用驗證集計算度量

計算指標并將結果保存到results.txt中。

python evaluate.py --results baseline_run_deeplabv3_resnet50/results_val --batch_size 1 --predict --mst;

最終結果

最后的單一模型結果是0.6069831962012341,

如果使用了更大的模型或者更大的網絡結構,性能可能會有所提高。

另外,如果使用了各種集成模型,性能也會有所提高。

資源地址:

https://github.com/hoya012/semantic-segmentation-tutorial-pytorch

— 完 —

本文系網易新聞?網易號特色內容激勵計劃簽約賬號【量子位】原創(chuàng)內容,未經賬號授權,禁止隨意轉載。

原標題:《如何用PyTorch進行語義分割?一個教程教會你|資源》

閱讀原文

    本文為澎湃號作者或機構在澎湃新聞上傳并發(fā)布,僅代表該作者或機構觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發(fā)布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。

    +1
    收藏
    我要舉報
            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號

            滬公網安備31010602000299號

            互聯(lián)網新聞信息服務許可證:31120170006

            增值電信業(yè)務經營許可證:滬B2-2017116

            ? 2014-2025 上海東方報業(yè)有限公司

            反饋
            亚洲国产成人精品无码区宅男| 护士被强女千到高潮视频| 国产片AV在线播放| 人妻日韩AV综合网| 成人影片一区免费观看| 亚洲午夜欧美一区二区色欲| 国产无遮无挡120秒| 精品久久免费国产乱色也| 少妇熟女 一区| 人人草人人干人人草| 久久精品国产蜜臀av| 国产睡熟迷奷系列网站| 亚洲欧美人成视频一区在线| 精品人妻码一区二区三区| 国产成人午夜视频免费一区二区| 国产日本一区二区三区| 狠狠插入少妇| 午夜男女爽爽羞羞影院在线观看| 顶级少妇美女销魂艳妇影院| 九色九九九老阿姨| 亚洲欧美日韩人成在线播放| 国产强奸AV在线| 国产v欧美v日韩v综合精品| 日本一卡2卡3卡4卡5卡精品视频 | 欧洲黑大粗无码免费| 后入人妻一区| 一个人免费视频WWW在线观看| 国产永久免费高清在线观看| 男人j桶进女人p无遮挡| 两个人的视频高清在线观看免费 | 国产GV猛男GV无码男同软件 | 亚洲乱色熟女一区二区蜜臀| 欧美黑人巨大xxxxx视频 | 被男人吃奶很爽的毛片| 日产无人区一线二线三线小| 精品国产一区二区| 老熟女老熟妇2吞精口爆| 一区二区三区欧美| 在线欧美日韩国产| 欧美人体大胆瓣开下部自慰照 | 男人把女人桶到爽爆的视频网站|