两篇基于语义地图的视觉定位方案:AVP-SLAM和RoadMap

在这里插入图片描述

本文介绍两篇使用语义地图进行视觉定位的论文,两篇论文工程性很强,值得一学。

AVP-SLAM是一篇关于自动泊车的视觉定位方案,收录于 IROS 2020。论文链接为:https://arxiv.org/abs/2007.01813,视频链接为:https://zhuanlan.zhihu.com/p/157340737。

RoadMap轻量级的室外语义地图视觉定位方案,收录于 ICRA2021。论文链接为:https://arxiv.org/abs/2106.02527,视频链接为:https://zhuanlan.zhihu.com/p/382183817。


1.AVP-SLAM

AVP-SLAM:自动泊车SLAM框架,采用停车线等作为定位标志,IROS2020

1.1 System Overview

自动泊车视觉定位方案如下图所示,使用到的传感器有4个环视摄像头,1个IMU,2个轮速编码器,轮速编码器和IMU组成里程计,可以据此得到车辆的相对位置。

整个方案分为两部分:

  • 第一部分是建立全局语义地图,4个环视摄像头采集到的图像首先投影到鸟瞰图,然后合并成全方位图;神经网络检测语义特征,包括车道线、车位线、地面引导标志、减速带。结合里程计,将语义特征投影到全局坐标,同时使用回环检测最终得到全局图
  • 第二部分是定位,与建图相似,通过鸟瞰图提取语义特征然后与全局图进行匹配来定位。同时,使用EKF将视觉地位与里程计定位进行融合。
    在这里插入图片描述

1.2 Methodology

1)全方位图合成

4个环视摄像头如图3所示,每个摄像头的内参和外参都已提前标定。图像中的像素投影到汽车中心坐标地面(z=0z=0z=0),投影方程为:
1λ[xvyv1]=[Rctc]col⁡:1,2,4−1πc−1([uv1])\frac{1}{\lambda}\left[\begin{array}{c} x^{v} \\ y^{v} \\ 1 \end{array}\right]=\left[\mathbf{R}_{c} \mathbf{t}_{c}\right]_{\operatorname{col}: 1,2,4}^{-1} \pi_{c}^{-1}\left(\left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]\right) λ1xvyv1=[Rctc]col:1,2,41πc1uv1

其中 πc(.)\pi_{c}(.)πc(.) 是摄像头投影模型,πc(.)−1\pi_{c}(.)^{-1}πc(.)1 是逆投影。[Rt,tc][\mathbf{R}_t,\mathbf{t}_c][Rt,tc] 是每个摄像头相对汽车中心的外参,[u,v][u,v][u,v] 是像素坐标,[xv,yv][x^v,y^v][xv,yv] 是对应在汽车中心坐标的像素位置。

逆投影之后,合成全方位图,如下图4所示。全方位图合成方程为:
[uipmvipm1]=Kipm[xvyv1]\left[\begin{array}{c} u_{i p m} \\ v_{i p m} \\ 1 \end{array}\right]=\mathbf{K}_{i p m}\left[\begin{array}{c} x^{v} \\ y^{v} \\ 1 \end{array}\right] uipmvipm1=Kipmxvyv1

其中 Kipm\mathbf{K}_{ipm}Kipm 是合成全方位图内参。

2)特征检测

下面就是特征检测,这里使用的分割网络为 U-Net,作者专门针对车库场景进行了训练,分割结果如图4所示。

在这里插入图片描述在这里插入图片描述

3)建图

特征检测之后,有用的语义特征(车位线、引导标志、减速带)位置会转换到3D空间坐标,转换方程为:
[xvyv1]=Kipm−1[uipmvipm1]\left[\begin{array}{c} x^{v} \\ y^{v} \\ 1 \end{array}\right]=\mathbf{K}_{i p m}^{-1}\left[\begin{array}{c} u_{i p m} \\ v_{i p m} \\ 1 \end{array}\right] xvyv1=Kipm1uipmvipm1

结合里程计,这些特征将会从汽车中心坐标转换到世界坐标,转换方程为:
[xwywzw]=Ro[xvyv0]+to\left[\begin{array}{l} x^{w} \\ y^{w} \\ z^{w} \end{array}\right]=\mathbf{R}_{\mathbf{o}}\left[\begin{array}{c} x^{v} \\ y^{v} \\ 0 \end{array}\right]+\mathbf{t}_{o} xwywzw=Roxvyv0+to

其中 [Ro,to][\mathbf{R}_o,\mathbf{t}_o][Ro,to] 是从里程计得到的汽车位置,这样就得了局部地图。

由于里程计会随时间漂移,这里使用回环检测进行优化,如图5所示。两个局部地图使用ICP方法进行匹配,如果匹配成功就得到了两个局部图的相对位置,这些相对位置会用在全局位置图优化中。全局优化方程为:

X∗=arg⁡min⁡X∑t∥f(rt+1,tt+1,rt,tt)−zt,t+1o∥2+∑i,j∈L∥f(ri,ti,rj,tj)−zi,jl∥2\begin{gathered} \mathcal{X}^{*}=\underset{\mathcal{X}}{\arg \min } \sum_{t}\left\|f\left(\mathbf{r}_{t+1}, \mathbf{t}_{t+1}, \mathbf{r}_{t}, \mathbf{t}_{t}\right)-\mathbf{z}_{t, t+1}^{o}\right\|^{2} +\sum_{i, j \in \mathcal{L}}\left\|f\left(\mathbf{r}_{i}, \mathbf{t}_{i}, \mathbf{r}_{j}, \mathbf{t}_{j}\right)-\mathbf{z}_{i, j}^{l}\right\|^{2} \end{gathered} X=Xargmintf(rt+1,tt+1,rt,tt)zt,t+1o2+i,jLf(ri,ti,rj,tj)zi,jl2

其中 X=[r0,t0,...,rt,tt]T\mathcal{X}=[\mathbf{r}_0,\mathbf{t}_0,...,\mathbf{r}_t,\mathbf{t}_t]^{T}X=[r0,t0,...,rt,tt]T 是 所有局部图的位置,zt,t+1o\mathbf{z}_{t, t+1}^{o}zt,t+1o 是从里程计得到的局部图 tttt+1t+1t+1 相对位置;zi,jl\mathbf{z}_{i,j}^lzi,jl 是回环帧对 i,ji,ji,j 的相对位置。优化方法为高斯牛顿法。

4)定位

定位如图6所示,和建图类似,首先是检测语义特征,检测到的语义特征与全局图进行匹配,匹配方法为:
r∗,t∗=arg⁡min⁡r,t∑k∈S∥R(r)[xkvykv0]+t−[xkwykwzkw]∥2\mathbf{r}^{*}, \mathbf{t}^{*}=\underset{\mathbf{r}, \mathbf{t}}{\arg \min } \sum_{k \in \mathcal{S}}\left\|\mathbf{R}(\mathbf{r})\left[\begin{array}{c} x_{k}^{v} \\ y_{k}^{v} \\ 0 \end{array}\right]+\mathbf{t}-\left[\begin{array}{l} x_{k}^{w} \\ y_{k}^{w} \\ z_{k}^{w} \end{array}\right]\right\|^{2} r,t=r,targminkSR(r)xkvykv0+txkwykwzkw2

其中 r,t\mathbf{r},\mathbf{t}r,t 是当前帧的旋转和平移向量,S\mathcal{S}S 是当前特征点集合,[xkv,ykv,0][x_k^v,y_k^v,0][xkv,ykv,0] 是当前特征点在汽车坐标的位置,[xkw,ykw,zkw][x_k^w,y_k^w,z_k^w][xkw,ykw,zkw] 是全局坐标系下与特征匹配的最近点。

在实际应用中,使用里程计进行位置预测,视觉定位结果进行更新。同时在特征检测时,还要检测停车位位置,这里通过检测停车位顶点车位线位置来实现(如图7所示)。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

1.3 Experimental Results

实验采集平台:摄像头采集频率为为30Hz,图像精度为 1280×7201280\times7201280×720 pixels,图像分割处理频率为15Hz。为了评估建图精度,在室外场景中使用RTK-GPS作为真值,结果如表1所示,建图精度比纯里程计和ORB-SLAM2要高。

下面是召回率比较,为了公平比较,使用了里程计辅助ORB-SLAM2建图,结果如表2所示,可以看出,语义特征比几何特征定位更稳定

然后是地图大小比较, 如表3所示,语义地图比传统描述子地图更高效。最后是定位误差,如表4所示,测量的是汽车中心与车位线之间实际距离以及地图上两者之间距离,两个距离之差为定位误差,总共进行了20次停车测试,可以看到定位误差达到了厘米级。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.RoadMap

文方案探索的是使用轻量化的众包语义地图,取代传统的高精地图,实现视觉定位

2.1 System Overview

如下图所示,定位方案包括三部分:车端建图、云端建图、终端定位

  • 配备有前视摄像头、RTK-GPS以及其它传感器的高端车辆(如Robo-taxi) 每天收集大量实时数据,通过分割网路从前视图像提取语义特征,然后根据优化的汽车位置将语义特征投影到世界坐标,同时将局部语义地图上传到云端;
  • 云端服务器接收多个车辆上传的局部语义地图,合并成全局地图;然后进行地图压缩提取轮廓,接着将压缩的语义地图发送至终端车辆;
  • 配置低成本传感器的终端车辆接收云端的语义地图,前视图像提取的语义特征与地图进行匹配定位
    在这里插入图片描述

2.2 Methodology

1)车端建图

首先是图像分割,如图3所示,使用车道线、停车线、道路标志来建立语义地图。

在使用RTK-GPS进行定位时会受到周围遮挡物的影响,因此这里还需要进行位置图优化,如图4和5所示,优化方程为:
min⁡s0…sn{∑i∈[1,n]∥ro(si−1,si,m^i−1,io)∥σ2+∑i∈G∥rg(si,m^ig)∥σ2}\min _{\mathbf{s}_{0} \ldots \mathbf{s}_{n}}\left\{\sum_{i \in[1, n]}\left\|\mathbf{r}_{o}\left(\mathbf{s}_{i-1}, \mathbf{s}_{i}, \hat{\mathbf{m}}_{i-1, i}^{o}\right)\right\|_{\boldsymbol{\sigma}}^{2}+\sum_{i \in \mathcal{G}}\left\|\mathbf{r}_{g}\left(\mathbf{s}_{\mathbf{i}}, \hat{\mathbf{m}}_{i}^{g}\right)\right\|_{\boldsymbol{\sigma}}^{2}\right\} s0snmini[1,n]ro(si1,si,m^i1,io)σ2+iGrg(si,m^ig)σ2

其中,sss 是位置状态量,mi−1,io{\mathbf{m}}_{i-1, i}^{o}mi1,io 是里程计测量,mig\mathbf{m}_{i}^{g}mig 是GNSS测量,里程计和GNSS残差 ro\mathbf{r}_ororg\mathbf{r}_grg 为:
ro(si−1,si,m^i−1,io=[R(qi−1)−1(pi−pi−1)−δp^i−1,io[qi−1⋅qi−1⋅δq^i−1,io]xyz]rg(si,m^ig)=pi−m^ig\begin{aligned} \mathbf{r}_{o}\left(\mathbf{s}_{i-1}, \mathbf{s}_{i}, \hat{\mathbf{m}}_{i-1, i}^{o}\right.&=\left[\begin{array}{c} \mathbf{R}\left(\mathbf{q}_{i-1}\right)^{-1}\left(\mathbf{p}_{i}-\mathbf{p}_{i-1}\right)-\delta \hat{\mathbf{p}}_{i-1, i}^{o} \\ {\left[\mathbf{q}_{i}{ }^{-1} \cdot \mathbf{q}_{i-1} \cdot \delta \hat{\mathbf{q}}_{i-1, i}^{o}\right]_{x y z}} \end{array}\right] \\ \mathbf{r}_{g}\left(\mathbf{s}_{\mathbf{i}}, \hat{\mathbf{m}}_{i}^{g}\right) &=\mathbf{p}_{i}-\hat{\mathbf{m}}_{i}^{g} \end{aligned} ro(si1,si,m^i1,iorg(si,m^ig)=[R(qi1)1(pipi1)δp^i1,io[qi1qi1δq^i1,io]xyz]=pim^ig

最后是建立局部语义地图,与AVP-SLAM类似,即将语义特征根据优化的位置转换到全局坐标。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2)云端建图

云端将各个车辆收集来的地图进行合并,得到全局地图,同时提取出地图轮廓,然后再发送给其它量产车。
在这里插入图片描述


3)终端定位

首先是复原地图,这里是使用同样的语义标签填充轮廓,然后将标签像素投影到世界坐标。定位方法与AVP-SLAM一样,即:
q∗,p∗=arg⁡min⁡q,p∑k∈S∥R(q)[xkvykv0]+p−[xkwykwzkw]∥2\mathbf{q}^{*}, \mathbf{p}^{*}=\underset{\mathbf{q}, \mathbf{p}}{\arg \min } \sum_{k \in \mathcal{S}}\left\|\mathbf{R}(\mathbf{q})\left[\begin{array}{c} x_{k}^{v} \\ y_{k}^{v} \\ 0 \end{array}\right]+\mathbf{p}-\left[\begin{array}{c} x_{k}^{w} \\ y_{k}^{w} \\ z_{k}^{w} \end{array}\right]\right\|^{2} q,p=q,pargminkSR(q)xkvykv0+pxkwykwzkw2


2.3 Experimental Results

下面是定位精度比较,这里RTK-GPS做真值,可以看出其定位精度比激光雷达还要准。

在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【51Nod - 1270】数组的最大代价(dp,思维)

题干&#xff1a; 数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai&#xff0c;都满足1 < Ai < Bi。数组A的代价定义如下&#xff1a; &#xff08;公式表示所有两个相邻元素的差的绝对值之和&#xff09; 给出数组B&…

一步步编写操作系统 56 门、调用门与RPL序 1

小弟多次想把调用门和RPL分开单独说&#xff0c;但几次尝试都没有成功&#xff0c;我发现它们之间是紧偶合、密不可分&#xff0c;RPL的产生主要是为解决系统调用时的“越权”问题&#xff0c;系统调用的实现方式中&#xff0c;以调用门和中断门最为适合。由于以后我们将用中断…

自动驾驶纯视觉3D物体检测算法

视频链接&#xff1a;https://www.shenlanxueyuan.com/open/course/112 这是Pseudo-LiDAR作者最近做的一个分享报告&#xff1a;《Pseudo-LiDAR&#xff1a;基于相机的3D物体检测算法》。在这份报告里&#xff0c;作者主要介绍了博士期间的研究成果&#xff1a;基于深度学习的…

一步步编写操作系统 57 门、调用门与RPL序 2

接上文&#xff1a; 提供了4种门的原因是&#xff0c;它们都有各自的应用环境&#xff0c;但它们都是用来实现从低特权级的代码段转向高特权级的代码段&#xff0c;咱们这里也只讨论有关特权级的功用&#xff1a; 1.调用门 call和jmp指令后接调用门选择子为参数&#xff0c;以…

Coursera自动驾驶课程第15讲:GNSS and INS Sensing for Pose Estimation

在上一讲《Coursera自动驾驶课程第14讲&#xff1a;Linear and Nonlinear Kalman Filters》 我们学习了卡尔曼滤波相关知识&#xff0c;包括&#xff1a;线性卡尔曼滤波&#xff08;KF&#xff09;、扩展卡尔曼滤波&#xff08;EKF&#xff09;、误差卡尔曼滤波&#xff08;ES-…

详解车道线检测数据集和模型 VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection

本文介绍一个新的车道线数据集 VIL-100 和检测模型 MMA-Net&#xff0c;论文已收录于 ICCV2021&#xff0c;重点是理解本文提出的 LGMA 模块&#xff0c;用于聚合局部和全局记忆特征。 论文链接&#xff1a;https://arxiv.org/abs/2108.08482 项目链接&#xff1a;https://gi…

七天入门图像分割(1):图像分割综述

最近在研究自动驾驶视觉语义地图构建&#xff0c;因为要使用到语义分割技术&#xff0c;趁此机会学习了百度飞桨的图像分割课程&#xff0c;课程蛮好的&#xff0c;收获也蛮大的。 课程地址&#xff1a;https://aistudio.baidu.com/aistudio/course/introduce/1767 1. 课程简要…

一步步编写操作系统 59 cpu的IO特权级1

在保护模式下&#xff0c;处理器中的“阶级”不仅体现在数据和代码的访问&#xff0c;还体现在指令中。 一方面将指令分级的原因是&#xff0c;有些指令的执行对计算机有着严重的影响&#xff0c;它们只有在0特权级下被执行&#xff0c;因此被称为特权指令&#xff08;Privile…

重读经典:《ImageNet Classification with Deep Convolutional Neural Networks》

9年后重读深度学习奠基作之一&#xff1a;AlexNet【下】【论文精读】这两天偶然间在B站看了李沐博士对AlexNet论文的重新解读&#xff0c;收获满满。AlexNet是当今深度学习浪潮奠基作之一&#xff0c;发表在2012年。在视频中&#xff0c;李沐博士主要是分享了他的三步法快速读论…

一步步编写操作系统 60 cpu的IO特权级2 什么是驱动程序

用户程序可以在由操作系统加载时通过指定整个eflags设置&#xff0c;操作系统如何设置自己的IOPL呢&#xff0c;即使内核IOPL为0也得写进去eflags寄存器中才生效。可惜的是&#xff0c;没有直接读写eflags寄存器的指令&#xff0c;不过可以通过将栈中数据弹出到eflags寄存器中来…

详解惯性导航论文 RINS-W: Robust Inertial Navigation System on Wheels

本文介绍一篇惯性导航定位论文 RINS-W&#xff0c;论文发表于 IROS2019。在本论文中作者提出了仅使用一个IMU进行长时间惯性导航的方法。方法主要包括两个部分&#xff1a; 检测器使用循环神经网络来检测IMU的运动状况&#xff0c;如零速或零横向滑移&#xff1b;使用Invarian…

一步步编写操作系统 61 任务状态段 TSS

I/O位图是位于TSS中的&#xff0c;它可以存在也可以不存在&#xff0c;它只是用来设置对某些特定端口的访问&#xff0c;没有它的话便默认为禁止访问所有端口。正是由于它可有可用&#xff0c;所以TSS的段界限TSS limit&#xff08;即实际大小-1&#xff09;并不固定。当TSS中不…

重读经典:《Deep Residual Learning for Image Recognition》

ResNet论文逐段精读【论文精读】这是李沐博士论文精读的第二篇论文&#xff0c;这次精读的论文是ResNet。ResNet 是 CVPR2016 的最佳论文&#xff0c;目前谷歌学术显示其被引用数已经达到了90000。 ResNet论文链接为&#xff1a;https://arxiv.org/abs/1512.03385。 1.第一遍 …

【CodeForces - 1131F 】Asya And Kittens(并查集,思维)

题干&#xff1a; Asya loves animals very much. Recently, she purchased nn kittens, enumerated them from 11 and nn and then put them into the cage. The cage consists of one row of nncells, enumerated with integers from 11 to nn from left to right. Adjacent…

详解道路标记数据集 CeyMo: See More on Roads -- A Novel Benchmark Dataset for Road Marking Detection

本文介绍一个新的道路标记检测数据集&#xff0c;论文收录于 WACV2022。Ceymo数据集总共包含2887张图片&#xff0c;标注了11类共4706个道路标记实例&#xff0c;图片分辨率为 192010801920\times108019201080。其中&#xff0c;对于每一个道路标记实例&#xff0c;作者采用了三…

动手学无人驾驶(7):车道线检测

最近在研究视觉语义地图&#xff0c;需要进行车道线检测&#xff0c;发现这篇车道线检测论文效果蛮好的 &#xff08;Ultra Fast Structure-aware Deep Lane Detection&#xff09;。论文作者在知乎上已经介绍过了&#xff1a;https://zhuanlan.zhihu.com/p/157530787&#xff…

Coursera自动驾驶课程第16讲:LIDAR Sensing

在第15讲《Coursera自动驾驶课程第15讲&#xff1a;GNSS and INS Sensing for Pose Estimation》 我们学习了自动驾驶定位中常用的两种传感器&#xff1a;IMU&#xff08;惯性测量单元&#xff09; 和GNSS&#xff08;全球导航卫星系统&#xff09;。 本讲我们将学习自动驾驶汽…

DB、ETL、DW、OLAP、DM、BI关系结构图

在此大概用口水话简单叙述一下他们几个概念&#xff1a; &#xff08;1&#xff09;DB/Database/数据库——这里一般指的就是OLTP数据库&#xff0c;在线事物数据库&#xff0c;用来支持生产的&#xff0c;比如超市的买卖系统。DB保留的是数据信息的最新状态&#xff0c;只有一…

Tarjan 算法 常用模板

可以求每个点属于第几个强连通分量&#xff1a;https://blog.csdn.net/dellaserss/article/details/8267192 int Tarjan(int u){int v;dfn[u]low[u]Index;stack[Top]u;Instack[u]1;for(int i0;i<G[u].size();i){vG[u][i];if(!dfn[v]){Tarjan(v);low[u]min(low[u],low[v]);}…

【HDU - 5012】Dice(模拟,bfs)

题干&#xff1a; There are 2 special dices on the table. On each face of the dice, a distinct number was written. Consider a 1.a 2,a 3,a 4,a 5,a 6 to be numbers written on top face, bottom face, left face, right face, front face and back face of dice A. S…