一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于单个彩色相机零配准误差彩色3D成像方法及彩色相机与流程

2022-02-20 00:31:21 来源:中国专利 TAG:

基于单个彩色相机零配准误差彩色3d成像方法及彩色相机
技术领域
1.本发明涉及一种基于单个彩色相机的零配准误差彩色3d成像方法及彩色相机。


背景技术:

2.三维重建生成的点云数据广泛应用于逆向工程、文物重建、工厂自动化检测及模具制造等领域。同时,颜色信息也是表述物体的一种重要信息,在分割,分类,物体识别与检测等机器视觉领域也起到越来越重要的作用。因此,如果我们在三维重建的时候,能够获得带有颜色的点云数据,即同时获得被测物体的点云数据和颜色信息,那么我们就能更详细地表达被测物体,从而更好地应用在建模,机器视觉和人工智能等领域。
3.目前,获得带有颜色的点云数据是通过多个不同的图像传感器实现的。其中一个或多个图像传感器用来对被测物体进行三维重建,生成被测物体的3d点云数据;另外的一个或多个图像传感器用来获得被测物体的彩色图片,通过将3d点云数据和彩色图片进行融合或者映射计算,从而得到带有颜色的点云数据。
4.如,kinect通过将来自中间的彩色相机的rgb数据与由左右两侧的红外发射器和红外相机组成的3d结构光深度传感器生成的点云数据融合来获得rgb-d数据(r.a.newcombe,"real-time dense surface mapping and tracking,"ieee ismar,ieee,october 2011(2011))。haomen等利用图片的色调信息实现点云数据和颜色数据的配准(h.men and k.pochiraju,"hue-assisted automatic registration of color point clouds,"journal of computational design and engineering 1,223-232(2014).)。
5.因点云数据和彩色图片数据来自于不同的相机,所以在点云数据和彩色图片数据配准的过程中,无论配准方法多么优秀,都会存在配准误差。并且,该误差的大小也会受到3d相机装配精度和环境等因素的影响。


技术实现要素:

6.本发明的目的是提供一种基于单个彩色相机的零配准误差彩色3d成像方法及彩色相机,能够仅基于单个彩色相机同时生成3d点云和彩色图片,在3d点云和彩色图片配准生成彩色点云过程中,不存在配准误差。解决现有方法在点云数据和彩色图片数据配准过程中存在误差的问题。
7.本发明的技术方案是:
8.一种基于单个彩色相机的零配准误差的彩色3d成像方法,其特殊之处在于,包括以下步骤:
9.步骤1、向被测物体投射一组单色编码结构光;
10.步骤2、采集被测物体反射的结构光彩色图片序列,该序列包括多张结构光彩色图片;
11.步骤3、处理结构光彩色图片序列,分离出结构光红色图片序列,结构光绿色图片序列或结构光蓝色图片序列;
12.步骤4、分别对结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列进行处理,分离出相应背景图片和条纹图片序列;如对于结构光红色图片序列分离出红色背景图片和红色条纹图片序列,对于结构光绿色图片序列分离出绿色背景图片和绿色条纹图片序列,对于结构光蓝色图片序列分离出蓝色背景图片和蓝色条纹图片序列;所述背景图片为彩色相机中结构光投射器关闭时,环境光照射被测物体后,彩色图像传感器中r像素,g像素和b像素获得的图片,所述条纹图片为亮条纹叠加到亮度为0的图片上的图片;
13.步骤5、使用结构光3d重建方法,利用步骤4得到的条纹图片序列计算出被测物体相应的3d点云;
14.步骤6、对步骤4中获得的不同颜色的背景图片进行处理,得到被测物体的彩色图片;
15.步骤7、将得到的被测物体的彩色图片按像素赋值到步骤5计算得到的被测物体的3d点云,得到被测物体的彩色3d点云。
16.进一步地,步骤4中分离出红色背景图片、绿色背景图片及蓝色背景图片的过程均包括以下a步骤、b步骤或c步骤,以分离出红色背景图片为例:
17.a、若结构光红色图片序列中存在相应的原码图片与反码图片,则在结构光红色图片序列中选取相应的原码图片与反码图片,针对同一像素,比较该像素在原码图片和反码图片中的亮度值大小,选取较小亮度值作为红色背景图片中该像素的亮度值,获取彩色图像传感器的所有像素亮度值后,即得到红色背景图片;
18.b、若结构光红色图片序列中不存在相应的原码图片与反码图片,则在结构光红色图片序列中选择n张图片,使得对于彩色图像传感器的任一像素来说,都至少存在一张图片,使得该像素在这张图片中位于暗条纹区域;然后对于所有像素,提取它在所有选取的图片中对应亮度值的最小值,得到红色背景图片,其中n为大于等于2的自然数;
19.c、若利用结构光红色图片序列不能合成红色背景图片(当有些像素在所有图片中均位于亮条纹区域时),或合成的红色背景图片质量较差,则采集结构光投射器关闭,只有环境光照射被测物体时的图片,作为红色背景图片。
20.进一步地,为了降低明暗条纹边缘对背景图片的影响,步骤a中,除选择原码图片和反码图片外,还可以在结构光红色图片序列中选取其余图片,使得对于彩色图像传感器的所有像素来说,都至少存在一张照片,使得任一像素在某一图片中为暗条纹,且非边缘的位置;然后针对同一像素,比较该像素在原码图片、反码图片及选取的某一图片中(该像素位于图片中的暗条纹区域)的亮度值大小,选取最小亮度值作为红色背景图片中该像素的亮度值,获取彩色图像传感器的所有像素亮度值后,即得到红色背景图片。
21.进一步地,步骤4中分离出红色条纹图片序列、绿色条纹图片序列及蓝色条纹图片序列的过程均为下述步骤,以分离出红色条纹图片序列为例:
22.对于结构光红色图片序列的每一张图片,减去红色背景图片,就可以得到红色条纹图片序列。
23.进一步地,步骤6具体为对得到的红色背景图片,绿色背景图片和蓝色背景图片进行isp处理,得到被测物体的彩色图片。
24.进一步地,步骤3具体为:
25.将彩色图像传感器中相邻的4个像素看成一个大像素,得到大像素阵列;在每一个
大像素中分别取出r像素和b像素的亮度值分别组成结构光红色图片序列和结构光蓝色图片序列,将两个g像素的亮度值平均,组成结构光绿色图片序列。
26.进一步地,步骤3还可以为:
27.对于彩色图像传感器阵列中的每一个像素只能采集到红色亮度值,或绿色亮度值,或蓝色亮度值;如果该像素采集到的是红色亮度值,那么它的绿色亮度值和蓝色亮度值就由周围的绿色亮度值和蓝色亮度值插值运算得到,如果该像素采集到的是绿色亮度值,那么它的红色亮度值和蓝色亮度值就由周围的红色亮度值和蓝色亮度值插值运算得到,如果该像素采集到的是蓝色亮度值,那么它的绿色亮度值和红色亮度值就由周围的绿色亮度值和红色亮度值插值运算得到。
28.本发明还提供一种基于单个彩色相机实现零配准误差的彩色3d成像方法的彩色相机,其特殊之处在于:包括编码结构光投影模块、图像接收模块及系统主控模块;
29.上述编码结构光投影模块用于向被测物体投射单色的编码结构光;
30.上述图像接收模块用于采集从被测物体反射的结构光彩色图片序列;
31.上述系统主控模块与编码结构光投影模块及图像接收模块电连接,上述系统主控模块包括存储器与处理器,存储器上存储计算机程序,所述计算机程序被处理器执行时,完成上述步骤3至步骤7的过程。
32.进一步地,上述编码结构光投影模块包括光源、投影结构和编码结构光投影控制系统,光源用于产生单色的光,投影结构用于产生结构光,编码结构光投影控制系统用于控制光源和投影结构,从而产生编码结构光。
33.进一步地,上述编码结构光投影模块可以是mems投影光机或dlp光机等投影系统。
34.进一步地,上述图像接收模块只包含单个彩色图像传感器和与之配套的图像接收光学镜头。
35.本发明的有益效果是:
36.1、本发明利用单个彩色相机对被测物体进行3d建模时,同时生成3d点云数据和彩色图片,由于点云数据和彩色图片是由同一个彩色图像传感器采集的同一组图片计算得到的,所以二者配准时,不存在配准误差。
37.2、本发明提出的零配准误差的彩色3d成像深度相机的成像方法,只需要单个彩色相机就能生成点云数据和彩色图片,降低了摄像头的使用个数,从而降低了生产成本。
附图说明
38.图1为本发明实施例中彩色相机原理示意图;
39.图2为结构光红色图片序列中原码图片与反码图片的示例图,其中(a)为原码图片,(b)为反码图片;
40.图3为结构光红色图片序列中原码图片、该原码图片对应的原码条纹图片及背景图片的相互关系,其中(a)为原码图片,(c)为该原码图片对应的原码条纹图片,(e)为背景图片;
41.图4为结构光红色图片序列中反码图片、该反码图片对应的反码条纹图片及背景图片的相互关系,其中(b)为反码图片,(d)为该反码图片对应的反码条纹图片,(e)为背景图片;
42.图5为原码图片和反码图片生成背景图片的示例;
43.图6为结构光红色图片序列中原码图片、反码图片和结构光红色图片序列中的其他图片生成背景图片的示例,其中(a)为原码图片,(b)为反码图片,(f)为结构光彩色图片序列中的其他图片,(e)为背景图片;
44.图7为结构光红色图片序列中两张非成对原码图片和反码图片的图片生成背景图片的示例,其中(a1)和(a2)分别为结构光彩色图片序列中的两张图片,(e)为背景图片;
45.图8为结构光红色图片序列中的图片、该图片对应的条纹图片及背景图片之间的关系,其中(a)结构光红色图片序列中的图片,(c)为该图片对应的条纹图片,(e)为背景图片;
46.图9为本发明实施例1中彩色图像传感器中的像素阵列的排列方式示意图;
47.图10为彩色图像传感器中红色像素周围的绿色像素和蓝色像素;
48.图11为彩色图像传感器中绿色像素周围的红色像素和蓝色像素;
49.图12为彩色图像传感器中蓝色像素周围的绿色像素和红色像素。
具体实施方式
50.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
51.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
52.其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中或在其他实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
53.本发明基于单个彩色相机的零配准误差的彩色3d成像方法,包括以下步骤:
54.步骤1、向被测物体投射一组编码结构光;
55.步骤2、采集投射到被测物体上的,这组编码结构光的彩色图片序列,该序列包括多张结构光彩色图片;
56.步骤3、处理上述结构光彩色图片序列,分离出结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列;
57.步骤4、分别对结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列进行处理,分离出相应背景图片和条纹图片序列;如对于结构光红色图片序列分离出红色背景图片和红色条纹图片序列,对于结构光绿色图片序列分离出绿色背景图片和绿色条纹图片序列,对于结构光蓝色图片序列分离出蓝色背景图片和蓝色条纹图片序列;背景图片为环境光照射被测物体后,获得的彩色图片,条纹图片为亮条纹叠加到亮度为0的图片上的图片;
58.对于结构光彩色图片序列中的每一张图片,都是由明暗相间的条纹组成的。亮条
纹的区域是激光器照亮的区域,暗条纹是未被激光器照亮的区域,也就是该区域在环境光照射下的彩色图片,这里我们定义为该区域背景图片。所以,对于结构光彩色图片序列中的每一张图片,等效于在被测物体背景图片上叠加了亮条纹。因此,我们定义亮条纹叠加到亮度为0的图片上的图片为条纹图片,那么,对于的结构光彩色图片序列的每一张图片,等效于被测物体背景图片上叠加了一张条纹图片。
59.在结构光3d重建中,结构光彩色图片序列中均包含原码图片和反码图片,原码图片和反码图片是指结构光条纹相位相反的一对图片,即在原码图片中为暗条纹的区域,在反码图片中为亮条纹;而在原码图片中为亮条纹的区域,在反码图片中为暗条纹,如图2所示,以结构光红色图片为例,其中(a)为原码图片,(b)为反码图片。那么原码图片等效于在被测物体背景图片上叠加了一张原码条纹图片,如图3所示。(a)为原码图片,(c)为该原码图片对应的原码条纹图片,(e)为背景图片。反码图片等效于被测物体背景图片上叠加了一张反码条纹图片,如图4所示。(b)为反码图片,(d)为该反码图片对应的反码条纹图片,(e)为背景图片。
60.对于彩色图像传感器的任一像素来说,它被激光器照亮时的亮度一定大于它不被激光器照亮时的亮度。所以只要对比该像素在原码图片和反码图片中的亮度值大小,选取较小的亮度值,就可以得到它没有被激光器照亮时的亮度,也就是它在背景图片上的亮度。因此,如果结构光彩色图片序列中存在相应的原码图片与反码图片,则针对同一像素,比较该像素在原码图片和反码图片中的亮度值大小,选取较小亮度值作为背景图片中该像素的亮度值,获取彩色图像传感器的所有像素亮度值后,就可以得到背景图片。
61.另外,为了降低明暗条纹边缘对背景图片的影响,按像素取最小值计算背景图片时,可以增加一张或几张结构光彩色图片序列的图片,使得对于彩色图像传感器的所有像素来说,都至少存在一张照片,使得该像素在这张图片中为暗条纹,且非边缘的位置。然后针对同一像素,比较该像素在原码图片、反码图片及选取的某一图片中(该像素位于图片中的暗条纹区域)的亮度值大小,选取最小亮度值作为红色背景图片中该像素的亮度值,获取彩色图像传感器的所有像素亮度值后,即得到红色背景图片。如图6所示。(a)为原码图片,(b)为反码图片,(f)为结构光彩色图片序列中的其他图片,(e)为背景图片。
62.如果结构光彩色图片序列中没有亮暗条纹相位相反的图片对,即不存在原码图片对应的反码图片,按像素取最小值计算背景图片时,只需要选择两张或几张结构光彩色图片序列的图片,使得对于彩色图像传感器的所有像素来说,都至少存在一张照片,使得该像素在这张图片中为暗条纹。然后对于所有像素,提取它在所有选取的图片中对应亮度值的最小值,得到红色背景图片,如图7所示。(a1)和(a2)为结构光彩色图片序列中的两张图片,(e)为背景图片。
63.如果结构光彩色图片序列不能合成背景图片,即当有些像素在结构光彩色图片序列中所有图片中均位于亮条纹区域,或者合成的背景图片质量较差时,则只采集环境光照射被测物体时的图片作为背景图片。
64.对于结构光彩色图片序列的每一张图片,减去背景图片,就可以得到相应条纹图片序列。如图8所示,(a)为结构光彩色图片序列中的图片,(c)为该图片对应的条纹图片,(e)为背景图片。
65.步骤5、使用结构光3d重建方法,利用步骤4得到的不同颜色条纹图片序列计算出
被测物体相应的3d点云。
66.步骤6、分别对步骤4中获得的不同颜色的背景图片进行处理,得到被测物体的彩色图图片;
67.步骤7、将得到的被测物体的彩色图片按像素赋值到步骤5计算得到的被测物体的3d点云,得到被测物体的彩色3d点云。由于结构光3d重建方法生成点云中的每个点与图像传感器中的像素是一一对应关系,同时,彩色图像传感器中的每个像素与彩色图片中的彩色值(rgb值或yuv值等)也是一一对应的关系。所以只需要把每个像素对应的彩色值赋值到该像素对应点云中点的彩色特征,就可以得到彩色点云。
68.本发明还提供一种实现零配准误差的彩色3d成像方法的彩色3d成像深度相机,包括编码结构光投影模块、图像接收模块及系统主控模块;
69.编码结构光投影模块用于向被测物体投射单色的编码结构光;编码结构光投影模块包含光源、投影结构和编码结构光投影控制系统,光源用于产生单色的光,投影结构用于产生结构光,编码结构光投影控制系统用于控制光源和投影结构,从而产生编码结构光。在一个实施例中编码结构光投影模块可以是mems投影光机或dlp光机等投影系统。
70.图像接收模块用于采集从被测物体反射的结构光彩色图片序列;图像接收模块只包含单个彩色图像传感器和与之配套的图像接收光学镜头。
71.系统主控模块与编码结构光投影模块及图像接收模块电连接,上述系统主控模块包括存储器与处理器,存储器上存储计算机程序,所述计算机程序被处理器执行时,完成上述步骤3至步骤7的过程。
72.实施例1
73.从图1可以看出,本实施例涉及的彩色相机主要包含如下三部分:图像接收模块1,编码结构光投影模块2和系统主控模块3。其中编码结构光投影模块2向待测对象投影单色的编码结构光;图像接收模块1采集从待测对象反射的结构光彩色图片序列;系统主控模块与编码结构光投影模块及图像接收模块电连接,接收图像接收模块采集的结构光彩色图片序列,并对图像处理,从而得到被测物体颜色信息的彩色点云数据。具体过程如下:
74.首先,编码结构光投影模块投射一组编码结构光。同时,图像接收模块采集从待测对象反射的结构光彩色图片序列,这组图片序列的格式为rggb,分辨率为2064*1552。并且将结构光彩色图片序列传输到系统主控模块。
75.需要指出的是,本实施例中图像接收模块中的彩色图像传感器中的像素阵列的排列方式为图9所示,所以采集的raw格式的照片为rggb格式。
76.然后,系统主控模块对接收的结构光彩色图片序列进行处理,分离出结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列。
77.具体方式为:如图9所示,将相邻的4个像素看成一个大像素(图9粗实线框起来的4个像素),这样我们可以得到1032*776的大像素阵列。每一个大像素中我们分别取出r像素和b像素的亮度值分别组成结构光红色图片序列和结构光蓝色图片序列,将两个g像素的亮度值平均,组成结构光绿色图片序列。这样我们分别得到分辨率为1032*776的结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列。
78.然后,对分辨率为1032*776的结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列分别进行处理,得到分辨率为1032*776的红色背景图片,绿色背景图片和
蓝色背景图片,以及得到相应的条纹图片序列。
79.具体方式为:如图5所示,以结构光红色图片序列为例,因本实施例结构光红色图片序列中存在相应的原码图片与反码图片,所以采用上述步骤a的过程合成红色背景图片,针对同一像素,比较该像素在原码图片和反码图片中的亮度值大小,选取较小亮度值作为红色背景图片中该像素的亮度值,获取彩色图像传感器的所有像素亮度值后,即得到红色背景图片;同理,可以得到绿色背景图片和蓝色背景图片。图5中的(a)为结构光红色图片序列中的原码图片,(b)为(a)对应的反码图片,(c)计算得到的红色背景图片。在其他实施例中,若结构光红色图片序列中不存在相应的原码图片与反码图片,则在结构光红色图片序列中选择n张图片,使得对于彩色图像传感器的任一像素来说,都至少存在一张图片,使得该像素在这张图片中位于暗条纹区域;提取各个像素在n张图片中对应的亮度最小值,获得红色背景图片;若利用结构光红色图片序列不能合成红色背景图片,或合成的红色背景图片质量较差时,则采集环境光照射被测物体后的图片,作为红色背景图片。
80.对于结构光红色图片序列的每一张图片,减去红色背景图片,就可以得到红色条纹图片序列。同理,可以得到绿色条纹图片序列和蓝色条纹图片序列。
81.然后,使用结构光3d重建方法,分别利用红色条纹图片序列、绿色条纹图片序列和蓝色条纹图片序列得到分辨率为1032*776的点云数据。
82.然后,对得到的红色背景图片,绿色背景图片和蓝色背景图片进行isp处理,得到分辨率为1032*776的被测物体的彩色图片。
83.最后,系统主控模块将得到被测物体的彩色图片按大像素赋值到点云从而得到分辨率为1032*776的被测物体的彩色点云。
84.实施例2
85.与实施例1不同的是,系统主控模块对接收的结构光彩色图片序列进行处理,分离出结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列的方式略有差异。
86.具体如下:对于彩色图像传感器阵列中的每一个像素只能采集到红色亮度值,或绿色亮度值,或蓝色亮度值。如果该像素采集到的时红色亮度值,那么它的绿色亮度值和蓝色亮度值就由周围的绿色亮度值和蓝色亮度值插值运算得到。
87.如图10所示,r像素的绿色亮度值=r0,r像素的绿色亮度值=(g1 g2 g3 g4)/4。如果该像素在图像传感器的边缘处,那么它周围有几个绿色像素,就计算几个绿色像素的均值。r像素的蓝色亮度值=(b1 b2 b3 b4)/4。如果该像素在图像传感器的边缘处,那么它周围有几个蓝色像素,就计算几个蓝色像素的均值。
88.如果该像素采集到的时绿色亮度值,那么它的红色亮度值和蓝色亮度值就由周围的红色亮度值和蓝色亮度值插值运算得到。
89.如图11所示,g像素的绿色亮度值=g0,g像素的红色亮度值=(r1 r2)/2。如果该像素在图像传感器的边缘处,那么它周围有几个红色像素,就计算几个红色像素的均值。g像素的蓝色亮度值=(b1 b2)/2。如果该像素在图像传感器的边缘处,那么它周围有几个蓝色像素,就计算几个蓝色像素的均值。
90.如果该像素采集到的时蓝色亮度值,那么它的绿色亮度值和红色亮度值就由周围的绿色亮度值和红色亮度值插值运算得到。
91.如图12所示,b像素的绿色亮度值=b0,b像素的绿色亮度值=(g1 g2 g3 g4)/4。
如果该像素在图像传感器的边缘处,那么它周围有几个绿色像素,就计算几个绿色像素的均值。b像素的红色亮度值=(r1 r2 r3 r4)/4。如果该像素在图像传感器的边缘处,那么它周围有几个红色像素,就计算几个红色像素的均值。
92.这样就能得到2064*1552的结构光红色图片序列,结构光绿色图片序列和结构光蓝色图片序列,从而得到分辨率为2064*1552的3d点云。
93.对分辨率为2064*1552的红色背景图片,绿色背景图片和蓝色背景图片进行isp计算,得到分辨率为2064*1552的被测物体的彩色图片。
94.最后,系统主控模块将得到被测物体的彩色图片按大像素赋值到点云数据从而得到分辨率为2064*1552的被测物体的彩色点云。
95.实施例3
96.与实施例2不同的是,背景图片是编码结构光投影模块关闭激光器时采集的图片,此时可以得到分辨率为2064*1552的被测物体的彩色图片。
97.系统主控模块将得到被测物体的彩色图片按大像素赋值到点云数据从而得到分辨率为2064*1552的被测物体的彩色点云。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献