銀牌方案分享!kaggle鯨魚海豚分類baseline
來源:投稿 作者:Zeta
作者:學姐
最早在知乎上看到的kaggle
比賽解析就三年前的座頭鯨分類比賽(https://www.kaggle.com/c/humpback-whale-identification),當時我對于深度學習還是一個小白,方案的解析也只是看個熱鬧。
三年過去了,碩士馬上就要畢業(yè),投稿的期刊論文完成后想找找比賽增加一下項目經歷,剛好發(fā)現(xiàn)了Happywhale
比賽,也算是讓??見證了我的成長。最后很幸運的在團隊的合作下拿到了Top2%
的成績,也是第一個kaggle銀牌
。

比賽鏈接:
https://www.kaggle.com/competitions/happy-whale-and-dolphin
比賽介紹
如何通過動物的“指紋”識別它們,在大量的數(shù)據(jù)中準確識別每個個體以及新出現(xiàn)的個體是本次比賽的挑戰(zhàn)。
我們使用指紋和面部識別來識別人,但我們可以對動物使用類似的方法嗎?事實上,研究人員通過尾巴、背鰭、頭部和其他身體部位的形狀和標記手動追蹤海洋生物。通過照片通過自然標記進行識別(稱為照片 ID)是海洋哺乳動物科學的有力工具。
它允許隨著時間的推移跟蹤個體動物,并能夠評估種群狀況和趨勢。在您對鯨魚和海豚照片ID自動化的幫助下,研究人員可以將圖像識別時間減少99%以上。更有效的識別可以使以前無法負擔或不可能的研究規(guī)模成為可能。

目前,大多數(shù)研究機構都依賴于耗時的——有時甚至是不準確的——人眼手動匹配。手動匹配需要花費數(shù)千小時,其中包括盯著照片將一個人與另一個人進行比較、尋找匹配項以及識別新的人。雖然研究人員喜歡看一兩張鯨魚照片,但手動匹配限制了范圍和范圍。
在本次比賽中,需要開發(fā)一個模型,通過獨特但通常是微妙的自然標記特征來匹配個體鯨魚和海豚。
評價指標
本次比賽根據(jù)平均平均精度@5(MAP@5)
評估提交

數(shù)據(jù)介紹
這些數(shù)據(jù)包括來自28
個不同研究機構的30
個不同物種的15,000
多張獨特的海洋哺乳動物個體圖像。
海洋研究人員已經手動識別并給出了單獨的標簽。
對于每張圖像,預測個體id(individual_id),測試數(shù)據(jù)中的一些個體在訓練數(shù)據(jù)中沒有觀察到,這些個體應該被預測為新個體(new_individual)。

文件

Test_images:測試集,提供了27956張圖片數(shù)據(jù),種類與訓練集一致。
Train_images:訓練集,提供了51033張圖片數(shù)據(jù),分為2大類(鯨與海豚),細分為30個種類的海洋哺乳動物。
Sample_submission.csv:提交格式。
Train.csv:提供訓練集每一張圖片每個種類(species)和個體ID (individual_id)
數(shù)據(jù)分析及思路
數(shù)據(jù)裁剪:
根據(jù)給出的訓練和測試數(shù)據(jù)可以發(fā)現(xiàn),我們需要識別的主體大小不一,而且由于是海洋生物,多數(shù)拍攝距離較遠但像素較高,所以我們希望人工減少噪聲(背景)對模型的影響。由于數(shù)據(jù)量過大,只通過人工標注成本過大,所以我們可以標注一部分數(shù)據(jù)后,訓練一個目標檢測模型輔助圖像裁剪。

DOLG:
DOLG是一種用于端到端圖像檢索的信息融合框架(正交Local and Global, DOLG)。該算法首先利用多尺度卷積和自注意力方法集中提取具有代表性的局部信息。然后從局部信息中提取與全局圖像表示正交的分量。最后,將正交分量與全局表示法進行互補連接,然后進行聚合生成最終的表征。使用這種方法可以大大提高模型對局部信息及全局信息的表征能力。
SoftMax和ArcFace:
特征學習任務具有兩個關鍵要素,分別是特征的類內緊湊度和類間分離度。當擁有類別標簽時,可以通過使用分類器和分類損失函數(shù)來進行訓練,從而學習到一個深度特征空間。經典的softmax函數(shù)為了向加強類內緊湊度和類間分離度兩個方向發(fā)展,逐漸演變成ArcFcae。

代碼流程
圖像數(shù)據(jù)預處理-標志性特征圖片裁剪:首先根據(jù)開源的標注數(shù)據(jù)訓練YOLOv5目標檢測模型,將訓練集與測試集數(shù)據(jù)裁剪出背鰭或者身體部分。
背鰭圖片特征提取模型:將訓練集數(shù)據(jù)劃分為訓練與驗證兩部分,訓練EfficientNet-B7(backone)模型,將backone的最后兩個模塊的特征層輸入DOLG(正交特征融合層)融合,使用Arcface作為損失函數(shù),有效增強類內緊湊度和類間分離度。
偽標簽噪音數(shù)據(jù)融合:將訓練完成的模型提取測試集數(shù)據(jù)嵌入特征,根據(jù)驗證結果的confidence采用部分測試集預測結果構建偽標簽數(shù)據(jù),連同步驟2的訓練部分一起重新訓練backone模型。
聚類與排序:利用最終訓練完成的backone模型分別提取訓練集與測試集嵌入特征,訓練集嵌入特征訓練KNN模型,然后推斷測試集嵌入特征距離,排序獲取top5類別,作為最終結果
部分代碼展示
數(shù)據(jù)增強:
模型代碼:
DOLG:
參考資料
代碼鏈接:
https://github.com/ZetaLx/Kaggle-Happywhale
DOLG論文:
https://arxiv.org/pdf/2108.02927.pdf
Arcface論文:
https://arxiv.org/pdf/1801.07698.pdf
學姐整理的190多場比賽top方案快來領啦!
kaggle、天池、ccf……
關注【學姐帶你玩AI】公眾號
回復“比賽”’免費領取!