CN113188450B - 基于结构光的场景深度检测方法及系统 - Google Patents
基于结构光的场景深度检测方法及系统 Download PDFInfo
- Publication number
- CN113188450B CN113188450B CN202110441484.3A CN202110441484A CN113188450B CN 113188450 B CN113188450 B CN 113188450B CN 202110441484 A CN202110441484 A CN 202110441484A CN 113188450 B CN113188450 B CN 113188450B
- Authority
- CN
- China
- Prior art keywords
- image
- structured light
- pattern
- coding
- axis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/02—Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及机器视觉技术领域,公开了一种基于结构光的场景深度检测方法及系统,包括:步骤一,采用结构光编码方法形成结构光图案,该结构光图案沿x轴方向是一种伪随机序列编码图案,该结构光编码图案沿Y轴方向是周期图案;步骤二,通过结构光图案对摄像机拍摄图像进行二值化;步骤三,沿着投影仪Y轴的投影方向上将结构光编码图案进行逐像素上下平移,并记录每次平移时图像差异的绝对值;步骤四,找到图像差异的波谷;通过图像差异的波谷计算信号的周期;步骤五,根据周期和编码图案的关系确定神经网络识别器的输入图像尺寸;步骤六,根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,能够利用结构光进行场景深度检测。
Description
技术领域
本发明涉及机器视觉领域,具体涉及一种基于结构光的场景深度检测方法及系统。
背景技术
视觉是人观察世界认识世界的重要手段。随着信息技术的发展,我们期望给予计算机以人类视觉的功能。虽然随着摄像技术的进步,计算机所能获取的图像清晰度已经超过人眼,但是计算机还未能像生物一样高效、灵活地使用视觉。从20世纪50年代以来,视觉理论和技术得到了迅速发展,这使计算机像人类一样高效的使用视觉分析世界成为可能。
机器视觉,即采用机器代替人眼来做测量和判断。现有的机器视觉系统主要包括:图像的采集、图像的处理和分析,以及输出和显示三部分。主要设备和工具有光源、镜头、相机、摄像机、图像采集卡以及视觉处理软件。在各种设备和工具没有大的改进的前提下,相比于图像的采集,图像的处理和分析显得尤为重要。对于图像的平面信息处理和分析技术已经经过了较长的一段时间,变得较为完善,然而,对于图像的三维信息处理和分析仍然是一个新兴技术领域,而要想机器视觉变得更加灵敏和准确,对于图像的三维信息处理和分析是必须要攻克的难题。
场景深度检测,或者说场景深度感知,是图像由二维平面信息晋升到三维立体信息中必不可少的参数。通过基于结构光的三维深度测量技术可以较为准确地获取景深信息。
相比于现在常用的双目立体摄像头方法,结构光方法更加稳定可靠、不受物体表面本身的纹理特性影响的优点。相比于TOF(Time of Flight)方式,结构光方法具有测量精度高、不容易受到温度、湿度等因素影响的优点。
结构光方法的本质是一种几何三角测量方法,其技术难点在于如何通过一幅或多幅精心设计的编码图案快速、高效地完成图像配准。根据一次景深测量中投射的编码图案数量的不同,结构光三维测量方法可以分为多帧结构光测量方和单帧结构光测量方法两大类。多帧结构光编码方法顺序投射多幅编码图像,通过二分搜索法完成图像配准,因此能实现全分辨率的景深测量。但是多帧结构光编码方法在测量景深时要求场景不能移动,因此这种方法不适用于动态场景测量。单帧结构光测量方法只投射单幅编码图像,通过每个点邻域的编码信息完成图像配准,这种方法非常适合动态三维测量。
尽管单帧结构光测量方法具有上述优点,但是现有单帧结构光测量方法的精度、稳定性、空间分辨、编码量等方面尚有不足。上述问题主要是由标定和特征检测两个方面的原因引起的。
发明内容
本发明的目的在于提供一种基于结构光的场景深度检测方法,以解决现有场景深度检测方法不适用于动态图像的情况。
本发明提供的基础方案为:基于结构光的场景深度检测方法,包括以下步骤:
步骤一,采用结构光编码方法形成结构光图案,该结构光图案沿x轴方向是一种伪随机序列编码图案,该结构光编码图案沿Y轴方向是周期图案;
步骤二,通过结构光图案对摄像机拍摄图像进行二值化;
步骤三,沿着投影仪Y轴的投影方向上将结构光编码图案进行逐像素上下平移,并记录每次平移时图像差异的绝对值;
步骤四,找到图像差异的波谷;通过图像差异的波谷计算信号的周期;
步骤五,根据周期和编码图案的关系确定神经网络识别器的输入图像尺寸;
步骤六,根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。
本方法的优点在于:
本方法通过构建逐一像素化的结构光图案,使摄像机拍摄的图像和投影仪呈现的图像都能够按照结构光图案进行一一对应,便于对动态场景进行场景深度检测。
进一步,步骤四中,使用信号处理工具箱中的findpeaks函数找到图像差异的波谷。
便于准确找到图像差异的波谷。
进一步,步骤四中周期以像素为单位。
直接以像素为单位,便于摄像机拍摄图像和投影仪投射图像的匹配对应。
进一步,步骤二中,首先,根据投影仪的分辨率构造横、纵格雷码编码图案;然后,投影仪按顺序将所构造的横、纵格雷码编码图案投射到场景中,摄像机按顺序拍摄投射图案之后的场景;第三步,投影仪投射结构光图案,然后摄像机拍摄投射结构光图案之后的场景;第四步,使用格雷码的解码方法计算摄像机和投影仪图像上的匹配点关系;第五步,对结构光图案,使用周期检测方法计算出Y轴方向的图像周期;第六步,然后根据图像周期计算出解码实际拍摄图像所需的窗口尺寸;第七步,将格雷码方法计算出的匹配点位置作为正确的分类结果并重新通过第五步计算出的窗口大小,训练神经网络分类器。
通过本方法能够准确地将投影仪上投射的图像与结构光图案进行解码匹配对应。
进一步,步骤一中的结构光编码方法形成的结构光编码图案,其Y轴上的周期大小与X轴上的伪随机序列的编码窗口尺寸成正比。
进一步,步骤一中的结构光编码方法,采用柱状图形分别形成彼此之间没有间隙的编码图元和相位图元;编码图元和相位图元均由A颜色和B颜色组成。
相比于现有的结构光编码方法,本方案只采取两种颜色分别组成编码单元和相位单元,能够形成一种二值化、逐像素、单幅图像、支持大编码量的结构光编解码方法,有效克服了现有结构光编码方法的不足。
方便快速形成编码图元。
进一步,在形成相位图元的时候,采用与编码图元大小相同的柱状图形,相位图元中A颜色和B颜色的比例与([k/2]):(k-[k/2])不同。
使形成的编码图元和相位图元都是由A颜色和B颜色组成的方块像素图,便于后面的场景应用。
便于通过编码图元形成基本编码结构。
本发明还提供一种基于结构光的场景深度检测系统,包括
结构光编码生成模块,用来生成结构光图案,该结构光图案沿x轴方向是一种伪随机序列编码图案,该结构光编码图案沿Y轴方向是周期图案;
周期计算模块,用来通过结构光图案对摄像机拍摄图像进行二值化;用来沿着投影仪Y轴的投影方向上将结构光编码图案进行逐像素上下平移,并记录每次平移时图像差异的绝对值;用来通过图像差异的绝对值找到图像差异的波谷;通过图像差异的波谷计算信号的周期;
图像校正模块,用来根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。
本系统的优点在于:
能够根据生成特殊的结构光图案,将摄像机拍摄图像和投影仪投射图像进行匹配和校正,便于对拍摄图像的校正和场景深度检测,使作为机器视觉前端的图像采集和中端的图像处理分析能力都能得到显著提升。
附图说明
图1为本发明实施例一的结构光编码图案带网格线的原理图。
图2为本发明实施例一的结构光编码图案实际投影时使用的图案。
图3为图1和图2中使用的11种基本图形元素。
图4为本发明实施例一的结构光编码图案的局部图案。
图5为图4向下平移一个单位后的结构光编码图案的局部图案。
图6为图3最右边的相位图元加入到图4左侧后形成的结构光编码图案的局部图案。
图7为图6向下平移一个单位后的结构光编码图案的局部图案。
图8为图6扩展窗口的结构光编码图案的局部图案。
图9为图7扩展窗口的结构光编码图案的局部图案。
图10为本发明实施例一的神经网络识别器。
图11为本发明实施例二前5行编码图案带网格线的原理图。
图12为本发明实施例二中结构光图案安装使用示意图。
具体实施方式
下面通过具体实施方式进一步详细的说明:
实施例一
本实施例中的基于结构光的场景深度检测系统和检测方法均依赖于特殊的结构光编码和解码。
本实施例中的基于结构光的场景深度检测系统,包括
结构光编码生成模块,用来生成结构光图案,该结构光图案沿x轴方向是一种伪随机序列编码图案,该结构光编码图案沿Y轴方向是周期图案;
周期计算模块,用来通过结构光图案对摄像机拍摄图像进行二值化;用来沿着投影仪Y轴的投影方向上将结构光编码图案进行逐像素上下平移,并记录每次平移时图像差异的绝对值;用来通过图像差异的绝对值找到图像差异的波谷;通过图像差异的波谷计算信号的周期;
图像校正模块,用来根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。
基于该系统,基于结构光的场景深度检测方法,包括以下步骤:
步骤一,采用结构光编码方法形成结构光图案,该结构光图案沿x轴方向是一种伪随机序列编码图案,该结构光编码图案沿Y轴方向是周期图案;
步骤二,通过结构光图案对摄像机拍摄图像进行二值化;
步骤三,沿着投影仪Y轴的投影方向上将结构光编码图案进行逐像素上下平移,并记录每次平移时图像差异的绝对值;
步骤四,使用信号处理工具箱中的findpeaks函数找到图像差异的波谷;通过图像差异的波谷计算信号的周期;其中,周期以像素为单位,便于摄像机拍摄图像和投影仪投射图像的匹配对应;
步骤五,根据周期和编码图案的关系确定神经网络识别器的输入图像尺寸;
步骤六,根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。
本方法通过构建逐一像素化的结构光图案,使摄像机拍摄的图像和投影仪呈现的图像都能够按照结构光图案进行一一对应,便于对动态场景进行场景深度检测。
步骤二中,首先,根据投影仪的分辨率构造横、纵格雷码编码图案;然后,投影仪按顺序将所构造的横、纵格雷码编码图案投射到场景中,摄像机按顺序拍摄投射图案之后的场景;第三步,投影仪投射结构光图案,然后摄像机拍摄投射结构光图案之后的场景;第四步,使用格雷码的解码方法计算摄像机和投影仪图像上的匹配点关系;第五步,对结构光图案,使用周期检测方法计算出Y轴方向的图像周期;第六步,然后根据图像周期计算出解码实际拍摄图像所需的窗口尺寸;第七步,将格雷码方法计算出的匹配点位置作为正确的分类结果并重新通过第五步计算出的窗口大小,训练神经网络分类器。通过本方法能够准确地将投影仪上投射的图像与结构光图案进行解码匹配对应。
其中,步骤一中的结构光编码方法形成的结构光编码图案,其Y轴上的周期大小与X轴上的伪随机序列的编码窗口尺寸成正比。
如图1所示,本实施例中检测的结构光编码是按照单幅图像、二值化、高密度、编码列数多、不需要额外标定图案的结构光编解码方法形成的。结构光编码时,采用柱状图形分别形成彼此之间没有间隙的编码图元和相位图元;编码图元和相位图元均由A颜色和B颜色组成。本实施例中,A颜色为黑颜色,B颜色为白颜色。
在形成编码图元的时候,先将柱状图形等分成K份,然后按照排列组合的方式将份区域填充A颜色,将剩下的区域填充B颜色,从而构造出种编码图元,其中为整数。符号表示对数字K/2取整、符号是排列组合数的表示符号。本实施例中选择k =5,柱状图形等分成5份,每一份占一行,=2,有种编码图元。
在形成相位图元的时候,采用与编码图元大小相同的柱状图形,相位图元中A颜色和B颜色的比例与([k/2]):(k-[k/2])不同,即本实施例相位图元中黑颜色和白颜色的比例与2:3不同。
种编码图元与伪随机序列中的种编码字符一一对应,并将编码图元按照伪随机序列中对应字符的顺序排列成基本编码结构,其中伪随机序列的窗口大小为M。本实施例中,=10种编码图元与伪随机序列中的=10种编码字符一一对应,并将编码图元按照伪随机序列中对应字符的顺序排列成基本编码结构,其中伪随机序列的窗口大小为M=5。
按照每隔M=5个编码图元插入一个相位图元的方式,在基本编码结构中插入相位图元,进而构造出结构光编码图案的前5行(这里的5与k=5对应)。
采用以上编码方法得到的用于深度检测的结构光编码装置,能够永安里进行结构光编码。用于深度检测的结构光编码装置,包括编码单元确定模块、编码序列生成模块和结构光编码模块。
编码单元确定模块,用来先将柱状图形等分成K份,然后按照排列组合的方式将份区域填充A颜色,将剩下的区域填充B颜色,从而构造出种编码图元;然后采用与编码图元大小相同的柱状图形形成相位图元,相位图元中A颜色和B颜色的比例与([k/2]):(k-[k/2])不同;
编码序列生成模块,用来将编码图元按照伪随机序列中对应字符的顺序排列成基本编码结构,其中伪随机序列的窗口大小为M;
结构光编码模块,按照每隔M个编码图元插入一个相位图元的方式,在基本编码结构中插入相位图元,进而构造出结构光编码图案的前k行;复制并填充前k行的结构光编码图案到编从第到第行中,构造出编码图案的逻辑结构图。
本实施例中选择k=5进行编码,结构光编码的前5行使用+1=+1种互不相同的、有限长度的二值化条纹作为编码图案的构图图元,每种二值化条纹都由两种不同的颜色构成。在本实施例中,的计算结果为10,即本实施例使用+1=11种互不相同的、有限长度的二值化条纹作为编码图案的构图图元。本实施例使用“黑颜色”和“白颜色”表示二值化条纹中的两种颜色,则使用的+1种二值化条纹中,前种条纹黑颜色和白颜色的比例相同,但黑颜色和白颜色在条纹中的分布位置不同。在该编码方法使用的前种二值化条纹中,黑颜色的比例为:,白颜色的比例为:1-,即黑颜色比白颜色为(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时,使用=10个编码字符生成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=11种基本元素(构图图元),每种基本元素对应1种编码字符。前=10种编码符号作为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的像素进行编码。
我们使用数字投影仪训练神经网络识别器,然后使用基于棋盘格的结构光系统标定方法标定摄像机——投影仪系统。使用训练出的神经网络识别器识别出摄像机拍摄图像上每个像素点在编码图案中对应的列编号。最后,通过结构光系统的标定参数和识别出的列编号计算出深度图。
我们基于1920x1080P的数字投影仪和摄像机搭建了一套实验系统,用于论证我们提出的编解码方法。此外,我们还准备了一台胶片投影仪、一个2W的LED光源、一个棋盘格标定板来验证我们的编解码方法。
我们将使用数字投影仪训练神经网络识别器,然后使用基于棋盘格的结构光系统标定方法标定摄像机——投影仪系统。系统调试完毕之后,我们将分别基于数字投影仪和胶片投影仪测试我们所提出的编解码方法的测量精度。测量精度的度量包括:①扫描平面并测量平面的平整度;②扫描多个球体并拟合球体的半径,通过拟合半径与真实半径的差异来评价系统的测量精度;③扫描带颜色的复杂场景并评估编解码方法的鲁棒性;④测试编解码方法在1920x1080P系统上的最大实用分辨率。
通过循环神经网络处理变长输入的自动编码机。这种自动编码机使用一个以上自增的超级参数记录输入次数,并且使用某些与点云计算相关的结构化处理单元作为超级参数。使用时需要先将自增的超级参数归零,然后一次一个地输入点云数据,截取中间层的输出作为点云特征,并以最后的输出层作为拟合误差。使用超参的目的是为了让循环神经网络符合某种预定的规则,并且具有一定的可解释性。
本实施例的卷积神经网络具有图10所示的结构。它具有个输入缓存,同时具有个输出单元。当输入点的数量小于等于时,神经网络的输出等于输入。当输入点的数量大于时,输出层点云为均匀分布位置或者某种预设位置的点云,输出层是输入点云经过某种插值和采样之后的结果。
为了使神经网络能够拟合各种复杂曲面,我们拟将参数曲面离散化,然后将离散化之后的点作为输入,让神经网络生成预设位置的输出点。然后把预设位置的输出点投影到参数曲面上,并计算误差,最后通过误差和偏导数修改神经网络的权重。训练完成之后截取中间层的输出作为点云特征。
除了现有的神经元总类外,还可以将除法运算、乘方运算、欧式距离加入到神经网络中,我们基于TensorFlow2.0实现了一种可以进行乘方的神经元,当乘方的系数为-1时,该神经元可以完成除法功能。我们设计这种神经元的目的在于:有一些诸如将3D点投影到2D图像上的特定的应用,需要使用除法才能办到。在进行统计的时候,可能需要使用除法,因此,我们将乘方神经元加入到神经网络中,以提增加神经网络能够完成的任务种类。除了乘方的神经元外,我们还基于TensorFlow2.0实现了欧式距离神经元,虽然在大多数时候基于余弦距离的神经元已经能够取得很好的效果,但是欧式距离的偏导数在一些特定的场合能加快收敛速度。
该神经网络在对点云进行处理时,可以把已经输入过的点云再次输入,这不影响中间层所提取的特征。这种把点云中的点多次输入到神经网络中进行处理(而不是训练)的计算方法在神经网络的点云应用中属于开创性研究。
实施例二
本实施例中,窗口大小M的取值为3,k的取值为5,在这种情况下,神经网络识别器的输入图形是正方形,这样能够使构造出来的结构光编码的信息含量更加恰当。
当k的取值为5时,可以根据权利要求6、权利要求7、权利要求8中的方法构造出=10种编码图元和1种相位图元,每种柱状图元占用5个像素,所构造的11种图元如图3所示。当M=3、编码图元数量为10的时候,现有算法所构造出的deBruijn序列(即伪随机序列)的长度为1000。生成伪随机序列之后,按照权利要求9中的方法构造出结构光编码图案。本实施例所构建的结构光编码图案的部分原理图如图11所示。图11仅为本实施例原理图的一部分,本实施例原理图的完整大小是1333×768。
如图12所示,将构建好的结构光编码图案打印到透明PVC介质上,并将PVC介质粘贴到透明塑料片上,然后将贴有编码图案的透明塑料片安装到结构光系统的投射装置中。
将编码图案安装到投射装置中之后,通过投射装置的内置光源将编码图案投射到物体表面,然后使用结构光系统中的摄像机拍摄一幅整个场景的图像。拍摄完成之后,即可使用软件算法计算出整个场景的深度图。计算深度图时,首先使用OTSU算法将摄像机拍摄的图像进行二值化,然后沿着投影仪Y轴的投影方向上进行逐像素上下平移并记录每次平移时图像差异的绝对值。接着使用信号处理工具箱中的findpeaks函数找到图像差异的波谷,并通过图像差异的波谷计算信号的周期(周期以像素为单位)。计算出信号的周期之后,根据周期和编码图案的关系确定神经网络识别器的输入图像尺寸(即需要在摄像机拍摄的图像上截取多大的图像作为神经网络识别器的输入)。输入图像的尺寸确定之后,根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。确定了摄像机拍摄图像上每个像素点在编码图案中的对应位置之后,即可通过结构光系统的标定参数计算处深度图。结构光系统的标定参数通过论文《A Pattern and Calibration Methodfor SinglePattern Structured Light System》中的方法和步骤进行计算。
在本实施例中,训练神经网络识别器时,将图12中右侧的胶片投影仪替换为数字投影仪,并将24张横向格雷码结构光图像、20张纵向格雷码图像、一张通过本专利方法生成的结构光编码图像存储在数字投影仪的存储卡中。数字投影仪按顺序投影45张结构光编码图像,数字投影仪每投影一幅图像,摄像机就拍摄一次。在拍摄的过程中,场景中的物体不能移动、结构光系统与场景的相对位置不能发生变化。45张图像拍摄完成之后,改变结构光系统与场景的相对位置,然后再次采集数据,多次采集数据之后即可通过采集的数据制作神经网络解码器。本实施例所使用的格雷码图像包含原本的格雷码取反之后的图像,进行格雷码解码时通过投影正、反两幅格雷码图像进行差分二值化。本实施例通过横、纵格雷码结构光图像计算出摄像机图像点和结构光编码图案上点的对应关系,并将计算出的这种对应关系作为神经网络的训练目标。摄像机图像点和结构光编码图案上点的对应关系确定后,即可通过上、下匹配点的横、纵坐标差确定投影仪Y轴投影方向的平均值。当神经网络的训练目标确定之后,即可使用前述的步骤三、四、五步计算出摄像机拍摄的最后一幅图像(即构建的结构光编码图像)上每个像素点在Y轴投影方向上的信号周期,并通过信号周期确定每个像素点位置神经网络识别器的输入图像尺寸。输入图像尺寸确定后,根据每个像素点位置的输入图像尺寸,将摄像机拍摄的最后一幅图像上提取出对应大小的图像作为神经网络识别器的输入,并将格雷码结构光图像的解码结果作为神经网络应当输出的结果,使用神经网络训练算法计算神经网络识别器中各参数的值。
神经网络识别器训练完成之后,即可使用胶片投影机和一张打印的结构光图像替代数字投影仪,然后使用论文《A Pattern and Calibration Method for SinglePatternStructured Light System》中的方法标定图12所示的胶片式结构光系统。在计算深度图的时候只需要将本专利方法所构建的结构光图像投射到场景中,然后拍摄一幅图像,即可计算出深度图。由于只需要拍摄一幅图像,所以本专利方法不需要使用昂贵的高速摄像机和投影同步装置,也不需要使用透光率较低的液晶片。本实施例方法具有成本低、易于实施、功耗低等优点。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
Claims (10)
1.基于结构光的场景深度检测方法,其特征在于,包括以下步骤:
步骤一,采用结构光编码方法形成结构光图案,该结构光图案沿x轴方向是一种伪随机序列编码图案,该结构光编码图案沿Y轴方向是周期图案;
步骤二,通过结构光图案对摄像机拍摄图像进行二值化;
步骤三,沿着投影仪Y轴的投影方向上将结构光编码图案进行逐像素上下平移,并记录每次平移时图像差异的绝对值;
步骤四,找到图像差异的波谷;通过图像差异的波谷计算信号的周期;
步骤五,根据周期和编码图案的关系确定神经网络识别器的输入图像尺寸;
步骤六,根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。
2.根据权利要求1所述的基于结构光的场景深度检测方法,其特征在于,步骤四中,使用信号处理工具箱中的findpeaks函数找到图像差异的波谷。
3.根据权利要求1所述的基于结构光的场景深度检测方法,其特征在于,步骤四中周期以像素为单位。
4.根据权利要求1所述的基于结构光的场景深度检测方法,其特征在于,步骤二中,首先,根据投影仪的分辨率构造横、纵格雷码编码图案;然后,投影仪按顺序将所构造的横、纵格雷码编码图案投射到场景中,摄像机按顺序拍摄投射图案之后的场景;第三步,投影仪投射结构光图案,然后摄像机拍摄投射结构光图案之后的场景;第四步,使用格雷码的解码方法计算摄像机和投影仪图像上的匹配点关系;第五步,对结构光图案,使用周期检测方法计算出Y轴方向的图像周期;第六步,然后根据图像周期计算出解码实际拍摄图像所需的窗口尺寸;第七步,将格雷码方法计算出的匹配点位置作为正确的分类结果并重新通过第五步计算出的窗口大小,训练神经网络分类器。
5.根据权利要求1所述的基于结构光的场景深度检测方法,其特征在于,步骤一中的结构光编码方法形成的结构光编码图案,其Y轴上的周期大小与X轴上的伪随机序列的编码窗口尺寸成正比。
6.根据权利要求1所述的基于结构光的场景深度检测方法,其特征在于,步骤一中的结构光编码方法,采用柱状图形分别形成彼此之间没有间隙的编码图元和相位图元;编码图元和相位图元均由A颜色和B颜色组成。
8.根据权利要求7所述的基于结构光的场景深度检测方法,其特征在于,在形成相位图元的时候,采用与编码图元大小相同的柱状图形,相位图元中A颜色和B颜色的比例与([k/2]):(k-[k/2])不同。
10.基于结构光的场景深度检测系统,其特征在于,包括
结构光编码生成模块,用来生成结构光图案,该结构光图案沿x轴方向是一种伪随机序列编码图案,该结构光编码图案沿Y轴方向是周期图案;
周期计算模块,用来通过结构光图案对摄像机拍摄图像进行二值化;用来沿着投影仪Y轴的投影方向上将结构光编码图案进行逐像素上下平移,并记录每次平移时图像差异的绝对值;用来通过图像差异的绝对值找到图像差异的波谷;通过图像差异的波谷计算信号的周期;
根据周期和编码图案的关系确定神经网络识别器的输入图像尺寸;
图像校正模块,用来根据投影仪X轴和Y轴的投影方向对摄像机拍摄的局部图像进行校正,然后以摄像机图像上的每个像素点为中心,按照输入图像尺寸截取图像并识别其在编码图案中的对应位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110441484.3A CN113188450B (zh) | 2021-04-23 | 2021-04-23 | 基于结构光的场景深度检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110441484.3A CN113188450B (zh) | 2021-04-23 | 2021-04-23 | 基于结构光的场景深度检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113188450A CN113188450A (zh) | 2021-07-30 |
CN113188450B true CN113188450B (zh) | 2023-03-14 |
Family
ID=76978108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110441484.3A Active CN113188450B (zh) | 2021-04-23 | 2021-04-23 | 基于结构光的场景深度检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113188450B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202093311U (zh) * | 2011-05-19 | 2011-12-28 | 封泽希 | 4目摄像机阵列系统 |
CN103047943A (zh) * | 2012-12-31 | 2013-04-17 | 吉林大学 | 基于单投射编码结构光的车门外板形状尺寸检测方法 |
CN103400366A (zh) * | 2013-07-03 | 2013-11-20 | 西安电子科技大学 | 基于条纹结构光的动态场景深度获取方法 |
CN104380033A (zh) * | 2012-06-07 | 2015-02-25 | 法罗技术股份有限公司 | 具有可拆卸附件的坐标测量机 |
CN104408732A (zh) * | 2014-12-10 | 2015-03-11 | 东北大学 | 一种基于全向结构光的大视场深度测量系统及方法 |
CN109191562A (zh) * | 2018-07-15 | 2019-01-11 | 黑龙江科技大学 | 基于彩色伪随机编码结构光的三维重建方法 |
CN110891471A (zh) * | 2018-03-21 | 2020-03-17 | 卡普索影像公司 | 采用结构光提供生理特征尺寸测量的内窥镜 |
WO2020168094A1 (en) * | 2019-02-15 | 2020-08-20 | Nikon Corporation | Simultaneous depth profile and spectral measurement |
CN111947601A (zh) * | 2020-08-12 | 2020-11-17 | 上海科技大学 | 一种灰度伪随机编码结构光条纹的投影解算方法 |
CN112562059A (zh) * | 2020-11-24 | 2021-03-26 | 革点科技(深圳)有限公司 | 一种自动化结构光图案设计方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9769454B2 (en) * | 2014-06-20 | 2017-09-19 | Stmicroelectronics S.R.L. | Method for generating a depth map, related system and computer program product |
US9916524B2 (en) * | 2016-02-17 | 2018-03-13 | Microsoft Technology Licensing, Llc | Determining depth from structured light using trained classifiers |
US11449061B2 (en) * | 2016-02-29 | 2022-09-20 | AI Incorporated | Obstacle recognition method for autonomous robots |
US10916023B2 (en) * | 2018-09-14 | 2021-02-09 | Facebook Technologies, Llc | Depth measurement assembly with a structured light source and a time of flight camera |
-
2021
- 2021-04-23 CN CN202110441484.3A patent/CN113188450B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202093311U (zh) * | 2011-05-19 | 2011-12-28 | 封泽希 | 4目摄像机阵列系统 |
CN104380033A (zh) * | 2012-06-07 | 2015-02-25 | 法罗技术股份有限公司 | 具有可拆卸附件的坐标测量机 |
CN103047943A (zh) * | 2012-12-31 | 2013-04-17 | 吉林大学 | 基于单投射编码结构光的车门外板形状尺寸检测方法 |
CN103400366A (zh) * | 2013-07-03 | 2013-11-20 | 西安电子科技大学 | 基于条纹结构光的动态场景深度获取方法 |
CN104408732A (zh) * | 2014-12-10 | 2015-03-11 | 东北大学 | 一种基于全向结构光的大视场深度测量系统及方法 |
CN110891471A (zh) * | 2018-03-21 | 2020-03-17 | 卡普索影像公司 | 采用结构光提供生理特征尺寸测量的内窥镜 |
CN109191562A (zh) * | 2018-07-15 | 2019-01-11 | 黑龙江科技大学 | 基于彩色伪随机编码结构光的三维重建方法 |
WO2020168094A1 (en) * | 2019-02-15 | 2020-08-20 | Nikon Corporation | Simultaneous depth profile and spectral measurement |
CN111947601A (zh) * | 2020-08-12 | 2020-11-17 | 上海科技大学 | 一种灰度伪随机编码结构光条纹的投影解算方法 |
CN112562059A (zh) * | 2020-11-24 | 2021-03-26 | 革点科技(深圳)有限公司 | 一种自动化结构光图案设计方法 |
Non-Patent Citations (4)
Title |
---|
基于4目阵列的计算机视觉三维重建算法;封泽希;《计算机应用》;20110401;1043-1046 * |
基于二值几何编码图案的高精度结构光系统参数标定方法研究;曾海等;《集成技术》;20180209(第02期);全文 * |
基于伪随机阵列和正弦光栅的结构光标定;王静强等;《计算机应用与软件》;20171215(第12期);全文 * |
基于彩色伪随机编码结构光特征提取方法;王国新;《山东大学学报(工学版)》;20180913;55-60 * |
Also Published As
Publication number | Publication date |
---|---|
CN113188450A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540576B1 (en) | Panoramic camera systems | |
Jeon et al. | Depth from a light field image with learning-based matching costs | |
CN103400366B (zh) | 基于条纹结构光的动态场景深度获取方法 | |
CN104197861B (zh) | 基于结构光灰度向量的三维数字成像方法 | |
WO2018219156A1 (zh) | 结构光编码方法、装置及终端设备 | |
CN101794461A (zh) | 一种三维建模方法及系统 | |
CN109540023A (zh) | 基于二值网格编码模板结构光的物体表面深度值测量方法 | |
CN110033483A (zh) | 基于dcnn深度图生成方法及系统 | |
CN110533774A (zh) | 一种基于智能手机的三维模型重建方法 | |
JP5731059B1 (ja) | 仮想三次元コード及びその読み取り方法 | |
Ravanelli et al. | A high-resolution photogrammetric workflow based on focus stacking for the 3D modeling of small Aegean inscriptions | |
Wijenayake et al. | Dual pseudorandom array technique for error correction and hole filling of color structured-light three-dimensional scanning | |
CN108895979B (zh) | 线段编码的结构光深度获取方法 | |
CN116745812A (zh) | 提供校准数据以校准相机的方法、校准相机的方法、制造至少一个预定义点对称区域的方法和设备 | |
CN113469964A (zh) | 一种基于双目ccd成像的气泡测量方法、装置及系统 | |
CN113188450B (zh) | 基于结构光的场景深度检测方法及系统 | |
KR20170047780A (ko) | 적응적 윈도우 마스크를 이용하는 로우 코스트 계산장치 및 그 방법 | |
Garbat et al. | Structured light camera calibration | |
CN113405461B (zh) | 用于深度检测的结构光编码、解码方法及编码、解码装置 | |
CN111307069B (zh) | 一种密集平行线结构光三维扫描方法与系统 | |
CN110619677B (zh) | 三维流场内粒子重构方法及装置、电子设备及存储介质 | |
Saveljev et al. | Reference functions for synthesis and analysis of multiview and integral images | |
CN105894068A (zh) | Fpar卡设计与快速识别定位方法 | |
Farsangi et al. | P‐49: Student Poster: Efficient Direct‐Block‐Address Encoding for Single‐Shot‐Based 3D Reconstruction | |
CN104751177B (zh) | 一种用于标识数字图像中给定模糊数字直线段的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |