Matlab双目标定
本文最后更新于:2023年9月13日 下午
Matlab双目标定
Matlab的工具箱中已包含有Stereo Camera
Calibrator(立体相机标定)工具,具有良好的交互性,易于对双目相机的内参和外参进行标定,但是Matlab的文档中对RotationOfCamera2
和TranslationOfCamera2
的解释让人不明所以,故在此文章中对其进行合理解释。
一、RotationOfCamera2
此参数在Matlab文档中的所解释的含义是:相机2的相对位姿,R和Translation可以将相机2坐标系变换回相机1坐标系。难道说RotationOfCamera2代表Camera1相对于Camera2的姿态?
二、TranslationOfCamera2
鉴于上述对RotationOfCamera2
的解释,并且结合它与RotationOfCamera2
为同一组参数,所以也应将其理解为与RotationOfCamera2
相对关系相同的平移变换,例如RotationOfCamera2
为Camera1相对于Camera2的姿态,则TranslationOfCamera2
也应为Camera1相对于Camera2的平移。
三、实验验证+推理解释
作者在利用Matlab进行双目标定时,发现标定得出的参数RotationOfCamera2
和TranslationOfCamera2
并不符合变换逻辑,所以进行此项探究,以合理解释Matlab标定所得出的参数,方便参数的理解使用。
(1)实验验证
首先按照Matlab双目标定基本步骤,输入左右相机拍摄的图片,勾选Radial Distortion: 3 Coeffients
,勾选compute: Tangential Distortion
,即设置3个径向畸变系数,2个切向畸变系数,最后点击Calibrate
进行标定。
在Reprojection Errors
选中误差较大的图片,右键Data Browser
中的图片将其剔除,提高标定效果,最终标定完的效果如下:
标定结果中的图形展示界面没有什么矛盾的地方,两相机的相对位姿符合实际摆放位姿,但是输出的参数结构体中的RotationOfCamera2
和TranslationOfCamera2
却有”矛盾“的地方,两参数内容如下所示:
若依照前述理解RotationOfCamera2和TranslationOfCamera2代表的是相机1相对于相机2的位姿,也就是从相机2变换到相机1的变换矩阵,则TranslationOfCamera2
中的RotationOfCamera2
以
(2)推理解释
经查阅相关资料博客知,Matlab中向量是按行表示,所以TranslationOfCamera2
为行向量。故下述公式进行转置变换:
所以,Matlab标定结果中的RotationOfCamera2
和TranslationOfCamera2
参数均需要进行转置使用,在对上述标定出的结果进行转置后同样计算
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!