海康威视相机标定、畸变矫正及AprilTag获取视觉标签三维信息
一、海康威视相机标定
相机标定经调研共发现三种常用方式:利用Matlab的cameraCalibrator工具箱,利用opencv里边的工具,利用ros包,后两种都没有去深入探究,本文采用的是利用Matlab的cameraCalibrator工具箱的方式。 标定方法依据博客 博客地址,其中用于保存图像的程序我存在了公共PC 、zqh/savePg 文件夹中。 我的不同之处在于opencv中查看标定的结果(去畸变后的结果)的代码不一样,我的方法是参考的知乎知乎地址, 使用的其中的方法2.1,多张图片的情况下此方法效率更高,程序放在了公共PC 、zqh/undistortExample中。 得到的相机内参如下所示: 其转置后可得到相机的内参矩阵K RadialDistortion对应k1,k2,k3设置为0了。 TangentialDistortion对应p1,p2。
二、相机去畸变
相机去畸变就是使用的opencv自带的方法,如一中知乎地址中2.1方法。 最终目的是将通过rtsp协议读取到的海康威视相机视频流中的图像进行去畸变操作,然后将去畸变后的图像及相机信息通过话题发布出去。
三、Apritag_ros获得视觉标签的三维位置
Apritag_ros是Apriltag的ros包,订阅上文发布的图像话题及相机信息话题,发布的是视觉标签的位姿信息话题及在原图上将视觉标签标出的图像话题。最终我们可以获得视觉标签的三维位置,经过实验发现,三维位置的x坐标误差为5-10cm,y坐标误差为5-10cm,z坐标误差为50cm,z轴误差较大,关于旋转信息并未测试。位姿的准确性很大程度上取决于相机内参标定的准确性。
|