双目相机的标定 python_一种简化的线扫相机单维度标定法

dc56440d-e529-eb11-8da9-e4434bdf6706.png
作者:白杨
Date:2020-06-14
来源:3D视觉工坊公众号
链接:一种简化的线扫相机单维度标定法

线扫相机精度高、速度快、抗干扰能力强,适用于连续性产品的在线检测。针对产品的测量,要获得产品边界的精确坐标,需对检测目标进行图像坐标系u-v到世界坐标系x-y-z的转化,如下图所示:

9b69c3e95f940bd4d0479635564147fd.png

08136f9eff2aa8a9065b1db21c8e6fc8.png
图 1 相机成像分布示意图

目前相机的标定主要有Tsai标定法和张氏标定法,这两种方法需要拍摄若干角度的标定板图像,然后按照转换矩阵求相机的内参和外参。而线扫相机成像时需要拍摄物有相对运动,高精度的标定板很难保证运动速度与采集速度的统一,标定板图像采集很困难,且大多数的工业检测项目,需要到现场再安装相机,且检测面并不一定是一个平面,根本无法在现场进行标定。

目前对线扫相机的标定,主要有构建标定面法和虚拟靶标方法,均需要通过两个维度的空间坐标来确定标定参数。其实,根据实际项目的检测需求和线扫相机的特点,我们更关心的是一个维度(X方向)的尺寸,不需要对空间点进行求取,基于此可以大大简化标定方法。

本文主要分以下几个部分来阐述:1、需要准备的工具;2、标定流程及测试数据;3、代码实现

需要准备的工具

标定之前,我们需要准备:菲林片和自己开发的标定软件。其中菲林片就是我们自己定制的标定工具,如下图所示:黑白相间且等距(10mm,工艺误差在0.04mm以内)

1954bf289ccc473019851caf2214bf47.png

这种设计,也是多次改进后的版本,可能有些人会比较疑惑为什么黑白条纹不是完全平行的,而是上下跳跃的。这么设计主要是为了便于现场调整相机的水平度,如下图所示:只有相机的采集点调整在红色线的位置时,才能够完整的拍出黑白相间的条纹,否则会有采集不到的条纹。

6e9c2ee15163d544d15f9883a5a352b3.png

调整好后采集效果如下图所示:

36bcff484d821f84ea9169682a559c66.png

标定流程及测试数据

518c44d0d9e8a49f538925e0f224976b.png

测试数据如下:

1)标尺的各个单位对应的像素数(10mm)

c0ecabd56c93dc3d0b1b61a5bdcdcadc.png

2)中间数据的线性拟合

d8f28f5751b9acd02c0335d5bbae9c06.png

3)所有数据的非线性拟合

4272f59230d83fecea127fec30e40ea5.png

9b69c3e95f940bd4d0479635564147fd.png

4)实际产品测试

741211707e08ee0c13974cf24a34b626.png

代码实现

整体原理比较简单,核心算法就是最小二乘法的实现,halcon版本代码如下:

9b8cbcf144bae9409756769ee82659fe.png

本文仅做学术分享,如有侵权,请联系删文。

往期干货资源:

汇总 | 国内最全的3D视觉学习资源,涉及计算机视觉、SLAM、三维重建、点云处理、姿态估计、深度估计、3D检测、自动驾驶、深度学习(3D+2D)、图像处理、立体视觉、结构光等方向!

汇总 | 3D目标检测(基于点云、双目、单目)

汇总 | 6D姿态估计算法(基于点云、单目、投票方式)

汇总 | 三维重建算法实战(单目重建、立体视觉、多视图几何)

汇总 | 3D点云后处理算法(匹配、检索、滤波、识别)

汇总 | SLAM算法(视觉里程计、后端优化、回环检测)

汇总 | 深度学习&自动驾驶前沿算法研究(检测、分割、多传感器融合)

汇总 | 相机标定算法

汇总 | 事件相机原理

汇总 | 结构光经典算法

汇总 | 缺陷检测常用算法与实战技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值