【论文理解】Pixel-level Extrinsic Calibration LiDAR and Camera

news2024/9/22 19:23:17

Pixel-level Extrinsic Self Calibration of High Resolution LiDAR and Camera in Targetless Environments

无目标环境中高分辨率激光雷达和相机的像素级外参估计

摘要

Our approach does not require checkerboards but can achieve pixel-level accuracy by aligning natural edge features in the two sensors. On the theory level, we analyze the constraints imposed by edge features and the sensitivity of calibration accuracy with respect to edge distribution in the scene. On the implementation level, we carefully investigate the physical measuring principles of LiDARs and propose an efficient and accurate LiDAR edge extraction method based on point cloud voxel cutting and plane fitting.

  • 优点:无需目标棋盘格,像素级精度,室内外均可用
  • 方法:基于高分辨率的雷达和相机的边缘特征,雷达是点云体素分割和平面拟合,相机是canny边缘检测,最小化重投影误差
  • 理论:边缘特征的约束,场景边缘特征分布对外参估计的敏感性

引言

需求:dense point cloud mapping, colorization, and accurate and automated 3D surveying.

批判:提前准备标定物,雷达本身的噪点,稀疏,导致代价函数不稳定,远距离的场景导致标定误差变大。

自夸:解决批判的问题,随时随地可以标定,像素级效果。

贡献:

  • 我们仔细研究了激光雷达的底层测量原理,发现常用的深度不连续边缘特征对于校准来说既不准确也不可靠。我们提出了一种新颖且可靠的深度连续边缘提取算法,可以产生更准确的校准参数
  • 我们评估我们的方法和在各种室内和室外环境中实施的鲁棒性、一致性和准确性,并将我们的方法与其他最先进的方法进行比较。结果表明,我们的方法对初始条件具有鲁棒性,与标定场景一致,并且在自然环境中实现了像素级标定精度。我们的方法的精度与基于目标的方法相当(有时甚至更好),并且适用于新兴固态和传统旋转激光雷达
  • 开源。

文献综述

基于目标:几何实体,棋盘格,有典型的坐标和特征,需要准备;

  • 几何实体[9]-[11]和棋盘格[4]-[6]已广泛应用于基于目标的方法;

[9] J. Kummerle and T. Kuhner. Unified intrinsic and extrinsic camera and lidar calibration under uncertainties. 2020 IEEE International Conference on Robotics and Automation (ICRA), 2020.

[10] X. Gong, Y. Lin, and J. Liu. 3d lidar-camera extrinsic calibration using an arbitrary trihedron. Sensors, 13(2):1902–1918, 2013.

[11] Y. Park, S. Yun, C. Won, K. Cho, K. Um, and S. Sim. Calibration between color camera and 3d lidar instruments with a polygonal planar board. Sensors, 14(3):5333–5353, 2014.

[4] J. Cui, J. Niu, Z. Ouyang, Y. He, and D. Liu. Acsc: Automatic calibration for non-repetitive scanning solid-state lidar and camera systems, 2020.

[5] G. Koo, J. Kang, B. Jang, and N. Doh. Analytic plane covariances construction for precise planarity-based extrinsic calibration of camera and lidar. 2020 IEEE International Conference on Robotics and Automation (ICRA), 2020.

[6] L. Zhou, Z. Li, and M. Kaess. Automatic extrinsic calibration of a camera and a 3d lidar using line and plane correspondences. 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018.

无目标:

  • LiDAR 点首先投影到图像平面上,并根据深度和反射率值着色。然后从该颜色图中提取 2D 边缘并与从图像中获得的边缘进行匹配。
  • 通过最大化色彩图和图像之间的互信息来优化外在校准。
  • 通过激光束深度不连续性从点云中检测并提取 3D 边缘。然后将 3D 边缘反投影到 2D 图像平面上以计算残差。边缘估计的准确性限制了该方法,因为激光点并不严格落在深度不连续边缘上。
  • 外在因素是根据传感器的运动估计的,并通过外观信息进行细化。这种基于运动的校准通常需要传感器沿着足够的激励轨迹移动

作者:

  • we directly extract 3D edge features in the point cloud, which suffer from no occlusion problem.
  • we use depth-continuous edges, which proved to be more accurate and reliable.
  • Our method works for a single pair LiDAR scan and achieves calibration accuracy comparable to target-based methods.

方法

A. 概述

雷达坐标系,相机坐标系,像素坐标系之间的关系如下图所示. L C T = ( L C R , L C t ) ∈ S E ( 3 ) {}_{L}^{C}\mathbf{T}=(_L^C\mathbf{R},_L^C\mathbf{t})\in SE(3) LCT=(LCR,LCt)SE(3) ,表示雷达到相机之间的坐标转换,也可以表示雷达在相机坐标系下的坐标;基于室内室外的边缘特征实现估计这个 L C T {}_{L}^{C}\mathbf{T} LCT

LiDAR位姿相对于相机的以下自由度(DoF)无法区分:

由边缘特征施加的约束。蓝线代表 3D 边缘,其到图像平面(灰色平面)的投影产生相机测量值(红线)。沿 C 轴或 D 轴平移或绕 A 轴(即边缘本身)或 B 轴旋转(边缘穿过相机原点时除外)后,边缘仍保留在同一黄色平面上,因此在像平面上有相同的投影。这意味着,边缘上的这四个pose变换是不可区分的。
在这里插入图片描述

B. Edge Extraction and Matching

提取

  • 点云投影到图像平面并从投影的点云中提取特征,例如边缘提取[12]和互信息相关性[13]。

    ​ 问题:

    点投影后特征提取的一个主要问题是遮挡引起的多值和零值映射。

    • 如图(a),如果相机位于激光雷达上方,则区域A由于遮挡而被相机观察到,而激光雷达观察不到,导致该区域投影后没有点(零值映射,间隙A区,图3(b))。
    • B区域是激光雷达观测到的,而不是相机观测到的,该区域内的点(图3(a)中的红点)投影后会干扰其前景点(图3(a)中的黑点)的投影。 3(a))。结果,前景和背景的点将对应于相同的图像区域(多值映射,区域B,图3(b))。
    • 这些现象对于低分辨率的 LiDAR 可能并不显着 [13],但随着 LiDAR 分辨率的增加而变得明显(见图 3(b))。在投影点云上提取特征并将其与图像特征进行匹配(例如[13])会遇到这些基本问题,并导致边缘提取和校准中出现重大错误。

在这里插入图片描述

  • 因此直接在点云上提取这些特征,而不是投影之后进行特征提取

    问题:

    基于深度不连续的方法:方便提取但是对于精度较高的雷达,不稳定且不准确

    分析原因:

    前景膨胀:实际的激光脉冲并不是一个理想的点,而是具有一定发散角(即光束发散角)的光束。当从前景物体扫描到背景物体时,部分激光脉冲被前景物体反射,而剩余的激光脉冲被背景反射,产生两个反射脉冲到激光接收器。在前景物体反射率较高的情况下,由第一个脉冲引起的信号将占主导地位,即使光束中心线偏离前景物体,这也会导致前景物体的假点超出实际边缘(最左边的黄点)如图5(a))。

    出血点:在前景物体靠近背景的情况下,两个脉冲产生的信号会结合在一起,集总信号将导致一组连接前景和背景的点(称为出血点,即图 1 中的黄色点)。 5(a))。这两种现象会错误地使前景物体膨胀,并导致边缘提取(图5(b))和校准出现明显错误。

    基于深度连续的方法:

    1. 体素划分:室内0.5m,室内1m;
    2. 对于每一个体素进行RANSAC实现平面的拟合和提取;
    3. 保留连接并形成一定范围内(例如,[30°,150°])角度的平面对,并求解平面相交线(即深度连续边)。
    4. 这些线在体素内彼此垂直或平行。此外,通过正确选择体素大小,我们甚至可以提取弯曲的边缘。

在这里插入图片描述

  • 图像边缘检测使用canny实现
    • 边缘的提取放在k-D的二维的

匹配:

将雷达中边缘中采样,每一个点使用初始转换矩阵转换到相机坐标系下;
C P i = L C T ( L P i ) ∈ R 3 ;   p i = f ( C p i ) \begin{equation} {}^{C}\mathbf{P}_{i}={}_{L}^{C}\mathbf{T}({}^{L}\mathbf{P}_{i})\in\mathbb{R}^{3};\ \mathbf{p}_i=\mathbf{f}(^C\mathbf{p}_i) \end{equation} CPi=LCT(LPi)R3; pi=f(Cpi)
根据这个pi寻找像素中的2-D树中的最近邻像素,得到k最近邻的点,计算对应的均值和方差
q i = 1 κ ∑ j = 1 κ q i j ; S i = ∑ j = 1 κ ( q i j − q i ) ( q i j − q i ) T \begin{equation} \mathbf{q}_i=\frac{1}{\kappa}\sum_{j=1}^\kappa\mathbf{q}_i^j;\quad\mathbf{S}_i=\sum_{j=1}^\kappa(\mathbf{q}_i^j-\mathbf{q}_i)(\mathbf{q}_i^j-q_i)^T \end{equation} qi=κ1j=1κqij;Si=j=1κ(qijqi)(qijqi)T
这样的话,根据 Q i = { q i j ; j = 1 , 2 , 3... κ } Q_i = \{ q_i^j;j = 1,2,3...{\kappa} \} Qi={qij;j=1,2,3...κ} 表示的直线包含参数为线上的点 q i q_i qi和法向量 n i n_i ni来表示。这个法向量对应S_i的最小特征值对应的特征向量;

另外将边缘方向投影到图像平面并验证其相对于ni的正交性。当两条非平行线在图像平面中彼此靠近时,这可以有效地消除错误匹配。

C. 外参校准

相机产生的测量噪声较为简单,认为1.5的标准差;

对于雷达
ω i g t = ω i ⊞ S 2 δ ω i ≜ e ⌊ N ( ω i ) δ ω i × ⌋ ω i \begin{equation} \omega_i^\mathrm{gt}=\omega_i\boxplus_{\mathbb{S}^2}\delta_{\boldsymbol{\omega}_i}\triangleq e^{\lfloor\mathbf{N}(\boldsymbol{\omega}_i)\boldsymbol{\delta}_{\boldsymbol{\omega}_i}\times\rfloor}\omega_i \end{equation} ωigt=ωiS2δωieN(ωi)δωi×ωi

d i g t = d i + δ d i \begin{equation} d_i^\mathrm{gt}=d_i+\delta_{d_i} \end{equation} digt=di+δdi

二者结合
L P i g t = d i g t ω i g t = ( d i + δ d i ) ( ω i ⊞ S 2 δ ω i ) ≈ d i ω i ⏟ L P i + ω i δ d i − d i ⌊ ω i × ⌋ N ( ω i ) δ ω i ⏟ L W i \begin{equation} \begin{aligned} {}^{L}\mathbf{P}_{i}^{\mathrm{gt}}& =d_i^\mathrm{gt}\omega_i^\mathrm{gt}=(d_i+\delta_{d_i})\left(\omega_i\boxplus_{\mathbb{S}^2}\delta_{\boldsymbol{\omega}_i}\right) \\ &\approx\underbrace{d_{i}\omega_{i}}_{L_{\mathbf{P}_{i}}}+\underbrace{\omega_{i}\delta_{d_{i}}-d_{i}\lfloor\omega_{i}\times\rfloor\mathbf{N}(\omega_{i})\delta_{\omega_{i}}}_{L_{\mathbf{W}_{i}}} \end{aligned} \end{equation} LPigt=digtωigt=(di+δdi)(ωiS2δωi)LPi diωi+LWi ωiδdidiωi×N(ωi)δωi
得到雷达的测量噪声模型
L w i = [ ω i − d i ⌊ ω i × ⌋ N ( ω i ) ] ⏟ A i [ δ d i δ ω i ] ∼ N ( 0 , L Σ i ) , L Σ i = A i [ Σ d i 0 1 × 2 0 2 × 1 Σ ω i ] A i T . \begin{equation} \begin{aligned}&{}^{L}\mathbf{w}_{i}=\underbrace{\begin{bmatrix}\boldsymbol{\omega}_{i}&-d_{i}\lfloor\boldsymbol{\omega}_{i}\times\rfloor\mathbf{N}(\boldsymbol{\omega}_{i})\end{bmatrix}}_{\mathbf{A}_{i}}\begin{bmatrix}\delta_{d_{i}}\\\delta_{\boldsymbol{\omega}_{i}}\end{bmatrix}\sim\mathcal{N}(\mathbf{0},{}^{L}\Sigma_{i}),\\&{}^{L}\mathbf{\Sigma}_{i}=\mathbf{A}_{i}\begin{bmatrix}\Sigma_{d_{i}}&\mathbf{0}_{1\times2}\\\mathbf{0}_{2\times1}&\Sigma_{\boldsymbol{\omega}_{i}}\end{bmatrix}\mathbf{A}_{i}^{T}.\end{aligned} \end{equation} Lwi=Ai [ωidiωi×N(ωi)][δdiδωi]N(0,LΣi),LΣi=Ai[Σdi02×101×2Σωi]AiT.
校准模型和优化
0 = n i T ( f ( π ( L C T ( L P i + L w i ) ) ) − ( q i + I w i ) ) \begin{equation} 0=\mathbf{n}_i^T\left(\mathbf{f}\big(\pi\big(_L^C\mathbf{T}\big(^L\mathbf{P}_i+^L\mathbf{w}_i\big)\big)\big)-\big(\mathbf{q}_i+^I\mathbf{w}_i\big)\right) \end{equation} 0=niT(f(π(LCT(LPi+Lwi)))(qi+Iwi))
使用优化的方式进行优化
L C T = L C T ˉ ⊞ S E ( 3 ) δ T ≜ E x p ( δ T ) ⋅ L C T ˉ \begin{equation} _L^C\mathbf{T}=_L^C\bar{\mathbf{T}}\boxplus_{SE(3)}\delta\mathbf{T}\triangleq\mathrm{Exp}(\delta\mathbf{T})\cdot_L^C\bar{\mathbf{T}} \end{equation} LCT=LCTˉSE(3)δTExp(δT)LCTˉ

δ T = [ δ θ δ t ] ∈ R 6 ; E x p ( δ T ) = [ e ⌊ δ θ × ⌋ δ t 0 1 ] ∈ S E ( 3 ) \begin{equation} \delta\mathbf{T}=\begin{bmatrix}\delta\boldsymbol{\theta}\\\delta\mathbf{t}\end{bmatrix}\in\mathbb{R}^6; \mathrm{Exp}(\delta\mathbf{T})=\begin{bmatrix}e^{\lfloor\delta\boldsymbol{\theta}\times\rfloor}&\delta\mathbf{t}\\0&1\end{bmatrix}\in SE(3) \end{equation} δT=[δθδt]R6;Exp(δT)=[eδθ×0δt1]SE(3)

将其使用一阶近似,写成残差和雅可比的形式
0 = n i T ( f ( π ( L C T ( L P i + L w i ) ) ) − ( q i + I w i ) ) ≈ r i + J T i δ T + J w i w i \begin{equation} \begin{aligned}0&=\mathbf{n}_{i}^{T}\left(\mathbf{f}\big(\pi\big(_{L}^{\mathbf{C}}\mathbf{T}\big(^{L}\mathbf{P}_{i}+^{L}\mathbf{w}_{i}\big)\big)\big)-\big(\mathbf{q}_{i}+^{I}\mathbf{w}_{i}\big)\right)\\&\approx\mathbf{r}_{i}+\mathbf{J}_{\mathbf{T}_{i}}\delta\mathbf{T}+\mathbf{J}_{\mathbf{w}_{i}}\mathbf{w}_{i}\end{aligned} \end{equation} 0=niT(f(π(LCT(LPi+Lwi)))(qi+Iwi))ri+JTiδT+Jwiwi
对应的雅可比
r i = n i T ( f ( π ( L C T ˉ ( L P i ) ) ) − q i ) ∈ R J T i = n i T ∂ f ( p ) ∂ p ∂ π ( P ) ∂ P [ − ⌊ ( L C T ˉ ( L P i ) ) × ⌋ I ] ∈ R 1 × 6 J W i = [ n i T ∂ f ( p ) ∂ p ∂ π ( P ) ∂ P C L R ˉ − n i T ] ∈ R 1 × 5 W i = [ L W i I W i ] ∈ N ( 0 , Σ i ) , Σ i = [ L Σ i 0 α I Σ ] ∈ R 5 × 5 \begin{equation} \begin{aligned} &\mathbf{r}_{i}&& =\mathbf{n}_{i}^{T}\left(\mathbf{f}\big(\pi\big(_{L}^{C}\bar{\mathbf{T}}(^{L}\mathbf{P}_{i})\big)\big)-\mathbf{q}_{i}\right)\in\mathbb{R} \\ &\mathbf{J}_{\mathbf{T}_{i}}&& =\mathbf{n}_{i}^{T}\frac{\partial\mathbf{f}(\mathbf{p})}{\partial\mathbf{p}}\frac{\partial\pi(\mathbf{P})}{\partial\mathbf{P}}\left[-\lfloor(_{L}^{C}\bar{\mathbf{T}}(^{L}\mathbf{P}_{i}))\times\rfloor\quad\mathbf{I}\right]\in\mathbb{R}^{1\times6} \\ &\mathbf{J}_{\mathbf{W}_{i}}&& =\left[\mathbf{n}_{i}^{T}\frac{\partial\mathbf{f}(\mathbf{p})}{\partial\mathbf{p}}\frac{\partial\boldsymbol{\pi}(\mathbf{P})}{\partial\mathbf{P}}\frac{C}{L}\bar{\mathbf{R}}\quad-\mathbf{n}_{i}^{T}\right]\in\mathbb{R}^{1\times5} \\ &\mathbf{W}_{i}&& =\begin{bmatrix}L_{\mathbf{W}_i}\\I_{\mathbf{W}_i}\end{bmatrix}\in\mathcal{N}(\mathbf{0},\boldsymbol{\Sigma}_i),\boldsymbol{\Sigma}_i=\begin{bmatrix}L\boldsymbol{\Sigma}_i&\boldsymbol{0}\\\boldsymbol{\alpha}&I\boldsymbol{\Sigma}\end{bmatrix}\in\mathbb{R}^{5\times5} \end{aligned} \end{equation} riJTiJWiWi=niT(f(π(LCTˉ(LPi)))qi)R=niTpf(p)Pπ(P)[(LCTˉ(LPi))×I]R1×6=[niTpf(p)Pπ(P)LCRˉniT]R1×5=[LWiIWi]N(0,Σi),Σi=[LΣiα0IΣ]R5×5
进行移动
v ≜ − J w w = r + J T δ T ∼ N ( 0 , J w Σ J w T ) . \begin{equation} \mathbf{v\triangleq-J_w w=r+J_T\delta T\sim\mathcal{N}(0,J_w\Sigma J_w^T)}. \end{equation} vJww=r+JTδTN(0,JwΣJwT).
那么最大似然估计,
max ⁡ δ T log ⁡ p ( v ; δ T ) = max ⁡ δ T log ⁡ e − 1 2 v T ( J w Σ J w T ) − 1 v ( 2 π ) N det ⁡ ( J w Σ J w T ) = min ⁡ δ T ( r + J T δ T ) T ( J w Σ J w T ) − 1 ( r + J T δ T ) \begin{equation} \begin{aligned} &\max_{\delta\mathbf{T}}\log p(\mathbf{v};\delta\mathbf{T})=\max_{\delta\mathbf{T}}\log\frac{e^{-\frac{1}{2}\mathbf{v}^{T}\left(\mathbf{J}_{\mathbf{w}}\boldsymbol{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1}\mathbf{v}}}{\sqrt{(2\pi)^{N}\det\left(\mathbf{J}_{\mathbf{w}}\boldsymbol{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)}} \\ &=\min_{\delta\mathbf{T}}(\mathbf{r}+\mathbf{J}_{\mathbf{T}}\delta\mathbf{T})^{T}\left(\mathbf{J}_{\mathbf{w}}\mathbf{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1}(\mathbf{r}+\mathbf{J}_{\mathbf{T}}\delta\mathbf{T}) \end{aligned} \end{equation} δTmaxlogp(v;δT)=δTmaxlog(2π)Ndet(JwΣJwT) e21vT(JwΣJwT)1v=δTmin(r+JTδT)T(JwΣJwT)1(r+JTδT)
得到优化的解
δ T ∗ = − ( J T T ( J w Σ J w T ) − 1 J T ) − 1 J T T ( J w Σ J w T ) − 1 r \begin{equation} \delta\mathbf{T}^{*}=-\left(\mathbf{J}_{\mathbf{T}}^{T}\left(\mathbf{J}_{\mathbf{w}}\mathbf{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1}\mathbf{J}_{\mathbf{T}}\right)^{-1}\mathbf{J}_{\mathbf{T}}^{T}\left(\mathbf{J}_{\mathbf{w}}\mathbf{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1}\mathbf{r} \end{equation} δT=(JTT(JwΣJwT)1JT)1JTT(JwΣJwT)1r
进而更新这个pose
L C T ˉ ← L C T ˉ ⊞ S E ( 3 ) δ T ∗ . \begin{equation} _L^C\bar{\mathbf{T}}\leftarrow_L^C\bar{\mathbf{T}}\boxplus_{SE(3)}\delta\mathbf{T}^*. \end{equation} LCTˉLCTˉSE(3)δT.
校准的不确定性

根据10表达式,两边乘以 J T T ( J w Σ J w T ) − 1 \mathbf{J}_{\mathbf{T}}^{T}\left(\mathbf{J}_{\mathbf{w}}\mathbf{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1} JTT(JwΣJwT)1 ,然后求解出 δ T \delta\mathbf{T} δT得到
δ T ≈ − ( J T T ( J w Σ J w T ) − 1 J T ) − 1 J T T ( J w Σ J w T ) − 1 r ⏟ δ T ∗ − ( J T T ( J w Σ J w T ) − 1 J T ) − 1 J T T ( J w Σ J w T ) − 1 J w w ∼ N ( δ T ∗ , ( J T T ( J w Σ J w T ) − 1 J T ) − 1 ) \begin{equation} \begin{aligned} \delta^{\mathrm{T}}& \approx\underbrace{-\left(\mathbf{J}_{\mathbf{T}}^{T}\left(\mathbf{J}_{\mathbf{w}}\mathbf{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1}\mathbf{J}_{\mathbf{T}}\right)^{-1}\mathbf{J}_{\mathbf{T}}^{T}\left(\mathbf{J}_{\mathbf{w}}\mathbf{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1}\mathbf{r}}_{\delta\mathbf{T}^{*}} \\ &-\left(\mathbf{J}_{\mathrm{T}}^{T}\left(\mathbf{J}_{\mathrm{w}}\mathbf{\Sigma}\mathbf{J}_{\mathrm{w}}^{T}\right)^{-1}\mathbf{J}_{\mathrm{T}}\right)^{-1}\mathbf{J}_{\mathrm{T}}^{T}\left(\mathbf{J}_{\mathrm{w}}\mathbf{\Sigma}\mathbf{J}_{\mathrm{w}}^{T}\right)^{-1}\mathbf{J}_{\mathrm{w}}\mathbf{w} \\ &\sim\mathcal{N}\left(\delta\mathbf{T}^{*},\left(\mathbf{J}_{\mathbf{T}}^{T}\left(\mathbf{J}_{\mathbf{w}}\mathbf{\Sigma}\mathbf{J}_{\mathbf{w}}^{T}\right)^{-1}\mathbf{J}_{\mathbf{T}}\right)^{-1}\right) \end{aligned} \end{equation} δTδT (JTT(JwΣJwT)1JT)1JTT(JwΣJwT)1r(JTT(JwΣJwT)1JT)1JTT(JwΣJwT)1JwwN(δT,(JTT(JwΣJwT)1JT)1)
这个协方差可以表示外参校准的不确定性

D. 校准的边缘分布分析

(12)中的雅可比 J T i J_{T_i} JTi表示残差对于外在变化的敏感性。在边缘特征非常少或分布不良的情况下, J T i J_{T_i} JTi 可能非常小,导致估计不确定性(协方差)很大,如(16)所示。从这个意义上说,数据质量由(16)中的协方差矩阵自动定量编码。在实践中,在数据收集之前对校准场景进行快速、粗略的评估通常很有用。这可以通过分析推导雅可比 J T i J_{T_i} JTi来实现。忽略畸变模型,将针孔投影模型π(·)代入式(11),得到
J T i = n i T [ − f x X i Y i Z i 2 f x + f x X i 2 Z i 2 − f x Y i Z i f x Z i 0 − f x X i Z i 2 − f y − f y Y i 2 Z i 2 f y X i Y i Z i 2 f y X i Z i 0 f y Z i − f y Y i Z i 2 ] \begin{equation} \mathbf{J}_{T_i}=\mathbf{n}_i^T\begin{bmatrix}\frac{-f_xX_iY_i}{Z_i^2}&f_x+\frac{f_xX_i^2}{Z_i^2}&\frac{-f_xY_i}{Z_i}&\frac{f_x}{Z_i}&0&-\frac{f_xX_i}{Z_i^2}\\-f_y-\frac{f_yY_i^2}{Z_i^2}&\frac{f_yX_iY_i}{Z_i^2}&\frac{f_yX_i}{Z_i}&0&\frac{f_y}{Z_i}&\frac{-f_yY_i}{Z_i^2}\end{bmatrix} \end{equation} JTi=niT Zi2fxXiYifyZi2fyYi2fx+Zi2fxXi2Zi2fyXiYiZifxYiZifyXiZifx00ZifyZi2fxXiZi2fyYi
说明,图像中的边缘特征要分布均匀一些,同时深度适中使得这个矩阵大一些,使得不确定性小一些;

E. 初始化和粗校准

需要给出一个初值最大化下面的值即可,每次给定范围内的旋转0.5°和平移2cm
P . C . = N m a t c h N s u m \begin{equation} P.C.=\frac{N_{match}}{N_{sum}} \end{equation} P.C.=NsumNmatch

实验和分析

雷达:Avia 和D435i,大约20s即可累积足够的点

这些初始值是在从 CAD 模型获得的值的邻域(旋转 ±5° 和 ±10cm)中随机采样的。耗时不到60s

稳健性验证,准确性验证,交叉验证,比较实验

不好的场景

  • 当场景包含所有圆柱形对象时。由于边缘提取是基于平面拟合的,圆形物体会导致边缘提取不准确。此外,圆柱形物体也会产生视差问题,从而降低校准精度。
  • 其次是场景中边缘分布不均匀。例如,大部分边缘分布在图像的上部,这形成了较差的约束,很容易受到测量噪声的影响。
  • 当场景仅包含沿一个方向(例如垂直)的边缘时,其中约束不足以唯一地确定外部参数。

在这里插入图片描述

通用性

除了 Livox Avia 之外,我们的方法还可以应用于传统的多线旋转激光雷达,由于重复扫描,其在静止时具有较低的分辨率。

  • 为了提高扫描分辨率,可以稍微移动激光雷达(例如,小的俯仰运动),以便填充扫描线之间的间隙。
  • LiDAR(惯性)里程计可用于跟踪 LiDAR 运动并将所有点注册到其初始姿态,从而实现更高分辨率的扫描,从而能够使用我们的方法。

实际操作流程

  • 雷达的是否是稠密的,如果不是需要累积点云地图,累积的方式可以是FASTLIO或者直接提取;
  • 选择合适的场景,不能太近,也不能太远,特征分布要均匀在整个图像中,使得在x,y,z三个方向都有约束,场景不要太杂乱,不要有圆柱场景;
  • 最好是几个箱子,正对着雷达和相机;
  • 相机标定可以使用matlab或者calib开源库,注意畸变参数书写方式为 [ k 1 , k 2 , p 1 , p 2 , k 3 ] [k1,k2,p1,p2,k3] [k1,k2,p1,p2,k3](opencv格式);
  • 这些初始值是在从 CAD 模型获得的值的邻域(旋转 ±5° 和 ±10cm)中随机采样的,或者采取默认值;

文章参考

  1. https://arxiv.org/abs/2103.01627

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

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

相关文章

数据结构8.13

作业&#xff1a;链栈&#xff0c;自己实现一遍&#xff0c;但是节点存储不是整数&#xff0c;存储学生信息&#xff08;年龄&#xff0c;分数&#xff0c;姓名&#xff09;三级引用。 1、建立学生信息结构体&#xff0c;将data改为学生信息结构体类型。 #include <myhead…

深度学习---------------卷积层

目录 从全连接到卷积分类猫和狗的图片重新考察全连接层原则1------平移不变性原则2------局部性 总结 卷积层二维交叉相关二维卷积层交叉相关 vs 卷积一维和三维交叉相关总结 图像卷积二维互相关运算实现二维卷积层图像中目标的边缘检测该部分总代码该部分总代码 问题 从全连接…

安装MySQL数据库【后端 8】

安装MySQL数据库 MySQL是世界上最流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;之一&#xff0c;广泛应用于Web应用程序开发中。无论你是初学者还是有一定经验的开发者&#xff0c;掌握MySQL的安装都是必不可少的技能。本文将指导你如何在不同的操作系统上安装…

在 SOCKS 和 HTTP 代理之间如何选择?

在 SOCKS 和 HTTP 代理之间进行选择需要彻底了解每种代理的工作原理以及它们传达的配置。只有这样&#xff0c;您才能轻松地在不同类型的代理之间进行选择。 本文概述了 HTTP 和 SOCKS 代理是什么、它们如何运作以及它们各自带来的好处。此外&#xff0c;我们将比较这两种代理类…

1、Unity【基础】3D数学

3D数学 文章目录 3D数学1、数学计算公共类Mathf1、Mathf和Math2、区别3、Mathf中的常用方法&#xff08;一般计算一次&#xff09;4、Mathf中的常用方法&#xff08;一般不停计算&#xff09;练习 A物体跟随B物体移动 2、三角函数1、角度和弧度2、三角函数3、反三角函数练习 物…

三、虚拟机安装CentOS 7

编写目的&#xff1a; 1.做个记录&#xff0c;防止参考的博客被删 2.做个基础的虚拟机镜像&#xff0c;无应用&#xff0c;固定ip&#xff0c;能联网即可。后面直接克隆一个镜像&#xff0c;安装Jenkins等 目录 一、下载CentOS镜像 二、vmware配置CentOS虚拟机 1.打开vmw…

MSF经典attack示范

免责声明:本文仅做分享... 目录 Nessus官网 指定攻击 自动在线攻击 nmap扫 查看扫到的服务 查看主机 离线攻击 Msfvenom 本地快速传递文件的方法-->py 哈希传递攻击 提权 后渗透阶段 1-收集操作系统和版本信息 2-主机名称&环境变量 3-用户账户信息 4-远…

Stable Diffusion绘画 | ControlNet应用-NormalMap(法线贴图)

NormalMap(法线贴图)&#xff0c;指的是一张只有红绿蓝RGB颜色的图片&#xff0c;通过指定的发法线算法&#xff0c;用RGB颜色相互混合搭配来表示物体的凹凸情况&#xff0c;常用于3D贴图模型使用。 整体配置如下&#xff1a; ControlNet 的法线控制可以把任何的图片转化为法线…

Java Web —— 第四天(HTTP协议,Tomcat)

HTTP-概述 概念:Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 特点: 1. 基于TCP协议:面向连接&#xff0c;安全 2.基于请求-响应模型的:一次请求对应一次响应 3. HTTP协议是无状态的协议: 对于事务处理没有…

书生浦语大模型全链路开源开放体系学习

书生浦语大模型的开源体系经过一年努力&#xff0c;已实现从数据收集到模型部署的全链路打通。课程介绍了书生浦语的最新进展&#xff0c;包括7B和20B模型的开源及其性能提升。新版本模型在推理能力和上下文处理上表现优异&#xff0c;支持超长上下文和复杂任务解决。开源工具涵…

Java并发类API--Executor与ThreadPoolExecutor

在 Java 中&#xff0c;Executor 和 ThreadPoolExecutor 是用于管理线程和执行任务的工具&#xff0c;帮助开发者更好地控制多线程环境。下面是它们的使用和区别。 1.Executor 简介 Executor 是一个接口&#xff0c;用来创建线程池&#xff0c;它定义了一个 execute(Runnable c…

05 内部类API异常

1.内部类 1.1形参和返回值 1. 类名作为形参和返回值 方法的形参是类名,需要该类的对象 方法的返回值为类名,则返回该类的对象 2.抽象类名作为形参和返回值 方法的形参是抽象类名,需要该类的子类对象 方法的返回值是抽象类名,需要返回是该类的子类对象 3.接口名作为形参和返回值…

打印机维护好帮手 | 闪克打印机修复助手 v2.23.0.0

闪克打印机修复助手是一款专业的打印机修复软件&#xff0c;专为解决打印机相关问题而设计&#xff0c;能够帮助用户轻松识别和处理打印机设备的问题&#xff0c;从而提升工作效率。闪克打印机修复助手集成了错误修复、打印机驱动安装和综合修复三大功能。 它能够安全、快速、高…

C盘磁盘空间不足:VirtualBox的锅

文章目录 一&#xff0c;数据迁移二&#xff0c;修改默认配置三&#xff0c;在VirtualBox上删除原来的虚拟机四&#xff0c;在新的虚拟机目录下五&#xff0c;删除C盘上的虚拟机文件虚拟机消耗磁盘分析 开始在自己的windows电脑上使用Vitualbox虚拟机之后&#xff0c;发现C盘常…

【走迷宫】

题目 DFS代码 #include<bits/stdc.h> using namespace std; const int N 110; int matrix[N][N]; int n, m; int dx[4] {-1, 0, 1, 0}, dy[4] {0, 1, 0, -1}; int dis[N][N]; void dfs(int x, int y, int cnt) {if(cnt > dis[n-1][m-1]) return;if(x n-1 &&a…

Vue2.0 项目实战篇\部署篇

Vue2.0 项目实战篇\部署篇&#x1f4dc; 本篇文章学习记录于&#xff1a; bilibili-黑马程序♞ 104-139集 》》&#x1f3af;目标&#xff1a;冲击前后端全栈&#x1f525;&#xff0c;分享一下学过程&#xff1a; Java.慈祥的博客——个人前端技术栈blog记录&#xff1a;、感…

list使用及底层模拟实现

目录 一.list的使用 排序sort 去重unique remove按值删除 remove_if splice merge合并 二.模拟实现 1.成员变量及节点的实现 2.普通迭代器 成员变量 解引用operator* operator-> 前置和前置-- 后置和后置-- 等于与不等于重载 begin()迭代器 end()迭代器 3.co…

【论文阅读】YOLOv10: Real-Time End-to-End Object Detection

题目&#xff1a;YOLOv10: Real-Time End-to-End Object Detection 作者&#xff1a;Ao Wang Hui Chen∗ Lihao Liu Kai Chen Zijia Lin Jungong Han Guiguang Ding∗ 清华大学的 motivation: 作者觉得YOLO系列的NMS和某些结构非常的耗时&#xff0c;提出NMS-free和一些列高效…

AI大模型赋能游戏:更智能、更个性化的NPC

参考论文&#xff1a;https://arxiv.org/abs/2403.10249 在传统游戏中&#xff0c;NPC&#xff08;非玩家角色&#xff09;的行为往往是预先设定好的&#xff0c;缺乏灵活性和变化性。然而&#xff0c;基于大模型的NPC可以利用其强大的推理和学习能力&#xff0c;实时生成对话…

使用 JUnit 5 进行 Java 单元测试:最佳实践和技术说明

掌握 Java 单元测试&#xff1a;深入了解工具、最佳实践和技术&#xff0c;以确保代码的稳健性。增强软件可靠性并完美交付&#xff01; 想要提升 Java 开发工作量&#xff1f;本指南探索 Java 测试领域&#xff0c;涵盖基础概念和高级技术。您将了解测试驱动开发 (TDD) 的重要…