【经典文献】光-声立体成像:关于系统标定与三维目标重建
- 论文名称:《Opti-Acoustic Stereo Imaging: On System Calibration and 3-D Target Reconstruction》
- 作者列表:Shahriar Negahdaripour, Hicham Sekkati, and Hamed Pirsiavash
- 作者单位:美国迈阿密大学电气与计算机工程系,佛罗里达州科勒尔盖布尔斯 33124-0620
- 发表期刊:IEEE Transactions on Image Processing
- 发表年份:2007年
- DOI链接:10.1109/TIP.2009.2013081
摘要
利用声学摄像机进行测距是光声立体成像恢复水下目标三维形状的关键优势,其中光学和声学图像对应的相关外极几何可以用圆锥曲线来描述。在本文中,我们提出了通过噪声图像测量的最大似然估计进行系统校准和三维场景重建的方法。递归三维重建方法利用一个闭式解作为初始条件,该闭式解综合了另外两个闭式解(即测距解和方位角解)的优点。通过合成数据测试,可以深入了解新目标成像和三维重建范例的优点,而真实数据实验则证实了计算机模拟的结果,并证明了这种新型三维重建范例的优点。
关键词:传感器融合、立体视觉、三维重建、水下声呐成像
1. 引言
视觉搜索、检查和勘测在海洋科学、海底结构维护和修理以及国土安全的许多水下应用中都至关重要。传统的光学摄像机和最近的声学摄像机提供了合适的传感技术。然而,由于环境条件会随着时间、季节、地点、深度等发生急剧变化,因此需要采用新颖的方法和部署策略。例如,通过基于偏振的图像分析[19],扩大了自然照明水下图像的可见度范围。该方法利用至少两幅通过偏振镜在不同方向(如水平和垂直)拍摄的图像来进行色彩校正和改善场景对比度。同时使用不同的互补传感器,利用其独特的优势和特性,同时克服每种传感模式的缺点和局限性,也能带来优势。
在能见度允许的情况下,与单独处理来自每个传感器的图像相比,潜在的光学和声学信息融合可以提高性能。这种多传感器融合策略已被用于将图像数据配准到已知的三维物体模型[5],以及沿海底自然轮廓(如海草)自动导航[1]。这种方法的关键优势在于可以利用三维声纳提供的宝贵场景信息[6]。
近年来,出现了高频二维声纳摄像机[17],例如双频识别声纳(DIDSON)[27]和基于blazed-array阵列技术的 BlueView [26]。这些系统的视频图像提供了足够高的细节,使人类操作员能够在搜索和检查中进行目标识别[3]、[20]。特别是,如今许多潜水器平台在能见度较低的情况下使用二维声纳摄像机进行遥控,而在清澈水域则继续使用光学成像系统作为导航摄像机。换句话说,同时部署声纳和摄像机正在成为一种标准做法,以扩大水下航行器的效用和作业范围。这促使人们开始研究如何将这些多模态相机配置成立体图像,即 “光声立体成像”,作为水下应用中三维物体重建的一种新策略[13], [15]。
本研究解决了一些基本问题:1)建立光学-声学立体图像的外极几何;2)推导出某些闭式解,这些解以不同方式利用两个立体视图的声纳和光学投影约束。此外,早期的计算机模拟和我们目前的实验结果表明,与传统双目系统中的三角测量法相比,在一些条件下,三维重建性能有所提高: 1) 立体基线较小;2) 能见度下降,这些情况下两个光学相机都会出现特征检测和定位不准确的情况。此外,与三维声学相机相比,其优势还包括更高的分辨率以及可用于目标识别和分类的视觉数据。
与光学系统一样,有噪声的 "光声对应关系 "并不满足外极几何,因此,与利用冗余约束的最大似然估计(MLE)相比,早期任何闭式方法的三维重建都是次优的。根据噪声观测结果直接和间接估计三维目标点的两种方法产生相当的结果[18]。每种方法都基于高斯模型对测距和方位测量噪声的表示。本文扩展并改进了我们之前在光声立体成像系统校准和三维重建方面的工作[14]、[18]。首先,之前的立体校准方法依赖于确定每个系统相对于平面校准目标的姿态。作为建立高精度外极几何的关键步骤,我们提出了一种新方法,利用至少五个光声对应点直接计算两台相机的相对姿态。与之前的间接方法相比,这种方法能提供更精确的估计值。接下来,我们提出了一种新的递归三维重建方法,即用修正的噪声模型重新表述 MLE 问题。在这里,将声纳测距测量转换为矩形图像形式,可以将高斯模型应用于矩形图像位置的不确定性。这相当于分别用更合适的瑞利(Rayleigh)分布和均匀分布对测距和方位噪声进行建模 [8],[23]。该非线性估计问题采用 Levenberg-Marquardt 算法[12] 进行迭代求解。由于良好的初始条件能提高递归方案的性能,我们试图改进之前工作 [14], [18] 中得出的闭式测距解和方位角解。通过研究这些解及其性能,我们设计了一种新的解法,即这两种解法的加权平均值。加权函数的选择基于与测距解和方位角解的最佳性能区域相关的两个重要参数,即目标距离和立体基线。根据立体系统的几何形状和声纳测量结果,这两个参数都是已知的。通过精心设计计算机仿真,我们建立了性能基准,并通过在可比条件下(室内游泳池和我们自己的 6 m × 12 m × 6 m 水箱设施)收集的真实数据进行实验验证。此外,我们还利用这些真实数据测试了外极几何以及系统校准和三维重建的方法。这些实验对光-声学和双目立体成像系统进行了比较。
最后需要指出的是,要在水下在线作业过程中有效应用我们的三维重建方法,需要自动对光学和声纳图像中的相应特征进行稳健而准确的匹配。虽然我们最近探讨了光声对应问题的几何方法[16],但这里的结果是基于人工匹配的特征,因为我们主要关注的是验证系统校准和三维重建技术的性能。
本文的其余部分安排如下: 第二节回顾了声纳相机技术,并介绍了有关光声系统投影模型、坐标框架之间的转换、图像测量和立体对应约束的各种背景材料。第三节介绍了外极性约束。第四节介绍新的光声立体校准方法。第五节专门讨论光声对应的三维重建。在这里,我们研究了闭式测距解和方位角解法,设计了新的加权解法,并介绍了产生 MLE 的非线性优化公式。第六部分介绍了合成数据和真实数据的实验,对提出的方法进行了验证。最后,我们在第七部分总结了我们的贡献。
2. 预备基础
2.1 声呐相机
声纳相机通过记录声脉冲对场景进行检测时的反射声来生成图像。在三维声纳(如 Echoscope [25])中,反向散射信号由二维传感器阵列收集,图像由 "波束信号 "形成,即来自固定转向方向的回声,由仰角和方位角指定(见图 1)。三维点的距离信息 R \mathfrak{R} R 是根据声波的往返时间和波束信号的峰值确定的。
图1 (a) 世界坐标系、声纳坐标系和光学坐标系及其变换,以及光学和声纳相机中带有二维投影坐标和样本网格点的平面校准网格。(b) 在我们的实际实验中,光学声学立体相机相对于世界帧的典型几何形状,与平面校准网格的轴对齐。
二维声学图像的形成基于不同方位(方位角)的若干波束,射程由飞行时间决定。在现有的两种技术中,即 DIDSON 和 BlueView 系统中,在一个固定的下射程 (down-range, DR) 窗口 [ R min − R max ] [\mathfrak{R}_{\min}-\mathfrak{R}_{\max}] [Rmin−Rmax] [m] 内共记录了 512 个测距值。这通常是根据物体与摄像机的距离来设定的,从而确定下程分辨率。DIDSON 采用声学透镜和换能器曲率,可产生 96 个 w θ = w_{\theta}= wθ= 0.3° 方位角和仰角 w ϕ = w_{\phi}= wϕ= 14° 宽度的波束。发射的波束覆盖方位角方向 28.8° 的总视场,分辨率为 0.3°;这意味着横跨距离 (CR) 约为 0.5 * DR 米。BlueView 采用blazed-array阵列技术,具有更大的 45 度横跨距离(cross-range)视场和 1° 分辨率。之所以将其视为二维声纳,主要是因为成像的三维点的仰角存在不确定性。虽然我们的方法适用于任何二维前向扇形扫描声纳,但我们将在本文的其余部分讨论 DIDSON 声呐,因为我们的真实数据是通过该系统获取的。二维声纳摄像机可在浑浊水域中生成高质量图像[2],[20];但是,传输光束的仰角宽度较小,限制了覆盖范围。因此,通常以相对较小的掠过角观察目标,以增加在每一帧中对具有不同声纳回波的物体特征成像的可能性[见图 1(b)]。
2.2 直角坐标和球坐标
三维点可以分别用直角坐标或球坐标表示, [ X , Y , Z ] T [X,Y,Z]^T [X,Y,Z]T或 [ θ , ϕ , R ] T [\theta,\phi,\mathfrak{R}]^T [θ,ϕ,R]T,其中 θ \theta θ 和 ϕ \phi ϕ 是方位角和仰角,而 R \mathfrak{R} R 是距离。参照图 1,直角坐标和球坐标之间的关系以及逆变换为:
2.3 坐标系及其变换
令 P o = ( X o , Y o , Z o ) T \bm{P}_o=(X_o,Y_o,Z_o)^T Po=(Xo,Yo,Zo)T 和 P s = ( X s , Y s , Z s ) T \bm{P}_s=(X_s,Y_s,Z_s)^T Ps=(Xs,Ys,Zs)T 表示三维世界点 P = ( X , Y , Z ) T \bm{P}=(X,Y,Z)^T P=(X,Y,Z)T 在光学相机和声呐相机直角坐标系中的坐标,两个坐标系记为 O , S \mathcal{O},\mathcal{S} O,S。这两个坐标系通过刚体运动变换与世界参考系相连,刚体运动变换由一个 3×3 的旋转矩阵和一个三维平移矢量组成,即 M o = [ R o , T o ] \rm{M}_o=[\rm{R}_o,\rm{T}_o] Mo=[Ro,To] 和 M s = [ R s , T s ] \rm{M}_s=[\rm{R}_s,\rm{T}_s] Ms=[Rs,Ts]。光学相机和声呐相机的相对姿态可以用相对于世界参考系的两个变换来表示:
其中
2.4 图像测量
我们假设三维场景特征 P P P 在光学视图中的二维位置 ( x , y ) (x,y) (x,y) 满足透视投影模型:
其中, T o = [ T o x , T o y , T o z ] T_o=[T_{ox},T_{oy},T_{oz}] To=[Tox,Toy,Toz], r o i ( i = 1 : 3 ) \bm{r}_{oi}(i=1:3) roi(i=1:3) 表示旋转矩阵 R o R_o Ro 的行, f f f 是光学相机的焦距。 P P P 在声学图像中的距离和方位角测量如下:
其中 T s = [ T s x , T s y , T s z ] T_s=[T_{sx},T_{sy},T_{sz}] Ts=[Tsx,Tsy,Tsz], r s i ( i = 1 : 3 ) \bm{r}_{si}(i=1:3) rsi(i=1:3) 表示旋转矩阵 R s R_s Rs 的行。可根据以下变换构建具有对称坐标单位 p s = ( x s , y s ) \bm{p}_s=(x_s,y_s) ps=(xs,ys) 的直角声纳图像:
很容易得到:
2.5 立体匹配约束
光声对应点之间 p o = ( x o , y o , f ) \bm{p}_o=(x_o,y_o,f) po=(xo,yo,f) 和 p s = ( x s , y s ) \bm{p}_s=(x_s,y_s) ps=(xs,ys) 之间的关系不仅是三维重建的基本约束条件,也是立体校准等其他相关问题的基本约束条件。这是从(3)中的变换推导出来的,可以用以下形式表示:
其中 r i \bm{r}_i ri 表示矩阵 R \bm{R} R 的第 i i i 行。注意以下公式,可以消除未知量 ϕ \phi ϕ:
最终我们得到:
这里(10)就表示了光学图像特征点 p o \bm{p}_o po 和声学图像特征点 p s \bm{p}_s ps 之间的关系表达式。
三、对极几何
外极几何是根据校准过的立体视图进行三维重建的基础。例如,它允许我们将对应匹配问题作为沿外极轮廓线的一维搜索来解决。虽然光学声学系统的外极几何在文献[15]中已有详细探讨,但为了完整起见,还是有必要总结一些相关结果。
参照 (3),我们可以建立一个相机的坐标系作为参考系。在此,我们选择光学相机坐标系,不失一般性。接下来,我们以光学相机坐标系作为世界参考系,重写投影方程:
光声立体系统中的外极性约束–确定同一场景点的投影 p s \bm{p}_s ps 和投影 p o \bm{p}_o po 之间的关系[15]–可通过操作 (3) 和 (11) 得出
3×3 对称矩阵 U \bm{\rm{U}} U 的计算公式为
其中 a = ( y s r 1 − x s r 2 ) T \bm{\rm{a}}=(y_s\bm{r}_1-x_s\bm{r}_2)^T a=(ysr1−xsr2)T,以及 T ~ = [ T ~ x , T ~ y , T ~ z ] = T / R \tilde{\bm{T}}=[\tilde{T}_x,\tilde{T}_y,\tilde{T}_z]=\bm{T}/\mathfrak{R} T~=[T~x,T~y,T~z]=T/R。如前所述,声学图像点 p s \bm{p}_s ps 在光学图像中的匹配点 p o \bm{p}_o po 位于圆锥曲线上。因此,通常有必要确定光学图像点 p o \bm{p}_o po 对应的声呐匹配点 p s \bm{p}_s ps。研究还表明,声学相机中的外极几何满足以下约束条件 [15]:
其中
公式(14)展示了与光学图像特征点 p o \bm{p}_o po 对应匹配的声学特征点 p s \bm{p}_s ps 在声呐图像中的分布情况。这里, z ~ = ( 0 , 0 , 1 ) T \tilde{z}=(0,0,1)^T z~=(0,0,1)T, θ = ( sin θ , cos θ , 0 ) T \bm{\theta}=(\sin\theta,\cos\theta,0)^T θ=(sinθ,cosθ,0)T,以及 Υ \Upsilon Υ 是 3×3 的斜对称矩阵,定义为 v = R p o \bm{v}=\bm{R}\bm{p}_o v=Rpo的分量(对于任意的向量 x \bm{x} x,有 Υ x = v × x \Upsilon\bm{x}=\bm{v}\times\bm{x} Υx=v×x 成立)。
3.1 测量噪声
图像位置通常是真实二维投影 { p o , p s } \{\bm{p}_o,\bm{p}_s\} {po,ps} 的噪声观测值,此处用 { p ^ o , p ^ s } \{\hat{\bm{p}}_o,\hat{\bm{p}}_s\} {p^o,p^s} 表示。测量噪声会直接影响校准和三维重建方法的解算精度,但影响程度可能大不相同。解释一下,校准涉及使用最适合特征检测和匹配的已知目标,并且可以在理想的可见度条件下进行。此外,还可以手动匹配相应的特征,以避免严重的不匹配。校准过程中的测量噪声可以建模为加性高斯噪声:
其中, n ( 0 , σ i ) n(0,\sigma_i) n(0,σi) 是零均值、协方差为 σ i ( i = x o , y o , x s , y s ) \sigma_i(i=xo,yo_,xs,ys) σi(i=xo,yo,xs,ys) 的正态分布。 x s x_s xs 和 y s y_s ys 不确定度的独立高斯模型可转换为测距和方位角不确定度的 Rayleigh 瑞利分布和均匀分布,这与斑点噪声模型[8]、[23]一致,据评估,斑点噪声是高频短程声纳成像系统中的主要效应[21]。因此,用 p s = ( x s , y s ) \bm{p}_s=(x_s,y_s) ps=(xs,ys) 表示三维点的声纳图像坐标的一个优势是,图像噪声可以适当地建模为高斯噪声。
与校准过程不同,三维重建利用的是在各种环境条件下自动检测和匹配的特征,因此离群值是不可避免的。在我们的工作中,人工光声匹配可以避免异常值,重点是评估正常特征的三维重建精度。需要注意的是,每个三维点的重建只取决于同一点的二维光学和声学投影(不取决于任何其他点的信息)。因此,离群点匹配只影响对应三维点的精度。显而易见,代表测量不确定性的假定方差在优化算法中占适当的权重。因此,我们可以通过分析来研究测量方差增大对估算结果的影响。
四、光-声系统的标定
与光学图像一样,声学透镜的缺陷也会导致图像失真和与理想图像模型的几何偏差。现已设计出一种用于 DIDSON 摄像机内参标定的方法,通过利用已知平面网格的一个或多个图像来确定透镜畸变参数[14]。
光学相机和声学相机的相对姿态可以通过 外参或立体标定 来确定,这样我们就可以利用外极几何原理,将对应问题简化为沿外极曲线的一维搜索。为此,我们还利用了具有突出光声特征的目标,这些特征可以很容易地匹配,理想情况下是自动匹配,必要时也可以手动匹配。同样,我们也可以利用平面网格。手动或人工指导的特征匹配是可以接受的,因为校准通常是作为离线过程进行的,计算出的结果随后将用于在线应用中的三维重建。
平面上的点满足以下关系:
其中 n o = ( n o x , n o y , n o z ) T \bm{n}_o=(n_{ox},n_{oy},n_{oz})^T no=(nox,noy,noz)T 是光学摄像机坐标系中的向内表面法线, Z o Z_o Zo 是沿光学摄像机轴线到平面的距离。校准时,我们需要声纳坐标系中的表面法线 n s = ( n s x , n s y , n s z ) T \bm{n}_s=(n_{sx},n_{sy},n_{sz})^T ns=(nsx,nsy,nsz)T,其计算公式为
在确定光-声立体摄像机的相对姿态时,必须确保旋转矩阵 R \bm{R} R 的正交性。这可以通过几种方法来实现。我们使用将坐标系的轴分解为三个旋转的方法: R ( α x , α y , α z ) = R z ( α z ) R y ( α y ) R x ( α x ) \bm{R}(\alpha_x,\alpha_y,\alpha_z)=\bm{R}_z(\alpha_z)\bm{R}_y(\alpha_y)\bm{R}_x(\alpha_x) R(αx,αy,αz)=Rz(αz)Ry(αy)Rx(αx),其中 R u ( α u ) \bm{R}_u(\alpha_u) Ru(αu) 表示绕各自坐标系的轴线 u u u 旋转角度 α u \alpha_u αu。将(17)中的 Z o Z_o Zo 代入(10),每组匹配都会提供(10)中给出的两个约束条件,即九个未知数:6个位姿参数 M = [ R ( α x , α y , α z ) , T ] \bm{M}=[\bm{R}(\alpha_x,\alpha_y,\alpha_z), \bm{T}] M=[R(αx,αy,αz),T] 和光学相机坐标系中标定目标平面法线 n o \bm{n}_o no 的3个参数。我们有 N ≥ 5 N\ge5 N≥5组对应匹配关系的冗余。我们可以根据合适的误差测量来解决非线性优化问题。
我们采用了一种改进的实施方法,最大限度地缩小了光学投影和声学投影重建平面网格点之间的三维距离。假定 9 个所需参数 M ^ = [ R ^ , T ^ ] \hat{\bm{M}}=[\hat{\bm{R}},\hat{\bm{T}}] M^=[R^,T^] 和 n ^ o \hat{\bm{n}}_o n^o 的估计值,以初始化非线性优化算法。在迭代估算过程中,每一步都会对其进行更新。对于光学图像中的每个特征 p ^ o \hat{\bm{p}}_o p^o,我们根据(17)中的平面方程估计深度 Z ^ o \hat{Z}_o Z^o。根据(4)计算其他两个坐标 X ^ o \hat{X}_o X^o 和 Y ^ o \hat{Y}_o Y^o,可以得到三维点 P o \bm{P}_o Po 的估计值。利用 式(3),用 M ^ = [ R ^ , T ^ ] \hat{\bm{M}}=[\hat{\bm{R}},\hat{\bm{T}}] M^=[R^,T^] 变换到声呐坐标系,就得到了估计位置 P ^ s \hat{\bm{P}}_s P^s。接下来,我们计算声学匹配点 p ^ s \hat{\bm{p}}_s p^s 的仰角:
其中
根据式(1),可以得到三维点在声呐坐标系中的坐标 P s \bm{P}_s Ps。用 M ^ = [ R ^ , T ^ ] \hat{\bm{M}}=[\hat{\bm{R}},\hat{\bm{T}}] M^=[R^,T^] 变换到光学相机坐标系,就得到了估计位置 P ^ o \hat{\bm{P}}_o P^o。要求解这个估计问题,可以通过最小化以下目标函数:
协方差 Σ P o \Sigma_{P_o} ΣPo 和 Σ P s \Sigma_{P_s} ΣPs(由于表达式的复杂性,在此没有写出)是通过解的雅可比矩阵对图像投影及其不确定性和估计参数的协方差的一阶逼近来估计的。(21)中的非线性优化问题已由Levenberg-Marquardt算法解决[12]。
五、三维重建
给定光声对应匹配关系后,相应的三维点就能以封闭形式计算出来 [15]。然而,最大似然(ML)意义上的最优解是通过非线性方法得出的,需要应用迭代算法。目前已提出两种基于间接和直接公式的此类方法,假设采用高斯模型来表示测距和方位角测量的不确定性[18]。这两种方法都提供了相当的精确度,其依据是对受加性高斯噪声干扰的数据进行的计算机仿真。然而,由于声学成像系统的噪声与高斯模型不一致,这两种方法都不能给出真实数据的最佳估计值。本文对直接法进行了重新研究,将声纳图像位置 p s \bm{p}_s ps 的不确定性用高斯模型表示,从而将优化问题重新表述。如前所述,这对应于测距测量的瑞利(Rayleigh)模型,正如声学图像噪声表征所展示的那样[8], [23]。
良好的初始估计可以提高递归估计方法的收敛速度。检查[15]中提出的距离和方位角闭式解的性能,我们可以设计一个改进的加权平均值,利用这两个解表现最佳的条件。这用于初始化我们的迭代直接方法。
5.1 闭式解
在光声立体成像的背景下,立体三角测量处理的是确定任何光声对应匹配点 p o = ( x , y , f ) \bm{p}_o=(x,y,f) po=(x,y,f) 和 p s = ( x s , y s ) \bm{p}_s=(x_s,y_s) ps=(xs,ys) 的三维点,或者等价地,在两个相机参考系中的位置,比如 P o = ( X o , Y o , Z o ) \bm{P}_o=(X_o,Y_o,Z_o) Po=(Xo,Yo,Zo)。(4)和(5)中光学和声学投影模型的非对称形式导致了各种闭式解法的推导,每种解法都有特定的几何解释。
测距解(Range solution),即光学射线与等距球面的交点,是由以下公式的正解算出的:
其正确的解一定与方位角解(azimuth solution)一致,即光线与方位角平面的交点:
需要注意的是,虽然这些闭式表达式能得出完美数据下的精确解,但在有噪声观测数据的情况下,每种表达式都能给出不同的估计值。特别是,从最大似然(ML)的意义上讲,这两种解法都不是最优解。在下一节中,我们将介绍一种能直接解决这一缺陷的方法,但它需要一个迭代方案来解决非线性优化问题。在这种情况下,我们的闭式解可以为迭代 MLE 方法提供初始猜测。显然,在有噪声数据的情况下,用最佳估计值识别出闭式解,可以提高递推方法的收敛性。
其中一种方法是通过加权平均法将前面两种解融合在一起:
其中权重 ξ t \xi_t ξt 选择为一个 sigmoid 函数,转换时考虑了测距解和方位角解的特性。因此,有必要确定一种解决方案优于另一种解决方案的条件,并确定这些条件是否以及如何取决于成像和环境因素。
我们解析地推导并比较了每个解的方差的一阶近似,试图确定相关参数。这项分析以及对测距和方位角解进行的大量计算机仿真表明,目标距离和立体基线是两个关键因素。幸运的是,我们从立体系统的几何形状和声纳相机的距离测量中知道这两个参数。为了证明这一点,我们检查了逆归一化误差,定义为沿光学相机观察方向的真实目标距离与平均重建误差之比(这些解的信噪比,SNR)。对于数据,我们使用的是图 1 所示配置中相对于光声立体系统的平面上的点。我们使用不同的基线 T x = ( 10 , 20 , . . . , 80 ) [ c m ] T_x=(10,20,...,80) [cm] Tx=(10,20,...,80)[cm] 和平面距离 Z 0 = ( 100 , 125 , . . . , 300 ) [ c m ] Z_0=(100,125,...,300)[cm] Z0=(100,125,...,300)[cm] 进行测试。光学和声学相机的噪声方差都固定为 σ x = σ y = σ x s = σ y s = 1 \sigma_x=\sigma_y=\sigma_{xs}=\sigma_{ys}=1 σx=σy=σxs=σys=1 像素。最后,我们计算了平面上 36 个均匀分布点的平均重建信噪比,从而将某些场景点的不良视角影响降至最低。
图 2(a)显示了测距解和方位角解的重建信噪比,这些信噪比是通过对假设分布中不同噪声样本的数百次仿真进行集合平均计算得出的。如前所述,这些图与方差一阶近似计算的解析信噪比完全一致[18]。重要的结论是:
- 测距解对基线尺寸相对不敏感,而方位角解与传统光学系统一样,随着基线的增加而改善;
- 测距解的SNR信噪比随目标距离的增加而提高。
这些可以通过图 3 所示的对估计不确定性的几何解释来验证。我们假设测距和方位角测量的噪声水平固定不变。方位角解的重建不确定区域随着基线的增加而缩小,但测距解的重建不确定区域则保持相对稳定。此外,从图中可以很容易地验证,测距解的重构误差会随着目标距离的增加而保持稳定;因此,测距解的信噪比会随着目标距离的增加而增加。图 2(b) 以二维等距等值线图的形式传达了同样的信息。
图2. (a) 平面上 36 个对称分布点的平均重建信噪比SNR。(b) 以二维等距等值线表示的不同基线和目标距离的方位角解和测距解的误差方差,可以选择适当的缩放比例来计算加权平均解 Z m Z_m Zm.
图3. 闭合形式 (a) 方位角解和 (b) 测距解对基线大小敏感度的几何解释。由于光学图像投影以及声纳摄像机测距和方位角测量值的噪声而造成的重建不确定区域用虚线标出。
现在,我们可以通过分配 (24) 中的加权系数来正式确定这些结论。一般来说,基线越大,方位角解的权重就越大,而目标距离越远,测距解的权重就越大。用基线与目标距离之比来定义权重可以达到这一目的。我们选择的是 sigmoidal 形式:
其中 Z ˉ = ( Z R + Z θ ) / 2 \bar{Z}=(Z_{\mathfrak{R}}+Z_\theta)/2 Zˉ=(ZR+Zθ)/2。对于给定的立体基线,通过确定距离和方位角解具有相等方差的 临界深度 Z c Z_c Zc 来设置阈值 k o = ∥ T ∥ / Z c k_o= \lVert\bm{T}\rVert/Z_c ko=∥T∥/Zc [见图 2(b)]。这个阈值可以预先计算并存储在查找表中。从图 2(a) 中可以验证,加权闭式解 Z m Z_m Zm 与测距解和方位角解密切吻合,其中任一解都具有更好的性能。
5.2 最大似然公式
我们希望提出一个优化问题,从含噪声的光声对应点 p ^ o = ( x ^ , y ^ , f ) \hat{\bm{p}}_o=(\hat{x},\hat{y},f) p^o=(x^,y^,f) 和 p ^ s = ( x ^ s , y ^ s ) \hat{\bm{p}}_s=(\hat{x}_s,\hat{y}_s) p^s=(x^s,y^s) 中计算三维点的最大似然估计值 (MLE)。将测量不确定性表示为零均值高斯,通过最小化向量 X = ( x , y , x s , y s ) T X=(x,y,x_s,y_s)^T X=(x,y,xs,ys)T 和 X ^ = ( x ^ , y ^ , x ^ s , y ^ s ) T \hat{X}=(\hat{x},\hat{y},\hat{x}_s,\hat{y}_s)^T X^=(x^,y^,x^s,y^s)T 间的 Mahalanobis 距离来确定 MLE:
其中 Σ = E [ ( X − X ^ ) ( X − X ^ ) T ] \Sigma=E[(X-\hat{X})(X-\hat{X})^T] Σ=E[(X−X^)(X−X^)T]。 在此,我们利用 (11) 中的投影模型,用光学相机坐标系表示三维点。假设测量矢量的各分量之间是独立的是合理的,这样我们就可以将 Σ \Sigma Σ 写成一个元素为 σ i \sigma_i σi 的对角矩阵,从而可以写成
这个非线性最小二乘优化问题可通过 Levenberg-Marquardt 算法高效解决 [12]。
5.3 一阶误差分析
重建精度可以通过估计值 P = ( X , Y , Z ) T \bm{P}=(X,Y,Z)^T P=(X,Y,Z)T 的协方差来评估。这可以用测量值 V = ( x , y , x s , y s ) \bm{V}=(x,y,x_s,y_s) V=(x,y,xs,ys) 的协方差来表示:
其中 Σ V \Sigma_V ΣV 是观测向量的协方差,雅可比 J = ∂ P / ∂ V J=\partial\bm{P}/\partial\bm{V} J=∂P/∂V 可以通过解析或者数值估计确定。 虽然这一近似值不一定能严格限制估计误差,但对于相对于立体系统的非退化场景几何形状和位置来说,它是相对准确的(正如我们在计算机f仿真中验证的那样)。
六、实验
6.1 标定
由外参标定确定的立体摄像机的相对姿态固定了外极几何。这样做的直接好处是,对于一幅图像中的每个特征,都可以通过沿相应的外极坐标曲线进行一维搜索来确定与另一幅立体图中的特征相匹配的位置。我们从标定光声立体系统的实验开始。除了验证外极几何之外,我们还利用这些结果帮助我们在三维重建实验中手动建立图像对应关系。
第4节所述的校准方法已分别应用于图 4 各栏所示的两对光学声学立体图像;叠加的是对应关系。对于一个图像中的任何特征,我们都可以确定相应的外极线轮廓是否穿过另一个视图中的匹配特征。对于(b)列中的数据,我们已对每幅图像中的四个样本点和另一幅立体视图中的外极曲线进行了验证,这些曲线是由(12)和(14)计算得出的(见图 5)。
图4 两个数据集的双目立体配对的匹配特征
图5 双目立体标定建立了外极几何。根据 (12) 和 (14) 计算出一幅图像中的每个特征在另一幅图像中的对应外极曲线轮廓。
6.2 三维重建
为了评估三维重建性能,我们首先使用计算机仿真噪声数据(完美数据被已知分布的噪声所破坏)。这是为了深入了解光声立体成像系统在各种条件下的性能。然后,我们将介绍其他真实数据集的实验结果。
6.3 计算机仿真
通过计算机仿真,我们可以评估三维重建方法在各种条件下的性能。具体来说,目标是:1) 检验基于真值数据(受加性噪声干扰)的数字仿真和真实数据实验结果之间的一致性,以及 2) 量化更高噪声水平下的性能下降情况。为了实现第一个目标,对相机和目标几何形状进行了计算机模拟,这些几何形状是根据第一组真实数据的校准确定的(见下一节)。对于光学测量噪声,我们假设零均值的高斯噪声,方差为 σ x , y = 1 , 2 \sigma_{x,y}=1,2 σx,y=1,2 [像素]。对于声学图像,我们进行了方差为 σ x s , y s = 1 , 2 , 3 \sigma_{x_s,y_s}=1,2,3 σxs,ys=1,2,3 [像素] 的测试。我们采用 MLE 方法来确定合成数据和真实数据的估计值。
图 6(a) 描述了平面网格上若干点的三维重建误差分布,其中, σ x , y = 1 [ p i x ] \sigma_{x,y}=1 [pix] σx,y=1[pix] 和 σ x s , y s = 2 [ p i x ] \sigma_{x_s,y_s}=2 [pix] σxs,ys=2[pix] 的情况与真实数据的结果最接近,如图6(b)所示。这些不确定性水平与真实数据的质量和特征位置的精度基本一致。 σ x , y = 1 , 2 [ p i x ] \sigma_{x,y}=1,2 [pix] σx,y=1,2[pix] 和 σ x s , y s = 2 , 3 [ p i x ] \sigma_{x_s,y_s}=2,3 [pix] σxs,ys=2,3[pix] 这些噪声水平较大的结果模拟了光学和声学能见度以及杂波等较差的条件。注意到的性能下降正是我们所期望的。最后,© 中的结果是应用 MLE 算法得到的,同时用高斯模型[18]表示测距和方位角测量的不确定性。与 (b) 相比,不仅性能较差,重建误差也偏离了高斯分布。
图6 (a)三维重建误差的计算机仿真,假设成像和目标配置与真实数据相同。实验针对不同的光学和声学噪声水平 σ x , y \sigma_{x,y} σx,y 和 σ x s , y s \sigma_{x_s,y_s} σxs,ys,以检查与真实数据结果(b)(c)的一致性,并检查噪声水平增加时的衰减率。对于真实数据,根据 [18] 中的模型,将测距和方位噪声表示为高斯时(c),重建效果较差。
总体而言,三维点的 X 和 Y 分量的重建误差比 Z 分量的重建误差要小得多。这种情况让人联想到使用(几乎)平行相机的双目光学立体成像。在这个例子中,声纳系统的 X s X_s Xs 和 Y s Y_s Ys 轴几乎与光学相机的 − Y o -Y_o −Yo 和 − X o -X_o −Xo 轴对齐;见图 1(a)。
6.4 真实数据实验
第一组数据是在室内游泳池中采集的平面金属网格的立体视图;见图 7(a)和(b)。网格距离光学相机约 1.5 米,而光学相机位于声学相机左侧约 2.7 米处。声学图像已被来自水面和各种池壁的多个回波干扰;见图 7(b-b")。每对立体图像都显示了匹配的特征(圆圈)和重建的三维点的投影(十字)。
图7 光声立体配对样本,其中圆圈表示(a)、(b)中用于三维重建的匹配点,而十字则是三维重建点的投影。(c)三维重建点和先验立体标定时估计的平面。
虽然我们知道真值,但我们将每个重建点与平面的距离作为估计误差。对于平面,我们使用的是校准过程中的估计值,它与重建技术无关。回想一下,校准方法同时给出了在每个相机坐标系中的立体配置和目标平面的法线。在这里,我们希望校准得到的估计值是相当准确的,因为它是根据具有相当多光声对应关系的 MLE 公式确定的。重建点和不确定椭球以及我们的校准算法计算出的网格平面见图7(c)。再看图 6(b),估计的三维点与光学相机的距离在 3.5%以内(利用校准的平面重建作为真值)。
下一个实验使用的是图 4(a)中的一对图像,它是在隔音效果更好的水箱中采集的。此外,我们还使用光学相机获取了第三幅图像,从而可以独立于双目视差线索来确定场景的几何形状(由于篇幅有限,此处未显示图像)。沿着光学摄像机的观察方向( Z o Z_o Zo轴),在平均距离约 0.85 [m] 处放置了一个塑料平面网格,该光学相机位于声学摄像机左侧约 1.22 m 处。双目立体基线为 13.6 [厘米]。声纳系统的 X s X_s Xs 和 Y s Y_s Ys 轴几乎与光学相机的 − Y o -Y_o −Yo 和 − X o -X_o −Xo 轴对齐。
图 8 描述了各种结果。在(a,a’)中,我们给出了各种三维估计值的两个视图:闭式测距解、方位角解和加权解、ML 方法、校准得出的估计值以及双目视差;(c’)中给出了各种符号的图例。所选的两个视图最适合检查重建点在平面上的位置,一个是各种光声方法的所有估计值,另一个是光学立体系统的估计值。从这些图中,我们可以得出结论,各种光声方法的估算结果相对一致,与基于光学立体系统的估算结果相差较大(光学立体系统的估算结果变化也最大)。通过对光学图像的目测,平面的倾斜度似乎与光声估算值一致。为了进一步验证,我们为每种方法计算了通过估计的三维点的最佳平面,并再次从 (b,b’) 中的两个不同视角进行显示。对于每种方法,我们都计算了所有三维点到最佳平面的距离,并在 (c) 中进行了描述。(c’)中这些距离的平均值和方差证实了之前的结论。一个值得注意的现象是,在距离光学相机较近的点上,光声和双目立体估算值之间的差异较小,因为后者预计会提供更精确的结果。
图8 传统双目光学和光-声立体成像的三维重建比较。图 4 (b)栏给出了光声立体成像对。(a,a’) 重建三维点的两个视图,用于检查重建点在平面上的位置。(b,b’)各种重建方法的最佳拟合平面的两个视图。三维点与相应最佳拟合平面的垂直距离(c)及其均值和方差(c’)。
最后一项实验还利用了光声和双目光学立体数据 [见图 9(a,a’,a")]。场景由人工珊瑚礁和塑料玩具龙虾组成,每只龙虾都用绳子吊在平面网格前。光学立体图像经过水平矫正,并通过人工建立了对应关系。这些点也包括声纳视图中的成像点(红色),以及支撑绳索上的另外五个匹配点(蓝色)。龙虾和礁石上各点的光-声对应关系是通过外极曲线确定的。
图9 传统双目光学和光-声立体成像的三维重建比较。(a,a’,a")带对应匹配关系的数据集;(b,b’)根据方位角、测距解和加权解重建的三维点的 2 个视图。(c,c’,c") 加权法、ML 法和传统双目光学立体法重建的 3 个视图。
图 9(b,b’)描述了根据方位角解、测距解和加权平均解重建点的两个视图。近顶部视图突出显示了平面网格的结构,而近正面视图则可以对三个物体的解进行比较。较近物体(珊瑚礁和龙虾)的解是一致的。对于较远的网格点,测距解和方位角解都有偏差,而根据(25)的相对权重更倾向于前者的估计值,对于较大的距离,前者预计会更准确。在(c,c’)中,比较了基于加权解、ML 估计和双目视差法重建的两个视图。
双目立体系统似乎对近处的物体,即龙虾和礁石,效果更好,但对远处的平面网格,精确度就变低了。为了验证这一点,我们以重建后的几何图形为真值,检验了加噪情况下解的偏差。此外,还根据各点与光学相机的距离将其分成 3 组: Z ≤ 0.55 [ m ] , 0.55 [ m ] < Z ≤ 0.7 [ m ] , Z > 0.7 [ m ] Z\leq0.55 [m],0.55 [m]<Z\leq0.7 [m],Z>0.7[m] Z≤0.55[m],0.55[m]<Z≤0.7[m],Z>0.7[m]。图 10 描述了从高斯分布 σ x = σ y = 1 \sigma_x=\sigma_y=1 σx=σy=1 和 σ x s = σ y s = 2 \sigma_{xs}=\sigma_{ys}=2 σxs=σys=2 pix 的 200 个噪声样本中得出的估计三维点的 X、Y 和 Z 分量的解的标准差变化。这些结果与我们从图 9 的重建中得出的结论一致,也与早期工作[15]中报告的光声和双目立体系统相对重建精度的理论分析一致。假设图像上的特征定位不确定性是固定的,这些图中描述的特别重要的事实是,光声立体估算精度随着目标距离的增加而提高。
图10 基于服从高斯分布噪声样本的计算机仿真,在相距光学摄像机不同距离处三组点的解的标准差 X、Y和Z分量。(红色:双目光学;蓝色:光学-声学)。
七、总结与结论
我们研究了通过光声立体成像技术对水下物体进行三维重建的问题–这是一种融合来自光学和声学摄像系统的重叠视图信息的范例[15]。我们提出并分析了系统标定和目标场景重建的方法。标定技术利用平面网格上至少五个特征点的对应关系来计算光-声立体相机的相对姿态,但要获得准确的结果,还需要在一个或多个立体图像对中的大视野范围内找到更多的点。
光学和声学投影方程的非对称性质,以及重建相应三维点的光声对应冗余约束,都有助于推导出不同的闭式解法。基于独立使用测距和方位角测量得到的两类解,在光声立体成像框架内的 "三角测量 "背景下具有简单的几何解释。这两种解决方案都不能提供噪声数据最大似然意义上的最佳估计值,因此我们提出了一个标准的非线性优化问题,用于根据光声对应匹配计算三维目标点的最大似然估计值。由于解是迭代确定的,因此在初始条件较好的情况下进行初始化可以增强收敛性。这是由两个封闭解的加权平均得到的。利用所提出的加权函数公式,可以在更大的成像条件范围内,充分发挥两种解法各自的优势,从而得到一个估计值。
使用基于真值合成的数据进行的实验结果用于评估我们的三维重建方法的性能,并与假设成像几何形状下获取的实际数据进行了验证。也就是说,我们用真实数据进行的实验支持了各种光-声重建方法的理论研究结果,并与双目光学系统进行了近距离和远距离目标的比较。总之,我们预见到在更广泛的环境条件下应用这种新模式进行水下三维物体重建的巨大潜力。作为这项工作的补充,我们还提出了光-声对应匹配问题的几何解决方案,旨在设计一种鲁棒的自动立体光-声匹配方法[16]。这是建立完整的水下物体三维重建计算机系统的重要组成部分。
相关文章:

【经典文献】光-声立体成像:关于系统标定与三维目标重建
论文名称:《Opti-Acoustic Stereo Imaging: On System Calibration and 3-D Target Reconstruction》作者列表:Shahriar Negahdaripour, Hicham Sekkati, and Hamed Pirsiavash作者单位:美国迈阿密大学电气与计算机工程系,佛罗里达…...

弘君资本股市行情:股指预计保持震荡上扬格局 关注汽车、银行等板块
弘君资本指出,近期商场体现全体分化,指数层面上看,沪指一路震动上行,创出年内新高,创业板指和科创50指数体现相对较弱,依然是底部震动走势。从盘面体现上看,轮动依然是当时商场的主基调…...

看这两位东北圣女美吗?如何描写美女的大长腿?
看这两位东北圣女美吗?如何描写美女的大长腿? 最近署名为懂球娘娘的一篇描写东北圣女的文章火了,文中描述了海棠朵朵与辛芷蕾这两位娇媚动人的角色。其美艳动人的形象和魅力四溢的描写让人为之倾倒。 这种通过文字展现人物魅力的能力让人佩服…...

Linux相关指令
目录 1、输出重定向 2、追加重定向 3、输出重定向 4、more 5、less 6、head 7、tail 8、| (管道) 9、wc 10、与时间相关的指令 11、cal 12、find 13、grep 14、zip/unzip 1、输出重定向 在linux中,可以用echo向屏幕中输出字符串: 这是向屏幕…...

自建公式,VBA在Excel中解一元一次方程
自建公式,VBA在Excel中解一元一次方程 文章目录 前言一、运行效果图二、操作思路三、代码1.去除方程中未知数,将未知数转为“*0”2.计算方程中常数3.计算方程中未知数的系数一,先将未知数替换成“*1”4.计算方程中未知数的系数二5.计算方程得数前言 小学必考内容:一元一次…...

Linux-之 简易:Shell编程
1 为什么要学习Shell编程 对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shel脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本. 对于大数据程序员来说,需要编写Shell程序来管理集群 2 Shell是什么 Shell是一个命令行解释器ÿ…...

vue3的api风格
Vue的组件有两种不同的风格:组合式API 和 选项式API 选项式api 选项式API,可以用包含多个选项的对象来描述组件的逻辑,如:data,methods,mounted等。 组合式api setup:是一个标识,告…...
MySQL 开源到商业(五):开源 vs 养家糊口
前文提到,Oracle 收购了 Sun 之后,既没有像 Monty 预测的那样修改 MySQL 开源 License,也没有减少 MySQL 的研发投入。恰恰相反,Oracle 在持有 MySQL 知识产权的十几年里大幅提升了 MySQL 的工程质量,并且增加了很多用…...

进程信号(1)
目录 一、信号 1.1、生活中的信号 1.2、Linux中的信号 二、信号处理常见方式 三、信号的产生 3.1、简单理解信号的保存和发送 3.2、键盘产生信号 3.3、核心转储 3.4、系统调用接口产生信号 3.4.1、kill 3.4.2、raise 3.4.3、abort 3.5、软件条件产生信号 3.6、硬…...

Pytorch入门(7)—— 梯度累加(Gradient Accumulation)
1. 梯度累加 在训练大模型时,batch_size 最大值往往受限于显存容量上限,当模型非常大时,这个上限可能小到不可接受。梯度累加(Gradient Accumulation)是一个解决该问题的 trick梯度累加的思想很简单,就是时…...

day12
第一题 本题我们可以使用以下方法: 方法一: 使用hash表<元素,出现次数>来统计字符串中不同元素分别出现的次数,当某一个元素的次数大于1时,返回false,如果每个元素的出现次数都为1,则返回…...
MySQL技术点合集
目录 1. MySQL目录 2. 验证是否首次登陆方法 3. 在Liunx中使用命令来输入sql语句方法 4. 获取修改密码 5. 关闭密码策略 6. 忘记MySQL密码找回 7. 旋转90度横向查看表 8. 添加一个远程连接的用户 1. MySQL目录 /usr/bin/mysql相关命令vim /etc/my.cnfmysql配置文件ls /…...

记录使用 Vue3 过程中的一些技术点
1、自定义组件,并使用 v-model 进行数据双向绑定。 简述: 自定义组件使用 v-model 进行传参时,遵循 Vue 3 的 v-model 机制。在 Vue 3 中,v-model 默认使用了 modelValue 作为 prop 名称,以及 update:modelValue 作为…...
6. C++通过fork的方式实现高性能网络服务器
我们上一节课写的tcp我们发现只有第一个与之连接的人才能收发信息。他又很多的不足 高性能网络服务器 通过fork实现高性能网络服务器 我们通过fork进行改装之后就可以成百上千的用户进行连接访问,对于每一个用户来说我们都fork一个子进程。让后让每一个子进程都是…...

直播美颜插件、美颜SDK详解:技术、功能与实现原理
今天,小编将详细解析直播美颜插件和美颜SDK的技术、功能以及实现原理。 一、美颜技术的背景与发展 1.1美颜技术的兴起 随着直播平台的普及,美颜SDK技术逐渐被集成到直播软件中,以满足用户对更美观、自然的直播效果的需求。 1.2美颜技术的…...

MyBatis入门(1)
目录 一、JDBC操作回顾 二、什么是MyBatis? 三、MyBatis入门 1、准备工作 (1)创建工程 (2)数据准备 2、配置数据库连接字符串 3、写持久层代码 4、单元测试 (1)使用IDEA自动成成测试类…...

打开服务器远程桌面连接不上,可能的原因及相应的解决策略
在解决远程桌面连接不上服务器的问题时,我们首先需要从专业的角度对可能的原因进行深入分析,并据此提出针对性的解决方案。以下是一些可能的原因及相应的解决策略: 一、网络连接问题 远程桌面连接需要稳定的网络支持,如果网络连接…...

用于时间序列概率预测的蒙特卡洛模拟
大家好,蒙特卡洛模拟是一种广泛应用于各个领域的计算技术,它通过从概率分布中随机抽取大量样本,并对结果进行统计分析,从而模拟复杂系统的行为。这种技术具有很强的适用性,在金融建模、工程设计、物理模拟、运筹优化以…...

VScode解决报错“Remote-SSH XHR failed无法访问远程服务器“的方案
VScode解决报错"Remote-SSH XHR failed无法访问远程服务器"的方案 $ ls ~/.vscode-server/bin 2ccd690cbff1569e4a83d7c43d45101f817401dc稳定版下载链接:https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/stable 内测版下载链接…...

Python高级进阶--dict字典
dict字典⭐⭐ 1. 字典简介 dictionary(字典) 是 除列表以外 Python 之中 最灵活 的数据类型,类型为dict 字典同样可以用来存储多个数据字典使用键值对存储数据 2. 字典的定义 字典用{}定义键值对之间使用,分隔键和值之间使用:分隔 d {中…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...

Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...

Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...