基于视频摄像设备的物体图像深度重构装置及其投影装置
技术领域
本发明涉及一种物体图像处理装置,尤其涉及一种基于视频摄像设备的物体图像深度重构装置及其投影装置。
背景技术
人类在用双眼观察物体时,会有深度或远近的感觉,其原理就是两个眼睛从不同的方向获取同一物体的图像,人的大脑再对视网膜获取的两幅图像进行匹配处理,重建出物体的三维形状和位置。计算机视觉技术在近年逐渐得到重视,该技术的目的就是使计算机具备人眼的功能,也就是指使计算机具有通过一幅或多幅图像认知周围环境信息的能力。
模拟人脸双眼的立体视觉则是计算机视觉技术中最难的一个方法,目的是由计算机通过两幅或多幅两维图像恢复物体的三维几何形状。
学术界立体视觉的研究工作已经开展多年,但完全模拟人眼的双目立体视觉的研究工作进展很慢,下面结合图1简要说明一下双目立体视觉的基本原理。
参照图1所示,双目立体视觉是由两个摄像机C1和C2实现。对于空间物体表面任意一点P,如果用C1摄像机观察,看到它在C1摄像机的图像点位于p1,如果用C2摄像机观察,其在C2摄像机的图像点位于p2。由于两幅图像中这两点对应着空间的同一点P。设O1和O2分别为C1和C2两个摄像机的光心,则空间点P既位于O1p1连线上的某一位置,又在O2p2连线,即该点是O1p1和O2p2两条直线的交点,它的三维位置是唯一确定的。这就是立体视觉的基本原理。
从这个基本原理可以看出,如果已知了两个摄像机的成像参数,即摄像机的投影矩阵,表示摄像机从3D射影空间即真实立体空间到2D射影平面 即成像平面的线性射影变换,并在两个摄像机拍摄图像的各个点之间建立对应关系,即为其中一幅图中一个点搜索其在另一幅图中的对应点,这两点对应的是3D空间中的同一点,这样就可以重构场景中该点的3D坐标。但由计算机在两幅图像中自动搜索对应点,建立对应关系这个问题非常困难,在一般情况下根本就是不可解的。因此,从实际场景的拍摄图像中直接提取3D形状极为困难,所以,如何通过一个中间的媒介,然后通过2D图像获得该图像中各个点的深度信息,并进而由该深度信息与2D图像相结合得到物面的3D坐标成为解决问题的一个突破点。有研究人员提出了一种实现了图像深度信息重构的设想,称为基于结构光编码的深度重构方法。
基于结构光编码的深度重构方法的基本原理与双目立体视觉是一致的,只是双目立体视觉是由两个摄像头实现,而基于结构光编码的深度重构方法,其设备中一个摄像头由投影光路代替。这类方法采用主动距离成像的方式,用一个光源代替一个摄像机,也就是人类立体视觉中的一只眼睛,将编码图像投影在物体上,光源旁边的一个摄像机则代表人脸立体视觉中另一只眼睛,对物体进行成像,同时获取物面上的编码图像,称为成像图像。利用3D立体视觉中摄像头与光源之间的焦距、标定参数、位置关系,以及拍摄图像中编码图像的解码结果等数据即可确定物体上各点的深度信息。
这样,要想获得较准确的深度信息,就必须对成像图像进行解码,找出成像图像中各点与编码图像的对应关系,而由于编码图像投影到物面的位置是已知的,找到了这种对应关系,就可以获得物面的深度信息。而为了提高解码精度,对图像进行光编码的方法就变得非常重要,而光编码图像对应着光栅结构,因此可以说如何设置出高效又简单的光栅结构,成为设计人员必须考虑的问题。下面结合图2对现有技术中采用的光栅结构进行说明。
参照图2所示,为现有的光栅结构中子码结构示意图。图中仅示出了两个子码,所示子码表示为M1和M2。由图2可以看出,对每列子码的横向宽度不加以限制,每列子码的区别仅在于:每列子码在横向方向上具有其特有的亮区(即透光部分)与暗区(即不透光部分)的比例。这样,所有的子码就通过亮暗区的比例就加以区分开来,当然,在实际应用中通过改变亮区与暗区的比例就可以设计出多种子码。
现有的光栅结构为:采用图2所示的子码,将每个子码在列向方向上重复排列,进而构成一列子码,多列不同子码共同构成光栅结构。
在这种情况下,通过光源将所述光栅上刻录的编码图像投影到物面上,由于投影后物面深度变化很复杂,物面上的子码的投影条纹(指投影后的每列子码)也会发生形变,而由于各个子码的区别仅在于其横向亮暗区的比例,因此较难做到将变形后的投影条纹与投影前的子码相对应,因而具有解码精度不高的缺陷。
目前市面上存在很多3D深度重构产品,最主要的产品就是激光扫描仪,这类产品大多也采用主动距离成像的方法,只是每次激光只能打到物体的很小区域,要获取物体所有区域的深度,需要对物面进行不断扫描。而实时的可在一帧图像获取物体深度的方法还只在研究论文上看到,而鉴于其在产品实现上的复杂,基本上还没有可在一帧图像获取物体深度的产品出现。
因此,如何设置出高效并且简单的编码装置及图像深度重构装置,并将其在产品上得以实现,对于获取物体图像的深度信息具有十分重要的意义。
发明内容
本发明所要解决的技术问题是提供一种基于视频摄像设备的物体图像深度重构装置及其投影装置,能够获取物体图像上各个区域的深度信息,并具有整个装置结构简单,获取的深度信息更加精确,使用方便的特点。
为了解决上述技术问题,本发明提供了一种基于视频摄像设备的物体图像深度重构装置,所述图像深度重构装置包括:投影装置和深度重构单元;
所述投影装置包括光源及光栅,所述光栅用于刻录编码图像,所述光源用于将光栅上的编码图像投影到物面;所述光栅包括带锯齿的子码结构,所述带锯齿的子码结构不仅在横向上透光部分和不透光部分的比例为一特定值,而且在纵向上透光部分和不透光部分的比例也为一特定值,由两个方向上的比例值唯一的确定一个带锯齿的子码结构;
所述深度重构单元包括图像传感器及解码模块,所述图像传感器对物面上所述编码图像进行成像获得成像图像,所述解码模块对所述成像图像进行 解码后,获取所述物面图像的深度信息。
进一步的,所述图像传感器为近红外光图像传感器。
进一步的,所述装置还包括图像成像单元,所述图像成像单元包括传感器,用于获取物面图像;所述图像成像单元还包括深度集成模块及输出显示模块,所述深度集成模块用于将所述图像深度信息与所述物面图像对应,所述输出显示模块用于将图像深度信息与所述物面图像同时输出。
进一步的,所述光栅还包括不带锯齿的子码结构,所述不带锯齿的子码结构在横向方向上透光部分和不透光部分的比例为一特定值。
进一步的,每个子码在纵向上重复排列构成一列子码,所有列子码在行方向宽度一致。
进一步的,所述光栅由联合码构成,所述联合码由至少两个子码组成,所述联合码具备唯一性。
进一步的,所述联合码的第一个元素由设定子码中的任意一个构成,同时所述联合码中的第二个元素由设定子码中的任意一个构成,以此类推,直至第L个元素由设定子码中的任意一个构成;N为设定的子码个数,L为从N个子码中进行选择构成联合码的元素数,则联合码的个数为NL个。
进一步的,所述光栅由两组重复的联合码组成,并且两组联合码在光栅中心线两侧分布。
为了解决上述技术问题,本发明还提供了一种投影装置,包括光源及光栅,所述光源用于将光栅上的编码图像投影到物面,所述光栅包括带锯齿的子码结构,所述带锯齿的子码结构不仅在横向上透光部分和不透光部分的比例为一特定值,而且在纵向上透光部分和不透光部分的比例也为一特定值,由两个方向上的比例值唯一的确定一个带锯齿的子码结构。
进一步的,所述光栅还包括不带锯齿的子码结构,所述不带锯齿的子码结构在横向上透光部分和不透光部分的比例为一特定值,由该特定值唯一的标识一个子码。
进一步的,所述光栅中每个子码在纵向上重复排列构成一列子码,所有列子码在行方向宽度一致。
进一步的,所述光栅由联合码构成,所述联合码由至少两个子码组成, 所述联合码具备唯一性。
进一步的,所述联合码的第一个元素由设定子码中的任意一个组成,所述联合码中的第二个元素由设定子码中的任意一个组成,以此类推,直至第L个元素由设定子码中的任意一个组成,N为设定的子码个数,L为从N个子码中进行选择构成联合码的元素数,则联合码的个数为NL个。
进一步的,所述光栅由两组重复的联合码组成,并且两组联合码在所述光栅中心线两侧分布。
本发明采用主动成像的方法,将特有的结构光编码复制在光栅上,利用光学投影原理和光源将光栅上的编码信息投射到物面上,通过另一个简单的成像设备如数字摄像头、数字摄像机等对包含了结构光信息的物体进行成像,并结合已知的编码信息对图像进行分析和解码,获取物体上各个区域的深度信息。这样,本发明的装置能够实时用单幅图像获取物体上各个区域的深度信息,并且整个系统结构简单,且稳定可靠,成本低廉,使用非常方便,直接将摄像头对着物体如人脸、人体等即可获取其深度信息。这个系统输出的深度信息有着非常广泛的应用,如自动对焦、基于深度的人脸识别、基于深度的人体动作识别、人脸动画合成、不同深度的图像融合等。
附图说明
图1为双目立体视觉的基本原理示意图。
图2为现有的光栅结构中子码结构示意图。
图3为本发明物体图像深度重构装置的系统框图。
图4A为本发明一实施例的光栅采用的子码结构示意图。
图4B为采用图4A所示的子码进行编码的光栅结构局部示意图。
图5为用投影装置进行投影,本发明的光栅结构所形成的编码示意图。
图6为用投影装置将光栅结构形成的编码投影到物面,用普通摄像头拍摄的图像。
具体实施方式
本发明通过设置出更加容易区分的子码,由所述子码构成光栅结构,并通过将所述光栅应用到深度重构装置的投影装置,从而使通过该光栅投影到物面的光编码图像的各个部分具有更加显著的区别特征,使根据光编码图像进行的解码变得更加容易,从而使获取物体上各个区域的深度信息的精度获得提高。
下面结合附图对本发明的优选实施例进行详细说明。
参照图3所示,为本发明物体图像深度重构装置的系统框图。整个系统分为三部分,包括投影装置10、深度重构单元11以及图像成像模块12。
第一部分是投影装置10,投影装置10包括:光源101,用于发出光线,可以采用可见光,也可以采用非可见光波段的光源,如近红外光等;聚光镜102,安装在光源附近,用于将光源发出的光线聚集起来,投射到光栅上;光栅103,用于刻录结构光编码图像;投影物镜104,用于将光编码图像投影到物面。
投影装置10通过光源101打光,经聚光镜102将光栅103上刻录的结构光编码图像通过投影物镜104投影到物面00;在本实施例中采用柯勒照明方式将光栅103刻录的内容投影到目标物面00上。
第二部分是深度重构单元11,深度重构单元11包括:与光源相对应的图像传感器111,用于对物面00上的编码图像进行成像;当所述光源为近红外光源时,所述图像传感器111为近红外图像传感器;图像预处理模块112,用于对编码图像进行预处理,包括亮度修正、噪声消除等;解码模块113,用于根据已有的编码信息对图像进行解码;深度获取模块114,用于根据事先标定的摄像头参数进行深度的重构,获取图像中各个象素点的深度数据。
深度重构单元11采用与光源相对应的图像传感器111对物面00上的编码图像进行成像,然后由图像预处理模块112对成像图像进行预处理,接着由解码模块113根据已有的编码信息对成像图像进行解码,然后由深度获取模块114根据事先标定的摄像头参数进行深度的重构,获取成像图像中各个象素点的深度数据。
第三部分则是常规的图像成像单元12,图像成像单元12包括:可见光图像传感器121,用于对物体进行拍摄成像;图像处理模块122,用于对拍摄成像后的物面图像做自动曝光、自动白平衡、噪声消除等常规图像处理;深度集成模块123,用于将第二部分的深度获取模块114获取的深度信息与彩色图像对应起来,得到彩色物面图像中各个象素点的深度;输出显示模块124,用于将物面图像中各点的色度和深度同时输出并显示。
图像成像单元12采用可见光图像传感器121对物体进行拍摄成像,并由图像处理模块122做常规图像处理,接着由深度集成模块123将第二部分获取的深度信息与彩色图像对应起来,得到彩色物面图像中各个象素点的深度,最后由输出显示模块124将物面图像中各点的色度和深度同时输出并显示,并有后续系统根据图像的深度信息进行更高层次的处理。
需要说明的是,本发明中深度重构单元11的与光源相对应的图像传感器111必须与光源的波段相对应,如光源是近红外光源,则该传感器需要对近红外波段较敏感。
下面将结合图4A和图4B对本发明的光栅结构进行详细说明。
本发明基于主动距离成像的原理提出了一种非常有效的编码方法,并给出相对应的光栅结构。参照图4A所示,为本发明的光栅结构所对应的子码结构示意图。图4A中给出了四个子码,从上到下,从左至右分别表示为M1,M2,M3,M4。这四个子码采用了非常易解码的二值编码方式,即采用亮暗两类象素组成编码图像。每个子码分别由透光部分(即亮区)和不透光部分(即暗区)构成。
进一步来说,本发明设置了两种比较特别的子码结构,如图中所示的子码M3,M4,在此称之为带锯齿的子码结构。所述带锯齿的子码结构,其透光部分和不透光部分具有以下特点:每个子码不仅在横向方向上具有其特有的亮区与暗区的比例,并且在纵向方向上也具有其特有的亮区与暗区的比例,这样,每个带锯齿的子码结构就通过横向及纵向两个方向上的亮区与暗区比例来唯一识别。与现有的子码结构(如M1,M2所示)相比,具有更加显著的区别特征。
实际上,在实际应用中对不同类子码结构及具体子码数量的确定可以有 多种选择,子码数量也可以为两个以上的任意数,此时只要保证子码结构通过其亮区和暗区的比例安排,来相互区别,使其与其它子码相比,具有唯一性的特征,从而在通过选择的子码构成光栅后,使通过该光栅投影的编码图像的各个部分具有唯一性的特征,以便于解码时对所述编码图像的各个部分进行区分。
图4B为采用图4A所示的子码进行编码的光栅结构局部示意图,给出了由这四个子码组成的8列光栅结构。
在本实施例中,将图4A所示的两种新型的子码结构M3,M4,和现有的子码结构M1,M2相结合,采用四个子码结构构成光栅结构。本实施例的光栅采用列向编码结构,以与现有的将图像数据进行行扫描的图像传感器相适应,当然,实际应用中也可以采用行向编码结构,本发明并未对此加以限定。
如图4B所示,为记录方便,我们将图4B所示的光栅结构中每一列设置一个序号,标记为C1,C2,…,CK,在本实施例中K等于8,各列序号为1、2、3、4、5、6、7、8。
光栅结构的具体构成为:将每个子码在纵向上重复排列,形成一列光栅结构,整个光栅结构由多列子码构成,每个子码纵向上的高度不限定,但要保持所有子码在横向上的宽度一致。如图2B中列1由子码M4构成,列2由子码M3构成,列3由子码M2构成,列4由子码M4构成,列5由子码M1构成,列6由子码M2构成,列7由子码M4构成,列8由子码M2构成。而列1至列8的宽度是一致的。
这样,本实施例的光栅,每列对应一个子码,每列由纵向上重复排列的同一个子码结构组成,整个光栅编码结构由多列相同宽度的子码构成,其只包含了少数子码结构。由于子码数越少,解码精度越高,所以本发明采用的少数的子码结构,可以达到提高解码精度的功效。
由图4B还可以看出,各列码在行方向的宽度完全一致,且都是从亮点(对应到结构上即透光部分)开始,到另一码的亮点结束。基于上述特点,在解码时只需要在成像图像上横向、等距离地找到亮暗分割点,就可以将各个子码区分开来,进而根据各个子码独特的结构特征,将成像图像上的各点 与投影图像上各点对应起来。可以看出,通过采用本发明设计的带锯齿的子码结构和现有的子码结构相结合,可以使各列子码具有更加突出的特征,更容易加以区分识别,可以提高解码精度。
当然,采用本实施例的子码不重复的排列构成光栅结构,则光栅结构仅为四列。图4B示出了采用四个子码进行的一种特殊的编码方法,将在下文中详细描述。
在解码时我们需要在成像图像中确定各个条纹的位置(条纹和编码中的列对应),对该条纹进行解码,确定其对应着原始编码图像中的哪一列,得到该列的序号,这样才能在编码图像与成像图像的各个象素点之间建立对应关系。也就是说成像图像中各个条纹必须具备一个唯一的特征,在获取该条纹的位置,得到该条纹的特征后,根据该唯一性原则即可知道该条纹对应的编码图像的列的序号。
我们在这个实施例中只采用了四个子码,如果只用这四个子码组成特征,则整个光栅由四列子码构成,即只能找到四个唯一性特征,这是远远不够的。
而要通过这少数的几个子码结构来对图像进行区分,则要通过不同列子码结构的组合形成整个光栅结构,且不同子码结构的组合形态满足唯一性原则。在本实施中采用的方法是:构造联合码,每个联合码包括三列子码,具体构造联合码的做法是:在四列子码中任意选取一列子码作为联合码中的第一个元素;在确定第一元素之后,在四列子码中任意选取一列子码作为联合码中的第二个元素;在第一和第二元素确定之后,在四列子码中任意选取一列子码作为联合码中的第三个元素。这样,三列子码组成一个联合码,并在光删结构中,将每个联合码的元素连续布置,各个联合码共同构成了光栅结构。
例如图4B所示的列1、列2、列3构成一个联合码;列2、列3、列4构成一个联合码,依此类推。
当然,在实际应用中由于子码数量的不同,联合码的组成元素数(即组成一个联合码的子码的数量)也可以为不同的数值。设组成一个联合码的元素数,也可以说子码列数为L,设所设定的子码个数为N,则由所述N个子 码中选取L列子码构造出的联合码的个数为:NL个。
本发明的实施例中共采用4个子码,由这4列子码中选取3列构成联合码,即N=4,L=3,此时具备唯一性特征的联合码数等于43=64个,联合码码数达到了64,由64个联合码组成的光栅结构总共包括64列(相邻联合码有重叠的列),投影后形成的编码图像已经可以覆盖场景中的主要目标了。
一般说来,在物体表面深度特征越复杂的区域,编码投影到这个区域后形变程度越大,解码越复杂。由于各列子码的解码都存在一定的不确定性,即子码的识别不会完全准确,因此如果联合码的组成元素数,即每个联合码所包含子码列数L值越大,会导致码数急剧增加,解码的不确定性也越明显。所以L一般不能取太大。但L太小,所能组成的联合码的总数就会过少,各列码宽度不变的情况下,光栅结构投影后形成的编码图像过窄,能覆盖目标面积变小,深度重构效果不好。
基于此考虑,本实施例还提出了一种不加大L,但可将光栅列数翻倍的方法,该方法首先获取4L列编码,接着将这些编码再重复一遍,这样共可以组成2×4L列编码。例如本实施例中当L=3时,光栅列数为128,有128个序号。此时有64对相同的联合码尽管序号不同,但他们的组成元素相同及元素的排列一致,即每个联合码都会出现两次,不过他们一个在光栅结构的中心线的左边,一个在光栅结构的中心线的右边。在投影时只需要尽量将光栅结构的中心线投影到物面的正中央,就可在解码时根据各码的水平坐标进行约束,如某列条纹水平坐标较小,则其解码列序号也会小于4L,如其水平坐标较大,则解码列序号肯定大于4L。由此即可实现整幅图像的解码。
参照图5所示,为用投影装置进行投影,本发明的光栅结构所形成的编码示意图。
通过本发明图3所示的投影装置将图5所示的光栅结构所构成的编码图像投影到物面上后,再用摄像头对物面进行成像。图6显示了用投影装置进行编码投影,用普通摄像头拍摄的图像。
从图6可以看出,随着深度的不同,成像图像中完全垂直的条纹会发生弯曲变形甚至折断,有的地方条纹会变窄,有的地方条纹会变宽,可以说, 对于实际场景中的物体,由于物面深度变化很复杂,物面上的条纹也会变得非常复杂。但由于本发明所设计的光栅结构的子码结构具有区分度高的特点,因而能提高解码精度。
本发明采用列向的结构光编码,根据采集到的成像图像中各列编码的位置与标定数据的差异确定成像图像各个象素点的深度,结合硬件电路实现图像的解码,深度数据的重构不需要依托任何复杂的计算设备如计算机等,完全在硬件中实现,另外,本发明采用两个图像传感器,分别对目标物体和编码投影图像感光。本发明在解码的深度信息与由摄像机拍摄的物面图像的各个点之间建立对应关系,从而获取物面图像中各个点的深度。
与目前已有的3D重构产品相比,本发明可结合普通的光源如近红外光源实现,光源简单可靠,而成像设备只需要一定分辨率的普遍摄像头即可,整个装置简单可靠,成本低廉,使用方便,有着非常广阔的应用前景。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。