当前位置:   article > 正文

Kaggle比赛记录和总结_kaggle竞赛报告整理

kaggle竞赛报告整理

Kaggle比赛

这个比赛我觉得是半年来收获最大的


过程

开始做这个比赛的时候,还有两个月的时间,花了一些时间看相关论文,当时看的是PVNet和CDPN,最后决定用CDPN试一下


CDPN

CDPN的预测需要mask信息和每个物体的3D模型的。

Mask

比赛数据集没提供mask信息,就想着试试不用mask的话,CDPN效果如何:

在这里插入图片描述
还试了不同的scale参数,其中不用Mask最好的效果:
在这里插入图片描述
使用Mask最好的效果:

在这里插入图片描述
事实证明,还是需要Mask的,不然效果连Baseline都赶不上。

所以,对于Mask信息的获取进行了以下尝试:

1.一开始尝试将所有的3D点云射影到2D图像上来获取Mask,但是失败了,这种质量的Mask是不能用的:
在这里插入图片描述
2.想用其他数据集来训练一个实例分割器,后来找了数据集之后觉得没有必要
3.使用Hybrid Task Cascade算法在COCO上训练的权重试了下,效果很不错,就打算先用这个来获取Mask信息了:
在这里插入图片描述

3D Model

CDPN的要求是每个物体和自己所属的模型对应上,我当时觉得这么多车型不好做分类,用车的尺度的平均值做映射的模型,用2D图像的像素预测对应的3D点

比赛结束后看6DVNet和RoI: 10D这两个论文,前者对汽车进行了车型分类(奥迪、宝马)这样的,后者提出了一个方法,能处理同类的模型

然后对这个CDPN的方法坐在了初步规划:
在这里插入图片描述
写完代码之后进行训练,训完之后发现效果很不好,框都上天了
在这里插入图片描述
后来发现是有两个错误:

  1. 我用的2D逆射影到3D空间,但是这样少了个z信息,是无法得出正确的3D空间坐标的。
  2. 我是用的输入信息是经过resize的,这样的话做pnp不经过处理的话是得不到正确的RT信息的。

修改之后又继续进行训练了。

2D与3D坐标的拟合
后来想将R和T分开处理,尝试用多项式来函数化图像中的xy和空间中的XYZ的关系,将X、Y、Z分别用x、y来拟合,发现效果并不好,所以还是要用深度学习的方法。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

虽然我多项式拟合失败了,但是我觉得X、Y、Z和xy之间应该有一种对应函数,可直接算出,因为车都在路面上,就是说不会有车完全在另一个车的后面,也不会有深度位置的问题,如图所示:
在这里插入图片描述
后来经过老师的指点,用3D空间的数据拟合一个平面,因为车都是在地上走的,必然都在路面这个平面上,使用的代码如下:

回学校了再加上

这是参考的方法:
平面拟合 SVD版本
求交点

拟合出的平面如图:
在这里插入图片描述
计算的误差如下:
在这里插入图片描述
误差还是大到不能用,比赛完了回家后发现,我的方法是有错误的:
我把成像平面放到了焦距处,而成像平面应该在 z z z处,具体信息可以看看这个:针孔摄像机模型和透镜

但是效果还是不行,loss也降不下去,感觉还是车的模型那里有问题,之后就放弃了CDPN的方法,使用其他参赛者提供的kernel,进行一些改动,毕竟参加的初衷就是练手,提不出新方法,学学别人的也是一种进步


CenterNet

这个方法其实没什么东西,就是直接回归
尝试的方法

  1. 用bin的操作来获取角度roll,CenterNet源码就是用的这个操作

    这方法有时候有效,有时候没用,我感觉可能是网络结构的原因?在下面的实验中是无效的

  2. 对pitch也做了角度bin预测,降分 18行

  3. 将不同的信息用不同的branch来预测,loss比例设置为0.1:0.7:0.3,这是我的唯一有效的改动

    后来在其他论文里也看到这样的描述。Attention is all you need 里面也提到了,RoI10D也提到了,同多头预测多种信息,只

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号