专利名称:一种基于双目三维视觉的深度测量方法
技术领域:
本发明属于物体测量技术领域,特别涉及一种基于双目三维视觉的深度测量方 法。
背景技术:
古今中外,对物体的测量方法层出不穷。但是对于测量的要求来说,每种方法都是 针对十分具体的需求。目前现有的深度测量技术,可分为接触式测量与非接触式测量两大类。总结归纳 如下表1所示表1各种测量技术 现有技术中,有一种便捷式三维扫描仪,由单个视觉传感器的移动来实现多传感 器视觉测量系统的功能,有时称这种方式为流动式三维扫描。在这种方式下,根据测量任务 要求,单个视觉传感器可以随意放置到大型工件周围的任何位置,通过在工件表面上设置 适当的标记点,单个视觉传感器在不同位置的局部测量数据就可以自动拼接,从而完成对 大型工件的整体测量。激光跟踪仪是一种具有球坐标系的坐标测量系统,由两个测角单元和一个测距单 元组成,测角采用角度编码器,测距采用单光束激光干涉仪,通过球形反射镜接触被测物体实施测量,是一种接触式测量仪器。虽然流动式三维扫描和激光跟踪仪的测量技术可实现接触式测量,测量精度可以 满足要求,但由于是接触式测量,不适用于恶劣环境下(比如有毒,易腐蚀的物体,如盛化 学品的烧杯)或者微小的物体(如按键)的测量。室内GPS系统是由美国ARC SECOND公司推出的一种基于工业厂房区域内超大型 现场测量系统。室内GPS系统最大的特点是测量不受限,测量范围大(可达上百米),无论 在工件外还是在工件内,都可以完成测量,适用于大型结构的整体精密测量。但其成本较 大,技术复杂。在非接触式的测量方法中,视觉技术的成本最低、重构性最好,能很好的满足应用 需求的变化。华中科技大学提出了单目视觉的测量方法,并且为了确保被测物体始终在摄像机 的景深范围内,在扫描过程中引进了两种随动控制技术,即预扫描的随动测量技术和信号 跟踪算法的随动测量技术。这种技术采用单目视觉技术以及基于参数辨别的标定,对环境 扰动以及摄像机的精度有较高的要求,具有一定的局限性。传统的视觉测量方法,一般采用双目摄像机的标定的技术提取特征点进行三维视 觉测量,双目摄像机的标定是一个非常复杂的非线性模型,可归结为直接求解的解析标定 方法。在标定后,仍然需要用空间立体解析几何法求取三维坐标,其计算十分复杂,且不能 通用于求解非线性模型,不但不能满足实现要求,误差较大,而且标定模型的误差,会被放 大到根据匹配点对求解其三维坐标的过程中去,有一种“失之毫厘,谬以千里”的感觉。在 不利环境和摄像机精度不高的情况下,导致传统的视觉测量的精度也相对较低。综上所述,现有的测量技术一般存在着以下缺陷(1)精密设备,价格不菲,成本 高;(2)多数高精度测量系统为接触式测量方式;(3)接触式测量系统难以重构;(4)对操 作人员的学习培训困难。因此,需要设计一种精度较高而成本相对较低的测量方法。
发明内容
本发明的目的在于克服上述现有技术的缺点与不足,提供一种精度较高而成本较 低的基于双目三维视觉的深度测量方法。为达上述目的,本发明采用如下的技术方案一种基于双目三维视觉的深度测量 方法,包括如下步骤(1)由两个摄像机分别获取物体的左图像和右图像,物体各点在左图像和右图像 中对应有左图像坐标和右图像坐标,且均为二维坐标;获取若干个物体的特征点;(2)建立BP神经网络模型;(3)根据所述步骤(1)获取的左图像和右图像,提取物体底部平面特征点的左图 像坐标和右图像坐标;通过所述步骤(2)所得的BP神经网络模型对所述特征点进行训练, 将各特征点的左图像坐标和右图像坐标均映射到三维世界坐标,并将所有三维世界坐标拟 合成三维世界坐标点集,建立物体底部表面的三维平面函数,所述三维平面函数满足Z = aX+bY+c,其中,X、Y、Z分别为底部表面各点的三个世界坐标值,a、b、c分别为函数参数;(4)根据所述步骤(1)获取的左图像和右图像,提取物体顶部平面一个特征点的左图像坐标和右图像坐标;通过所述步骤(2)所得的BP神经网络模型训练,所述特征点的 左图像坐标和右图像坐标映射到三维世界坐标,设为P(PX,Py, Pz);
|aPx + bPy-Pz + c|(5)求取物体的深度值,所述深度值满足=DlSt = ' + + l .其中Dist为
9
所求的深度值,&、&、&分别为步骤(4)特征点三维世界坐标对应的三个坐标值,a、b、c分 别为所述步骤(3)物体底部表面的三维平面函数的三个参数值。所述步骤(1)中,特征点的获取步骤如下在物体的特征位置打上激光,通过用图 像处理获取激光所在的位置点,这些位置点就是所述的特征点。所述步骤(2)中,BP神经网络模型包括三层前馈网络,分别为输入层、隐含层和 输出层,所述输入层包括四个神经元,分别对应特征点左图像坐标的两个坐标值和右图像 坐标的两个坐标值;所述隐含层包括八个神经元;所述输出层包括三个神经元,分别对应 特征点的世界坐标的三个坐标值;所述输入层的各神经元与隐含层的各神经元一一映射连 接,所述隐含层的各神经元与输出层的各神经元一一映射连接。所述步骤(2)中,建立BP神经网络模型包括如下步骤(2-1)选择训练样本,建立训练样本集;(2-2)初始化对各层权值向量赋初值,设定训练的最大迭代次数、期望输出信 号;(2-3)随机输入任一项训练样本,根据输入的训练样本依次计算各层神经元的输 入信号和输出信号;(2-4)根据所述步骤(2-3)中最终的输出信号和期望输出信号,计算误差信号,判 断所述误差信号是否满足要求,若满足,则执行步骤(2-8),否则,执行步骤(2-5);(2-5)判断下一次的迭代次数是否大于最大迭代次数,若大于,则执行步骤 (2-8),否则,对输入的训练样本反向计算每层神经元的局部梯度,所述局部梯度满足
J
=其中η为迭代次数;Dij (η)为所求的第i层第j个神经元的
戶1’
局部梯度;f(uu(n))为转移函数;(η)为第i层第j个神经元的输入信号线性组合后的 输出;Di^. (η)为第i_l层第j个神经元的局部梯度;J为第i_l层的神经元总数;Wij (η)为 第i层第j个神经元与第i_l层各个神经元的连接权值;(2-6)调整各层的连接权值,各层调整后的连接权值满足Wij (n+1) =Wij (η)+ α (η) [ (1_ η) Dij (η) + η Dij (η_1)],其中 Wij (η)均为第 i 层第 j 个神经元第η次迭代时神经元的连接权值,Wij (n+1)为第i层第j个神经元第n+1次迭代 时的连接权值,η为迭代次数;α (η)为第η次调整迭代时的学习率;η为动量因子;Dij(Ii) 为本次迭代时,第i层第j个神经元的局部梯度;Du(n-l)为上次迭代时,第i层第j个神 经元的局部梯度;(2-7)迭代次数加一,进入下一次迭代,执行步骤(2-3);(2-8)判断是否已学完所有的训练样本,若是,则结束训练,得到输出结果;否则, 执行步骤(2-3)。所述步骤(2-6)中,各层学习率的调整满足当连续两次迭代的梯度方向相同时, 则使学习率加倍;当连续两次迭代的梯度方向相反时,则使学习率减半。
所述训练样本为所述步骤(1)特征点的左图像坐标和右图像坐标。所述步骤(3)的具体步骤如下(3-1)通过图像分析,提取物体在所述步骤(1)形成的图像中对应的底部平面特 征点的左图像坐标和右图像坐标;(3-2)对所述步骤(3-1)底部平面的各个特征点按照基数排序进行匹配;(3-3)通过所述步骤(2)所得的BP神经网络模型对底部平面特征点进行训练,将 物体底部平面的特征点的左图像坐标和右图像坐标分别映射到三维世界坐标;(3-4)将所述步骤(3-3)训练得到的各特征点的三维世界坐标拟合三维世界坐标 点集,建立物体底部表面的三维平面函数。所述(3-2)中对各个特征点按照基数排序进行匹配的具体如下各特征点的左图 像坐标和右图像坐标均按照X轴分组收集,然后再按照Y轴分组收集,从而实现各特征点在 左图像坐标和右图像坐标的点集合内的排序匹配。所述步骤(4)包括如下步骤(4-1)通过图像分析,提取物体在所述步骤(1)形成的图像中对应的顶部平面中 一个特征点的左图像坐标和右图像坐标;(4-2)通过所述步骤(2)所得的BP神经网络模型对所述步骤(4_1)中的特征点进 行训练,将这一特征点的左图像坐标和右图像坐标分别映射到三维世界坐标。本发明可对恶劣环境下的物体(如盛装有毒、易腐蚀物体的容器,如盛化学品的 烧杯),或者不易直接测量(或者微小的物体,如按键)的物体进行深度测量。本方法可用于建筑工程、电子器材检测、流水线检测以及机器人和机械制造业等 多种领域系统的测量,属于计算机应用技术、计算机视觉技术、非接触式测量领域。与现有技术相比,本发明具有如下优点和有益效果1、本发明可测量恶劣环境下(比如有毒,易腐蚀的物体,如盛化学品的烧杯)的物 体或者不易直接测量(或者微小的物体,如按键)的物体的深度,具有测量方便、测量精度
高等优点。2、本发明采用激光标记来获取物体的特征点,具有灵敏度高、实验环境适应性强 等优点,能够有效地防止环境光的影响。3、本发明采用BP神经网络模型训练,可将二维的图像坐标映射到三维世界坐标, 相对于传统的摄像机标定与畸变校正,通过BP神经网络模型逼近三维坐标函数,可向下屏 蔽标定参数的直接求解,向上提供了二维坐标到三维坐标的直接映射,解决了在不利环境 和摄像机精度不高的情况下,能够稳定地提取特征点进行三维视觉测量的问题,测量结果 达到一定的可控精度要求。4、本发明的各个特征点按照基数排序进行匹配,可有效简化BP神经网络模型训 练速度,且能确保特征点的客观与真实性。5、本发明成本低、重构性好,能很好的满足应用需求的变化。
图1是本发明方法的流程图。
具体实施例方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。实施例如图1所示,本基于双目三维视觉的深度测量方法,包括如下步骤(1)由两个摄像机分别获取物体的左图像和右图像,物体各点在左图像和右图像 中对应有左图像坐标和右图像坐标,且均为二维坐标;获取若干个物体的特征点;(2)建立BP神经网络模型;(3)根据所述步骤(1)获取的左图像和右图像,提取物体底部平面特征点的左图 像坐标和右图像坐标;通过所述步骤(2)所得的BP神经网络模型对所述特征点进行训练, 将各特征点的左图像坐标和右图像坐标均映射到三维世界坐标,并将所有三维世界坐标拟 合成三维世界坐标点集,建立物体底部表面的三维平面函数,所述三维平面函数满足Z = aX+bY+c,其中,X、Y、Z分别为底部表面各点的三个世界坐标值,a、b、c分别为函数参数;(4)根据所述步骤(1)获取的左图像和右图像,提取物体顶部平面一个特征点的 左图像坐标和右图像坐标;通过所述步骤(2)所得的BP神经网络模型训练,所述特征点的 左图像坐标和右图像坐标映射到三维世界坐标,设为P(PX,Py, Pz);
|aPx + bPy-Pz + c|(5)求取物体的深度值,所述深度值满足
.其中Dist为
所求的深度值,&、&、&分别为步骤(4)特征点三维世界坐标对应的三个坐标值,a、b、c分 别为所述步骤(3)物体底部表面的三维平面函数的三个参数值。所述步骤(1)中,特征点的获取步骤如下在物体的特征位置打上激光,通过用图 像处理获取激光所在的位置点,这些位置点就是所述的特征点。所述步骤(2)中,BP神经网络模型包括三层前馈网络,分别为输入层、隐含层和 输出层,所述输入层包括四个神经元,分别对应特征点左图像坐标的两个坐标值和右图像 坐标的两个坐标值;所述隐含层包括八个神经元;所述输出层包括三个神经元,分别对应 特征点的世界坐标的三个坐标值;所述输入层的各神经元与隐含层的各神经元一一映射连 接,所述隐含层的各神经元与输出层的各神经元一一映射连接。所述步骤(2)中,建立BP神经网络模型包括如下步骤(2-1)选择训练样本,建立训练样本集;(2-2)初始化对各层权值向量赋初值,设定训练的最大迭代次数、期望输出信 号;(2-3)随机输入任一项训练样本,根据输入的训练样本依次计算各层神经元的输 入信号和输出信号;(2-4)根据所述步骤(2-3)中最终的输出信号和期望输出信号,计算误差信号,判 断所述误差信号是否满足要求,若满足,则执行步骤(2-8),否则,执行步骤(2-5);(2-5)判断下一次的迭代次数是否大于最大迭代次数,若大于,则执行步骤 (2-8),否则,对输入的训练样本反向计算每层神经元的局部梯度,所述局部梯度满足
其中η为迭代次数;Dij (η)为所求的第i层第j个神经元的局部梯度;f(uu(n))为转移函数;(η)为第i层第j个神经元的输入信号线性组合后的 输出;Di^. (η)为第i_l层第j个神经元的局部梯度;J为第i_l层的神经元总数;Wij (η)为 第i层第j个神经元与第i_l层各个神经元的连接权值;(2-6)调整各层的连接权值,各层调整后的连接权值满足Wij (n+1) =Wij (η)+ α (η) [ (1_ η) Dij (η) + η Dij (η_1)],其中 Wij (η)均为第 i 层第 j 个神经元第η次迭代时神经元的连接权值,Wij (n+1)为第i层第j个神经元第n+1次迭代 时的连接权值,η为迭代次数;α (η)为第η次调整迭代时的学习率;η为动量因子;Dij(Ii) 为本次迭代时,第i层第j个神经元的局部梯度;Du(n-l)为上次迭代时,第i层第j个神 经元的局部梯度;(2-7)迭代次数加一,进入下一次迭代,执行步骤(2-3);(2-8)判断是否已学完所有的训练样本,若是,则结束训练,得到输出结果;否则, 执行步骤(2-3)。所述步骤(2-6)中,各层学习率的调整满足当连续两次迭代的梯度方向相同时, 则使学习率加倍;当连续两次迭代的梯度方向相反时,则使学习率减半。所述训练样本为所述步骤(1)特征点的左图像坐标和右图像坐标。所述步骤(3)的具体步骤如下(3-1)通过图像分析,提取物体在所述步骤(1)形成的图像中对应的底部平面特 征点的左图像坐标和右图像坐标;(3-2)对所述步骤(3-1)底部平面的各个特征点按照基数排序进行匹配;(3-3)通过所述步骤(2)所得的BP神经网络模型对底部平面特征点进行训练,将 物体底部平面的特征点的左图像坐标和右图像坐标分别映射到三维世界坐标;(3-4)将所述步骤(3-3)训练得到的各特征点的三维世界坐标拟合三维世界坐标 点集,建立物体底部表面的三维平面函数。所述(3-2)中对各个特征点按照基数排序进行匹配的具体如下各特征点的左图 像坐标和右图像坐标均按照X轴分组收集,然后再按照Y轴分组收集,从而实现各特征点在 左图像坐标和右图像坐标的点集合内的排序匹配。所述步骤(4)包括如下步骤(4-1)通过图像分析,提取物体在所述步骤⑴形成的图像中对应的顶部平面中 一个特征点的左图像坐标和右图像坐标;(4-2)通过所述步骤(2)所得的BP神经网络模型对所述步骤(4_1)中的特征点进 行训练,将这一特征点的左图像坐标和右图像坐标分别映射到三维世界坐标。本发明可对恶劣环境下的物体(如盛装有毒、易腐蚀物体的容器,如盛化学品的 烧杯),或者不易直接测量(或者微小的物体,如按键)的物体进行深度测量,可用于建筑工 程、电子器材检测、流水线检测以及机器人和机械制造业等多种领域系统的测量,属于计算 机应用技术、计算机视觉技术、非接触式测量领域。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的 限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围之内。
权利要求
一种基于双目三维视觉的深度测量方法,其特征在于,包括如下步骤(1)由两个摄像机分别获取物体的左图像和右图像,物体各点在左图像和右图像中对应有左图像坐标和右图像坐标,且均为二维坐标;获取若干个物体的特征点;(2)建立BP神经网络模型;(3)根据所述步骤(1)获取的左图像和右图像,提取物体底部平面特征点的左图像坐标和右图像坐标;通过所述步骤(2)所得的BP神经网络模型对所述特征点进行训练,将各特征点的左图像坐标和右图像坐标均映射到三维世界坐标,并将所有三维世界坐标拟合成三维世界坐标点集,建立物体底部表面的三维平面函数,所述三维平面函数满足Z=aX+bY+c,其中,X、Y、Z分别为底部表面各点的三个世界坐标值,a、b、c分别为函数参数;(4)根据所述步骤(1)获取的左图像和右图像,提取物体顶部平面一个特征点的左图像坐标和右图像坐标;通过所述步骤(2)所得的BP神经网络模型训练,所述特征点的左图像坐标和右图像坐标映射到三维世界坐标,设为P(Px,Py,Pz);(5)求取物体的深度值,所述深度值满足其中Dist为所求的深度值,Px、Py、Pz分别为步骤(4)特征点三维世界坐标对应的三个坐标值,a、b、c分别为所述步骤(3)物体底部表面的三维平面函数的三个参数值。FSA00000205268800011.tif
2.根据权利要求1所述的基于双目三维视觉的深度测量方法,其特征在于,所述步骤(1)中,特征点的获取步骤如下在物体的特征位置打上激光,通过用图像处理获取激光所 在的位置点,这些位置点就是所述的特征点。
3.根据权利要求1所述的基于双目三维视觉的深度测量方法,其特征在于,所述步骤(2)中,BP神经网络模型包括三层前馈网络,分别为输入层、隐含层和输出层,所述输入层 包括四个神经元,分别对应特征点左图像坐标的两个坐标值和右图像坐标的两个坐标值; 所述隐含层包括八个神经元;所述输出层包括三个神经元,分别对应特征点的世界坐标的 三个坐标值;所述输入层的各神经元与隐含层的各神经元一一映射连接,所述隐含层的各 神经元与输出层的各神经元一一映射连接。
4.根据权利要求3所述的基于双目三维视觉的深度测量方法,其特征在于,所述步骤 ⑵中,建立BP神经网络模型包括如下步骤(2-1)选择训练样本,建立训练样本集;(2-2)初始化对各层权值向量赋初值,设定训练的最大迭代次数、期望输出信号; (2-3)随机输入任一项训练样本,根据输入的训练样本依次计算各层神经元的输入信 号和输出信号;(2-4)根据所述步骤(2-3)中最终的输出信号和期望输出信号,计算误差信号,判断所 述误差信号是否满足要求,若满足,则执行步骤(2-8),否则,执行步骤(2-5);(2-5)判断下一次的迭代次数是否大于最大迭代次数,若大于,则执行步骤 (2-8),否则,对输入的训练样本反向计算每层神经元的局部梯度,所述局部梯度满足JΑ, ") = /^^))!^-.,/")^^)其中η为迭代次数;Dij(II)为所求的第i层第j个神经元的 J=1’局部梯度;f(uu(n))为转移函数;(η)为第i层第j个神经元的输入信号线性组合后的 输出;Di^. (η)为第i_l层第j个神经元的局部梯度;J为第i_l层的神经元总数;Wij (η)为第i层第j个神经元与第i_l层各个神经元的连接权值;(2-6)调整各层的连接权值,各层调整后的连接权值满足Wij (n+1) =Wij (η)+ α (η) [ (1_ η) Dij (η) + η Dij (η_1)],其中 Wij (η)均为第 i 层第 j 个神 经元第η次迭代时神经元的连接权值,Wij (n+1)为第i层第j个神经元第n+1次迭代时的 连接权值,η为迭代次数;α (η)为第η次调整迭代时的学习率;η为动量因子;Du(n)为本 次迭代时,第i层第j个神经元的局部梯度;Dij(Ii-I)为上次迭代时,第i层第j个神经元 的局部梯度;(2-7)迭代次数加一,进入下一次迭代,执行步骤(2-3);(2-8)判断是否已学完所有的训练样本,若是,则结束训练,得到输出结果;否则,执行 步骤(2-3)。
5.根据权利要求4所述的基于双目三维视觉的深度测量方法,其特征在于,所述步骤 (2-6)中,各层学习率的调整满足当连续两次迭代的梯度方向相同时,则使学习率加倍; 当连续两次迭代的梯度方向相反时,则使学习率减半。
6.根据权利要求4所述的基于双目三维视觉的深度测量方法,其特征在于,所述训练 样本为所述步骤(1)特征点的左图像坐标和右图像坐标。
7.根据权利要求1所述的基于双目三维视觉的深度测量方法,其特征在于,所述步骤(3)的具体步骤如下(3-1)通过图像分析,提取物体在所述步骤(1)形成的图像中对应的底部平面特征点 的左图像坐标和右图像坐标;(3-2)对所述步骤(3-1)底部平面的各个特征点按照基数排序进行匹配; (3-3)通过所述步骤(2)所得的BP神经网络模型对底部平面特征点进行训练,将物体 底部平面的特征点的左图像坐标和右图像坐标分别映射到三维世界坐标;(3-4)将所述步骤(3-3)训练得到的各特征点的三维世界坐标拟合三维世界坐标点 集,建立物体底部表面的三维平面函数。
8.根据权利要求7所述的基于双目三维视觉的深度测量方法,其特征在于,所述(3-2) 中对各个特征点按照基数排序进行匹配的具体如下各特征点的左图像坐标和右图像坐标 均按照X轴分组收集,然后再按照Y轴分组收集,从而实现各特征点在左图像坐标和右图像 坐标的点集合内的排序匹配。
9.根据权利要求1所述的基于双目三维视觉的深度测量方法,其特征在于,所述步骤(4)包括如下步骤(4-1)通过图像分析,提取物体在所述步骤(1)形成的图像中对应的顶部平面中一个 特征点的左图像坐标和右图像坐标;(4-2)通过所述步骤(2)所得的BP神经网络模型对所述步骤(4-1)中的特征点进行训 练,将这一特征点的左图像坐标和右图像坐标分别映射到三维世界坐标。
全文摘要
本发明提供了一种基于双目三维视觉的深度测量方法,包括步骤(1)由两个摄像机分别获取物体的左图像和右图像;获取若干个物体的特征点;(2)建立BP神经网络模型;(3)提取物体底部平面特征点的左图像坐标和右图像坐标,并通过BP神经网络模型训练得到三维世界坐标,建立物体底部表面的三维平面函数;(4)提取物体顶部平面一个特征点的左图像坐标和右图像坐标,并通过BP神经网络模型训练得到三维世界坐标;(5)根据物体底部表面的三维平面函数与物体顶部平面一个特征点,求取物体的深度值。本发明可对物体进行非接触深度测量,具有测量精度高、成本低等优点。
文档编号G01B11/22GK101907448SQ20101023709
公开日2010年12月8日 申请日期2010年7月23日 优先权日2010年7月23日
发明者张平, 汤峰, 洪启松 申请人:华南理工大学