论文《基于结构光和双目视觉的三维重建系统研究》摘要

《基于结构光和双目视觉的三维重建系统研究》-赵焕谦-哈工大

一、引言

1、结构光的原理和优点

结构光通过向待测物体表面投射光栅条纹图案来给物体增加特征信息,使得图像处理时,能够提取出更多的特征点,从而获得稠密的视差图,重建出精度较高的三维模型。
所以本文采用双目视觉+结构光,可以得到稠密的点云图,又可以降低系统的复杂度(不用标定投影仪)

2、分类

  1. 单目测量系统:一个相机+一个投影仪,在使用时需要对投影仪进行标定,在使用时对环境和成像质量的要求高,且容易受到其他因素影响,边缘提取的成功率和三维重建的精度都不高
  2. 双目测量系统:传统双目视觉测量技术的改进,不用标定投影仪

3、三个研究方面

  1. 搭建硬件系统,并开发与其对应的软件系统
  2. 视觉系统的标定-单目标定+双目标定——立体校正
  3. 图像处理和图像匹配

二、图像处理和图像匹配

对采集到的图像,通过图像处理提取其中的有用信息

1、滤波处理

  1. 原因:光照、随机噪声等会影响图像处理结果,造成条纹边缘提取不准确
  2. 定义:图像滤波可以更改或者增强图像。通过滤波,可以强调一些特征或者去除图像中一些不需要的部分。滤波是一个邻域操作算子,利用给定像素周围的像素的值决定此像素的最终的输出值。
  3. 基于空域的滤波方法:
    (1)均值滤波:像素点周围领域像素集的平均值代替原像素值
    (2)中值滤波:像素点周围邻域像素集的中值代替原像素值
    (3)高斯滤波:参考 https://blog.csdn.net/nima1994/article/details/79776802
    图像上的像素实际上是坐标离散但是值却连续的,因为越靠近的点关系越密切,越远离的点关系越疏远。因此,加权平均更合理,距离越近的点权重越大,距离越远的点权重越小。
    论文《基于结构光和双目视觉的三维重建系统研究》摘要

当中心点为原点时,x的均值μ=0,此时由于图像是二维矩阵,则采用二维高斯函数表示(x,y)的权重,然后就可以计算加权均值了
(4)双边滤波:也是计算领域像素集的加权灰度值的平均值,加权系数是两个核函数因子的乘积

论文《基于结构光和双目视觉的三维重建系统研究》摘要

四种滤波的结果显示:

论文《基于结构光和双目视觉的三维重建系统研究》摘要

; 2、二值化处理

  1. 原因:准确的将黑白条纹的边界提取出来
  2. 方法:都是确定一个范围,取一个值作为阈值T,大于T的像素群的像素值设为白色,小于设为黑色

方法具体描述全局二值化范围是整幅图像,T是所有像素灰度值的均值局部二值化范围是一个小窗口,T是所有像素灰度值的均值局部自适应二值化T一般采用像素的均方根、平方差、平均值等

论文中的创新方法: 基于正反码图案的二值化方法
1)原来的格雷码图案作为正码图案,对原先图案中,黑色条纹重置为白色,白色条纹重置为黑色,作为反码图案;

论文《基于结构光和双目视觉的三维重建系统研究》摘要

2)分布投射正反码图案到物体表面,图像上一点(x,y),正码投射时,其灰度值记为I+(X,Y);反码投射时,其灰度值记为I—(X,Y);
3)进行二值化处理时,当I+大时,该像素点设为白色;I—大时,该像素点设为黑色
4)结果显示:

论文《基于结构光和双目视觉的三维重建系统研究》摘要

3、条纹边缘检测

  1. 原因:提取出条纹边缘的点,便于后续格雷码值的计算
  2. 原理:边缘-图象局部区域亮度变化显著的部分,对于灰度图像来说,也就是灰度值有一个明显变化。要表征这种灰度值的变化,导数就是表征变化率的,但是数字图像都是离散的,也就是导数肯定会用差分来代替,常用的包括普通一阶差分,Robert算子(交叉差分),Sobel算子等等,是基于寻找梯度强度
  3. Sobel算子:
    Gx是对原图A在x方向上的卷积,Gy是对原图A在y方向上的卷积
    论文《基于结构光和双目视觉的三维重建系统研究》摘要

论文《基于结构光和双目视觉的三维重建系统研究》摘要

当G大于某一阈值时,判定该点为边缘点
5. candy算法:
Canny算子求边缘点具体算法步骤如下:
(1)用高斯滤波器平滑图像(滤波处理).
(2)用一阶偏导有限差分计算梯度幅值和方向.

(3)对梯度幅值进行非极大值抑制:

论文《基于结构光和双目视觉的三维重建系统研究》摘要

上图中左右图:g1、g2、g3、g4都代表像素点,很明显它们是c的八领域中的4个,左图中c点是我们需要判断的点,蓝色的直线是它的梯度方向,也就是说c要是局部极大值,它的梯度幅值M需要大于直线与g1g2和g2g3的交点,dtmp1和dtmp2处的梯度幅值。但是dtmp1和dtmp2不是整像素,而是亚像素,也就是坐标是浮点的,那怎么求它们的梯度幅值呢?线性插值,例如dtmp1在g1、g2之间,g1、g2的幅值都知道,我们只要知道dtmp1在g1、g2之间的比例,就能得到它的梯度幅值,而比例是可以靠夹角计算出来的,夹角又是梯度的方向。
写个线性插值的公式:设g1的幅值M(g1),g2的幅值M(g2),则dtmp1可以很得到:
M(dtmp1)=wM(g2)+(1-w)M(g1)
其中w=distance(dtmp1,g2)/distance(g1,g2)
distance(g1,g2) 表示两点之间的距离。实际上w是一个比例系数,这个比例系数可以通过梯度方向(幅角的正切和余切)得到。
右边图中的4个直线就是4个不同的情况,情况不同,g1、g2、g3、g4代表c的八领域中的4个坐标会有所差异,但是线性插值的原理都是一致的。
(4)用双阈值算法检测和连接边缘.

; 4、有效测量区域的测定

论文《基于结构光和双目视觉的三维重建系统研究》摘要
  1. 测量死区:AB段-不能被左相机拍摄到 CD段-不能被右相机拍摄到 CE段-不能被投影仪投射到
  2. 剔除投影仪投射死区:先用投影仪投射全黑图案,再投射全白图案,对于投影仪投射不到的区域,两次投射后灰度值的变化值很小
  3. 剔除相机??

5、格雷码解码

  1. 将格雷码转化成二进制码 对应n为格雷码 Gn-1Gn-2…G1G0,要转化成n为二进制码Bn-1Bn-2…B1B0
    Bn-1=Gn-1
    Bi=Gi异或Bi+1 i=0,1,2…n-2
  2. 再将对应的二进制码转化为对应的十进制数,作为该像素点的格雷码值
  3. 能保证一个高度上的像素点,每个像素点的格雷码值都是唯一的

6、图像匹配

采样步长-d个像素,搜索步长-e个像素

论文《基于结构光和双目视觉的三维重建系统研究》摘要

⑴以相位(这里以绝对相位为例)作为立体匹配基元的匹配方法总的来说有两种(以此原理选择投射条纹图是垂直和水平方向上的还是垂直方向上的):
1.双方向相位:向物体表面依次投射u, v两个正交方向的正弦条纹并由左右相机分别采集(即水平方向和垂直方向的条纹都需要投射),分别获得垂直方向上的相位信息和水平方向上的相位信息。可以理解为:左右视图中水平方向相位和垂直方向相位都一致的点为同名点。
在这里插入图片描述

2.单方向相位结合极线约束:根据极线约束,左右图像的同名点在同一条极线上,已知左图像上的点寻找右图上同名点的过程中沿极线搜索即可,假如再辅助以相位信息会大大提高匹配的效率。此时,投射一个方向的条纹图即可

Original: https://blog.csdn.net/weixin_43729231/article/details/122385581
Author: 一个黎明
Title: 论文《基于结构光和双目视觉的三维重建系统研究》摘要

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/645431/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球