AI学习者 · 2021年08月04日

VSLAM中剔除动态目标的视觉里程计

我是来自山区、朴实、不偷电瓶的AI算法工程师阿chai,给大家分享人工智能、自动驾驶、机器人、3D感知相关的知识!

地图构建是SLAM系统中非常重要的部分,一个信息完善的地图对于后续导航相当重要。运动场景中除了静态的元素外也会出现一些例如行人、其他机器人等动态元素,对于导航而言,需要避开但是我们不希望出现在地图模型中,会让机器人认为障碍物的“真实面貌”就是这样,因此我们需要筛选元素,存储到语义图谱中。今天阿chai给大家介绍一种SLAM中动态元素筛选的方法。

1. Main

以下是动态目标筛选的算法流程。

image.png

接下来我们详细的讲解一下。

2. YOLOX的动态目标筛选

YOLOX是旷视研究院开源的目标检测算法,赢得了Streaming Perception的第一名。算法是YOLO系列的改进,Anchor- Free,decoupled head、NMS-free以及SimOTA是算法的亮点, COCO 上实现了 50.0% AP,并且提供了ONNX模型,支持TensorRT、NCNN 和 Openvino 的侧端推理部署的版本。
image.png

TFLite、MNN版本的example以及ios上的测试APP私聊阿chai,嘿嘿。

基于YOLOX的动态目标筛选是通过YOLOX检测到可能存在运动的元素,这些元素是优先设置到物体库中,例如人、其他机器人、手推车等。

3. 光流法动态特征点筛选

3.1 Lucas-Kanade

image.png

Lucas–Kanade光流算法是两帧差分的光流估计算法,基于三个假设:

  • 灰度不变性:像素的灰度值不会随着帧的跟踪改变。
  • 时间持续性:时间的变化不会引起像素位置的剧烈变化。
  • 空间一致性:场景中相同表面的相邻点具有相似的运动,并且其投影到图像平面上的距离也比较近。

论文:http://cseweb.ucsd.edu/classe...

首先根据前两个光流的基本假设能得到图像的约束方程,然后进行泰勒展开,联立得到方程组。由于两个未知量所以无法求解,于是根据第三个基本假设设立新的方程带入,同时根据最小二乘策略处理方程组,求的速度矢量。

这里不做有关光流法的详细公式推导,有兴趣的小伙伴可以去阅读paper。

3.2 运动一致性

通过光流法获取匹配的特征点对,并跟据匹配的特征点对计算基础矩阵。然后通过基础矩阵和特征点计算特征点对应的极线,当特征点到极线的距离大于一定值,即判断为动态特征点。

image.png

4. 误差分析

视觉里程计的评价标准需要看绝对误差与相对误差。为做误差分析,使用TUM数据集中无运动以及有运动的序列作为分析数据。

绝对轨迹误差:

image.png

旋转相对误差:

image.png

平移相对误差:
image.png

经过测试,在运动目标的序列中动态目标的筛选会降低误差,在静态环境中效果几乎等同于ORB-SLAM。

END

原文:阿chai带你学AI
作者: 阿chai

推荐阅读

更多嵌入式AI技术干货请关注嵌入式AI专栏。
推荐阅读
关注数
18759
内容数
1316
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息