【天池赛事】零基础入门语义分割-地表建筑物识别
https://tianchi.aliyun.com/competition/entrance/531872/introduction
【天池賽事】零基礎入門語義分割-地表建筑物識別:第一章 賽題及baseline
- 1 賽題背景
- 2 任務安排
- 3 賽制說明
- 4 賽題數據
- CV實踐-語義分割|問題匯總
1 賽題背景
本次新人賽是 Datawhale 與天池聯合發起的[零基礎入門系列賽事——零基礎入門語義分割之地表建筑物識別]。
賽題以計算機視覺為背景,要求選手使用給定的航拍圖像訓練模型并完成地表建筑物識別任務。為更好的引導大家入門,我們為本賽題定制了學習方案和學習任務,具體包括語義分割的模型和具體的應用案例。在具體任務中我們將講解具體工具和使用和完成任務的過程。
通過對本方案的完整學習,可以幫助掌握語義分割基本技能。同時我們也將提供專屬的視頻直播學習通道。
2 任務安排
-
Task1:賽題理解與 baseline(3 天)
– 學習主題:理解賽題內容解題流程
– 學習內容:賽題理解、數據讀取、比賽 baseline 構建
– 學習成果:比賽 baseline 提交 -
Task2:數據擴增方法(3 天)
– 學習主題:語義分割任務中數據擴增方法
– 學習內容:掌握語義分割任務中數據擴增方法的細節和使用
– 學習成果:數據擴增方法的實踐 -
Task3:網絡模型結構發展(3 天)
– 學習主題:掌握語義分割模型的發展脈絡
– 學習內容: FCN、 Unet、 DeepLab、 SegNet、 PSPNet
– 學習成果:多種網絡模型的搭建 -
Task4:評價函數與損失函數(3 天)
– 學習主題:語義分割模型各種評價函數與損失函數
– 學習內容: Dice、 IoU、 BCE、 Focal Loss、 Lovász-Softmax
– 學習成果:評價/損失函數的實踐 -
Task5:模型訓練與驗證(3 天)
– 學習主題:數據劃分方法
– 學習內容:三種數據劃分方法、模型調參過程
– 學習成果:數據劃分具體操作 -
Task6:分割模型模型集成(3 天)
– 學習主題:語義分割模型集成方法
– 學習內容: LookaHead、 SnapShot、 SWA、 TTA
– 學習成果:模型集成思路
3 賽制說明
本次賽事分為兩個階段,分別為正式賽及長期賽。
正式賽賽制選手報名成功后,選手下載數據,可以本地或天池 PAI 平臺完成模型訓練,并在測試集上進行提交。
在正式賽后,本場比賽將長期開放,報名和參賽無時間限制。每天每位參賽選手可提交 3 次完成初賽打分;排行榜每小時更新,按照評測指標得分從高到低排序;排行榜將選擇歷史最優成績進行展示。
4 賽題數據
數據說明
賽題數據來源(Inria Aerial Image Labeling),并進行拆分處理。數據集報名后可見并可下載。賽題數據為航拍圖,需要參賽選手識別圖片中的地表建筑具體像素位置。
評價函數
賽題使用Dice coefficient來衡量選手結果與真實標簽的差異性,Dice coefficient可以按像素差異性來比較結果的差異性。Dice coefficient的具體計算方式如下:
2?∣X∩Y∣∣X∣+∣Y∣{{2*|X\cap Y|}\over {|X|+|Y|}} ∣X∣+∣Y∣2?∣X∩Y∣?
其中X是預測結果,Y為真實標簽的結果。當X與Y完全相同時Dice coefficient為1,排行榜使用所有測試集圖片的平均Dice coefficient來衡量,分數值越大越好。
CV實踐-語義分割|問題匯總
Q:賽題數據如何下載
A:下載SS_Data_A_20210201.md,該文件內有數據的下載鏈接,見下表:
| test_a.zip | 314.49MB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/test_a.zip |
| test_a_samplesubmit.csv | 46.39KB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/test_a_samplesubmit.csv |
| train.zip | 3.68GB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/train.zip |
| train_mask.csv.zip | 97.52MB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/train_mask.csv.zip |
Q:使用預訓練模型出現顯存溢出問題
A:1. 減小模型訓練的Batch Size;2. 更換硬件條件【建議:先隨機從訓練集中抽取一些數據跑通Baseline】。
Q: Baseline中Transform.Normalize里的參數是官方建議的標準化參數嗎?
A:使用預訓練的模型時,輸入數據要與預訓練的數據做同樣的處理,即保持類似的分布,不同框架以及不同預訓練模型的參數不同,以Pytorch為例,可參考文檔:https://github.com/Cadene/pretrained-models.pytorch。
Q:如何安裝GDAL、rasterio、tqdm等庫?
A:在jupyter notebook中使用!pip install some_package --user或者在terminal中使用pip install some_package --user命令。
注:
GDAL和rasterio建議使用whl來安裝,下載地址為:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pip;
albumentations有三種安裝方式,推薦使用conda:
-
pip install albumentations
-
pip install -U git+https://github.com/albu/albumentations
-
conda install -c conda-forge imgaug
-
conda install albumentations -c albumentations
Opencv(cv2)安裝命令:python -m pip install opencv-python
Q:關于天池的常見問題,如數據掛載、第三方庫安裝、DSW操作等
A:請參考天池的新手文檔:https://tianchi.aliyun.com/forum/postDetail?spm=TODO.TODO.header.2.21864825A5pdfB&postId=121050。
Q:代碼運行有問題,或者環境配置完后但使用不了第三方庫
A:1. 重啟Kernel或者Python服務;2.若涉及到路徑,請查看路徑是否包含中文【雖然Python3對中文編碼進行了處理,但最好還是優先使用英文:)】;3. 重新創建新的虛擬環境,重新配置第三庫【防止原始環境的第三方庫版本不適合】。
Q:天池存儲空間達到上限【免費空間為5G】,無法安裝庫或者解壓數據等操作
A:1.若條件允許,優先使用本地計算機操作;2.若本地條件不允許,可使用Kaggle或Colab;3.適合薅羊毛的平臺:https://mistgpu.cn/account/【贈送8元點券,每邀請一個好友贈送8元】和https://gpushare.com/auth/register?user=18630188817&fromId=a3f006115d4&source=link【注冊后有100元的注冊券,可以免費用20+小時,邀請一個好友送50】
Q:賽題內容以及Baseline的講解直播如何觀看?
A:直播已經結束,錄播請關注Datawhale的b站,地址為:https://space.bilibili.com/431850986?from=search&seid=724423084384707923
Q:代碼output = model(image)['out']中的['out']能不能刪除
A:不能,Baseline中的FCN模型有兩個輸出,只取out部分。
Q:image, mask = dataset[0],讀取不了圖片,image返回NoneType類型
A:1. 天池解壓可能導致文件損壞;2. 查看文件路徑是否正確。
Q:如何切換相應環境的Kernel?
A:分以下兩步:
conda install ipykernel #安裝插件
python -m ipykernel install --name Name #將環境添加到Jyputer中(Name是此環境顯示在Jyputer中的名稱,可自定義) ```Q:數據擴充那里有一個resize成256*256有什么特殊作用嗎?
A:在FCN中對數據輸入的尺寸沒有要求,所以該大小可以自由調整,但是要對分辨率和占用空間做個權衡。
Q:幾個提升模型精度的思路
A:1. 使用更強的數據增強方法;2. 模型調參,如學習率、圖像尺寸等;3. 調整優化算法、損失函數,考慮正則方法;4 . 更換更強模型,如UNet、DeepLab等;5. 考慮集成方法;6. ……
注:
Q:如何加載本地模型參數?
A:兩種方法:
Q:模型預訓練參數文件下載慢
A:可使用鏡像:https://coggle.club/note/dl/pretrained-models
Q:rle編碼shape要求必須是512么?若將編碼參數shape改為128會導致識別率驟降么?
A:1. shape不是必須為512的,但是編碼前和解碼后的圖像尺寸要一樣(本題圖像數據的尺寸為512*512,所以該參數設為512);2.rle只是編碼,不是降維,如果直接改shape,就相當于編碼內容錯誤,所得信息不是圖像的正確表達,自然識別率會驟降。所以在本題中,先編碼成512,之后隨便縮放。
總結
以上是生活随笔為你收集整理的【天池赛事】零基础入门语义分割-地表建筑物识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言-[bx]和loop指令和多个段
- 下一篇: 【天池赛事】零基础入门语义分割-地表建筑