Mourikis A I, Roumeliotis提出了多状态限制卡尔曼滤波算法(Multi-State Constraint Kalman Filter,MSCKF),滤波器状态向量由当前惯导的定位信息和前 N 个时刻摄像机的定位信息组成,观测向量由前N个时刻特征点信息组成。之后,MingYang Li等人又在MSCKF基础上做了多相关工作。
【以下是最近读的关于线线特征和VIO相关论文】
RESLAM: A real-time robust edge-based SLAM system(2019,开源):
每帧进行Canny边缘检测,使用距离变换预先计算计算像素之间的最近边缘,计算重投影误差。
Building a 3-D Line-Based Map Using Stereo SLAM (2015)
基于3d线特征的双目SLAM
PL-VIO: Tightly-Coupled Monocular Visual–Inertial Odometry Using Point and Line Features(贺一家2018)
本文增加的是OpenCV库里的Canny边缘检测算子\footnote{Canny, J., A Computational Approach To Edge Detection, IEEE Transactions on Pattern Analysis and Machine Intelligence, 8(6):679–698, 1986.}。具体步骤如下:
第一步:消除噪声。一般情况下,使用高斯平滑滤波器卷积降噪。本文采用一个size=3的高斯内核。对于一个位置
(
m
,
n
)
(m,n)
(m,n)的像素点,其灰度值为
f
(
m
,
n
)
f(m,n)
f(m,n),那么经过高斯滤波后的灰度值将变为:
g
σ
(
m
,
n
)
=
1
2
π
σ
2
e
−
m
2
+
n
2
2
σ
2
⋅
f
(
m
,
n
)
g_\sigma(m,n)=\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{m^2+n^2}{2\sigma^2}}\cdot{f(m,n)}
gσ(m,n)=2πσ21e−2σ2m2+n2⋅f(m,n)
第二步:计算梯度幅值和方向。边缘就是灰度值变化大的像素点的集合。在图像中,用梯度表示灰度值的变化程度和方向。它可以通过点乘一个sobel或其它算子得到不同方向的梯度值
g
x
(
m
,
n
)
,
g
y
(
m
,
n
)
g_x(m,n),g_y(m,n)
gx(m,n),gy(m,n)。综合梯度通过以下公式计算梯度值和梯度方向:
G
(
m
,
n
)
=
g
x
(
m
,
n
)
2
+
g
y
(
m
,
n
)
2
θ
=
a
r
c
t
a
n
g
y
(
m
,
n
)
g
x
(
m
,
n
)
G(m,n)=\sqrt{g_x(m,n)^2 + g_y(m,n)^2} \\ \theta = arctan{\frac{g_y(m,n)}{g_x(m,n)}}
G(m,n)=gx(m,n)2+gy(m,n)2θ=arctangx(m,n)gy(m,n)
第三步:非极大值抑制。在高斯滤波过程中,边缘有可能被放大。这一步使用一个规则来过滤不是边缘的点,使用边缘宽度尽可能为1个像素点:如果一个像素点属于边缘,那么这个像素点在梯度方向上的梯度值是最大的,否则不是边缘,将其灰度值设为0。
M
T
(
m
,
n
)
=
{
M
(
m
,
n
)
i
f
M
(
m
,
n
)
>
T
0
o
t
h
e
r
w
i
s
e
M_T(m,n)= \begin{cases} M(m,n) &if M_(m,n)> T \\ 0 & otherwise \end{cases}
MT(m,n)={M(m,n)0ifM(m,n)>Totherwise
J.J. Lim, H. Pirsiavash, and A. Torralba. Parsing IKEA objects: Fine pose estimation[J]. In Intl. Conf. on Computer Vision (ICCV), 2013,46(7)2992–2999
VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator, Tong Qin, Peiliang Li, Zhenfei Yang, Shaojie Shen, IEEE Transactions on Robotics
H Zhou.StructSLAM: Visual SLAM With Building Structure Lines - IEEE Xplore,2015
Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013
Christian Forster, Luca Carlone, Frank Dellaert, Davide Scaramuzza,On-Manifold Preintegration for Real-Time Visual-Inertial Odometry[J],IEEE Transactions on Robotics,2016,45(3)334-353
AI Mourikis,A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation Anastasios I. Mourikis and Stergios I. Roumeliotis.
Mingyang Li and Anastasios I. Mourikis,High-Precision, Consistent EKF-based Visual-Inertial Odometry,IJRR2012
Canny, J., A Computational Approach To Edge Detection, IEEE Transactions on Pattern Analysis and Machine Intelligence, 8(6):679–698, 1986.