一种基于3D扫描和Slam的投影融合方法与流程

文档序号:11524640阅读:257来源:国知局
一种基于3D扫描和Slam的投影融合方法与流程

本发明属于显示投影技术领域,具体涉及一种基于3d扫描和slam的投影融合方法的设计。



背景技术:

在传统的显示系统中通常只使用一个显示设备,这样的显示画面内容较少,覆盖范围也很小。采用多台投影机分割显示一个较大的画面能够较好的解决上面的问题。每个投影机各自显示各自的画面,投影机之间按照整体画面的需要按照一定的规则相隔排列。根据投影机摆放的位置,可以做出3面的环幕、cave系统等。但是由于投影机显示的原理,多个投影机之间经常会出现重叠区域,造成显示上的异常,如重影、亮带。要解决重叠区域的问题,可以采用购买更加专业可调节性更强的硬件的办法,也可以采用软件去重叠的方式。采用硬件的方式成本太高,而且对手工操作的要求很高,而且很难做到完全无重叠。采用纯软件的方式虽然能够将重叠区域的亮度调整成跟非重叠区域基本一致,但还是存在重影的问题,而且在切分画面时会出现较大的画面延迟。

近年来,智能机器人技术在世界范围内得到了大力发展,在大多数场合中,研究机器人会碰到一个基础性的困难,那就是定位和建图,即slam技术。与slam密切相关的就是传感器,传感器分为激光传感器和视觉传感器两大类,后者由于价格便宜而得到广泛的应用。视觉slam主要分为三大类:单目、双目(或多目)、rgbd。一个slam系统分为四个模块(除去传感器数据读取):视觉里程计vo、后端、建图、回环检测。视觉里程计模块用于估计两个时刻机器人的相对运动,即在欧氏空间里估计一个三维空间的变换矩阵,求解这个矩阵可以分为基于特征的方法和不使用特征的直接方法。基于特征的方法,首先提取图像中的特征(如harris角点、sift、surf、orb),然后根据两幅图的特征匹配,计算相机的变换矩阵。直接方法把图像中的所有像素写进一个位姿估计方程,采用迭代最近邻icp等算法,求出帧间相对运动,如svo和lsd-slam。



技术实现要素:

本发明的目的是为了解决现有技术中采用多台投影机分割显示一个较大的画面时,投影机之间经常会出现重叠区域,造成显示上的异常的问题,提出了一种基于3d扫描和slam的投影融合方法。

本发明的技术方案为:一种基于3d扫描和slam的投影融合方法,包括以下步骤:

s1、将一个需要投影的区域映射到一个规则的矩形区域a;

s2、将矩形区域a分成n个子区域si;

s3、将所有的子区域si三角化,生成一张三角形列表;

s4、对每个子区域si生成一张intensity图和一张offset图;其中intensity图的每个像素都作为最终rgb值调整的系数,offset图的每个像素作为最终rgb值调整的偏移值;

s5、将生成的intensity图、offset图以及三角形列表利用支持融合的显卡相关接口送入到显卡中;

s6、显卡将需要显示的视频流的每帧图像分割成n个子画面,每个子画面都应用之前传入的三角形列表数据以及intensity图、offset图的数据;

s7、每个子画面从dvi或者vga接口送出,通过独立的hdmi线送入到n个对应的投影机显示;

s8、结合3d眼镜和支持3d的显示软件,即可得到3d画面。

进一步地,步骤s1包括以下分步骤:

s11、通过画线程序,在显示系统中每个投影机的投影画面中画一组均匀的横线和竖线,使横线和竖线填充满整个投影机屏幕;使用tof摄像头,对每个投影机画面采集一帧rgb和深度信息,再将所有投影机分成若干个等分,针对每个等分的全部画面采集一帧rgb和深度信息;

s12、以第一个投影机信息为基准,手动建立其他投影机与第一个投影机的关联关系,即在显示区域上面做一组标记,在rgb信息图上手动绑定不同投影机画面中相同的点;

s13、以左上第一个投影机为全局空间,通过标定点,将其他投影机空间转换到第一个投影机的所在的全局空间中;

s14、在全局空间中将所有投影机通过矩阵变换或者小孔成像技术,将所有投影机的投影区域转换到一个平面空间中;

s15、设投影机个数为n,将欲显示画面切分成r行、c列同等大小的矩形区域ti,并且n=r×s;定义整个计算机桌面确定的区域为uv空间,矩形区域ti所代表的就是对应投影机需要显示的内容区域,各个投影机显示内容共享同一个uv坐标系;

s16、根据步骤s11中投影机显示的横线和竖线,再手工标定一组横线和竖线,并设置好它们在投影机中的xy坐标,同时对每条横线和竖线的xy坐标和uv坐标进行绑定;

s17、手工标定最终显示区域的上下左右4条边界线,并将4条边界上所有顶点的xy坐标和uv坐标进行绑定;

s18、手工标定每个投影机显示的矩形区域的4个顶点,并将4个顶点的xy坐标和uv坐标关联起来,即将一个需要投影的区域映射到一个规则的矩形区域a。

进一步地,步骤s13具体为:

两次拍摄的两个投影机之间会标定很多物理上重合的点,设第一次拍摄的点集为y,第二次拍摄的点集为x,并且存在一个矩阵m使得y=x*m,其中x和y是一个n*4的矩阵,而m是一个4*4的矩阵;为了求出m,这里使用最小二乘法得出m=(xt*x)-1*xt*y,求出m矩阵后,通过yi=m*xi可以将所有其他投影机上的点转换到第一个投影机的空间中,其中xt表示x的转置矩阵,(xt*x)-1表示(xt*x)的逆矩阵,i=1,2,3,…,n,n为摄影机数量。

进一步地,步骤s2具体为:

用横线和竖线进行切割,交出的交点中以2条横线和3条竖线共6个点为一组,在6个交点中做两组每组两个对角线共交出2个交点,2个交点连线的延长线与3条竖线再交出3个交点,新交出的3个交点与原始的6个交点再以6个交点为一组与横线和竖线相交;新交出交点的xy坐标和uv坐标使用横线和竖线端点的xy坐标和uv坐标进行填充;如此反复切割,直到矩形区域内的每个像素点均有xy坐标和uv坐标,最后生成一张xy坐标和uv坐标对应表;最后得到n个子区域si,同时每个子区域si都对应生成一张xy坐标和uv坐标对应表。

进一步地,步骤s3具体为:

将4条边界围住的最终显示区域以一定的大小切分成相同的矩形,再将矩形延着对边切分成两个小三角形;小三角形会被各投影机的矩形区域进一步切分,形成更小的三角形,直到所有小三角形都不能被矩形区域切分为止;通过查找每个小三角形所属的投影机,根据所属投影机的xy坐标和uv坐标对应表,找到每个三角形的三个顶点的xy坐标,整理每个小三角形的位置坐标x、y和内容坐标u、v,生成一张三角形列表。

本发明的有益效果是:本发明通过硬件本身的融合技术使分割后的各个子画面显示非常流畅,没有卡顿感。首先通过矩阵的运算,可以实现将规则的矩形画面显示到不规则目标区域;然后通过画面的映射,可以实现超大屏幕的显示;接着通过三角化欲显示的矩形区域,可以做到小于一个像素级别的更加精细的调整,进而实现投影机之间无缝隙无重叠的显示,而且画面整体感很强,几乎没有色差;最后结合3d眼镜和支持3d的显示软件,得到一个完整无缝无重叠的超大屏幕的3d画面,给观看者一个更好的视觉体验。

附图说明

图1为本发明提供的一种基于3d扫描和slam的投影融合方法流程图。

图2为本发明实施例的映射转换示意图。

图3为本发明实施例的矩形区域切割示意图。

图4为本发明实施例的三角形被矩形区域切分示意图。

具体实施方式

下面结合附图对本发明的实施例作进一步的说明。

本发明提供了一种基于3d扫描和slam的投影融合方法,如图1所示,包括以下步骤:

s1、将一个需要投影的区域映射到一个规则的矩形区域a。

该步骤具体包括以下分步骤:

s11、显示系统中包含多台投影机,通过简单的画线程序,在显示系统中每个投影机的投影画面中画一组均匀的横线和竖线(如间隔64),使横线和竖线填充满整个投影机屏幕。使用tof摄像头,对显示系统中每个投影机画面采集一帧rgb和深度信息xyz,再将所有投影机分成若干个等分,针对每个等分的全部画面采集一帧rgb和深度信息xyz。帧与帧画面之间有许多物理上重合的点。每个投影机和每个等分都有自己的独立的坐标空间。

s12、以第一个投影机信息为基准,手动建立其他投影机与第一个投影机的关联关系,即事先在显示区域上面做一组标记,在rgb信息图上手动绑定不同投影机画面中相同的点。这样通过人工干预,减少数据误差,提高可调节性。

s13、在步骤s11中取到的是每个投影机和等分的独立的局部空间,需要将它们转换到一个统一的空间中。以左上第一个投影机为全局空间,相应的坐标系为xyz坐标系,通过标定点,采用如下算法,将其他投影机空间转换到第一个投影机的所在的全局空间中:

两次拍摄的两个投影机之间会标定很多物理上重合的点,设第一次拍摄的点集为y,第二次拍摄的点集为x,并且存在一个矩阵m使得y=x*m,其中x和y是一个n*4的矩阵,而m是一个4*4的矩阵;为了求出m,这里使用最小二乘法得出m=(xt*x)-1*xt*y,求出m矩阵后,通过yi=m*xi可以将所有其他投影机上的点转换到第一个投影机的所在的全局空间中,其中xt表示x的转置矩阵,(xt*x)-1表示(xt*x)的逆矩阵,i=1,2,3,…,n,n为摄影机数量。

s14、在步骤s3获得的全局空间中将所有投影机通过矩阵变换或者小孔成像技术,将所有投影机的投影区域转换到一个平面空间中,这个平面空间称为pxy空间。其中矩阵变换方式具体为:通过zi=r*yi+t变换,将所有投影机通过旋转(r矩阵表示)或者平移(t矩阵表示)转换到同一个z平面空间。在一般的投影系统中,投影面之间不会有平移的情况,即t=0,zi=r*yi,故只需要确定r矩阵的4*4=16个参数即可。r矩阵可以通过求取m矩阵的方法,或者通过手动标定3个坐标轴来计算得到。通过上面的转换,我们可以将欲投影的矩形区域投射到矩形显示区域,也可以投射到环幕上,如图2所示。

s15、设投影机个数为n,将欲投影显示的画面(如计算机桌面)切分成r行、c列同等大小的矩形区域ti,并且n=r×s。定义整个计算机桌面确定的区域为uv空间,矩形区域ti所代表的就是对应投影机需要显示的内容区域,各个投影机显示内容共享同一个uv坐标系。与uv坐标系对应的确定显示位置的空间称为xy空间,每个投影机的xy坐标系相互独立。现在每个投影机的uv坐标系已经确定,需要将对应的xy坐标系找出来。

s16、根据步骤s1中投影机显示的横线和竖线,再手工标定一组横线和竖线,并设置好它们在投影机中的xy坐标(由于横竖线均匀的铺满整个投影机画面,投影机的尺寸是固定的,故可以得出每条线的xy坐标)。每条横线和竖线的两个端点包含有xy坐标,通过s3、s4两个步骤的变换可以完成xy坐标-uv坐标的转换,到此每条横线和竖线(端点)的xy坐标和uv坐标实现了绑定。这里每个投影机屏幕通过横线和竖线进行划分,横线和竖线的xy坐标可以手动调节,通过人工干预可以减少数据误差,提高可调节性。

s17、同样的方式手工标定最终显示区域的上下左右4条边界线,将4条边界上所有顶点的xy坐标和uv坐标进行绑定。4条边界线确定了最终显示的区域大小,这个区域大小(设为r1)≤所有投影机一起覆盖的区域(设为r2)≤欲投影显示画面的矩形区域(设为r3)。这样可以切除掉r2中由于投影机硬件特性导致的边界处不规则部分,只留下一个规整的矩形区域。现在需要将r3映射到r1中,则最终显示区域内任意一点p的显示内容以uv坐标表示,其中u=点p到左边界的距离*欲显示画面的宽度/边界的宽度,v=点p到上边界的距离*欲显示画面的高度/边界的高度。现在需要确定的是点p在每个投影机中的xy坐标。

s18、同样的方式手工标定每个投影机显示的矩形区域的4个顶点,将4个顶点的xy坐标和uv坐标关联起来(可以通过将整个屏幕的像素点全部显示出来,然后数点的方式确定每个顶点的xy坐标),即将一个需要投影的区域映射到一个规则的矩形区域a。这个矩形区域大小≤投影机的显示屏幕大小。相邻投影机的4个手工标定顶点在物理上重叠,并且每个投影机矩形区域的4个顶点可调节xy坐标,就意味着投影机可以只显示部分的区域,实现去除重叠部分的需求,同时xy坐标的精度小于1,这样去除重叠部分的同时投影机之间几乎没有缝隙。

s2、将矩形区域a分成n个子区域si。

将每个投影机显示的矩形区域用横线和竖线进行切割,如图3所示,交出的交点中以2条横线(h1,h2)和3条竖线(v1,v2,v3)共6个点(需要构成一个矩形,如0,1,2,3,4,5)为一组,在6个交点中做两组每组两个对角线共交出2个交点,2个交点连线的延长线与3条竖线(v1,v2,v3)再交出3个交点(如6,7,8),新交出的3个交点与原始的6个交点再以6个交点(0,6,3,1,7,4)为一组与横线和竖线相交。新交出的点的xy坐标和uv坐标使用横线和竖线端点的xy坐标和uv坐标进行填充。如此反复切割,直到矩形区域内的每个像素点均有xy坐标和uv坐标,最后能生成一张xy坐标和uv坐标对应表。最后得到n个子区域si,同时每个子区域si都对应生成一张xy坐标和uv坐标对应表。

s3、将所有的子区域si三角化,生成一张三角形列表。

将4条边界围住的矩形画面r以一定的大小(如64*64)切分成相同的矩形,将矩形延着对边切分成两个小三角形。每个小三角形的三个顶点都有自己的uv坐标(r的大小是确定的,小三角形是均匀切分的且大小固定,经过简单的除法运算即可求出uv坐标)。小三角形会被投影机的矩形区域进一步切分,形成更小的三角形。切分过程中形成的新小三角形的uv坐标需要根据前一步小三角形的uv坐标和投影机矩形区域的4个顶点共同确定。然后通过查找每个小三角形所属的投影机,根据所属投影机的xy坐标和uv坐标对应表,即可以找到每个三角形的三个顶点的xy坐标。如图4所示,小三角形被矩形区域切分的原理为:两个小三角形t1、t2被切分成t1、t2、t3、t4、t5、t6共6个新的小三角形,切分能够一直进行到所有小三角都不能被矩形区域切分为止。整理每个小三角形的位置坐标x、y和内容坐标u、v,生成一张三角形列表。

s4、对每个子区域si生成一张intensity图和一张offset图;其中intensity图的每个像素都作为最终rgb值调整的系数,offset图的每个像素作为最终rgb值调整的偏移值。

s5、将生成的intensity图、offset图以及三角形列表利用支持融合的显卡相关接口送入到显卡中。本发明实施例中,显卡采用nvidia显卡。

s6、显卡将需要显示的视频流的每帧图像分割成n个子画面,每个子画面都应用之前传入的三角形列表数据以及intensity图、offset图的数据。

s7、每个子画面从dvi或者vga接口送出,通过独立的hdmi线送入到n个对应的投影机显示。

s8、结合3d眼镜和支持3d的显示软件,即可得到3d画面。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1