Kaggle新賽!飛機凝結(jié)軌跡識別大賽(baseline免費領(lǐng))
賽題目標:利用語義分割在衛(wèi)星圖像中識別對流尾跡
比賽鏈接:https://www.kaggle.com/competitions/google-research-identify-contrails-reduce-global-warming
賽題解析+baseline代碼
比賽背景
凝結(jié)尾跡,簡稱尾跡,已經(jīng)在全球變暖問題上引起了極大的關(guān)注。尾跡是在飛機發(fā)動機排氣中形成的冰晶云狀軌跡,特別是當飛機飛過大氣中超飽和區(qū)域時。他們有一種獨特而令人擔憂的能力,即在大氣中捕獲熱量,從而對全球變暖做出貢獻。這種效應(yīng)最初在約75年前的軍用航空領(lǐng)域中被發(fā)現(xiàn),但自那時以來,它已成為所有航空旅行的關(guān)注點。
多年來,研究人員一直在開發(fā)預(yù)測模型,以更好地理解和預(yù)測尾跡的形成,并量化它們對全球變暖的貢獻。這些模型利用大量的天氣數(shù)據(jù),旨在提供一種可靠的方法來預(yù)測尾跡的發(fā)生及其對氣候的影響。
然而,要確保這些模型的可靠性和適用性,驗證是至關(guān)重要的。這就是衛(wèi)星圖像的用途。通過將尾跡模型的預(yù)測與衛(wèi)星圖像顯示的實際情況進行比較,研究人員可以驗證模型的準確性。雖然這個驗證過程很繁瑣,但它對于在飛行員和更廣泛的航空業(yè)中樹立對模型的信心是必不可少的。
理解和減輕尾跡的產(chǎn)生是減少航空業(yè)對氣候變化影響的重要部分。事實上,目前估計尾跡占人類造成的全球變暖的約1%。因此,航空業(yè)盡可能減少他們產(chǎn)生的尾跡,從而減少對全球變暖的貢獻,這是一個極其重要和引人注目的方面。
通過協(xié)助驗證和進一步完善這些尾跡模型,我們可以在全球共同抗擊全球變暖的戰(zhàn)斗中做出實質(zhì)性的貢獻。隨著模型準確性的每一次提高,航空業(yè)都在減輕其對環(huán)境影響的方面更近一步,實現(xiàn)一種經(jīng)濟有效且可擴展的解決方案。
比賽任務(wù)
參賽者將需要設(shè)計并實現(xiàn)深度學(xué)習(xí)模型,進行精確的語義分割,從而在衛(wèi)星圖像中識別和定位凝結(jié)尾跡。我們鼓勵使用包括但不限于ResNet、VGGNet、Inception、Xception等經(jīng)典的編碼器模型,以及Unet、Unet++、DeepLabv3+等高效的解碼器模型。參賽者需要提交的最終模型應(yīng)能精確識別并預(yù)測凝結(jié)尾跡的位置。
本次比賽旨在利用深度學(xué)習(xí)技術(shù)
,特別是語義分割
方法,從衛(wèi)星圖像中精確識別飛機的凝結(jié)尾跡。這些尾跡是飛機發(fā)動機排氣形成的冰晶云狀結(jié)構(gòu),它們對全球氣候變化的影響不容忽視。因此,通過深度學(xué)習(xí)技術(shù)對衛(wèi)星圖像進行語義分割,能夠更準確地研究、預(yù)測凝結(jié)尾跡的形成以及它們對全球變暖的貢獻。
評價指標
本次比賽的指標為global Dice coefficient
,X表示測試數(shù)據(jù)中所有預(yù)測出的尾跡像素的整個集合,而Y則表示測試數(shù)據(jù)中所有真實的尾跡像素的集合。Dice系數(shù)的最大分數(shù)為1,這表示預(yù)測出的二值掩膜與真實的二值掩膜之間有完美的重疊。
? 比賽格式要求一個以空格分隔的配對列表。例如,'1 3 10 5' 表示像素1,2,3,10,11,12,13,14應(yīng)該被包含在掩膜中。度量標準會檢查這些配對是否被排序、為正數(shù),以及解碼后的像素值是否沒有重復(fù)。像素從上至下、從左至右編號:1是像素(1,1),2是像素(2,1),等等。
數(shù)據(jù)描述
這個比賽的數(shù)據(jù)集來自GOES-16高級基線成像儀(ABI),該數(shù)據(jù)在Google Cloud Storage上公開提供。我們的任務(wù)是使用靜止衛(wèi)星圖像來識別航空尾跡。
? 原始的全盤圖像通過雙線性重采樣進行重新投影,生成一個局部場景圖像。由于尾跡在時間上下文中更容易識別,所以提供了間隔10分鐘的一系列圖像。每個例子(記錄id)包含恰好一個帶標簽的幀。
? 可以從預(yù)印本《OpenContrails:對GOES-16 ABI上的尾跡檢測進行基準測試》了解更多關(guān)于數(shù)據(jù)集的信息。
? 標記指南可以在這份補充材料中找到,一些關(guān)鍵的標記指導(dǎo)如下:
尾跡必須包含至少10個像素;
在其生命周期中,尾跡的長度至少要是其寬度的3倍;
尾跡必須要么突然出現(xiàn),要么從圖像的邊緣進入;
尾跡應(yīng)該在至少兩張圖像中可見。
? 基本上有4個或更多不同的標注者對每張圖像進行標注以確定真實情況。當超過50%的標注者將其標注為尾跡時,像素被認為是尾跡。訓(xùn)練數(shù)據(jù)中包括了單個的標注(human_individual_masks.npy)以及匯總的真實標注(human_pixel_masks.npy)。驗證數(shù)據(jù)只包含匯總的真實標注。
train/ - 訓(xùn)練集
;每個文件夾代表一個記錄id,并包含以下數(shù)據(jù):band_{08-16}.npy
:大小為H x W x T的數(shù)組,其中T = n_times_before + n_times_after + 1,表示序列中的圖像數(shù)量。在標記的幀之前和之后分別有n_times_before和n_times_after圖像。在我們的數(shù)據(jù)集中,所有的樣例都有n_times_before=4和n_times_after=3。每個頻段代表不同波長的紅外頻道,并基于校準參數(shù)轉(zhuǎn)換為亮度溫度。文件名中的數(shù)字對應(yīng)GOES-16 ABI帶號。ABI帶的詳情可以在這里找到。human_individual_masks.npy
:大小為H x W x 1 x R的數(shù)組。每個樣例由R個單獨的人工標記者標記。R對于所有樣品不同。標記的遮罩值為0或1,對應(yīng)于band_{08-16}.npy中的(n_times_before+1) -th圖像。它們只在訓(xùn)練集中提供。human_pixel_masks.npy
:大小為H x W x 1的數(shù)組,包含二值化的地面真實值。如果被超過一半的標簽器標記為尾跡,則在評估中像素被視為尾跡像素。validation/
- 和訓(xùn)練集一樣,但沒有個體標簽注釋;如果需要,可以將此用作訓(xùn)練數(shù)據(jù)。test/ - 測試集
;你的目標是在這些記錄中識別出尾跡。注意:因為這是一個代碼比賽,你不能訪問你的筆記本會重新運行的實際測試集。這里顯示的記錄是驗證數(shù)據(jù)的前兩個記錄的副本(沒有標簽)。隱藏的測試集的大小大約和驗證集一樣(±5%)。重要提示:提交應(yīng)該使用游程編碼,沒有預(yù)測(例如,沒有尾跡)的地方應(yīng)該在提交中標記為'-'。(參見此筆記本了解詳情。){train|validation}_metadata.json
- 每個記錄的元數(shù)據(jù)信息;包含時間戳和復(fù)現(xiàn)衛(wèi)星圖像的投影參數(shù)。sample_submission.csv
- 一個正確格式的樣本提交文件。
代碼講解
定義了一個深度學(xué)習(xí)模型的配置。
創(chuàng)建了一個自定義的PyTorch數(shù)據(jù)集,用于讀取和預(yù)處理尾跡圖像,同時處理圖像的歸一化和尺寸調(diào)整。
制定了一個PyTorch Lightning模塊,包括模型架構(gòu)、損失函數(shù)、優(yōu)化器和學(xué)習(xí)率調(diào)度器,同時詳細說明了訓(xùn)練和驗證步驟。
創(chuàng)建了訓(xùn)練和驗證集的DataLoaders,設(shè)置了檢查點、提前停止和進度條的回調(diào),并初始化了模型和PyTorch Lightning訓(xùn)練器,然后使用該訓(xùn)練器對模型進行訓(xùn)練。
設(shè)定了一個自定義測試數(shù)據(jù)集用于處理測試圖像,并為測試集創(chuàng)建了一個DataLoader。
定義了執(zhí)行行程長度編碼和將列表轉(zhuǎn)換為字符串的函數(shù),這些函數(shù)用于創(chuàng)建最終的提交。
對測試DataLoader進行迭代,為每一批圖像做出預(yù)測,對預(yù)測的掩碼應(yīng)用閾值,并將預(yù)測的掩碼轉(zhuǎn)換為用于提交的行程長度編碼。
利用ContrailsDataset類進行訓(xùn)練/驗證和測試,但在使用中存在細微差別。對于訓(xùn)練/驗證,該類使用數(shù)據(jù)幀的尾跡路徑和標簽,對于測試,它直接讀取記錄數(shù)據(jù)并返回圖像ID。
LightningModule
類使用的是帶有ResNeSt26D
編碼器的UNet模型,搭配Dice損失函數(shù)。優(yōu)化器采用AdamW
,學(xué)習(xí)率調(diào)度器根據(jù)配置,可以是CosineAnnealingLR
或ReduceLROnPlateau
。
在訓(xùn)練結(jié)束后,模型會對測試集進行預(yù)測,對預(yù)測的掩碼進行閾值處理,然后使用行程長度編碼將預(yù)測的掩碼轉(zhuǎn)換為需要的提交格式。
掃碼添加小享,領(lǐng)取完整baseline代碼??

新賽火熱報名中
戳海報了解詳情??

添加小享,報名新賽
有其他問題也可以咨詢哦
