作者:白杨
来源:公众号@3D视觉工坊
线阵CCD精度高、速度快、抗干扰能力强,适用于连续性产品的在线检测。 对于产品的测量,为了得到产品边界的正确坐标,需要对检查对象进行从图像坐标系u-v到世界坐标系x-y-z的转换,如下图所示。
图1照相机的图像分布图
目前摄像机标定主要有Tsai标定法和张氏标定法,这两种方法需要拍摄几个角度的标定板图像,并根据变换矩阵求解摄像机的内参和外参。 线扫描摄像机拍摄时,拍摄物需要相对运动,高精度标定板难以确保运动速度和采集速度的统一,标定板的图像采集困难。 另外,很多工业检测项目都需要先去现场安装摄像头,检测面不一定是平面,不能在现场标定。
目前在线扫描摄像机的标定主要有标定面法和建立虚拟目标的方法,都需要通过二维空间坐标确定标定参数。 其实根据实际项目的检测需要和线阵CCD的特点,我们比较关注一维( x方向)尺寸,无需求解空间点,在此基础上可以大大简化标定方法。
本文主要分为以下部分进行阐述。 1、需要准备的道具; 2、标定流程及测试数据; 3、代码实现
需要准备的道具
标定之前,我们需要准备菲律宾电影和自己开发的标定软件。 其中,飞利浦是我们自行定制的标定工具,如下图所示,黑白相间等间隔( 10mm,工艺误差在0.04mm以内)
也许有人会怀疑,这个设计也是经过多次改进的版本,为什么黑白条纹不完全平行,而是上下跳跃。 这主要是为了便于在现场调整摄像机的水平度而设计的。 如下图所示,只有当相机的拍摄点调整到红线的位置时,才能完全拍摄黑白条纹。 否则,会有无法拍摄的条纹。
调整后的采集效果如下图所示。
二标定过程和测试数据
测试数据如下。
1 )与比例单位对应的像素数( 10mm ) )。
2 )中间数据的线性拟合
3 )所有数据的非线性拟合
4 )实际产品测试
3代码实现
总体原理比较简单,核心算法是最小二乘法的实现,halcon版本码如下:
本文只进行学术共享,如有侵权请联系删除文。