详情请进入 湖南阳光电子学校 已关注:人 咨询电话:0731-85579057 微信号:yp941688, yp94168
四:样本采集
样本采集我们有两种方式,第一种方式为用标准块来采集。第二种方式是通过千分尺来采集。我们采用第二种方式进行采集样本。采集的过程为以整个图像的中心为起点(作为基准面),每隔0.1mm取一次图像,取到图像的边界。通过上述取样本,我们得出位移的取值范围为-30.0mm到+30.0mm。
五:计算结果
通过上述的参数计算,相机标定以及样本采集之后,我们开始计算结果,在选曲的三组参数,来计算结果得到的误差,在附件1中。
六:误差补偿
在得出误差之后,我们发现误差的变化是具有趋势的。随着位移的增大误差是逐渐增大的。从计算结果偏小逐步到计算结果偏大。在这里我们取得误差补偿算法为基于 小二乘法的非线性拟合。拟合的方程如下:
Y=a0+a1x+a2x^2+a3x^3
方程中x代表的是像素位移,Y代表的是误差。通过拟合之后的误差方程和整个算法进行融合及拟合后的求取误差为
位移=原算法-误差方程
后通过误差补偿的结果得到的误差,在附件2中。
七:实验中遇到的问题
(1)算法上的改进
第一:在位移算法上遇到的问题刚开始在推算的过程中,忽略了一个多项式导致后面在计算的过程中误差偏大,后面采用了三角函数的算法,整个精度的提升很明显。
第二:在参数计算的算法推导过程中,出现了一个错误靠近基准面和远离基准面的算法是不一样的。这里出现了一个推导错误。后来重新推导之后改正了过来。
第三:在参数的选取上,刚开始的理解是在参数计算之后参数如果越接近实际的a和θ,计算出来的结果越真实。后来经过试验发现这样的选取准则是不正确的。而且不同组的样本计算出的a和θ是不一样的。 后通过分析得出,虽然计算出的a和θ是不一样的,但是a/(f*sinθ)的比值几乎是一致的。后面选取参数是选择误差小的。
第四:后面在观察误差的时候发现在0.1mm的位移时,同一组参数不同样本的计算结果都是一样偏大的。在实际的测量过程中我们观测到0.1mm的位移,通常对应的是0.6左右个像素。通过观察程序发现了把像素float型转换成int型导致这个误差结果。后面改过来之后,误差明显变小了。
(2)结构上的改变
在中期的试验中,我们改进镜头和相机的结构,来改善景深,但是后来我们通过试验发现原有的结构景深也是足够用的,所以后面的试验还是按照原来的结构来。
(3)线激光的中心点提取原则
在整个计算过程中,每次计算位移的结果,我们要提取每行的线激光的中心坐标,刚开始计算的算法为边缘二分法,取中点坐标。这种算法偏差较大。在后面通过阅读文献,采用了灰度质心算法。在后面的计算中,都是采用这个算法。在0.01mm的位移下,发现这个算法是有效的,检测到像素的位移在0.07个像素左右。
八:总结
通过以上的一系列实验,我们可以达到的误差精度是0.01mm左右,现在取得的样本在±10mm的范围内。但是整个容许的测量范围是±30mm。接下来可以实验的内容:
第一:可以以0.01mm为频率采样(这样在补偿后结果更精确)。
第二:样本计算扩大到整个测量范围。
第三:采用千分尺采样时,人为读书的误差是无法避免的,后期测量的时候需进行改进。
原文标题:线扫激光算法原理
.(编辑:水城电工培训学校)