发明内容
针对现有技术中存在的问题,根据本发明的一个方面,提出一种成像装置,包括:摄像装置,其经配置以通过旋转方式摄取位置和角度不同的多个图像;和处理器,其连接到摄像装置;其中,所述通过旋转方式摄取位置和角度不同的多个图像经处理以获得多个不同视角的3D视差图。
如上所述的成像装置,其中所述多个不同视角的3D视差图经拼接以获得广角3D视差图或者全景3D视差图。
如上所述的一个或多个成像装置,进一步包括旋转机构,摄像装置与旋转机构固定并与旋转机构的旋转轴相间隔,其中所述旋转方式为摄像装置随旋转机构旋转。
如上所述的一个或多个成像装置,进一步包括第一光学组件,摄像装置经第一光学组件摄取图像;其中,第一光学组件改变光路的方向。
如上所述的一个或多个成像装置,其中,第一光学组件是镜面。
如上所述的一个或多个成像装置,进一步包括第二光学组件,摄像装置经第二光学组件摄取图像;其中第二光学组件平移光路;其中所述旋转方式为摄像装置不旋转而第二光学组件旋转。
如上所述的一个或多个成像装置,其中第二光学组件包括第一镜面、第二镜面和第三镜面;其中第一镜面与摄像装置呈45°角;第二镜面与第一镜面平行;且第三镜面与第二镜面呈45°角。
如上所述的一个或多个成像装置,其中采用半局部匹配算法处理所述通过旋转方式摄取位置和角度不同的多个图像中连续的两个图像经以获得多个不同视角的3D视差图。
如上所述的一个或多个成像装置,其中所述旋转的速度为10-100周/秒。
如上所述的一个或多个成像装置,其中摄像装置以0.1-10度的角度间隔连续摄取图像。
根据本发明的另一个方面,提出一种成像方法,包括如下步骤:通过旋转方式利用同一摄像装置获得位置和角度不同的多个图像;和基于所述利用同一摄像装置获得的位置和角度不同的多个图像获得多个不同视角的3D视差图。
如上所述的方法,进一步包括拼接所述多个不同视角的3D视差图。
如上所述的一个或多个方法,其中所述旋转方式为摄像装置旋转。
如上所述的一个或多个方法,其中摄像装置经第一光学组件摄取图像,其中第一光学组件改变光路的方向。
如上所述的一个或多个成像方法,其中,第一光学组件是镜面。
如上所述的一个或多个成像方法,其中摄像装置经第二光学组件摄取图像;其中第二光学组件平移光路;其中所述旋转方式为摄像装置不旋转而第二光学组件旋转。
如上所述的一个或多个成像方法,其中第二光学组件包括第一镜面、第二镜面和第三镜面;其中第一镜面与摄像装置呈45°角;第二镜面与第一镜面平行;且第三镜面与第二镜面呈45°角。
如上所述的一个或多个成像方法,其中采用半局部匹配算法处理所述通过旋转方式摄取位置和角度不同的多个图像中连续的两个图像经以获得多个不同视角的3D视差图。
如上所述的一个或多个成像方法,其中所述旋转的速度为10-100周/秒。
如上所述的一个或多个成像方法,其中摄像装置以0.1-10度的角度间隔连续摄取图像。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的详细描述中,可以参看作为本申请一部分用来说明本申请的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本申请的各个特定实施例在以下进行了足够详细的描述,使得具备本领域相关知识和技术的普通技术人员能够实施本申请的技术方案。应当理解,还可以利用其它实施例或者对本申请的实施例进行结构、逻辑或者电性的改变。
本发明的原理在于利用摄像机或者与摄像机配合的光学组件的高速旋转来减少摄像机的数量并实现360°全景拍摄。具体而言,根据本发明的一个的实施例,可以使用单摄像机实现3D全景图像的获取。
图1是根据本发明的一个实施例的3D全景成像装置的示意图。如图1所示,3D全景成像装置100包括摄像装置101和旋转机构102。摄像装置101安装在旋转机构102上并可以绕旋转机构102的旋转轴转动。摄像装置101在旋转中连续摄取多个图像。3D全景成像装置100进一步包括处理器103。
根据本发明的一个实施例,处理器103接收来自摄像装置101的多个图像,利用其中的连续两个角度不同的图像得出多个3D视差图,将多个3D视差图拼接得出3D全景图像。一般而言,连续的两个图像的角度由于旋转而略有不同,符合双目视差原理,通过半局部匹配算法可以得到带物体深度信息的3D视差图。更进一步地,将多个角度的3D视差图通过拼接技术拼接,即可以合成更大视角的3D视差图,进一步实现3D全景图像的摄取。
可选地,3D全景成像装置100进一步包括通信装置104。处理器103接收来自摄像装置101的多个图像并将其转发到通信装置104。通信装置104通过有线或无线的方式与3D全景成像装置100之外的服务器相连,并将来自摄像装置101的多个图像发送到服务器。服务器利用其中的两个角度不同的图像得出多个3D视差图,将多个3D视差图拼接得出3D全景图像。
根据本发明的一个实施例,摄像装置包括摄像机、照相机、摄像头等能够摄取图像的设备;优选为高速相机或超高速相机。
根据本发明的一个实施例,旋转机构102包括平台1022。平台1022可以绕旋转轴转动。摄像装置101固定到平台1022上且与旋转轴的位置偏离。当平台1022转动时,摄像装置101也随之一起转动。摄像装置101包括接口1011。平台1022包括与其对应的接口1023。当摄像装置101固定到平台1022时,接口1011和1023相互电连通。处理器103与平台1022的接口1023电连接,从而连接到摄像装置101。可选地,旋转机构102包括立柱1021。立柱1021与旋转机构102的旋转轴重合,从而在旋转机构102旋转时保持位置不变。进一步地,立柱1021用于电连接。可选地,处理器103与通信装置104电连接。
图2是如图1所示的实施例中3D全景成像装置的连接示意图。如图2所示,3D全景成像装置包括摄像装置101、旋转机构102、驱动部分203和电路部分201。驱动部分203用于驱动旋转机构102旋转。电路部分201包括处理器103和驱动电路202。驱动电路202用于部分203提供电力。驱动部分203的具体实例如旋转马达。电路部分201的具体实例如PCB电路板及其上的相关电路。可选地,3D全景成像装置包括通信装置104,其与电路部分201的处理器103电相连。
如图1和图2所示,3D全景成像装置100进一步包括壳体。向驱动壳体包括顶盖105、第一外壳106、第二外壳107和底板108。顶盖105、第一外壳106定义了第一空间。摄像装置101和旋转机构102容纳于第一空间中。第二外壳107和底板108定义了第二空间。3D全景成像装置100的电路部分201和旋转机构203的驱动部分容纳于第二空间中。
本领域技术人员应当理解,图1和图2仅仅是示例性地说明了本发明的3D全景成像装置的一个实例。本领域技术人员当然可以对上述实例做出修改或者调整,采用不同的结构或者旋转方式,而达到相同或类似的技术效果。例如,3D全景成像装置可以包括多个可旋转的摄像装置而提高效率。这些修改或者调整也当然包括在本发明的保护范围之内。
根据本发明的一个实施例,驱动部分驱动旋转机构以高速旋转,转速为10-100周/秒。根据本发明的一个实施例,摄像机以高速摄取图像,连续两幅图像之间的角度差为0.1-10度。
以下对本发明的图像处理方式进行进一步的说明。
所谓的“视差”通常是指利用成像设备从不同的位置获取被测物体的两幅图像计算图像对应点间的位置偏差。图像上所有点的视差就构成了3D视差图。通过3D视差图可以获得物体三维几何信息。
所谓的半局部匹配(semi-global matching,缩写SGM)算法是一种用于计算双目视觉中视差(视差)的一种算法。以半局部块匹配(semi-globalblock matching,缩写SGBM)为例,SGBM的思路是:根据每个像素点的视差形成视差地图,然后设置一个与视差地图相关的全局能量函数,使这个能量函数最小化以达到求解每个像素最优视差的目的,实现匹配。
举例而言,能量函数形式如下:
其中,D指视差地图视差map;E(D)是该视差地图对应的能量函数;
p,q代表图像中的某个像素;
Np指像素p的相邻像素点(一般认为8个);
C(p,Dp)指当前像素点视差为Dp时,该像素点的cost;
P1是一个惩罚系数,其适用于像素p相邻像素中视差值与p的视差值相差1的那些像素;
P2是一个惩罚系数,其适用于像素p相邻像素中视差值与p的视差值相差大于1的那些像素;以及
I[.]是一个函数,如果函数中的参数为真,返回1;否则返回0。
在实践中,以上能量函数求解问题可以近似分解为多个一维问题,即线性问题。而且,每个一维问题都可以用动态规划来解决。因为1个像素有8个相邻像素,因此一般分解为8个一维问题,即:
其中,r指某个指向当前像素p的方向,例如,像素p左边的相邻像素;
Lr(p,d)表示沿着当前方向(例如从左向右),当目前像素p的视差取值为d时,其最小cost值。
这个最小值是从4种可能的候选值中选取的最小值:
1.前一个像素(左相邻像素)视差取值为d时,其最小的cost值;
2.前一个像素(左相邻像素)视差取值为d-1时,其最小的cost值+惩罚系数P1;
3.前一个像素(左相邻像素)视差取值为d+1时,其最小的cost值+惩罚系数P1;以及
4.前一个像素(左相邻像素)视差取值为其他时,其最小的cost值+惩罚系数P2。
另外,当前像素p的cost值还需要减去前一个像素取不同视差值时最小的cost。这是因为Lr(p,d)是会随着当前像素的右移不停增长的,为了防止数值溢出,所以要让它维持在一个较小的数值。
C(p,d)的计算很简单,由如下两个公式计算:
C(p,d)=min(d(p,p-d,IL,IR),d(p-d,p,IR,IL))
即,当前像素p和移动d之后的像素q之间,经过半个像素插值后,寻找两个像素点灰度或者RGB差值的最小值,作为C(p,d)的值。
具体来说:设像素p的灰度/RGB值为I(p),先从I(p),(I(p)+I(p-1))/2,(I(p)+I(p+1))/2三个值中选择出和I(q)差值最小的,即d(p,p-d)。然后再从I(q),(I(q)+I(q-1))/2,(I(q)+I(q+1))/2三个值中选择出和I(p)差值最小的,即d(p-d,p)。最后从两个值中选取最小值,就是C(p,d)。
上面是从一个方向(从左至右)计算出的像素在取值为某一视差值时的最小cost值。但是,一个像素有8个邻域,所以要从8个方向计算(左右,右左,上下,下上,左上右下,右下左上,右上左下,左下右上)这个cost值。然后把八个方向上的cost值累加,选取累加cost值最小的视差值作为该像素的最终视差值。对于每个像素进行该操作后,就形成了整个图像的3D视差图。
本领域技术人员应当理解,半局部匹配算法只是其中一种获得3D视差图的方法。本领域中已有的利用不同位置摄取的两个图像而获得3D视差图的方法也当然可以应用于处理本发明的不同角度获得的图像而得出3D视差图。因此,也属于本发明的不同的实施例。
所谓“图像拼接”技术是指将给定某个场景的一组互相有重叠的局部图像组合形成包含着这组局部图像的新的较大的视图。在全景图的情形下,通过组合一组边界部分重叠的图像得到360°全景图像。现有技术中已有比较成熟的图像拼接技术,包括但不限于基于灰度相关的图像配准算法、基于特征相关的图像配准算法、基于相位相关的图像配准算法以及图像融合算法;其中图像融合算法是一种常用的图像拼接算法,包括中值滤波法、加权平均法、多分辨率金字塔图像融合算法和基于小波变换的图像融合算法。以上这些图像拼接技术都可以应用于本发明中而实现将覆盖360°的多个3D视差图拼接得到3D全景视差图。
在以下的两篇文献中,作者提出了利用不同视角的图像或者视频序列提供的信息进行3-D立体图像拼接:
(1)Chon Jaechoon,T.Fuse,E.Shimizu,et al..Three-Dimensional ImageMosaicking Using Multiple Project ion Planes for 3-D Visualization ofRoadside Standing Buildings[J].Systems,Man,and Cybernetics,Part B,IEEETransactions,2007,37:771-783;以及
(2)Akihiko Iketani,Masayuki Kanbara,Tomokazu Sato,et al..VideoMosaicing for Curved Documents Based on Structure from Motion[C]//The18thInternational Conference on Pattern Recognition(ICPR'06),2006,(4):391-396。
上述两篇文献将全文并入本说明书中。
从以上的描述可以看出,因为在摄像装置高速旋转的过程中任意时刻摄像装置的位置都可以精确地通过计算得出。根据双目视觉原理,利用位置不同的摄像装置对同一物体的两个图像可以得出包含物体三维信息的3D视差图。对于本发明通过高速旋转而获得的摄取角度差别很小的两个图像,虽然并未同时摄取,但是由于时间间隔很短,待摄取的图像基本可以认为没有变化,因此同样可以获得完美的3D视差图。由于摄像装置的高速旋转本身就包含了360°全景,只要将全部视角的3D视差图拼接,就可以获得3D全景图像了。本发明利用单个高速相机的旋转来代替布置多个相机,从而大大简化了用于获取3D全景图像的设备,在减少可能由设备引起的错误和偏差的同时降低了成本。本发明构思巧妙,必将大大推进计算机视觉技术的发展。
图3是根据本发明的另一个实施例的3D全景成像装置的示意图。图3中仅仅表示出了摄像装置和光学组件的相对位置,而并没有描述本实施例的3D全景成像装置的其他细节。本领域技术人员可以参考图1和图2所示的实施例而获得与此相关的信息,这里不再赘述。
根据本发明的一个实施例,3D全景成像装置包括摄像装置301和光学组件302。摄像装置301通过光学组件302而摄取外部的图像。一种典型的布置如图3所示,摄像装置301的镜头与水平垂直和光学组件302,即呈45°的镜面,共同固定。摄像装置301通过镜面中的外部的像摄取外部图像。镜面与摄像装置301都固定到旋转机构303上。镜面中心与摄像装置301在同一旋转轴304上。并且,镜面中心与摄像装置301共同的旋转轴304与旋转机构303的旋转轴305有一定距离d1(距离d1大于零)。由此,当旋转机构303被驱动旋转时,摄像装置301和光学组件302也共同绕旋转机构303的旋转轴305旋转。
本实施的布置方式的优点在于,虽然增加了光学组件,但是由于距离d1可以设置的比较小,从而可以使得摄像装置301的旋转半径减小,降低高速旋转产生的离心力对应系统稳定性的影响。
本领域技术人员应当理解,其他改变光路的光学组件同样可以应用于本实施例中而成为光学组件302的其他实施方式。
图4是根据本发明的另一个实施例的3D全景成像装置的示意图。图4中仅仅表示出了摄像装置和光学组件的相对位置,而并没有描述本实施例的3D全景成像装置的其他细节。本领域技术人员可以参考图1和图2所示的实施例而获得与此相关的信息,这里不再赘述。
根据本发明的一个实施例,3D全景成像装置包括摄像装置401和光学组件402。摄像装置401通过光学组件402而摄取外部的图像。光学组件402包括第一镜面403、第二镜面404和第三镜面405。第一镜面403与摄像装置401的镜头呈45°角;第二镜面404与第一镜面403平行;且第三镜面405与第二镜面404呈45°角。摄像装置401通过光学组件402中的外部的像摄取外部图像。通过第一镜面403、第二镜面404和第三镜面405,摄像装置401摄取图像的光路平移了一定的距离d2(距离d2大于零)。进一步地,第一镜面403的镜面中心与摄像装置401在同一旋转轴406上。摄像装置401不旋转。光学组件402在驱动部分的驱动下绕旋转轴406旋转。
本实施的布置方式的优点在于,虽然增加了光学组件402,但是通过光学组件402的旋转而代替了摄像装置401的旋转,由于光学组件402相比于摄像装置401的质量比较轻,这种布置大大降低高速旋转产生的离心力,使得系统的稳定性大大提高。
本领域技术人员应当理解,其他平移光路的光学组件同样可以应用于本实施例中而成为光学组件402的其他实施方式。
图5是根据本发明的一个实施例的获取3D全景图像的方法。如图5所示,获取3D全景图像的方法500包括如下步骤:在步骤510,通过旋转的方式利用同一摄像装置获得位置和角度不同的多个图像。本领域技术人员应当理解,无论是摄像装置旋转还是光学组件旋转的实例中,由于旋转的摄像装置或者旋转的光学组件都不与旋转机构的旋转轴同轴,所以摄像装置在不同时刻获得的图像实际上是摄像装置在不同位置和角度获得的。
在步骤520,基于所述利用同一摄像装置获得的位置和角度不同的多个图像获得多个不同视角的3D视差图。如前所述,根据双目时差原理,利用位置和角度不同的两个图像,采用例如半局部匹配算法等视差算法获得3D视差图。
在步骤530,拼接所述多个不同视角的3D视差图。如前所述,通过带物体深度信息的3D视差图拼接技术,可以将多角度的3D视差图拼接合成带深度信息的360全景图。
上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。