目录
前言
为解决复杂环境下结构光光条中心提取方法的问题,笔者阅读了若干文献,写下这篇文章,希望对读者有所启发。
1.基于相位一致性提取光条中心
介绍一种基于相位一致性提取光条中心的方法。该方法的优点主要体现在可以在不同光照条件下保证较高精度。
相位一致性的基本原理及应用问题_黑化咸鱼的博客-CSDN博客
首先,如果有读者对相位一致性不太了解,可以阅读上面这篇文章。这里仅作简单介绍。
相位一致性简介
相位一致性的提出是基于科学家发现了人感觉图像的关键在于图像信号的相位大小。相位一致性模型是一种考虑相位信息的频率域图像增强方法,它具有局部对比度不变的特性,对光照变化不敏感,因而其能较为稳定地表达图像特征,特别在处理低对比度图像特征方面具有独特的优势,常用于边缘检测。
已知二维图像相位一致性计算公式为:
这里不详细解释各参量的含义,只需知道我们已知原始图像每一像素的灰度值,利用上式,选取合适系数后,可以得到对应像素的相位一致性。进一步,将整个图像的像素运算后,得到新图像的灰度值表示了相位一致性的高低,某处的相位一致性越高,代表图像的边缘特征越明显,从而增强了图像的边缘特征。
图像经过增强后,再使用传统的基于灰度的算法提取结构光光条中心。比如采用精度较高的Steger算法。若读者对Steger算法不太了解,可以阅读下面这篇文章。
利用Steger算法提取线条中心的基本原理_黑化咸鱼的博客-CSDN博客
根据文献描述,在实验室环境下,使用长度为2000mm的标准件作为测量标准。不同视角下各个测量点得到的测量误差存在差异,其总标准差为4.56mm,关于测量距离的相对测量误差约为0.03%。
2.基于图像多尺度分析提取光条中心
介绍一种基于图像多尺度分析优化Steger算法的提取光条中心方法。在高反光的环境下,光条图像会出现亮度不均匀、光条宽度变化剧烈的情况,该方法的优点在于可以在该环境下保持精度。
首先,在Steger算法中,图像通过高斯卷积计算图像中每个像素的Hessian矩阵。σ是高斯函数的均方差,控制着平滑效果。σ 越大,平滑程度越好,但σ过大会造成图像特征过分模糊。而σ的选取与光条的宽度有关,且影响着光条中心的提取精度。该方法Steger线条提取方法的基础上进行优化,即根据光条不同位置处的宽度确定该处卷积核函数对应的均方差σ。
2.1提取初始光条中心
首先需要确定光条区域。考虑到处理的对象主要为复杂图像,首先采用多阈值法针对光条图像进行二值化处理。
Otsu多阈值法简介
多阈值法是胡颖等人于2010年提出的图像阈值分割算法。该算法对单阈值Otsu法进行改进,通过对图像多次分类、使用分离变量合并多余的分类、使用松弛变量搜索阈值等方法提高了运算速度。Otsu法基本思想是根据阈值把直方图分割成目标和背景2组,当分割的2组数据的类间方差最大时,得到最佳分割阈值。该方法对一些灰度直方图谷底并不明显的复杂图像,该方法并不稳定,多阈值法在改进后可以处理这种问题。
经形态学图像处理中的条件膨胀算法,消除小的干扰区域和大面积背景干扰区域。采用骨骼细化的方法,针对每一个满足约束的连通分量,抽取其骨骼作为光条中心初始点.对于光条中心初始点点列中任意一点
,在点列中选取邻近的2k个点(k为正整数,一般k=2)拟合直线,得到直线的归一化法线方向,作为光条法线方向初始值。沿光条中心初始点的法线方向对光条灰度图像横截面进行高斯拟合。如下图所示,光条灰度图像横截面的最大值为A,0.2A对应的
为光条初始宽度。

2.2多尺度光条中心提取
2.2.1规范化算子。
计算图像中像素的Hessian矩阵,针对高斯卷积核进行—坐标规范化 ,得到规范化算子C
其中为Hessian矩阵的模最大特征值。设定光条中心点的判别条件为C大于某阈值。
2.2.2提取光条中心坐标。
首先,进行多尺度卷积。卷积步骤如下:
① 定位以为中心的邻域范围RON,RON中像素表示为
;
②根据高斯核的大小,以为中心,定位图像中相同大小的范围(ROC);
③ 高斯核的一、二阶偏导数与ROC进行单像素卷积得到对应的 Hessian矩阵。其中单像素卷积指平移卷积模板的中心到像素点
处,计算模板与
的邻域加权和;
④ 由Hessian矩阵根据2.2.1所列公式计算得到对应
、
和
。

以 RON 中像素pj为中心定义 ROC
然后,确定最佳尺度因子。RON中的每个像 素 所 对 应 的
、
和
构成一个C值集合,集合中最大C值对应的
为最佳
,记为
。最大C值对应的像素点作为像素级光条中心的候选点,记为
,像素
相对于
的Hessian矩阵记为
,
的模最大特征值对应的特征向量即为光条法线方向,用
表示。
确定了最佳σ之后只需要进行Steger算法即可。
从该文献实验结果来看,相比传统Steger算法,运算提高了速度,但差别不大。
3.融合传统方法提高鲁棒性提取光条中心
3.1重心法+极值法
3.1.1初步提取光条中心
首先对光条中心部分即感兴趣部分做线性增强,弱化灰度较暗部分,增强灰度较亮部分的对比度。
由于实际光条中心附近有着与其接近甚至相同灰度级的光强分布,对整个图像逐行扫描极大值点,当一行出现多个极值点时,将这些极值点位置都先保留下来。这些极值点当中包含了光条的中心点、光条中心点附近的点以及噪声点。
由于光条各个位置反射到采集传感器上的亮度并不相同,即各个位置光条中心的灰度并不完全相同。文献提出了8邻域比较去噪算法滤除噪声点。其基本思路是,通过比较某像素与周围8邻域像素的灰度差值来判断是否为噪声点。
3.1.2提取光条中心
由于光条中心位置的反射光强度都是最大的,中心位置两侧灰度逐渐下降。从而可以引入重心概念,对每行计算出灰度重心,将灰度重心像素所在位置的坐标作为光条中心的坐标。对光条图像逐行或者逐列进行计算可以获得亚像素级的部分光条中心点位置。
3.1.3曲线拟合
考虑到复杂的工业环境,从全局角度对整个范围内已经确定的光条中心像素点进行考虑,保证各个中心点之间平滑过渡,采用最小二乘拟合原理进行多项式拟合,从而得出整个光条中心的完整曲线。完整算法流程图如下图所示。
根据文献描述,该算法在加入高斯白噪声和椒盐噪声的情况下效果良好,较形态学细化算法更优。
3.2重心法+轮廓跟踪算法
该方法文献作者称其为快速重心法,基本原理为:规划搜索光条像素的路径,采用8邻域轮廓跟踪算法沿光条上边缘访问光条像素,并采用重心法实现光条中心的快速计算。在计算过程中对单个像素的噪声点或冗余点进行剔除,以实现抗噪性。
由于光条图像灰度呈类高斯分布,该方法采用8邻域跟踪算法寻找光条。8邻域跟踪算法是一种边界跟踪算法。为某像素到其8邻域的方向编码(即链码),通过指定链码算法,在8邻域内搜索满足阈值的边界点,然后在该边界点上继续搜索下一个新边界点。

按顺时针方向旋转搜索时边界的链码表示如图所示,实心直箭头为当前点的链码方向,虚线箭头为自当前点搜索下一个边界点时的链码起始方向。

从图像左上角开始,自上而下、自左向右地扫描图像,遇到满足阈值的像素停止扫描,用8邻域跟踪算法进行跟踪,记录满足阈值的像素,再用重心法计算提取光条中心。
据文献描述,该方法相较重心法和Steger算法提速明显,对一定程度的噪声点有抗噪能力。
4.总结
算法 | 预处理方法 | 光条搜寻方法 | 中心提取方法 | 鲁棒性 | 精度 | 速度 |
---|---|---|---|---|---|---|
基于相位一致性算法 | 相位一致性 | 未提及 | Steger算法 | 适用光照条件变化的情况,有抗噪能力 | 亚像素级 | 较慢 |
基于图像多尺度分析算法 | 形态学图像处理 | 骨骼细化方法 | 改进Steger算法 | 适用于高反光的情况,采用多阈值法一定程度解决了灰度变化问题,但没有从根本上解决 | 亚像素级 | 较慢 |
重心法+极值法 | 对ROI线性增强 | 极值法 | 重心法 | 依靠灰度去噪与提取,灰度不变情况下具有抗噪能力,对灰度变化适应性存疑 | 亚像素级 | 速度较快 |
重心法+轮廓跟踪法 | 未提及 | 8邻域跟踪算法 | 重心法 | 算法中所设阈值与灰度有关,灰度不变有一定抗噪性,对灰度变化适应性存疑 | 亚像素级 | 速度较快 |
参考文献
[1]张旭苹, 汪家其, 张益昕,等. 大尺度三维几何尺寸立体视觉测量系统实现[J]. 光学学报, 2012, 32(003):140-147.
[2]胡颖,崔伟峰.Otsu多阈值分割算法的研究[J].郑州轻工业学院学报(自然科学版),2010,25(02):79-81.
[3]李凤娇,李小菁,刘震.基于多尺度分析的激光光条中心点坐标提取方法[J].光学学报,2014,34(11):111-116.
[4]刘枝梅,邓文怡,娄小平. 结构光测量系统中光条中心的提取算法[J]. 北京机械工业学院学报(综合版),2009,24(1):42-45. DOI:10.3969/j.issn.1674-6864.2009.01.011.
[5]张小艳, 王晓强, 白福忠,等. 基于改进灰度重心法的光带中心提取算法[J]. 激光与红外, 2016, 46(005):622-626.
[6]李伟明,彭国,高兴宇,丁畅.线激光光条中心快速提取算法[J].中国激光,2020,47(03):192-199.