Hybrid Bird’s-Eye Edge Based Semantic Visual SLAM for Automated Valet Parking
利用inverse perspective mapping(IPM)转换为bird’s eye上处理,主要是为了节约计算量。
- 采用语义分割获得free space
- extract edge feature
- 利用free space掩膜fiter edge feature
- 保留了bird’s eye edges in the free space and the contours of free space
III. Framework
- Bird’s edge extraction
语义分割获得free space,提取hybrid edges(inside the free space and the contour of free space),利用IPM-based segmentation进行过滤 - Mapping
维持一个local map用于relative pose的估计,生成一个global map和occupancy grid map,并进行pose graph optimization。 - Odeometry
在相对位姿的估计中,先获得wheel odeometry的测量值作为初始值,然后检测到的semantic point cloud 与local map进行registration,之后估计相对位姿,并转换到global map中。
IV. Bird’s eye edge extraction
[外链图片转存中…(img-rUyqXh8O-1679039282938)]
因为地面反射光的缘故,所以marking不好提取,转而去提取edge feature,然后进行过滤。
A. Raw Edge Detection
可以用canny edge detector提取原始的edge feature,利用free space mask可以初步剔除物体上的edge。
B. IPM-based Edge Segmentation
三种过滤策略:
原理:错误的edge呈辐射状分别交汇在4个摄像头的focal point。
(a)Ray-based segmentation
根据focal point划分角度bins,某个edge在某个bin中有非常多的point,就把edge剔除。
(b)line-based segmentation
利用hough transform检测line segments,然后把距离focal point比较近的line segments剔除。
(c)Polyline-based segmentation
利用Douglas-Peuchker algorithm对线条采用polyline去拟合。
总而言之,是尽可能把辐射状的小线条给剔除,但是这个方法看起来似乎有点过拟合。
V. Semantic Odometry and Mapping
把前面获得的edges转换为point cloud使用。
A. Local Map Generation
由于获得edge并不稳定,容易混入错误的edge,也容易把正确的但是是辐射状的edge给剔除,因此这里不能采用keyframe来构建Local map,不然不稳定,因此采用普通frame来构建local map。new frame的edge在加入local map之前要进行Gaussian filter。
(ORB-SLAM中的local map是采用由共视图等联系的关键帧群来构建的)
[外链图片转存中…(img-KXUpkfej-1679039282939)]
采用sliding window来维护local map的规模,剔除旧帧时,只去掉概率值比较低的edge。这个概率值不知道怎么来的…
B. Pose Estimation
current frame中的point cloud通过wheel odeometry获得的位姿投影到local map中,然后借助nearest neigbor searching进行匹配,然后利用下方的损失函数进行优化:
这个就是ICP,只是只有一次操作,没有进行多次迭代而已,呵呵。ICP的特点就是没有描述子进行匹配,就是点云进行匹配,因此只能寻找离自己最近的点。
这种单纯的点云其实和激光雷达差不多…
C. Global Mapping
当遇到回环检测的时候,就进行Global Graph Optimization。
这篇其实和AVP-SLAM很相似,不同的地方在于提取的特征。该文章不像AVP-SLAM构造了对应的U-Net来提取特征,只构造一个提取free space的网络,较少了标注数据的负担。同时IPM图片中存在非常多的炫光,因此没有提取road marking,而是选择提取edge,并对edge进行了复杂的筛选。之后对edge的操作也只是把它当做点云来做ICP匹配优化,这些操作和AVP-SLAM差不多。
在地下环境中,直接提取点线特征,然后进行匹配的方法很难奏效,因此选择利用语义分割获得语义特征,然后在IPM图片下,深度也都是已知的,再利用ICP进行匹配。