OAK-D双目相机进行标定及标定结果说明

一、启动相机
1、. :=false :=false :=4
【OAK-D双目相机进行标定及标定结果说明】:=false:这个参数可以打开或关闭 Rviz 可视化工具,在这里是关闭 Rviz 。
:=false:此参数控制是否输出深度映射图像,这里是不输出 。
:=4:设置实时立体摄像机帧率为 4 帧/秒 。
二、录制视频
2、/isher/left/ /isher/right/ -O .bag
这个命令使用了指令来记录两个 : /isher/left/和/isher/right/ 。这两个分别对应相机的左侧和右侧图像 。
-O .bag 是一个可选参数,在此处用于指定保存记录数据的文件名为“.bag” 。因此,执行这个命令后,ROS系统会在后台记录左摄像头和右摄像头的图像,并将它们保存到名为“.bag”的ROS bag文件中 。
CTRL+C停止录制
三、标定
3、eras --bag ../.bag -- /isher/left/ /isher/right/ -- - - -- ../OAK_D/.yaml
这是一个ROS命令行命令,用于使用包中的eras节点对相机进行标定 。下面是参数的简要解释:
:一个ROS命令,用于在终端中运行ROS节点或包 。
eras:相机标定节点名 。
–bag …/.bag:这是一个ROS bag文件的路径,其中包含用于标定的图像和传感器数据 。
– /isher/left/ /isher/right/:用于标定的图像主题名称 。
– - -:指定相机模型类型
–/home///src/OKA_D/.yaml:指定标定板的参数文件路径和名称 。
四、生成的结果
图一:述了两个相机之间共同观察一个场景的次数 。这个概念也被称为“共视图”或“互测图” 。在这个图中,每个节点表示一个空间点,每条边表示两个相机之间的观测次数,权重则表示两个相机观察同一点的互测次数,权重越高说明观测的次数越多,表明对点的准确测量更可靠 。
图二:“ ”通常是指通过相机的内参和外参,描述整个相机系统的参数矩阵 。它定义了相机系统从世界坐标系到图像平面中每一个像素的转换关系,从而将双目视觉中的两个独立的视觉通道进行了合并 。
图三:“cam0: poses”指代的是相机1(左相机)在世界坐标系下的相对位姿 。
图四:由于标定的误差和测量的噪声,相机参数可能不是完全准确的,需要进行误差分析 。一个常用的评估标准是极线误差(Polar Error) 。“cam0:polar error”描述了左相机与右相机之间重投影误差的分布情况 。具体地说,polar error是每个点的实际位置与其在另一个相机的影像平面上估计位置之间的距离,并且以极线为单位描述,即该误差是沿着极线方向的距离 。在标定后,相机参数被用于立体校正,即将左右相机图像对齐以便于进行立体匹配 。在立体匹配过程中,对于每个左图像上的像素点,需要在右相机上寻找其对应的点,这可以通过以下方法之一实现:极线搜索,立体匹配,深度估计等 。无论使用哪种方法,都需要估算出点在右相机上的位置 。Polar Error反映了这个位置估计的准确性 。

OAK-D双目相机进行标定及标定结果说明

文章插图
图五:cam0: error”是指对于每个点的实际值和估计值之间的方位角误差,其中方位角是指相对于相机水平轴(ox 轴)的角度 。该指标反映了计算出的深度值与实际深度之间的误差,并以弧度或角度形式成单个度量值 。评估Polar Error和 Error是双目相机标定后检查和优化立体视觉重建算法的重要过程 。
图六:“cam0:”是双目相机标定的一个指标,用于评估每个图像特征点的重新投影误差大小 。具体地说,它是将标定后的相机内外参数应用于特征点的2D像素坐标,计算其与实际特征点的图像位置之间的距离(通常以像素为单位),以此度量标定的准确度 。Error为检测标定结果的精度提供了一个简单而有效的方法 。通常,如果平均重投影误差非常小(一般小于1个像素),那么标定结果被认为是非常优良的 。反之,如果平均重投影误差很大,则需要对标定结果进行调整或重新标定 。