用于深度检测的结构光编码、解码方法及编码、解码装置

文档序号:5463 发布日期:2021-09-17 浏览:44次 英文

用于深度检测的结构光编码、解码方法及编码、解码装置

技术领域

本发明涉及机器视觉领域,具体涉及一种用于深度检测的结构光编码、解码方法及编码、 解码装置。

背景技术

结构光方法,是机器视觉领域中用来进行图像处理和分析的方法之一。结构光方法的本 质是一种几何三角测量方法,其技术难点在于如何通过一幅或多幅精心设计的编码图案快速、 高效地完成图像配准。根据一次景深测量中投射的编码图案数量的不同,结构光三维测量方 法可以分为多帧结构光测量方和单帧结构光测量方法两大类。多帧结构光编码方法顺序投射 多幅编码图案,通过二分搜索法完成图像配准,因此能实现全分辨率的景深测量。但是多帧 结构光编码方法在测量景深时要求场景不能移动,因此这种方法不适用于动态场景测量。单 帧结构光测量方法只投射单幅编码图案,通过每个点邻域的编码信息完成图像配准,这种方 法非常适合动态三维测量。

结构光方法是上世纪80年代兴起的一种主动视觉图像配准方法,这种方法将投影仪作 为一台逆向摄像机使用,投影仪投射出一幅特殊设计的图案,摄像机——投影仪系统通过投 影仪投射的图案完成图像配准。得益于投影仪的主动信号,图像配准中的歧义性问题得到了 很好地消除。

经典的结构光方法分为时间编码方法和空间编码方法。时间编码方法的典型代表是格雷 码(Gray Code)。与二进制编码(Binary Code)类似,格雷码按照顺序投射出多幅精心设 计的编码图案。在每个时刻ti,投影仪将一幅编码图像投射到场景中,然后摄像机进行拍摄 带有投影图案的场景,并将带有投影图案的图片称为编码图像Ci。将C0到CN的编码图像二值 化后,每个像素点的亮度变化顺序与投影仪上的一个列序号唯一对应。因此可以通过亮度变 化顺序直接计算出投影仪上匹配点的坐标,从而绕过具有二义性的图像相似度比较过程。时 间编码方法的缺点是需要拍摄多幅图像才能够完成图像配准,并且在拍摄的过程中场景中的 物体不能移动。由于拍摄多幅图像需要相对较常的时间,所以时间编码方法一般应用于逆向 工程中的工件扫描等场合。如果将时间编码方法用于人体三维扫描等场合时,扫描的点云会 由于人体微小运动而出现波纹状干扰。

空间编码方法使用伪随机序列(De Bruijn序列)对投影仪图像进行编码。DeBruijn序列是一串字符,一个长度为N的De Bruijn序列由K个独立元素构成。在一个DeBruijn序列中,所有长度为M的子循环序列不重复。这里的子循环序列,包括字符尾部到头部拼接 的序列。

基于彩色图像的空间编码使用不同的颜色代表独立元素,投影仪上每一列被赋予一种颜 色,解码时以每个像素为中心,取一定大小的窗口,然后识别窗口中各个区间的颜色,并将 识别的颜色按顺序转换成长度为M的字符串。最后使用字符串搜索方法在整个DeBruijn序 列中查找该字符串的位置,找到字符串起始位置后,将中心点所对应的位置作为匹配点的列 坐标。

彩色图像空间编码方法所遇到的问题是:物体表面也是有颜色的,彩色条纹照射到有颜 色的物体表面时,反射光的颜色会发生变化,这种颜色变化会导致摄像机识别出的编码字符 发生改变,最终会导致匹配点坐标发生偏差。一些文献根据白平衡的原理,假设每个条纹覆 盖的区域的平均颜色是白颜色,然后使用整个条纹的平均颜色识别编码字符。尽管在大多数 时候上述假设是成立的,但是根据颜色变化阈值来追踪完整的条纹时,要求条纹在物体表面 是连续的。如果物体表面本身是不连续的,或者由于观察角度原因而存在遮挡,则通过条纹 连续性找到的条纹是不完整的,白平衡假设会受到影响,最终识别出的平均颜色也会存在偏 差。

除了颜色识别方面的问题,经典的单幅图像彩色图像的编码方法还存在另外一个问题: 如果没有额外的编码图案(即解码过程只能识别出匹配点的横坐标),则仅依靠编码图案不 能标定摄像机——投影仪系统。为了解决这个问题,学术界提出了M-Array编码方法。在一 个大小为N1×N2的M-Array编码图案中,每一个M1×M2的子图像都与其它M1×M2大小的 子图像不同。由于每一个M1×M2的子图像都是唯一的,所以可以在摄像机拍摄的图像上通 过算法确定一个适当大小的窗口,然后计算窗口中各个部分的颜色,最后将颜色转换成编码 字符。当窗口范围内的编码字符确定之后,可以在M-Array编码图案中搜索该编码字符的组 合,通过编码字符的位置即可确定匹配点的横、纵坐标。由于解码器可以同时确定匹配点的 横、纵坐标,所以M-Array编码图案可以在没有额外图案的情况下完全标定摄像机——投影 仪系统。

M-Array编码图案可通过折叠伪随机序列的方式生成,如果有长度为的伪随机 序列,则能生成窗口大小为M1·M2、图像大小为n1·n2的M-array编码图案。这里n=n1·n2。 生成时从左上角开始、沿主对角线写入伪随机序列,到达边界时从另一侧继续。由于M-array 编码图案具有伪随机序列的循环属性,所以需要在右侧补充前M2-1个列,并在下方补充前 M1-1行。由于需要折叠,所以M-Array方法的主要缺点是所支持的最大分辨率比较小。此 外,由于没有白平衡假设的支持,所以以M-Array编码方法很容易受到物体表面颜色的影响。 当物体表面有颜色的时候,M-Array编码方法的识别率会降低。

为了解决彩色编码容易受到物体表面颜色影响的问题,部分学者使用二值化图案替代编 码颜色。通常情况下,在彩色编码方法中,需要投射一个比较大的纯色方块以保证颜色可以 正确识别。二值化图案方法将大块的纯色区域用二值化图案替代,当窗口大小适合的时候, 可以通过神经网络或者其它方法识别出投射的二值化图案。二值化编码方法一般用在 M-Array方法中,常见的二值化方法在每个图案间插入黑颜色间隔(或其它种类的间隔)以 确保图案可以被正确地分割出来。由于M-Array编码方法所支持的最大编码数量本来就有限, 学术界对于高分辨率二值化单幅图像编码方法的研究比较少。

最近的研究表明,纵条纹编码方法在没有额外标定图像的情况下也可以完全标定摄像机 ——投影仪系统。在无法获得匹配点纵坐标的情况下,现有文献使用平面拟合的方法为每一 个编码列建立一个平面或曲面方程,并在三维重建的过程中直接调用对应的曲面方程。这种 直接拟合平面的方法在编码列比较稀疏的情况下能够获得比较好的效果,但对于诸如条纹格 雷码的密集编码方法时,由于细条纹黑白对比度、倾斜角度等原因,某一些编码列在标定场 景中可能无法解码。如果某个编码列在标定场景中无法解码,则这个编码列对应的平面方程 就会缺失,即使在以后的应用场景中这些编码列被成功解码,这些编码列上的特征点的深度 也无法计算。只有当投影仪使用针孔模型进行标定时,这些缺失的平面方程才能够重新被生 成出来。

相比于现在常用的双目立体摄像头方法,结构光方法更加稳定可靠、不受物体表面本身 的纹理特性影响的优点。相比于TOF(Time of Flight)方式,结构光方法具有测量精度高、 不容易受到温度、湿度等因素影响的优点。

发明内容

本发明的解决的技术问题在于提供一种用于深度检测的结构光编码方法。

本发明提供的基础方案为:用于深度检测的结构光编码方法,采用柱状图形分别形成彼 此之间没有间隙的编码图元和相位图元;编码图元和相位图元均由A颜色和B颜色组成。

本发明的工作原理及优点在于:

相比于现有的结构光编码方法,本方案只采取两种颜色分别组成编码单元和相位单元, 能够形成一种二值化、逐像素、单幅图像、支持大编码量的结构光编解码方法,有效克服了 现有结构光编码方法的不足。

进一步,在形成编码图元的时候,先将柱状图形等分成k份,然后按照排列组合的方式 将[k/2]份区域填充A颜色,将剩下的区域填充B颜色,从而构造出种编码图元,其中[k/2] 为整数。

方便快速形成编码图元。

进一步,在形成相位图元的时候,采用与编码图元大小相同的柱状图形,相位图元中A 颜色和B颜色的比例与([k/2]):(k-[k/2])不同。

使形成的编码图元和相位图元都是由A颜色和B颜色组成的方块像素图,便于后面的场 景应用。

进一步,种编码图元与伪随机序列中的种编码字符一一对应,并将编码图元 按照伪随机序列中对应字符的顺序排列成基本编码结构,其中伪随机序列的窗口大小为M。

便于通过编码图元形成基本编码结构。

进一步,按照每隔M个编码图元插入一个相位图元的方式,在基本编码结构中插入相位 图元,进而构造出结构光编码图案的前k行。

便于形成前k行的编码结构,继而通过后面的复制填充形成整个结构光编码图案的逻辑 结构。

本发明还提供一种用于深度检测的结构光编码装置,包括

编码单元确定模块,用来先将柱状图形等分成k份,然后按照排列组合的方式将[k/2]份 区域填充A颜色,将剩下的区域填充B颜色,从而构造出种编码图元;然后采用 与编码图元大小相同的柱状图形形成相位图元,相位图元中A颜色和B颜色的比例与([k/2])∶(k-[k/2])不同;

编码序列生成模块,用来将编码图元按照伪随机序列中对应字符的顺序排列成基本编 码结构,其中伪随机序列的窗口大小为M;

结构光编码模块,按照每隔M个编码图元插入一个相位图元的方式,在基本编码结构中 插入相位图元,进而构造出结构光编码图案的前k行;复制并填充前k行的结构光编码图案 到从第n×k+1到第(n+1)×k行中,构造出编码图案的逻辑结构图。

本装置的优点在于:

通过本装置能够快速形成结构光编码,且相比于现有编码装置,本装置采用A颜色、B 颜色形成二值性,且柱形图分割能够形成方块的像素状结构,使能够通过二值化、逐像素、 单幅图像、支持大编码量方法快速构建形成结构光编码。

本发明还提供一种用于深度检测的结构光解码方法,包括以下步骤:步骤一,从结构光 图案中确定不同线条间的边界点;步骤二,根据每根线条两侧的边界点的位置,确定所述线 条的宽度;步骤三,根据沿Y轴方向排列的k根线条解析出结构光图案的前k行和n×k+1到 第(n+1)×k行;步骤四,根据前k行中和n×k+1到第(n+1)×k行中彼此重复的内容解析出 任意相邻的M+1个基本编码单元对应的基本列编码,根据所述基本列编码,得到结构光的编 码序列。

本方法的优点在于:

通过本方法,能够对前述构建形成的结构光编码进行快速解码,适于应用到不同的拍摄 场景中。

进一步,根据基本编码解析出编码图元和相位图元的编码序列为每隔M个编码图元插入 一个相位图元。

从基本编码中解析出编码图元和相位图元,相位图元起到定位的作用。

进一步,将编码图元和相位图元分别解析成由A颜色和B颜色形成的柱形图。

便于对单个编码图元和相位图元进行解析。

本发明还提供一种用于深度检测的结构光解码装置,包括

边界点确定模块,用于从结构光图案中确定不同线条间的边界点;

线条宽度确定模块,用于根据每根线条两侧的边界点的位置,确定所述线条的宽度;

编码单元解析模块,用于根据按设定顺序排列的k根线条间的宽窄变化解析出结构光 图案的前k行和n×k+1到第(n+1)×k行;

编码序列解析模块,用来根据前k行中和n×k+1到第(n+1)×k行中彼此重复的内容解 析出任意相邻的M+1个基本编码单元对应的基本列编码,根据所述基本列编码,得到结构光 的编码序列。

本装置的优点在于:

采用本装置能够快速对前述构造形成的结构光编码进行解码操作,便于应用推广到不同 的拍摄投影场景中。

附图说明

图1为本发明实施例一的结构光编码图案带网格线的原理图。

图2为本发明实施例一的结构光编码图案实际投影时使用的图案。

图3为图1和图2中使用的11种基本图形元素。

图4为本发明实施例一的结构光编码图案的局部图案。

图5为图4向下平移一个单位后的结构光编码图案的局部图案。

图6为图3最右边的相位图元加入到图4左侧后形成的结构光编码图案的局部图案。

图7为图6向下平移一个单位后的结构光编码图案的局部图案。

图8为图6扩展窗口的结构光编码图案的局部图案。

图9为图7扩展窗口的结构光编码图案的局部图案。

图10为本发明实施例二前5行编码图案带网格线的原理图。

图11为本发明实施例二中结构光图案安装使用示意图。

具体实施方式

下面通过具体实施方式进一步详细的说明:

实施例一

实施例一基本如附图1所示:本实施例提出了一种单幅图像、二值化、高密度、编码列 数多、不需要额外标定图案的结构光编解码方法。

本实施例中的用于深度检测的结构光编码方法,采用柱状图形分别形成彼此之间没有间 隙的编码图元和相位图元;编码图元和相位图元均由A颜色和B颜色组成。本实施例中,A 颜色为黑颜色,B颜色为白颜色。

在形成编码图元的时候,先将柱状图形等分成k份,然后按照排列组合的方式将[k/2]份 区域填充A颜色,将剩下的区域填充B颜色,从而构造出种编码图元,其中[k/2]为整 数。符号[k/2]表示对数字k/2取整、符号是排列组合数的表示符号。本实施例中选择 k=5,柱状图形等分成5份,每一份占一行,[k/2]=2,有种编码图元。

在形成相位图元的时候,采用与编码图元大小相同的柱状图形,相位图元中A颜色和B 颜色的比例与([k/2]):(k-[k/2])不同,即本实施例相位图元中黑颜色和白颜色的比例与2: 3不同。

种编码图元与伪随机序列中的种编码字符一一对应,并将编码图元按照伪随 机序列中对应字符的顺序排列成基本编码结构,其中伪随机序列的窗口大小为M。本实施例 中,种编码图元与伪随机序列中的种编码字符一一对应,并将编码图元按照 伪随机序列中对应字符的顺序排列成基本编码结构,其中伪随机序列的窗口大小为M=5。

按照每隔M=5个编码图元插入一个相位图元的方式,在基本编码结构中插入相位图元, 进而构造出结构光编码图案的前5行(这里的5与k=5对应)。

采用以上编码方法得到的用于深度检测的结构光编码装置,能够永安里进行结构光编码。 用于深度检测的结构光编码装置,包括编码单元确定模块、编码序列生成模块和结构光编码 模块。

编码单元确定模块,用来先将柱状图形等分成k份,然后按照排列组合的方式将[k/2]份 区域填充A颜色,将剩下的区域填充B颜色,从而构造出种编码图元;然后采用与编 码图元大小相同的柱状图形形成相位图元,相位图元中A颜色和B颜色的比例与([k/2]):(k-[k/2])不同;

编码序列生成模块,用来将编码图元按照伪随机序列中对应字符的顺序排列成基本编码 结构,其中伪随机序列的窗口大小为M;

结构光编码模块,按照每隔M个编码图元插入一个相位图元的方式,在基本编码结构中 插入相位图元,进而构造出结构光编码图案的前k行;复制并填充前k行的结构光编码图案 到编从第n×k+1到第(n+1)×k行中,构造出编码图案的逻辑结构图。

本实施例中选择k=5进行编码,结构光编码的前5行使用种互不相 同的、有限长度的二值化条纹作为编码图案的构图图元,每种二值化条纹都由两种不同的颜 色构成。在本实施例中,的计算结果为10,即本实施例使用了种互不相同的、 有限长度的二值化条纹作为编码图案的构图图元。本实施例使用“黑颜色”和“白颜色”表 示二值化条纹中的两种颜色,则使用的种二值化条纹中,前种条纹黑颜色和 白颜色的比例相同,但黑颜色和白颜色在条纹中的分布位置不同。在该编码方法使用的前种二值化条纹中,黑颜色的比例为:[5/2]/5,白颜色的比例为:1-[5/2]/5,即黑颜 色比白颜色为(2/5):(3/5)=2:3,该编码装置使用的最后1种条纹中黑颜色和白颜色的比例 与前种二值化条纹不同。该编码装置的前种二值化条纹用于对图像的列号码进行 编码,最后一种二值化条纹用于对图像的行相位进行编码。该编码图案的二值化条纹之间没 有空隙,二值化条纹按照伪随机序列的顺序排列,伪随机序列中每个长度为M+1的子串,本 实施例中为5+1的子串,都是唯一的、每个长度为5+1的子串中都包含一个相位编码符, 即每个子串中都含有一个相位图元。该编码图案在横轴方向是伪随机图案,在纵轴方向上是 周期图案,周期大小为5的整数倍。

本实施例的窗口大小为6×5,在本实施例中,M恰好设置为5,M+1为6对则伪随机序列的窗口大小为6×5,M的取值与k的取值没有必然联系,部分编码图案如图1和图2所示。图1为带网格线的原理图,图2为实际投影时使用的图案。在生成图1和图2时,使用个编码字符生成deBruijn序列(一种伪随机序列),生成时设置的窗口大小为5,生成出来的deBruijn序列的长度是10000。这里我们设置窗口大小为M=5是为了使解码窗口尽可能接近正方形,窗口大小并非必须与排列组合数中的k=5相同。deBruijn序列生成之后,然后按照每5个编码字符(这里的“5”与前面设置的窗口大小中所设定的M=5相同)插入 一个相位编码符的方式,在每个编码序列中插入一个相位编码符。将编码字符、相位编码符与11种条形图案一一对应之后,通过替换的方式构成编码图案。该编码图案的一个基本特点是:沿X轴方向,该编码图案是一种伪随机编码图案(通过deBruijn序列实现);沿着Y 轴方向,该编码图案是周期图像,并且图像的周期大小与deBruijn序列的编码窗口尺寸成 正比;相位编码符图案的作用是定位子图像在Y轴上的相位。新deBruijn序列的窗口大小 是M+1=6,总长度是12000,可编码12000个编码列。

图1和图2所示的结构光编码图案是一个窗口大小为6×5的编码图案,编码图案包含 种基本元素(构图图元),每种基本元素对应1种编码字符。前种编码 符号作为deBruijn序列的编码字符使用,最后一种编码字符作为相位编码符,待deBruijn 序列生成好之后插入到deBruijn序列中。图1和图2所使用的11种基本元素如图3所示。 图3中包含11种柱状图形,柱状图形的灰色部分在实际投影时为白颜色,文档中使用灰色 的原因是:文档的背景颜色是白颜色,为了能够在文档中正常显示二值化图案,所以使用灰 色替代二值化图案中的白颜色区域。

在图3中,除了最后一个条纹中白颜色区域的占比为20%外,其余图案的白颜色部分占 比均为60%。图3中前10个柱形图案(编码图元)的构图方式为:将柱形区域均分为5份, 使用排列组合的方式选取其中2份为黑颜色,剩余部分为白颜色。最后1个柱形图案(相位 图元)的构图方式为:将柱形区域均分为5份,选择连续3份为黑颜色。在图3中,我们选择让柱形区域的最后3份为黑颜色,这是一种自然的选择方式。图3中前10个柱形图案与 伪随机编码(deBruijn序列)的编码字符一一对应,第11个图案作为Y方向的相位特征图 案,按照每5个编码图案插入一个的方式,插入在编码图案之前。

图3中使用2:3的方式设置黑白像素比例,这样设置的原因是:黑白像素的比例大约各 占50%时,图像的亮度比较均匀、黑白像素的比例大致相当。当图象中黑白两类的比例大致 相当时,使用OTSU算法进行图像二值化的效果比较好,分割的结果比较稳定。由于相位图 元需要使用不同的黑白像素比例,所以在图3中使用3:2的方式设置黑白像素的比例。如果 将柱形区域均分为6份,那么应当使用3:3的方式设置编码图元的黑白像素比例;如果将柱 形区域均分为6份,那么相位图元应使用不同的黑白像素比例,为了使图像的亮度尽可能均 匀,可以使用黑白像素比为2:4或者4:2的方式构造相位编码符所对应的柱形图案。在图3 中,黑白像素的比例可以互换,编码图案的亮度均匀特性不受影响。

一般情况下,我们在进行特征识别时使用奇数(如3、5、7等)窗口大小。这是因为以窗口中心点为基础进行特征识别时,奇数窗口从中心点向左右延申的大小是相等的,这样便 于进行图像识别。此外,在将条纹均份为k份时,应当尽可能将每一份的形状设置为方形, 这样图案投影到倾斜或凹凸不平的表面时图案变异比较小,便于识别。如果新deBruijn序 列本身的窗口大小不是奇数,则可以向右(或者向左)拓展一个单元,将窗口大小变成奇数, 然后进行特征识别。由于在新deBruijn序列中连续M+1个字符的排列组合是唯一的,所以 连续M+2个字符的排列组合也是唯一的,拓展窗口不影响特征识别过程。

在我们的早期设计中,我们一开始并没有在deBruijn序列中加入相位编码符,但是当 我们使用图3中前10个图元替代deBruijn序列中的编码符号时,我们发现:图4中的图案 向下平移一个单位(一个单位指图1中的一个黑格子或者一个白格子)之后可以得到图5的 编码图案,而图4和图5中所有图所对应的字符串序列在代deBruijn序列中是存在的,并且该字符序列的位置与图4所对应的字符串序列的位置是不同的。这意味着:如果不插入用于定位Y轴相位的相位图元,那么在Y轴上不同相位上识别出的编码图案将无法定位到deBruijn序列中的同一个位置。为了解决这个问题,我们将图3中最右边的相位图元加入到图4的左侧,形成了图6的图案。图6的图案向下平移一个单位后,可以得到图7的图案, 由于有相位标识图案(相位图元)的存在,所以图6和图7中图像成功识别之后,可以定位 到deBruijn序列中的同一个位置。当然,这实际上需要在神经网络分类器中增加一些类别 编号。在一个窗口大小为5的deBruijn字符串中间隔5个字符插入一个固定的额外字符, 这会导致窗口大小变成6。这是因为在新的deBruijn字符串中,每6个连续字符就一定会包 含原deBruijn字符串中的5个连续字符,而原deBruijn字符串中的5个连续字符是唯一的, 所以新的deBruijn字符串中连续6个字符串是唯一的,即新deBruijn字符串的窗口大小为 6。在新deBruijn字符串中,每个长度为5+1的子串都是唯一的,并且每个长度为5+1的 子串中都包含一个相位编码符。

虽然图6和图7中窗口的大小为6×5,我们在使用神经网络进行图案识别的时候将其 扩展为7×5的窗口(即我们建议的奇数窗口大小),然后再对图案进行识别。如图8和图9所示:将窗口向右扩展一个单位之后,图案的唯一性没有发生变化,这是因为如果在一个deBruijn序列中每6个字符的组合是唯一的,那么连续7个字符的组合当让也是唯一的。我们扩展窗口的目的是使整个子图像块的大小相对于其中心点是左右对称的,这样在截取图像 进行识别时比较方便。如果在构建deBruijn序时本身的窗口大小是偶数,则添加Y轴相位 编码符之后新deBruijn序列的窗口为奇数,此使便不用扩展识别器的窗口。我们注意到: 在上述两种情况下(新deBruijn序列窗口为奇数或者偶数),都可以使用我们建议的奇数 窗口进行特征识别。

由于我们的编码方法在Y轴上是周期图像,所以在摄像机实际拍摄到的图像上,纹理周 期的大小(大小以像素为单位)可以通过投影仪Y轴的投影方向上的纹理周期性计算出来。 这里投影仪X轴和Y轴的投影方向是摄像机——投影仪系统的固有参数,投影仪X轴和Y轴 的投影方向可以在摄像机——投影仪系统的几何标定过程中确定,具体过程将在后文中详细 叙述。由于图像周期大小与编码窗口大小成正比,所以神经网络识别器所需要的输入图像可 以直接通过纹理的周期性进行确定。计算纹理周期性的具体过程如下:①首先对摄像机拍摄 的图像进行二值化;②沿着投影仪Y轴的投影方向上进行逐像素上下平移,然后记录每次平 移时图像差异的绝对值;③使用信号处理工具箱中的findpeaks函数找到图像差异的波谷; ④通过图像差异的波谷计算信号的周期(周期以像素为单位)。计算出信号的周期之后,根 据周期和编码图案的关系确定神经网络识别器的输入图像尺寸(即需要在摄像机拍摄的图像 上截取多大的图像作为神经网络识别器的输入)。输入图像的尺寸确定之后,根据投影仪X 轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点 为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。

我们所提出的结构光编解码方法在构造解码器的时候需要借助数字投影仪,但是在解码 器构造完成之后,便不再需要数字投影仪。解码器构造完成之后,可以使用胶片式投影设备 替代数字投影仪。所以我们所提出的方法可以部署在打印的透明PVC介质、透明玻璃介质或 其它介质上。我们提出的结构光编解码方法通过如下方式构造解码器:①根据投影仪的分辨 率构造合适尺寸的横、纵格雷码编码图案;②投影仪按顺序将所构造的横、纵格雷码编码图 案投射到场景中,摄像机按顺序拍摄投射图案之后的场景;③投影仪投射我们所提出的结构 光图案,如图2所示,然后摄像机拍摄投射图案之后的场景;④使用格雷码的解码方法计算 摄像机和投影仪图像上的匹配点关系;⑤对于我们提出的结构光图案,使用前文所述的周期 检测方法计算出Y轴方向的图像周期,然后根据图像周期计算出解码实际拍摄图像所需的窗 口尺寸;⑥将格雷码方法计算出的匹配点位置作为正确的分类结果、使用第⑤步计算出的窗 口大小,训练神经网络分类器。神经网络分类器构造好之后,即可通过神经网络分类器的分 类结果查表计算出摄像机图像上每个点的匹配点坐标(只需计算出匹配点的横坐标即可)。 只要能够获得一种摄像机——投影仪系统上充分训练的神经网络分类器,即可使用该分类器 识别具有类似结构的摄像机——投影仪系统的编码图案。这是因为神经网络识别器会将输入 图像缩放到一个统一的尺寸,然后再进行分类。因此,将我们提出的编解码方法部署到实际 系统上时,应先设计好最终系统的摄像机——投影仪系统的相对旋转轴,然后基于数字投影 仪构造一个旋转轴与最终系统接近的摄像机——投影仪系统,并基于数字投影仪制作神经网 络解码器。由于神经网络解码器会将输入图像缩放到某个固定的尺寸,所以投影仪——摄像 机系统的平移对神经网络解码器的制作没有影响,此外,当摄像机的横、纵焦距差异不大, 并且投影仪的横、纵焦距差异不大的时候,摄像机和投影仪的内参数对解码器的制作没有影 响。

制作好解码器之后,即可标定最终的摄像机——投影仪系统。标定算法可参考我们以前 发表的一篇论文《A Pattern and Calibration Method for SinglePatternStructured Light System》。在该论文中,我们系统地阐述了当只有纵条纹编码的时候,如何标定摄像机—— 投影仪系统。在该论文中,我们提出了一种基于彩色图像的单幅图像结构光编码方法,并在 一个基于胶片投影机的原型系统上成功地进行了部署和测试。与该论文中的方法不同的是, 我们现在提出的方法是基于二值化图像的编码方法,并且我们将窗口大小成功地编码到了结 构光图案中。我们认为:通过二值化图像进行编码可以提高识别的成功率、降低系统成本、 增加编码方法的适用性。在我们以前的论文中,我们通过一系列地图像分割阈值计算出了分 类每一个编码点所需的窗口大小。而在我们现在的编码图案中,窗口大小是通过图像的纵向 周期性计算出来的。我们现在的编码图案的编码密度比该论文中的编码图案的编码密度更高。 理论上,我们现在的编码图案最多能够对投影仪图像上的每一个像素进行编码,而该论文中 的编码图案理论上最多只能对投影仪图像上1/3的像素进行编码。

我们使用数字投影仪训练神经网络识别器,然后使用基于棋盘格的结构光系统标定方法 标定摄像机——投影仪系统。使用训练出的神经网络识别器识别出摄像机拍摄图像上每个像 素点在编码图案中对应的列编号。最后,通过结构光系统的标定参数和识别出的列编号计算 出深度图。

实施例二

本实施例中,窗口大小M的取值为3,k的取值为5,在这种情况下,神经网络识别器的 输入图形是正方形,这样能够使构造出来的结构光编码的信息含量更加恰当。

当k的取值为5时,可以前述方法构造出种编码图元和1种相位图元,每种柱 状图元占用5个像素,所构造的11种图元如图3所示。当M=3、编码图元数量为10的时候,现有算法所构造出的deBruijn序列(即权利要求4中的伪随机序列)的长度为1000。生成 伪随机序列之后,按照权利要求4中的方法构造出基本编码结构,并按照权利要求5中的方 法将相位图元插入到基本编码结构中。在本实施例中伪随机序列的窗口大小M=3,所以插入相位图元时每隔3个编码图元插入一个相位图元。插入相位图元之后,即可构造出结构光编码图案的前5行。本实施例所构建的结构光编码图案的前5行的原理图如图10所示。图10 仅为本实施例前5行原理图的一部分,本实施例前5行图像的完整大小是1333×5。

从结构光图像的第6行开始,按照权利要求6中的方法将前5行的结构光编码图案复制 并填充到第6到10行、第11到15行、第16到20行、…,一直到结构光图像的最后一行 填充完成。至此,结构光编码图案构建完成。

如图11所示,将构建好的结构光编码图案打印到透明PVC介质上,并将PVC介质粘贴 到透明塑料片上,然后将贴有编码图案的透明塑料片安装到结构光系统的投射装置中。

将编码图案安装到投射装置中之后,通过投射装置的内置光源将编码图案投射到物体表 面,然后使用结构光系统中的摄像机拍摄一幅整个场景的图像。拍摄完成之后,即可使用软 件算法计算出整个场景的深度图。计算深度图时,首先使用OTSU算法将摄像机拍摄的图像 进行二值化,然后沿着投影仪Y轴的投影方向上进行逐像素上下平移并记录每次平移时图像 差异的绝对值。接着使用信号处理工具箱中的findpeaks函数找到图像差异的波谷,并通过 图像差异的波谷计算信号的周期(周期以像素为单位)。计算出信号的周期之后,根据周期 和编码图案的关系确定神经网络识别器的输入图像尺寸(即需要在摄像机拍摄的图像上截取 多大的图像作为神经网络识别器的输入)。输入图像的尺寸确定之后,根据投影仪X轴和Y 轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心, 按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。确定了摄像机拍摄图像上每 个像素点在编码图案中的对应位置之后,即可通过结构光系统的标定参数计算处深度图。结 构光系统的标定参数通过论文《A Pattern andCalibration Method for SinglePattern Structured Light System》中的方法和步骤进行计算。

以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描 述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术 知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力, 所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些 典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指 出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改 进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。 本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以 用于解释权利要求的内容。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种集成共焦法与三角法的探路式测头装置及其测量方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!