伺服系统的摄像头标定(板球伺服控制系统)

在机器视觉控制系统中,摄像头的标定是很重要的,比如由于被控平面的空间运动造成视觉系统解算的数据存在误差,就需要标定这个出这个误差得到。这里的标定和标定摄像头的内外参数、畸变系数是不一样的意思(这个标定可以使用张正友标定法)。我们所需要的标定是需要得到摄像头所拍摄区域的待识别物体运动在世界坐标系下与图像坐标系下的映射关系,当摄像头移动后又要重新进行标定,当然也可以直接由该标定方法得到的矩阵推出摄像头的内外参数,但是精度不高,要得到精度高的内参,可以使用张正友标定法。
最有特点的就是板球控制系统,如图所示
伺服系统的摄像头标定(板球伺服控制系统)
我们需要控制小球在平板上按照我们期望的轨迹进行运动,本文主要讲解摄像头的标定小球的实际运动距离所使用的方法。
1、为什么要对小球的机器视觉系统进行标定?
伺服系统的摄像头标定(板球伺服控制系统)


2、标定的理论方法和过程


理论方法
伺服系统的摄像头标定(板球伺服控制系统)
伺服系统的摄像头标定(板球伺服控制系统)
伺服系统的摄像头标定(板球伺服控制系统)
伺服系统的摄像头标定(板球伺服控制系统)
注意,这个地方的M矩阵中的mij系数不要,这是论文中的错误,并且上面的那个消去式3-1得到的3-2的方程有问题,我被这个问题坑了一下午,真是坑啊,还是一个科技公司的论文。
正确的结果如下:
伺服系统的摄像头标定(板球伺服控制系统),所以3-3的系数矩阵中最后三列要乘上Xw,Yw,Zw

由上面可以看出对于每个标定点有2个方程,所以,总共有2n个线性方程,组成的线性方程组,但是我们要求的矩阵中元素个数是12个,我们可能需要用到18个(至少),甚至更多标定点,那么得到的线性方程的个数是多于变量个数的,所以我们要是用最小二乘法求解这个线性方程。其次,从上面可以看出等式右边有个变量m34,这个变量在计算时可以置为1,在后面还原图像坐标系到世界坐标系时可以当做1来进行计算。
注意解线性方程的时候要保证线性矩阵的列满秩。


标定过程
伺服系统的摄像头标定(板球伺服控制系统)
每次选取如图ABCDEF6个点,实际操作过程中只要是分布在各处的点即可,记录下对应的点的像素坐标和世界坐标系下的坐标,为了尽可能的提高标定精度由不至于标定的数据量太大,我们可以将平板转动到3个角度(包括0度)进行标定,得到18个标定点。
我的图像大小是320*240(u*v),竖直方向是320
如图,是我记录的水平状态下的数据,其他数据照样子记录下来。
伺服系统的摄像头标定(板球伺服控制系统)
如下图我在matlab中输入系数矩阵A,常数矩阵B(m34 =1)
伺服系统的摄像头标定(板球伺服控制系统)
得到的结果,那么我们需要M矩阵即是

伺服系统的摄像头标定(板球伺服控制系统)

3、小球三维信息恢复
伺服系统的摄像头标定(板球伺服控制系统)
伺服系统的摄像头标定(板球伺服控制系统)
伺服系统的摄像头标定(板球伺服控制系统)
伺服系统的摄像头标定(板球伺服控制系统)
伺服系统的摄像头标定(板球伺服控制系统)
按照公式3-8即可完成世界坐标系下的坐标值的恢复,这就是整个标定过程。