当前位置:网站首页>DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM 论文阅读
DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM 论文阅读
2022-06-10 12:28:00 【感天动地大白狗】
1 速读
1.1 论文试图解决什么问题?这是否是一个新的问题
作者想解决在更具体场景下(自动驾驶、多机器人协调、AR),动态SLAM系统对环境中的动态物体的追踪问题。相当于结合了SLAM和多目标跟踪,是比较新的问题
1.2 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?
文章涉及到SLAM+多目标追踪,文章的系统框架是基于上一代DynaSLAM做的改进,而DynaSLAM是基于ORBSLAM做的改进;
1.3 文章的贡献是什么?
提出了一种将场景结构,相机位姿,动态目标轨迹在一个局部窗口内tightly BA优化的方法,其中动态目标的Bounding Box也可以通过优化其位姿实现更新;
以此实现了一个基于Stereo/RGBD的动态SLAM系统;
1.4 文章解决方案的关键是什么
将SLAM和多目标追踪结合,用实时多目标追踪解决SLAM中动态污染的问题,同时用SLAM的定位效果完成多目标追踪。
1.5 实验如何设计?实验结果足够论证其效果吗?
实验分两部分:动态物体的纳入对视觉里程计的影响+多目标跟踪效果;
Visual Odometry:评价指标选用ATE,RPEt,RPER
比较了基础模型ORBSLAM和上一代框架DynaSLAM;
比较了同样将动态物体和SLAM框架结合的最新系统:ClusterSLAM,ClusterVO,VDO-SLAM:
①效果比ClusterSLAM好;
②除了旋转方向上,其他结果比VDO-SLAM;
③和ClusterVO效果相当;
Multi-Object Tracking:动态物体的轨迹和3D bounding box来自雷达数据和手工标注,评价指标选用多目标轨迹误差metric MOTP+相机轨迹误差metric TP
对于目标检测object detections:
比较了四个基于目标检测的算法;
对于目标轨迹object trajectories:
选取了具有较长动态物体停留的11段轨迹,计算误差;
Timing Analysis:实时性分析
在动态物体较少的情况下(两个动态物体)达到12fps,动态物体较多的情况下(20个)能够保持~10fps。(没有包括CNN处理的时间,那感觉没什么比较性了)
1.6 数据集是什么?
视觉里程计实验中用到:KITTI中的tracking和raw数据;(是否太少了?)
1.7 还会存在什么问题
1.没有在自测的数据集实验,同时实验数据较少;
2.和上一代类似,其实有很多可以精简优化以加速的地方(匹配方式,object构建的方法);
3.说是object的track,其实只是point的聚类,两个object之间是没有任何关系的,如:一辆车辆被遮挡后重新出现,会被认定为一个新object而不是对老object的回环;
2 主要内容
与ORBSLAM相同的蓝色关键帧轨迹+考虑优化动态部分的青色关键帧轨迹

2.1 文章框架
作者没有给出文章框架…但是从方法内容上看是在上一代DynaSLAM的基础上添加了红线框的部分:Data Association特征-目标的关联、Dynamic Features目标表示、BA优化
2.2 Objects Data Association
①对于一张图片,分别计算特征点和语义特征;
语义目标的创建:moveable语义标签+包含大量特征点;(初始位姿为描述其的3D点质心+单位旋转)
②用imoveable区域初始化位姿;
动态特征点关联/object匹配:
a.object速度已知,假设匀速并做投影匹配;
b.object速度位置,或a没有足够匹配,在连续帧进行暴力匹配找到具有最多match的mask区域;
④用IOU检测匹配
2.3 Object-Centric Representation
以点云描述object太expensive,作者对每个object新建一个对应的obj坐标系,obj上的点在这个坐标系上描述,因为点相对这个坐标系是长久的、相对静止的;后续只优化这个坐标系的位姿
加入object后的几何投影图如下:
2.4 Bundle Adjustment with Objects
关键帧的新建:
①track很弱(和ORBSLAM2中相同);
②某个object的track很弱(一个具有大量特征点的obj在当前只track到一小部分);
因为①插入关键帧:和ORBSLAM2相同;
因为②插入关键帧:在接下来两秒内将该object的位姿、速度、包含的特征点,同相机位姿一起进行local BA优化;
因为①+②插入关键帧:相机位姿、地图、目标位姿、目标速度、目标特征点一同构建BA优化;
①速度连续性误差(速度不能突变):
e v c t e i , k = ( v i + 1 k − v i k w i + 1 k − w i k ) e_{vcte}^{i, k} = \left (\begin{array}{rrrr} v_{i+1}^k-v_i^k \\ w_{i+1}^k - w_i^k\\ \end{array}\right) evctei,k=(vi+1k−vikwi+1k−wik)②匀速模型误差:
e v c t e , X Y Z i , j , k = ( T W O k , i + 1 − T W O k , i △ T O k i , i + 1 ) x ‾ O j , k △ T O k i , i + 1 = ( E x p ( w i k △ t i , i + 1 ) v i k △ t i , i + 1 O 1 × 3 1 ) \begin{aligned} &e_{vcte,XYZ}^{i,j,k} = (T_{WO}^{k, i+1} - T_{WO}^{k, i}\triangle T_{O_k}^{i, i+1})\overline{x}_O^{j, k} \\ &\triangle T_{O_k}^{i, i+1} = \left(\begin{array}{rrrr} Exp(w_i^k\triangle t_{i, i+1}) & v_i^k\triangle t_{i, i+1}\\ O_{1\times 3} & 1\end{array}\right) \end{aligned} evcte,XYZi,j,k=(TWOk,i+1−TWOk,i△TOki,i+1)xOj,k△TOki,i+1=(Exp(wik△ti,i+1)O1×3vik△ti,i+11)即object上的特征点通过求解的位姿 T W O k , i + 1 T_{WO}^{k, i+1} TWOk,i+1得到的世界坐标位置和通过恒速模型得到的 △ T O k i , i + 1 \triangle T_{O_k}^{i, i+1} △TOki,i+1计算的位姿 T W O k , i △ T O k i , i + 1 T_{WO}^{k, i}\triangle T_{O_k}^{i, i+1} TWOk,i△TOki,i+1得到的世界坐标位姿之间的误差;
静态点的重投影误差
e r e p r i , l = u i l − π i ( T C W i x ‾ W l ) e_{repr}^{i,l} = u_i^{l} - \pi_i(T_{CW}^i\overline{x}_W^{l}) erepri,l=uil−πi(TCWixWl)④动态点的重投影误差
e r e p r i , j , k = u i j − π i ( T C W i T W O k , i x ‾ O i , k ) e_{repr}^{i,j,k} = u_i^{j} - \pi_i(T_{CW}^i T_{WO}^{k,i}\overline{x}_O^{i,k}) erepri,j,k=uij−πi(TCWiTWOk,ixOi,k)表示object k上的点j转换到世界坐标系再转换到相机坐标系上和观测u的像素误差;
最终的误差,从左到右表示静态重投影误差(棕色)+①速度连续性误差(红色)+④动态重投影误差(青色)+②匀速模型误差(粉红色):
m θ i n ∑ i ∈ C ( ∑ l ∈ M P i ρ ( ∣ ∣ e r e p r i , l ∣ ∣ ∑ i l 2 ) + ∑ k ∈ O i ( ρ ( ∣ ∣ e v c t e i , k ∣ ∣ ∑ △ 2 2 ) + ∑ j ∈ O P k ( ρ ( ∣ ∣ e r e p r i , j , k ∣ ∣ ∑ i j 2 ) + ρ ( ∣ ∣ e v c t e , X Y Z i , j , k ∣ ∣ ∑ △ t 2 ) ) ) ) \underset{\theta} min\sum_{i\in\mathcal{C}}(\sum_{l\in{\mathcal{MP}_i}}\rho(||e_{repr}^{i, l}||_{\sum_i^l}^2)\ +\ \sum_{k\in\mathcal{O_i}}(\rho(||e_{vcte}^{i, k}||_{\sum_{\triangle}^2}^2)\\ +\sum_{j\in\mathcal{OP}_k}(\rho(||e_{repr}^{i,j,k}||_{\sum_i^j}^2)\ +\ \rho(||e_{vcte,XYZ}^{i,j,k}||_{\sum_{\triangle_t}}^2)))) θmini∈C∑(l∈MPi∑ρ(∣∣erepri,l∣∣∑il2) + k∈Oi∑(ρ(∣∣evctei,k∣∣∑△22)+j∈OPk∑(ρ(∣∣erepri,j,k∣∣∑ij2) + ρ(∣∣evcte,XYZi,j,k∣∣∑△t2))))待优化参数列表,从左到右表示相机位姿+object位姿+静态3d点坐标+动态object点坐标+速度+角速度:
θ = { T C W i , T W O k , i , X W j , X O j , k , v i k , w i k } \theta = \{T_{CW}^i, T_{WO}^{k,i}, X_W^j, X_O^{j,k}, v_i^k,w_i^k\} θ={ TCWi,TWOk,i,XWj,XOj,k,vik,wik}
BA图和海森矩阵:

上图表示:5个关键帧+1个object+10个object point+10个静态point的海森矩阵,需要想一想的是:
①Objects-KFs:虽然只有一个object,但是优化是在一个local windows中进行的,在这个local windows中每个时刻都会对应一个object_t,被关键帧观测的object_t被标记为粉红色,所以呈现这样的分布;
②Objects-Objects:相邻时刻的object之间会有相关性,所以呈现这种斜对角线的柱状分布;
2.5 Bounding Boxes
用一个长方体描述object,从作者文字描述看不懂是怎么得到这个box,应该跟别的工作类似,以后再看
问题
1、关键帧的新建规则会不会导致一直创建关键帧?
边栏推荐
- Lua syntax
- JS将阿拉伯数字翻译成中文的大写数字、JS将数字转换为大写金额(整理)
- ASP.NET 利用ImageMap控件设计导航栏
- UML class diagram
- Zipoutputstream use
- 蚂蚁金服杨军:蚂蚁数据分析平台的演进及数据分析方法的应用
- ShaderGraph——303摇曳的小草
- Introduction to the library of C language best practices (Part 1)
- JS use the Icheck plug-in to listen and get the value of the checkbox
- (11) Const decorated member function
猜你喜欢

uni-app解析银行卡(支付宝)返回form表单,唤起支付宝界面

好文分享|48小时敏捷开发攻略

H5 pop up prompt layer - top, bottom, left and right center

JS translates Arabic numerals into Chinese capital figures, JS converts figures into capital amounts (sorting)

H5弹出提示层-上下左右居中

无代码五月大事件|微软低代码矩阵更新;多份行业报告发布...

In the era of digital economy, where should retail stores go

大牛推荐,吊打面试官

Creating basic stacks and queues in C language

Alibaba cloud ECS server builds MySQL database
随机推荐
JS将阿拉伯数字翻译成中文的大写数字、JS将数字转换为大写金额(整理)
JS判断包含:includes
统计100以内的各位数之和为7的自然数的个数及平均值
Shadergraph - 302 swimming Dragon
Practical cases, in-depth analysis
(4) Classes and objects (1)
软件项目管理 6.10.成本预算
MAX3051的can芯片的学习
ZipOutputStream使用
IO文件流重复读取
2022年浙江省赛
阿里云ECS服务器搭建Mysql数据库
Yet Another Palindrome Partitioning
Traversing object properties of unknown type
漏扫工具学习笔记
实战案例,深入剖析
ShaderGraph——水面
好文分享|48小时敏捷开发攻略
C # implement bubble form
Shadergraph - Crystal