点击上方“CVer”,选择加"星标"或“置顶”
重磅干货,第一时间送达
作者:SeuTao
https://zhuanlan.zhihu.com/p/51876446
已授权转载
从18年9月份到19年3月,历时半年,共参加了5次kaggle比赛,都是计算机视觉类的任务,拿到了5个金牌(包括一个solo gold),顺利成为了Competitions Grandmaster :)
Current Rank: 40 out of 101103
一、Kaggle五次比赛成绩 (按名次排序)
2nd in Humpback Whale Identification (2/2131, top 1%, Solo Gold Medal)
4th in TGS Salt Identification Challenge (4/3234, top 1%, Gold Medal)
8th in Airbus Ship Detection Challenge (8/884, top 1%, Gold Medal)
9th in Human Protein Atlas Image Classification (9/2236, top 1%, Gold Medal)
12th in Google Doodle Recognition Challenge (12/1316, top 1%, Gold Medal)
二、五次比赛介绍(按时间排序,记录下5次比赛的过程)
1. TGS Salt Identification Challenge(4/3234)金牌 2018.10
TGS 盐体识别挑战赛,挑战者需要开发出能准确分割地表以下沉积盐分布的算法。地震数据是通过地震反射(reflection seismology)收集的,这种方法要求能量的受控震源(如压缩气体或地震振动器),以及记录来自地下岩石界面反射的传感器。之后处理记录的数据,创建地球内部的 3D 视图。地震反射类似于 X 光、声波定位仪和回波定位。
比赛任务:地震图像语义分割
这是我第一次完整的Kaggle比赛经历,坚持刷discussion,follow蛙神的实验。比赛中后期一直保持着top5左右的名次,ddl前一度上了top1,最终public第2,private第4。金牌+奖金,一次Kaggle全体验。
solution介绍:
https://www.kaggle.com/c/tgs-salt-identification-challenge/discussion/69178
代码:https://github.com/SeuTao/Kaggle_TGS2018_4th_place_solution
关于本次比赛的一些详细解读可以参考 @AlexL 的文章,他们是这次比赛的第5名团队:Kaggle TGS 盐体识别挑战第五名解决方案
2. Airbus Ship Detection Challenge(8/884) 金牌 2018.11
Airbus的遥感图像分割检测比赛Airbus Ship Detection Challenge,airbus也就是空中客车公司,悬赏金额6万美金。航运流量增长迅速。更多的船只增加了海上违规行为的机会,这迫使许多组织对公海进行更密切的监视。在过去的10年里,人们做了大量的工作,从卫星图像中自动提取目标,取得了显著的效果,但在实际操作中存在许多不足。现在空中客车公司与kaggle共同举办比赛,寻求更好更快的船舶自动检测方案。
比赛任务:从卫星图片中找到所有的船只
刚结束TGS比赛,此时距离Airbus deadline仅剩下不到一个月了,好在之前训练了一个基础的unet模型,同时把TGS的经验迁移过来,敲定方案是unet语义分割模型+mask rcnn检测模型,几位队友合力之下顺利上升到了PB第2的位置。这题AB榜shakeup很大。最终我们team PB第5,private第8。Do not trust LB, trust ur CV!
solution介绍:https://www.kaggle.com/c/airbus-ship-detection/discussion/71601
代码:https://github.com/SeuTao/Kaggle_Airbus2018_8th_place_solution
附:来自 @Pascal 的方案:Kaggle新手银牌:Airbus Ship Detection 卫星图像分割检测
3. Google Doodle Recognition Challenge(12/1316)金牌 2018.12
这次比赛识别的是Quick, Draw! 游戏的5000万张涂鸦,它们由来自全球各国的超过1500万玩家贡献,画得大多是一些苹果啊,浴缸啊,计算器啊之类的日常用品。
比赛任务:灵魂画手涂鸦分类
跟airbus比赛一样,花了一个月左右的时间去完成。跟之前比赛认识到的伙伴们组成了8人小队。赛题的数据量和需要的计算资源都很大,模型迭代的效率相对比较低。比赛结束之前也没有太多有效的探索。有幸的是最终还是能够private榜逆袭,拿下金牌的最后一名。
拿下这块金牌之后,顺利拿到了kaggle master头衔 :)
代码占坑:https://github.com/SeuTao/Kaggle_Doodle2018_code
4. Human Protein Atlas Image Classification (9/2236)金牌 2019.01
多标签蛋白质图像分类比赛。数据极不均衡,且原始图像尺寸较大。
比赛任务:蛋白质图像多标签分类
连续几个月每天都用大量业余时间来做比赛确实比较辛苦,拿到 kaggle master tier之后本来想着休息一段时间。本人本硕BME毕业,看到医学图像相关的主题异常亲切,决定还是试一试蛋白分类比赛。跟队友二人集成baseline结果之后,进入了金牌区(集成提升巨大)。之后就是加入了杨老师的队伍:
https://zhuanlan.zhihu.com/p/54734559
结果是public第19,private第9,金牌 :)
5. Humpback Whale Identification (2/2131)金牌 2019.03
为了帮助鲸鱼保护,科学家们使用照片监视系统 (Photo Surveillance Systems) 来监视海洋活动。他们使用鲸鱼尾巴这一独一无二的标记来在连续的图像中识别鲸鱼,并对它们的活动进行细致地分析。在过去的四十年里,大部分工作基于科学家们的手工作业,这也使得大量的数据未被充分利用。5004个id鲸鱼数据,其中许多id仅有one shot的数据。这是一个few shot learning和细粒度分类的问题。
比赛任务:座头鲸识别
Kaggle Grandmaster tier要求5块金牌,其中包括一块solo gold,遂决定一鼓作气尝试solo,争取拿下GM title。比赛时间比较充裕,面对的问题也是我相对熟悉的,很快成绩就进入了前10。然而PB达到0.910之后,实验一度没有进展,名次在逐步下滑。急于打破僵局,尝试了相关的各种方案,sota人脸loss,Person reid的模型结构,metric learning,pytorch下也重新搭建了siamese net的pipeline。然而尝试得越多,导致每条路线实验不够充分,更难以得到提升。(后续比赛结果也证明,任何一条路线,工作足够细致,都是能够在比赛中取胜的)冷静下来还是回归最初的方案,稳扎稳打,最终rank 2nd。
solution: https://www.kaggle.com/c/humpback-whale-identification/discussion/83885
代码: https://github.com/SeuTao/Kaggle_Whale2019_2nd_palce_solution
三、Kaggle参赛感受总结
关于成绩:6个月连续五次比赛全部金牌,这是我开始做第一个比赛时没有想到的,其中运气也占了很大成分。每个比赛的初期,我的预期都不会是一块金牌(因为完全不知道会做成什么样),而是随着比赛的进行,不断提升对自己成绩的要求(5%->1%->top10->top5)。
投入精力: 在做竞赛之前,我的业余时间主要是用来做一些自己的project和学习充电。参加kaggle竞赛半年来,我把所有的业余时间都献给了这个平台。周末,国庆,元旦甚至春节假期,几乎都是在kaggle中度过,kaggle可以说成为了我的第二职业。
收获回报:从学习角度来说,kaggle上我收获了对不同问题,不同数据的认识,相关技能上也有不少提升;从荣誉角度来说,得到了多块金牌,成为了Grandmaster,在平台10w用户中能够排名top38(虽然对于很多大佬来说不算什么);还能够认识很多竞赛爱好者,并且相互交流提升;最后,奖金也是一个很好的回报 :)
比赛与工作:比赛与工作的关系,像是训练场与实战。作为一个从业者,比赛给我提供了非常好的训练环境,有非常多的新鲜问题和数据,在限制的条件下供我探索。在这里我想说明的是,比赛成绩好,决不能代表实际工作中能够表现出色。但是反过来,一个算法工程师如果不具备在竞赛中得到好名次的能力,又怎么能胜任实际工作呢?
CVer竞赛交流群
扫码添加CVer助手,可申请加入CVer-竞赛交流群。一定要备注:竞赛交流+地点+学校/公司+昵称
▲长按加群
这么硬的竞赛分享,麻烦给我一个好看
▲长按关注我们
麻烦给我一个好看!