日期
01/04
2023
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

机器视觉中的张氏标定法是什么?利用平面棋盘格进行相机标定的实用方法
收藏
2023-01-04 14:54:49来源: 中国机器视觉网

在自动化机器人视觉应用中经常会用到各种标定,这对于保障机械手精度,提高生产效率有很重要的意义。在整机械臂的手眼标定,也就是标定3D相机到机械臂末端坐标系之间的转化关系的时候,经常会调用到Matlab标定工具箱。这个工具箱即简单又方便,是我们机器视觉应用中比较常用的软件,而它所使用的标定算法就是张氏标定法。

在机器视觉中,相机需要标定才可以应用到实际的生产生活中。它需要解决为问题有两个,一是解决透镜造成称的畸变,二是为建立世界坐标系到图像坐标系的关系提供参照系。

微信图片_20230104143844.jpg

图 图像的畸变

什么是张氏标定法呢?

我们拿到一个新的相机,用来拍照,将三维世界的信息,投影到二维平面,得到一张RGB图像。小孔成像模型就可以解释这个成像原理。

微信图片_20230104143907.png

图 小孔成像模型

但在真正使用过程中,由于镜片的畸变和装配等原因,单纯的小孔成像模型由于镜片的畸变和装配等原因无法满足要求。

张正友博士在1999年发表在国际顶级会议ICCV上的论文《Flexible Camera Calibration By Viewing a Plane From Unknown Orientations》中,提出的一种利用平面棋盘格进行相机标定的实用方法。这就是张氏标定法,也叫张正友标定法。其后2000年的这篇《A flexible new technique for camera calibration》引用数更是达到了恐怖的13885次。

该方法介于摄影标定法和自标定法之间,既克服了摄影标定法需要的高精度三维标定物(贵,操作麻烦)的缺点,又解决了自标定法鲁棒性差的难题。标定过程仅需使用一个打印出来的棋盘格,并从不同方向拍摄几组图片即可(理论上3组就可以求解所有的未知数,不过一般采15~20组,用优化的方法保证求解精度较高),任何人都可以自己制作标定图案,不仅实用灵活方便,而且精度很高,鲁棒性好。因此很快被全世界广泛采用,极大的促进了三维计算机视觉从实验室走向真实世界的进程。

微信图片_20230104143911.png

图 棋盘格

张氏标定法的整体思路为先求出世界坐标系到像素坐标系的单应性矩阵(单应性矩阵其实就是一个图像中的像素点到另外一个图像中像素点的变换矩阵,双目相机系统中也有单应性矩阵,其是左右相机图像之间的变换矩阵),然后根据单应性矩阵得到内参矩阵,最后得到外参矩阵完成标定。

微信图片_20230104143914.jpg

图 玻璃棋盘格标定