点击上方“”,选择加"
重磅干货,第一时间送达
结构光视觉的优点:
非接触、信息量大、测量精度高、抗干扰能力强。
结构光视觉传感器参数的校准包括:
相机参数标定,结构光平面参数标定。
结构光视测量原理图
我们不考虑镜头的畸变,将相机的成像模型简化为小孔成像模型Pf 与其在摄像机坐标系下的三维坐标P 关系可以表示为:
其中:(u,v)图像坐标是特征点,(u0,v0)图像坐标在光轴中心,(kxky)是X 轴,Y 轴向放大系数,(xc yc zc)相机坐标系下的坐标是特征点, Mc是摄像机内参数矩阵。
结构光视觉投影成像模型:
摄像头坐标系中设置结构光的平面方程为:
在相机坐标系下,可以根据激光条纹特征的图像坐标获得三维坐标
相机参数标定:
基于张正友提出的2D用平面棋盘格的摄像机标定方法Matlab摄像头标定工具完成相机参数的标定。
相机校准工具箱主窗:
用于相机校准的棋盘格图像:
可查看张正友的论文:
Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on patternanalysis and machine intelligence, 2000, 22(11): 1330-1334.
在相机中获得参数矩阵:
结构光平面参数标定:
首先,激光投射结构光平面在平面棋盘格上形成激光条纹CCD 摄像机采集激光条纹图像。然后处理图像,提取激光条纹上的两个特征。控制机器人按照一定的约束运动,从一个标定的位置移动到另一个位置,从而产生两条不共线的激光条纹。激光条纹上的两个特征点采用上述相同的图像处理方法再次提取。结构光平面方程参数由结构光平面上的四个点决定。该方法可在相机参数校准过程中完成结构光平面方程参数校准。同时,该方法不需要加工高精度的三维校准目标,也不需要手动测量,校准过程简单实用。
试验装备:
六自由度机器人,一个CCD 工业摄像头,激光器和平面棋盘目标。
结构光平面参数标定系统示意图:
相机坐标系位于相机的中心,而世界坐标系位于平面棋盘格的目标上。相机坐标系下坐标与世界坐标系下坐标之间的对应关系可以用以下公式表达:
标定过程如下:
(1)图像获取:
在摄像机参数校准过程中同时获取图像。首先把棋盘格放在工作台上, 在这个初始位置,用相机收集图片,如图所示 (a) 所示 。保持相机和棋盘格的位置不变,打开激光器,让条纹投射到棋盘格上, 再收集图像如图 (b) 所示:
然后改变棋盘格和相机的相对位置,使前后形成的两条激光条纹在空间上不共线,从而确定唯一的结构光平面。
(2)图像处理:
图像处理的目的是提取激光条纹上特征点的图像坐标。
分为图像感兴趣区域(ROI)确定、自适应阈值分割、骨架细化和特征点计算。
1)图像ROI确定
通过观察图像,激光条纹与图像大致平行u 激光条纹处像素的灰度值高于图像中其他像素的灰度值ROI 通过对每行像素灰度值的求和获得:
2)阈值分割
阈值分为全局阈值分割、局部阈值分割和自适应阈值分割。最常用的自适应阈值分割是Otsu该方法采用统计方法确定最佳阈值,适用于一般图像,但不适用于棋盘格上激光条纹的分割。
根据图像中激光条纹的灰度值高于图像中其他像素的灰度值和激光条纹所在区域集中的特点,利用图像ROI 计算激光条纹的自适应阈值之和:
3) 骨架细化:
激光条纹在自适应阈值分割后具有一定的宽度,直接处理计算量大,精度低,需要对图像进行骨架细化,获得单像素线。
采用以下文献中提出的快速骨架细化方法:
该方法通过迭代提取图像骨架。每个迭代过程分为两个步骤。第一步是去除东南边缘和西北角,第二步是去除西北边缘和东南角。
Pi分布如下:
上述条件将在第二次迭代过程中进行。c、d条件变更为:
4)特征提取:
选取激光条纹中心线上的两个点作为激光条纹的特征点,为了提高激光条纹中心线的提取精度,利用最小二乘法拟合方法对细化后的激光条纹直线进行处理。
激光条纹特征提取工艺如下:
任何棋盘格平面中的任何一点与法向量关系
从上图可以看出:
图像坐标由特征点组成Pf 与其在摄像机坐标系下的三维坐标P 关系知识:
在相机坐标系下得到棋盘格上的任何一点zc 坐标
在相机坐标系下获得激光条纹特征的坐标值
到目前为止,在相机坐标系下获得四个激光条纹特征点的图像坐标,由于三点确定一个平面方程,最小两乘法计算结构光平面方程如下:
到目前为止,结构光平面方程面方程参数的校准。
开始向外开放。
下载1:OpenCV-Contrib中文版教程扩展模块 在「小白学视觉」微信官方账号后台回复:扩展模块中文教程,下载全网第一份OpenCV中文扩展模块教程,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~