视频图像识别学习系列:线结构光三维测量重建

来源:互联网 发布:管家婆怎么清空数据 编辑:程序博客网 时间:2024/04/27 23:42

这是本人进入图像处理领域的第一个项目,那是还在读硕士,在此感叹时间过得真快!

项目背景:

项目用于工业零件的公差检测,主要是针对缝隙和高低差两种公差,具体应用领域如汽车、飞机的蒙皮对接检测,当然,对于别的公差改变一些代码,也是可以做到的;

技术方案:

采用线结构光进行三维重建,用三维点云数据进行相应公差计算;

选用硬件:basler相机一只,stackyale激光器一只,精密一维移动平台一台(记得好像是北京的路科锐威的),棋盘格标定版一个(好像是深圳的一家)

软件:opencv1.0 + c++  + VS2003

具体步骤:

1.硬件外形设计,采用激光器垂直照射,相机倾斜的外形布局;

2.系统标定,包括相机的内、外参数标定,激光器的结构参数标定,主要是光平面方程;

a、相机标定,经典标定方法是张正友的和TSAI,我选的是Tsai,具体标定步骤按照Tsai论文中来,获取二维和三维坐标矩阵后,直接用opencv搞定;

b、激光器标定,借助移动平台和棋盘格,采集几幅带有线结构光的棋盘格图像,对光条进行处理,包括二值化、形态学、去噪,细化(骨架化),获取线结构光光条的

二维坐标和三维坐标,三维坐标的获取类似相机标定的做法,拟合平面方程;

3,三维重建,采集一幅测量目标的线结构光图像,经过光条细化后,基于系统参数和光条二维坐标,获取光条对应的三维坐标;

4,根据三维点云坐标,进行相应公差特征计算;

创新点:

首次采用二次标定算法。系统标定好后,使用一段时间,测量精度会下降,或者首次(或连续多次)标定均达不到精度要求,

这时不知道你们会怎么办?我们的做法是二次标定,即使用该系统三维测量一个标准件,通过测量误差和实际误差的不同,进行优化,把系统参数调整到最优,

优化理论基于非线性最小二乘算法,目标函数主要基于光平面方程推导而来,实验证明二次优化很有效果。

下面是当时设计的产品,现在看来真是丑陋啊,不过测量精度还是不错的,达到0.03mm,达到了需要公司的要求了。

呵呵,时间有限就写这么多吧,欢迎交流!更详细的可以看我的硕士毕业论文!有需要联系我!


0 0