為什麼這篇kaggle比賽2021鄉民發文收入到精華區:因為在kaggle比賽2021這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者outrunner (ot)看板DataScience標題[心得] kaggle競賽回顧 PKU...
一年前的今天,2020/1/22日本時間上午九點,
我在豐岡往京都的JR特急上等待kaggle競賽開獎。
由於很早就安排帶小孩出遊,所以最後幾天
只用預先準備好的submission玩Fit LB的遊戲。
話說運氣一直都是打kaggle很重要的一部分。
https://www.kaggle.com/c/pku-autonomous-driving/leaderboard
這場比賽是預測圖像中車輛的6個自由度(6 degrees of freedom)
也就是相對於攝影機的平移(x, y, z)與旋轉(yaw, pitch, roll),
評估指標是mAP
輸入圖像:
https://i.imgur.com/QwzD74U.jpg
標記是每輛車的6個自由度,太小的車輛提供mask不予計算。
根據ground truth可以畫出如下示意圖:
https://i.imgur.com/uOA9q69.jpg
每場比賽都有許多大大小小的細節,但過了一年
我想這場只有一個關鍵值得一提。
基本解法是拿物件偵測模型改輸出就不用多說了。
由於訓練資料只有四千多張,所以在看了一些方法後,
就把競賽重心轉移到資料增強方面。
因為這場比賽的資料特性,使得一般常用的旋轉平移裁切都無法使用。
# 看來只能從旋轉攝影機下手
# 意外的是在這個領域沒看過使用這個方法
kaggle好玩就在這裡,有時候你只要比別人多一招就足以影響比賽結果。
更何況這個方法不但增加source的變化,同時target也改變了,堪稱完美。
舉例說明實際的操作結果。
底下有兩張圖,一張原始資料,一張是攝影機原地向左旋轉50度:
https://i.imgur.com/2iGyzmG.jpg
https://i.imgur.com/yjEskVu.jpg
原圖最左邊那台車相對應的6個自由度:
x y z yaw pitch roll
原始 -3.28 2.79 8.51 0.159 -0.009 -3.091
左轉50度 4.42 2.79 7.98 0.064 -0.883 -2.987
左右轉50度的動畫圖:
https://i.imgur.com/9MwpU1x.gif
三個維度都可以自由旋轉,詳情請看範例:
https://www.kaggle.com/outrunner/rotation-augmentation
說穿了不就只是個資料增強?
差別在於同一台車同樣背景,會因為出現在
畫面中的位置、角度與透視變形不同,而有不同的答案。
剛好我們希望模型學到的是"物件的位置、角度與透視變形",
而不是"物件本身與背景"。
豐富的資料也讓模型更強健,
這可能也是最後在private test set勝出的原因。
如果你的模型沒看過天上飛的車子,
就無法對飛天車做出正確的預測。(這就是deep learning)
當然啦,如果要再吹毛求疵一點,
這個操作是假設攝影機是所謂的"理想攝影機"。
不過當你面對僅有四千張圖以及標記誤差的時候不用想這麼多。
# 結果就是mAP大約多10%
解法全部內容:
https://www.kaggle.com/c/pku-autonomous-driving/discussion/127037
競賽總結:
# 一個資料增強的方法使分數多10%,而且只有我在用
~ 你怎麼能說kaggle不好玩
歡迎討論 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.238.138 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1611311719.A.B7E.html