Matlab标定工具箱使用的一些注意事项

最近使用了Matlab标定工具箱来与OpenCV的StereoCalibration的结果进行对比。现把在使用过程中,遇到的一些问题,,进行了总结:(详细说明请参见程序主页)

一般的标定过程:选择图像读取方式(标准,还是一副一副的读),如果选择一次性将文件读入内存,则在后面输入文件基本名称和文件格式后,不需要再点ReadImage.一般直接选择标准方式即可。

1,进入standard vision,选择Image names,在Matlab命令窗口中,输入图像的基本名,如calL,程序自动提取文件名为calL1,calL2..的 图像。再输入图像格式,按照给出的提示,输入相应的字母即可。

2,在得到所有的标定图像后,可以点击在Extract grid corners,下面需要手动标记出角点的范围,程序会在范围内精确确定角点的位置。这里需要注意的是,由于标定图像较多,往往会有手误,将范围标错,这时程序会提示,重新输入标定块个数,并可以通过对焦距或Kc(畸变参数)进行预估,来调整范围。这边对焦距和畸变参数的估计,只是用来调整角点范围,不会对标定结果存在影响。这边Kc={-1,1},可以重复几次来获得正确的范围,最终得到正确的角点坐标。

3,当所有的角点被正确提取后,点击Calibration,就可以的到相机的各个参数。

4,反投影误差:

通过上述三个步骤,就获得了标定信息。对结果的一些可视化的工作,该软件也做得很好。

首先,可以通过reproject on images,得到根据当前标定结果得到的反投影误差,从点云的聚集情况和分散的最大范围可以看出反投影误差的大小。还可以对每幅图像的角点进行反向投影,可以看到反向投影点与原角点位置的偏差,根据这些可以对标定结果的误差和可信度有个简单的判断。对于反投影误差较大的情况,往往是由于角点提取不正确造成的,然后可以通过重新计算来优化结果。

5,Recomp. corners选项,主要完成根据反向投影得到的角点坐标重作为对角点的估计,重新计算角点的功能。针对第一次标定结果误差太大的情况,可以通过此方法重新计算焦点。计算完成后,点击Calibration根据新的焦点进行标定。此时,得到的标定信息,比第一次得到的反投影误差分布更集中,直径也小。但是该步骤在标定过程中不被推荐,因为往往首次得到的三维坐标精确度并不高,如果参考误差较大的信息的话,有可能使结果与正解偏差更大。

6,这个时候可以点击Analyse errs,通过选取反投影误差点的位置,在命令窗口中给出选中误差点对应的图像幅数,焦点顺序号,在标定板中的位置和反投影得到的位置以及x,y方向的误差值等信息。

7,相关的可视化工具还有Show Extrinsic,可以看到相机与标定板的位置关系。

8,另外的一些辅助功能如保存标定结果,去除某幅图像等,都可以方便的使用。

对于这些工具项,在保证符合逻辑要求的情况,可以随意使用。这样可以随时可视化结果。

造物之前,必先造人。

Matlab标定工具箱使用的一些注意事项

相关文章:

你感兴趣的文章:

标签云: