VectorNet(2020 waymo) 第一个提出通过矢量化的方式来编码地图和轨迹等context信息,通过PointNet提取每个地图要素的特征,然后通过self-attention的GNN来获得最终的地图编码。用了一个MLP作为decoder来预测轨迹。 训练的时候随机将一些graph中的特征mask掉来使得模型更好的学习到不同轨迹和地图的交互关系,并且模型会预测mask掉的...
Prediction方法总结
C++工程技巧
C++工程的debug方法 C++程序性能分析方法 C++工程Debug方法 常规方法 通过Debug编译,将CMAKE_BUILD_TYPE设置为Debug,关闭编译优化。然而这样做最大的问题是程序运行会很慢,调试不方便。 改进方法 将CMAKE_BUILD_TYPE设置为RelWithDebInfo 将待调试的代码块关闭编译优...
ICE-BA论文学习
在Bundle Ajustment的线性方程组中,通常采用Schur消元法进行求解,而Schur消元这一操作占用了迭代中的大部分时间,如下图所示。ICE-BA对H矩阵采取增量更新的方式加快了BA优化的速度,从而使得滑动窗口中可以包含更多的帧数来联合优化,提高SLAM性能。 增量式BA 前面提到在BA中,Schur消元占用了主要的时间。两帧$i,j$之间的共视点会对两帧的位姿产生约...
ICE-BA中的预条件共轭梯度法(PCG)
ICE-BA和RKD-SLAM中采用了预条件共轭梯度法(preconditioned conjugate gradient, PCG)来求解线性方程组,该PCG算法专门为Bundle Adjustment设计。 预调节共轭梯度法 简介 共轭梯度法(conjugate gradient,CG)是一种求解线性方程组的非静态迭代法,每次优化的方向以及优化残差均关于系数矩阵$\boldsy...
双目直接法SLAM:stereo-LSD & stereo-DSO
为了搞清楚双目与单目的主要区别,主要分析双目部分引入的变化。 记录stereo-LSD和stereo-DSO这两篇论文的一些改进方式。 stereo-LSD1 LSD简介 LSD(Large-Scale Direct Monocular SLAM)的优化中没有关键点的深度,只优化关键帧的位姿。利用1个参考关键帧,每个新帧与参考关键帧进行track。track完成后对关键点的深度进...
C++文件操作
总结一下利用C++进行文件操作的方法,包括文件的读、写以及遍历文件目录。 写文件 std::ofstream f2; std::string dsoposefile = "./data/"+savefile_tail+"_dsopose.txt"; f2.open(dsoposefile,ios::out); for(int i=0;i<100;++i){ f2<...
常用工程命令
总结一些常用的工程命令用法。 git git clone ...:从…克隆仓库 git add <filename>:将本地的…加入到暂存区 git commit -m "...":将暂存区的改动提交到HEAD git push origin master:将改动提交到远端仓库,可以把 maste...