结构光视觉传感器的标定方式和测量原理

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

结构光视觉的优点:

非接触、信息量大、测精度高、抗干扰能力强。

结构光视觉传感器参数的标定包括:

摄像机参数标定、结构光平面参数标定。

结构光视觉测量原理图

结构光视觉传感器的标定方式和测量原理_第1张图片

我们不考虑镜头的畸变,将相机的成像模型简化为小孔成像模型,则特征点的图像坐标Pf 与其在摄像机坐标系下的三维坐标P 之间的关系可表示为:

结构光视觉传感器的标定方式和测量原理_第2张图片

其中:(u,v)是特征点的图像坐标,(u0,v0) 光轴中心的图像坐标,(kx ky )是X 轴,Y 轴方向的放大系数,(xc yc zc) 是特征点在摄像机坐标系下坐标,  Mc 是摄像机内参数矩阵。

结构光视觉投影成像模型:

结构光视觉传感器的标定方式和测量原理_第3张图片

设结构光在摄像头坐标系的平面方程为:

92a6dc0c23d583801115678c7410f216.png

依据激光条纹特征点图像坐标就可以得到其在摄像机坐标系下的三维坐标

结构光视觉传感器的标定方式和测量原理_第4张图片

相机参数标定:

采用张正友提出的基于2D平面棋盘格的摄像机标定方法,利用Matlab摄像头标定工具完成相机参数的标定。

摄像机标定工具箱主窗口:

结构光视觉传感器的标定方式和测量原理_第5张图片

用于摄像机标定的棋盘格图像:

结构光视觉传感器的标定方式和测量原理_第6张图片

相关参考文献可以查看张正友的论文:

Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on pattern analysis and machine intelligence, 2000, 22(11): 1330-1334.

得到摄像机内参数矩阵:

结构光视觉传感器的标定方式和测量原理_第7张图片

结构光平面参数标定:

首先,激光器投射结构光平面到平面棋盘格上形成激光条纹,并通过CCD 摄像机采集激光条纹图像。然后,对图像进行处理,提取激光条纹上的两个特征点。控制机器人按照一定的约束进行运动,从一个标定位置移动到另一个位置,从而产生两条不共线的激光条纹,利用上述相同的图像处理方法再次提取激光条纹上的两个特征点。最后,利用结构光平面上的四个点来确定结构光平面方程参数。该方法可以在摄像机参数标定过程中,同时完成结构光平面方程参数的标定。同时,该方法不需要加工高精度的三维标定靶标,也不需要手工测量,标定过程简单实用。

试验装备:

一个六自由度机器人,一个CCD 工业摄像机,一个激光器和一个平面棋盘格靶标。

结构光平面参数标定系统示意图:

结构光视觉传感器的标定方式和测量原理_第8张图片

摄像机坐标系位于摄像机中心,而世界坐标系位于平面棋盘格靶标上。一个特征点在摄像机坐标系下坐标与其在世界坐标系下坐标之间的对应关系可以用下式来表达:

结构光视觉传感器的标定方式和测量原理_第9张图片

标定过程如下:

(1)图像获取:

图像的获取是在摄机参数标定过程中同时完成。 首先将棋盘格放在工作台上, 在这个初始位置,利用摄像机采集一幅图,如图 (a) 所示 。保持摄像机和棋盘格的位置姿态不变,打开激光器让条纹投射到棋盘格上, 再采集一幅图像如图 (b) 所示:

结构光视觉传感器的标定方式和测量原理_第10张图片

然后改变棋盘格和摄像机的相对位姿,使前后形成的两条激光条纹在空间上不共线,即可确定一个唯一的结构光平面。

结构光视觉传感器的标定方式和测量原理_第11张图片

(2)图像处理:

图像处理的目的是提取激光条纹上特征点的图像坐标。

分为图像感兴趣区域(ROI)确定、自适应阈值分割、骨架细化和特征点计算。

1)图像ROI确定

通过观察图像看出,激光条纹大致平行于图像的u 轴,而且激光条纹处像素的灰度值高于图像中其它像素的灰度值,所以图像的ROI 可以通过对每行像素灰度值进行求和得到:

结构光视觉传感器的标定方式和测量原理_第12张图片

2)阈值分割

阈值分割分为全局阈值分割、局部阈值分割和自适应阈值分割。最常用的自适应阈值分割是Otsu方法,该方法使用统计学的方法确定最优的阈值,适用于一般的图像,但是不太适合于棋盘格上激光条纹的分割。

根据图像中激光条纹的灰度值高于图像中其它像素的灰度值以及激光条纹所在区域比较集中的特点,利用图像ROI 内行像素灰度值之和计算激光条纹的自适应阈值:

结构光视觉传感器的标定方式和测量原理_第13张图片

3) 骨架细化:

自适应阈值分割以后的激光条纹具有一定的宽度,直接处理计算量巨大而且精度较低,需要对图像进行骨架细化得到单像素的线。

采用下面文献中所提出的快速骨架细化方法:

c32108090006e0327d55d3333b78ec2f.png

该方法通过迭代提取图像骨架,每个迭代过程分为两步,第一步去除东南边缘和西北角的点,第二步去除西北边缘和东南角的点。

结构光视觉传感器的标定方式和测量原理_第14张图片

Pi分布情况如下:

结构光视觉传感器的标定方式和测量原理_第15张图片

第二个迭代过程将上述条件的c、d条件更改为:

ec8041d66e6b8560ebc7547d0c42498b.png

4)特征提取:

选取激光条纹中心线上的两个点作为激光条纹的特征点,为了提高激光条纹中心线的提取精度,利用最小二乘法拟合方法对细化后的激光条纹直线进行处理。

结构光视觉传感器的标定方式和测量原理_第16张图片

激光条纹特征点提取过程如下:

结构光视觉传感器的标定方式和测量原理_第17张图片

标定棋盘格平面内任意一点与法向量关系

结构光视觉传感器的标定方式和测量原理_第18张图片

由上图可知:

18abfb238cd612480a0fcc76055488e7.png

由特征点的图像坐标Pf 与其在摄像机坐标系下的三维坐标P 之间的关系知:

853b58cb548db39fc7037cc8e31e6ffa.png

得到棋盘格上任意一点在摄像机坐标系下的zc 坐标

89f35f3ef0cfd8a1388057cb3e4fa379.png

得到激光条纹特征点在摄像机坐标系下的坐标值

结构光视觉传感器的标定方式和测量原理_第19张图片

至此,得到四个激光条纹特征点的图像坐标,由上式得四个激光条纹特征点在摄像机坐标系下的坐标,由于三点确定一个平面方程,使用最小二乘法计算结构光平面方程如下:

结构光视觉传感器的标定方式和测量原理_第20张图片

至此,完成结构光平面方程的参数的标定。

好消息! 

小白学视觉知识星球

开始面向外开放啦

 
   

结构光视觉传感器的标定方式和测量原理_第21张图片

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

你可能感兴趣的:(计算机视觉,人工智能,python,机器学习,opencv)