1.一种全景图实时生成的方法,其特征在于,包括以下步骤:
标定摄像机内参数,建立坐标系及创建圆柱投影面;
获取视频图像;
通过投影计算序列将所述视频图像投影到所述圆柱投影面,创建全景图;
通过调整摄像机的初始姿态的主光轴与水平面的夹角修改摄像机的初始姿态矩阵,对所述全景图进行校正。
2.如权利要求1所述的全景图实时生成的方法,其特征在于,建立坐标系包括:
以摄像机初始姿态的等效光心位置为坐标原点,建立世界坐标系;
以摄像机等效光心为坐标原点,建立摄像机坐标系,对于三维空间中的点,其摄像机坐标系下的坐标Xc和世界坐标系下的坐标Xw具有如下关系:Xc=R*Xw+T,其中,R,T分别表示上述三维点摄像机坐标系下的坐标Xc变换到世界坐标系下的坐标Xw的旋转变换矩阵和平移变换向量。
3.如权利要求1所述的全景图实时生成的方法,其特征在于,创建圆柱投影面包括以下步骤:
以摄像机等效光心为几何中心,创建圆柱投影面;
根据所述内参数将投影圆柱面离散化为相应分辨率的图像,并在该图像上进行子图像划分,所述相应分辨率的选取方式为:
其中,Dx,Dy分别表示圆柱投影面水平方向和竖直方向的分辨率,fx,fy分别表示摄像机镜头焦距在水平方向和竖直方向的尺度因子,W,H分别表示获取单帧视频图像的宽和高,h表示设定的全景图视野高度,μ(*)表示对“*”取大于“*”值的最小的2的幂次方值;
对所述圆柱投影面逐行设置掩码,用以标识已填充的像素的起始位置和终止位置。
4.如权利要求1所述的全景图实时生成的方法,其特征在于,通过投影计算序列将所述视频图像投影到所述圆柱投影面包括,对每一帧视频图像进行圆柱面投影计算:
使用摄像机当前姿态矩阵,计算当前图像投影到圆柱面的覆盖范围;
查找覆盖范围内未填充像素点,并以当前图像的投影值进行填充。
5.如权利要求4所述的全景图实时生成的方法,其特征在于,还包括:
填充后修改图像掩码,逐行修改所述圆柱投影面中各行掩码中记录的已被填充的像素的起始位置和终止位置;
查找新填满的子图像,对新填满的子图像进行多级降采样,并对子图像和各级采样图像进行图像特征点提取。
6.如权利要求5所述的全景图实时生成的方法,其特征在于,当投影的视频图像不是首帧图像时,还包括:
利用前面各帧对应的各个摄像机姿态矩阵,估计摄像机的运动速度,并进一步估计当前帧对应的摄像机姿态矩阵的近似值;
根据所述摄像机当前姿态矩阵的近似值,将投影面各级子图像上的特征点投影到像平面上;
将上述特征点的投影和当前像平面上的像素点进行特征匹配,得到一组匹配点对;
以所述当前姿态矩阵的近似值作为初值,根据所述匹配点对,优化当前摄像机的姿态矩阵,得到精确的当前姿态矩阵的值。
7.如权利要求4所述的全景图实时生成的方法,其特征在于,所述通过调整摄像机的初始姿态的主光轴与水平面的夹角修改摄像机的初始姿态矩阵,对所述全景图进行校正的步骤,包括:
调整软件界面上的参数修改首帧视频图像对应的摄像机姿态矩阵,对所述全景图进行校正。
8.一种拍摄全景图的方法,其特征在于,包括以下步骤:
启动摄像机拍摄视频图像;
根据如权利要求1至7任意之一所述的全景图实时生成的方法,将拍摄的所述视频图像生产全景图;
在屏幕上显示形成的所述全景图。
9.如权利要求8所述的拍摄全景图的方法,其特征在于,还包括:
启动摄像机拍摄视频图像时,所述摄像机能够在任意方向移动,通过转动摄像头对场景进行拍摄;
在屏幕上显示拍摄到的视频图像,实时更新所述视频图像对应的所述全景图。
10.如权利要求9所述的拍摄全景图的方法,其特征在于,实时更新所述视频图像对应的所述全景图时,在屏幕上动态显示所述全景图的拼接过程。
11.如权利要求10所述的拍摄全景图的方法,其特征在于,还包括:
在屏幕上动态显示所述全景图的拼接过程时,显示当前摄像机拍摄的视频图像在全景图上的投影区域。
12.如权利要求10所述的拍摄全景图的方法,其特征在于,还包括:
在屏幕上动态显示所述全景图的拼接过程中,检测到触发的调整和/或结束指令后,调整和/或结束所述拼接过程。
13.一种全景图实时生成装置,其特征在于,包括:
标定单元,用于标定摄像机内参数;
视频采集单元,用于获取视频图像;
投影单元,用于建立坐标系及创建圆柱投影面,以及用于通过投影计算序列将所述视频图像投影到所述圆柱投影面,创建全景图;
校正单元,用于通过调整摄像机的初始姿态的主光轴与水平面的夹角修改摄像机的初始姿态矩阵,对所述全景图进行校正。
14.如权利要求13所述的全景图实时生成装置,其特征在于,所述投影单元进一步用于以摄像机初始姿态的等效光心位置为坐标原点,建立世界坐标系;以及,还用于以摄像机等效光心为坐标原点,建立摄像机坐标系,对于三维空间中的点,其摄像机坐标系下的坐标Xc和世界坐标系下的坐标Xw具有如下关系:Xc=R*Xw+T,其中,R,T分别表示上述三维点摄像机坐标系下的坐标Xc变换到世界坐标系下的坐标Xw的旋转变换矩阵和平移变换向量。
15.如权利要求13所述的全景图实时生成装置,其特征在于,所述投影单元进一步用于:
以摄像机等效光心为几何中心,创建圆柱投影面;
根据所述内参数将投影圆柱面离散化为相应分辨率的图像,并在该图像上进行子图像划分,所述相应分辨率的选取方式为:
其中,Dx,Dy分别表示圆柱投影面水平方向和竖直方向的分辨率,fx,fy分别表示摄像机镜头焦距在水平方向和竖直方向的尺度因子,W,H分别表示获取单帧视频图像的宽和高,h表示设定的全景图视野高度,μ(*)表示对“*”取大于“*”值的最小的2的幂次方值;
对所述圆柱投影面逐行设置掩码,用以标识已填充的像素的起始位置和终止位置。
16.如权利要求13所述的全景图实时生成装置,其特征在于,所述投影单元还包括计算单元,
通过投影计算序列将所述视频图像投影到所述圆柱投影面包括,所述计算单元对每一帧视频图像进行圆柱面投影计算:
使用摄像机当前姿态矩阵,计算当前图像投影到圆柱面的覆盖范围;
查找覆盖范围内未填充像素点,并以当前图像的投影值进行填充。
17.如权利要求16所述的全景图实时生成装置,其特征在于,所述投影单元还包括填充单元和特征提取单元,
所述填充单元,用于填充后修改图像掩码,逐行修改所述圆柱投影面中各行掩码中记录的已被填充的像素的起始位置和终止位置;
所述特征提取单元,用于查找新填满的子图像,对新填满的子图像进行多级降采样,并对子图像和各级采样图像进行图像特征点提取。
18.如权利要求17所述的全景图实时生成装置,其特征在于,所述投影单元还包括重定位单元,所述重定位单元用于:
利用前面各帧对应的各个摄像机姿态矩阵,估计摄像机的运动速度,并进一步估计当前帧对应的摄像机姿态矩阵的近似值;
根据所述摄像机当前姿态矩阵的近似值,将投影面各级子图像上的特征点投影到像平面上;
将上述特征点的投影和当前像平面上的像素点进行特征匹配,得到一组匹配点对;
以所述当前姿态矩阵的近似值作为初值,根据所述匹配点对,优化当前摄像机的姿态矩阵,得到精确的当前姿态矩阵的值。
19.如权利要求16所述的全景图实时生成装置,其特征在于,所述校正单元用于通过调整摄像机的初始姿态的主光轴与水平面的夹角修改摄像机的初始姿态矩阵,对所述全景图进行校正,包括:
调整软件界面上的参数修改首帧视频图像对应的摄像机姿态矩阵,对所述全景图进行校正。
20.一种终端设备,其特征在于,包括:
启动模块,用于启动摄像机拍摄视频图像;
如权利要求13至19任意之一所述的全景图实时生成装置,用于将拍摄的所述视频图像生产全景图;
显示模块,用于在屏幕上显示形成的所述全景图。
21.如权利要求20所述的终端设备,其特征在于,启动摄像机拍摄视频图像时,所述摄像机用于在任意方向移动,通过转动摄像头对场景进行拍摄;
所述显示模块还用于在屏幕上显示拍摄到的视频图像,实时更新所述视频图像对应的所述全景图。
22.如权利要求21所述的终端设备,其特征在于,实时更新所述视频图像对应的所述全景图时,所述显示模块还用于在屏幕上动态显示所述全景图的拼接过程。
23.如权利要求22所述的终端设备,其特征在于,还包括:
在屏幕上动态显示所述全景图的拼接过程时,所述显示模块还用于在屏幕上显示当前摄像机拍摄的视频图像在全景图上的投影区域。
24.如权利要求22所述的终端设备,其特征在于,还包括:
在屏幕上动态显示所述全景图的拼接过程中,检测到触发的调整和/或结束指令后,调整和/或结束所述拼接过程。
全景图实时生成的方法、装置及设备\n技术领域\n[0001] 本发明涉及图像处理技术领域,具体而言,本发明涉及全景图实时生成的方法、装置及设备。\n背景技术\n[0002] 数字成像设备的拍摄单元能够捕获的视野范围,通常远远小于人眼的视野范围。\n全景图生成技术是图像处理、计算机视觉领域内广泛研究的一个课题,其在大场景展示、摄影、影视制作、运动训练,乃至军事等诸多领域都有重要的应用。\n[0003] 例如,现有技术中公开号为CN 102469259A的申请,提供了全景图像生成装置及全景图像生成方法。在由构成运动图像的多个静止图像生成全景图像的情况下,会生成极端地横长或纵长的全景图像。合成构成运动图像的多个静止图像而生成全景图像,确定从所生成的全景图像切出显示用全景图像的大小,同时从全景图像检测关注摄影位置。并且,根据检测的关注摄影位置和所确定的大小,从全景图像切出显示用全景图像。该方法是在后处理阶段生成全景图。\n[0004] 现有的全景图生成技术中,通常可以归结为以下两大类的处理方式:\n[0005] 一类是基于特征点匹配的装置及方法。该类装置及方法提取所拍摄图像的特征,如SIFT(Scale-invariant feature transform)特征等,对各个图像的特征点进行匹配,按匹配结果进行拼接处理,从而构建大范围的全景图像。该类方法在具体实施中往往要按一定的轨迹对场景进行图像采集,在完成采集后通过后期处理的方式生成全景图。\n[0006] 另一类是基于硬件定位装置进行摄像机运动姿态的跟踪。常用的硬件设备是加速度计,陀螺仪,GPS等。\n[0007] 经过分析后发现,基于特征点匹配实现全景图像的方案,不足之处在于对拍摄者的拍摄技巧要求较高,动作稍有偏差就会对全景图的质量产生较大影响。另外,由于采用了后期处理的方式,无法实时预览到拍摄结果,不便于拍摄者对拍摄过程进行控制。\n[0008] 现有的基于硬件定位实现全景图像的方案,不足之处在于硬件设备的精度和较高成本。如果精度不够难以得到较高质量的结果,采用高精度的硬件设备又会带来成本的大幅升高。另外,在当前中低端移动设备上,很多没有配置相关的硬件定位设备,大大限制的这类方法的使用。\n[0009] 因此,有必要提出有效的技术方案,实现全景图的实时生成。\n发明内容\n[0010] 本发明的目的旨在至少解决上述技术缺陷之一,本发明实施例一方面提出了一种全景图实时生成的方法,包括以下步骤:\n[0011] 标定摄像机内参数,建立坐标系及创建圆柱投影面;\n[0012] 获取视频图像;\n[0013] 通过投影计算序列将所述视频图像投影到所述圆柱投影面,创建全景图。\n[0014] 本发明实施例另一方面还提出了一种拍摄全景图的方法,包括以下步骤:\n[0015] 启动摄像机拍摄视频图像;\n[0016] 根据如上所述的全景图实时生成的方法,将拍摄的所述视频图像生产全景图;\n[0017] 在屏幕上显示形成的所述全景图。\n[0018] 本发明实施例另一方面还提出了一种全景图实时生成装置,包括:\n[0019] 标定单元,用于标定摄像机内参数;\n[0020] 视频采集单元,用于获取视频图像;\n[0021] 投影单元,用于建立坐标系及创建圆柱投影面,以及用于通过投影计算序列将所述视频图像投影到所述圆柱投影面,创建全景图\n[0022] 本发明实施例另一方面还提出了一种终端设备,包括:\n[0023] 启动模块,用于启动摄像机拍摄视频图像;\n[0024] 如上所述的全景图实时生成装置,用于将拍摄的所述视频图像生产全景图;\n[0025] 显示模块,用于在屏幕上显示形成的所述全景图。\n[0026] 根据本发明提出的方案,能够利用视频流实时生成、实时预览全景图,同时具有易操作、硬件要求低的特点。根据本发明提出的方案,可以在当前主流的手机等移动设备上实时生成、预览全景图像。本发明提出的上述方案,对现有系统的改动很小,不会影响系统的兼容性,而且实现简单、高效。\n[0027] 本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。\n附图说明\n[0028] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:\n[0029] 图1为本发明实施例全景图实时生成的方法流程图;\n[0030] 图2为全景图实时生成具体示例的流程图;\n[0031] 图3为建立世界坐标系示意图;\n[0032] 图4为建立摄像机坐标系示意图;\n[0033] 图5为创建圆柱投影面示意图;\n[0034] 图6为投影圆柱面离散化为相应分辨率的图像示意图;\n[0035] 图7为记录行像素对应的掩码的示意图;\n[0036] 图8为计算当前图像投影到圆柱面的覆盖范围的示意图;\n[0037] 图9为全景图像生成装置的结构示意图;\n[0038] 图10为生成全景图的过程中摄像机获取的当前视频图像;\n[0039] 图11为生成全景图的过程中当前全景图的拼接状态;\n[0040] 图12为将终端的摄像头对准所要拍摄全景图的场景;\n[0041] 图13为将当前摄像头拍摄到的图像填充到用于生成全景图画布中的示意图;\n[0042] 图14为对各个位置下摄像头拍摄到的视频图像进行拼接的示意图;\n[0043] 图15为全景图拼接完毕的示意图。\n具体实施方式\n[0044] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。\n[0045] 为了实现本发明之目的,本发明实施例一方面提供了一种实时的,基于动态视频的全景图像生成方法,包括:\n[0046] 标定摄像机内参数,建立坐标系及创建圆柱投影面;\n[0047] 获取视频图像;\n[0048] 通过投影计算序列将所述视频图像投影到所述圆柱投影面,创建全景图。\n[0049] 如图1所示,为本发明实施例全景图实时生成的方法流程图,包括步骤S110至步骤S130:\n[0050] S110:标定摄像机内参数,建立坐标系及创建圆柱投影面。\n[0051] 在步骤S110中,首先需要建立坐标系、标定摄像机内参数,其后根据内参数创建圆柱投影面。\n[0052] 如图2所示,为全景图实时生成具体示例的流程图。开始后,首先标定摄像机内参数和建立坐标系及创建圆柱投影面。\n[0053] 具体而言,摄像机内部参数标定,例如采用“加州理工大学摄像机标定工具箱(Caltech camera calibration toolbox)”或其他常用的摄像机标定方法对摄像机的内部参数进行标定。通常,摄像机内部参数具有如下公知的表示形式:\n[0054]\n[0055] 其中,K表示摄像机内部参数矩阵,fx,fy分别表示摄像机镜头焦距在水平方向和竖直方向的尺度因子,u0,v0分别表示摄影机镜头等效光心在像平面投影点的图像坐标。\n[0056] 建立坐标系包括:\n[0057] 以摄像机初始姿态的等效光心位置为坐标原点,建立世界坐标系。如图3所示,O为摄像机初始姿态的等效光心,AB为摄像机初始姿态的光轴,Xw,Yw,Zw分别为世界坐标系的三个坐标轴,三坐标轴两两垂直,且构成右手系,Xw,Zw位于水平面上,Yw,Zw与光轴AB位于同一竖直面上。\n[0058] 以摄像机等效光心为坐标原点,建立摄像机坐标系。如图4所示,O为摄像机初始姿态的等效光心,AB为摄像机初始姿态的光轴,Xc,Yc,Zc分别为世界坐标系的三个坐标轴,三坐标轴两两垂直,且构成右手系,Zc与光轴AB重合,Yc,Zc与光轴AB位于同一竖直面上。其中,摄像机的初始姿态的主光轴与水平面的夹角alpha可以通过定位硬件获得,亦可以通过估计获得近似值。对于三维空间中的点,其摄像机坐标系下的坐标向量Xc和世界坐标系下的坐标向量Xw具有公式(2)所示关系,\n[0059] Xc=R*Xw+T (2)\n[0060] 其中,R,T分别表示上述三维点摄像机坐标系下的坐标Xc变换到世界坐标系下的坐标Xw的旋转变换矩阵和平移变换向量。并且,R,T确定了首帧视频图像对应的摄像机姿态矩阵,具体形式如公式(3)所示:\n[0061]\n[0062] 创建圆柱投影面包括以下步骤:\n[0063] 以摄像机等效光心为几何中心,创建圆柱投影面;根据内参数将投影圆柱面离散化为相应分辨率的图像,并在该图像上进行子图像划分。\n[0064] 具体而言,如图5所示,以摄像机等效光心为几何中心,创建圆柱投影面。\n[0065] 如图6所示,根据内参数将投影圆柱面离散化为相应分辨率的图像,并在该图像上进行子图像划分。圆柱投影面的分辨率的选取方式如下:\n[0066]\n[0067]\n[0068] 其中Dx,Dy分别表示圆柱投影面水平方向和竖直方向的分辨率,fx,fy含义同公式(1),W,H分别表示获取单帧视频图像的宽和高,h表示设定的全景图视野高度,μ(*)表示对“*”取大于“*”值的最小的2的幂次方值(例如,“*”为31,μ(*)取为2的5次方,即32)。子图像的宽度和高度取为2的相应的幂次方值,一般选为32,64等便于处理的数值。\n[0069] 创建圆柱投影面的过程还包括,对上述离散化的投影圆柱面逐行设置掩码,用以标识已填充的像素的起始位置和终止位置。各行掩码的初始值都置为空,在投影迭代过程中不断更新。\n[0070] S120:获取视频图像。\n[0071] 执行完步骤S110后,在步骤S120中,通过摄像机、摄像头等视频采集设备获取视频图像,其后在步骤S130中,将视频图像帧投影到圆柱投影面。\n[0072] S130:通过投影计算序列将视频图像投影到圆柱投影面上,创建全景图。\n[0073] 在步骤S130中,对每个视频帧通过投影计算序列投影到圆柱投影面上,创建全景图,具体而言,对每一帧视频图像进行圆柱投影包括:\n[0074] 使用摄像机当前姿态矩阵,计算当前图像投影到圆柱面的覆盖范围;\n[0075] 查找覆盖范围内未填充像素点,并以当前图像的投影值进行填充。\n[0076] 即如图2所示,对每个视频帧需要计算投影覆盖范围和填充投影面像素。\n[0077] 其中,在投影填充过程中,需要更新投影图像的掩码,用于标识投影图像上每行已填充像素的位置范围。其中掩码的个数等于上述步骤中离散化的投影面的行数,每个掩码标识了其所对应行中已被填充的像素的起始位置和终止位置。如图7所示,该行像素对应的掩码为{(C2,C4),(C7,C11),(C13,C18)}。\n[0078] 使用摄像机当前姿态矩阵计算当前图像投影到圆柱面的覆盖范围,如图8所示。\n[0079] 阴影部分即为当前摄像机在圆柱投影面上的投影范围,其是通过姿态矩阵计算所得。根据如图7所示的图像掩码,查找覆盖范围内未填充像素点,并以当前图像的投影值进行填充。\n[0080] 其中,对于首帧图像,初始姿态矩阵由世界坐标系和摄像机坐标系的变换关系得到,如公式(2),(3)所示,利用初始的姿态矩阵,计算其在圆柱面上的投影范围,填充投影范围内的像素点。\n[0081] 为了对下一个视频帧图像进行处理,还包括:\n[0082] 填充后修改图像掩码,逐行修改所述圆柱投影面中各行掩码中记录的已被填充的像素的起始位置和终止位置;\n[0083] 查找新填满的子图像,对新填满的子图像进行多级降采样,并对子图像和各级采样图像进行FAST特征点提取。\n[0084] 如图2所示,当全景图创建完毕判断为否时,还需要更新投影面掩码和提取子图像特征点。\n[0085] 此外,如图2所示,对于不是首帧图像的视频数据,在进行计算投影覆盖范围之前,还包括:\n[0086] 利用前面各帧对应的各个摄像机姿态矩阵,估计摄像机的运动速度,并进一步估计当前帧对应的摄像机姿态矩阵的近似值;\n[0087] 根据所述摄像机当前姿态矩阵的近似值,将投影面上降采样得到的各级子图像上的特征点投影到像平面上;\n[0088] 将上述特征点的投影和当前像平面上的像素点进行特征匹配,得到一组匹配点对。\n[0089] 以上述当前姿态矩阵的近似值作为初值,根据上述匹配点对,优化当前摄像机的姿态矩阵,得到最终的当前姿态矩阵的精确值。\n[0090] 具体而言,利用前面各帧对应的摄像机姿态,估计摄像机的运动速度,进而估计出当前摄像机的姿态矩阵的近似值。速度可以采用公式(6)计算:\n[0091] vT=(T1-T0)/t(6)\n[0092] vR=(φ1-φ0)/t\n[0093] 其中,vT,vR分别表示摄像机位移和旋转的速度,T0,T1,分别表示前两帧摄像机的位移向量,φ0,φ1分别表示表示前两帧摄像机的欧拉角向量,t表示前两帧的时间间隔。摄像机的当前位置可以用公式(7)计算:\n[0094]\n[0095] 其中Tcur,Rcur,分别表示估计的当前的位移向量和旋转矩阵,表示前一帧和当前帧的时间间隔,ξ(*)表示由欧拉角构造旋转矩阵,vT,vR,T1,φ1的含义同公式(6)。\n[0096] 利用得到的摄像机当前姿态矩阵将投影面各级子图像上的特征点投影到像平面上。其中的特征点可以使用“FAST”特征点,但不限于“FAST”特征点。\n[0097] 将上述特征点的投影和当前像平面上的像素点进行特征匹配,得到一组匹配点对。其中的匹配算法使用的是图像处理领域常用的“NormalizedCross-Correlation(NCC)”方法。\n[0098] 以上述当前姿态矩阵的近似值作为初值,根据上述匹配点对,优化当前摄像机的姿态矩阵,得到最终的当前姿态矩阵的精确值。具体方法是:用最小化重投影误差的最优化方法进行计算,首先根据最低分辨率采样图像特征点的匹配结果,计算当前的摄像机姿态矩阵,并以此作为利用高一级别采样图像的匹配结果进行优化计算的初值,直到最高分辨率的图像,得到最终的当前投影计算周期的姿态矩阵的精确值。其中,最优化的目标函数如公式(8)所示:\n[0099]\n[0100] 其中,reproj[R|T](Xi)表示将特征点Xi投影到像平面的投影点,mi表示像平面上与特征点Xi匹配的图像点,ρ(*)表示欧式距离,[R|T]表示优化计算得到的摄像机姿态矩阵。\n[0101] 此外,全景图构建完成后,还包括调整上述alpha的值修改摄像机的初始姿态矩阵,对所述全景图进行校正。\n[0102] 例如,图4中所示的alpha的误差会使生成的全景图产生倾斜的效果,通过修改摄像机的初始姿态参数alpha,可以校正因姿态初值估计的误差所产生的图像倾斜现象具体实施办法可以通过调整软件界面参数实现,当界面参数调整后,按照新的参数依照前述步骤重新计算全景图像。\n[0103] 如图9所示,本发明另一方面提供了一种实时的、基于动态视频的全景图像生成装置100,包括:标定单元110、视频采集单元120和投影单元130。其中:\n[0104] 标定单元110,用于标定摄像机内参数。\n[0105] 视频采集单元120,用于获取视频图像。\n[0106] 投影单元130,用于建立坐标系及创建圆柱投影面,以及用于通过投影计算序列将视频图像投影到圆柱投影面,创建全景图。\n[0107] 作为全景图像生成装置100的实施例,投影单元130进一步用于以摄像机初始姿态的等效光心位置为坐标原点,建立世界坐标系;以及,还用于以摄像机等效光心为坐标原点,建立摄像机坐标系,对于三维空间中的点,其摄像机坐标系下的坐标Xc和世界坐标系下的坐标Xw具有如下关系:Xc=R*Xw+T,其中,R,T分别表示上述三维点摄像机坐标系下的坐标Xc变换到世界坐标系下的坐标Xw的旋转变换矩阵和平移变换向量。\n[0108] 作为全景图像生成装置100的实施例,投影单元130进一步用于:\n[0109] 以摄像机等效光心为几何中心,创建圆柱投影面;\n[0110] 根据内参数将投影圆柱面离散化为相应分辨率的图像,并在该图像上进行子图像划分,相应分辨率的选取方式为:\n[0111]\n[0112] 其中,Dx,Dy分别表示圆柱投影面水平方向和竖直方向的分辨率,fx,fy分别表示摄像机镜头焦距在水平方向和竖直方向的尺度因子,W,H分别表示获取单帧视频图像的宽和高,h表示设定的全景图视野高度,μ(*)表示对“*”取大于“*”值的最小的2的幂次方值;\n[0113] 对圆柱投影面逐行设置掩码,用以标识已填充的像素的起始位置和终止位置。\n[0114] 作为全景图像生成装置100的实施例,投影单元130还包括计算单元131,\n[0115] 通过投影计算序列将视频图像投影到圆柱投影面包括,计算单元131对每一帧视频图像进行圆柱面投影计算:\n[0116] 使用摄像机当前姿态矩阵,计算当前图像投影到圆柱面的覆盖范围;\n[0117] 查找覆盖范围内未填充像素点,并以当前图像的投影值进行填充。\n[0118] 作为全景图像生成装置100的实施例,投影单元130还包括填充单元132和特征提取单元133,\n[0119] 填充单元132,用于填充后修改图像掩码,逐行修改圆柱投影面中各行掩码中记录的已被填充的像素的起始位置和终止位置;\n[0120] 特征提取单元133,用于查找新填满的子图像,对新填满的子图像进行多级降采样,并对子图像和各级采样图像进行图像特征点提取。\n[0121] 作为全景图像生成装置100的实施例,投影单元130还包括重定位单元134,重定位单元134用于:\n[0122] 利用前面各帧对应的各个摄像机姿态矩阵,估计摄像机的运动速度,并进一步估计当前帧对应的摄像机姿态矩阵的近似值;\n[0123] 根据摄像机当前姿态矩阵的近似值,将投影面各级子图像上的特征点投影到像平面上;\n[0124] 将上述特征点的投影和当前像平面上的像素点进行特征匹配,得到一组匹配点对;\n[0125] 以当前姿态矩阵的近似值作为初值,根据匹配点对,优化当前摄像机的姿态矩阵,得到精确的当前姿态矩阵的值。\n[0126] 作为全景图像生成装置100的实施例,还包括校正单元140,校正单元用140于调整界面上的参数修改首帧视频图像对应的摄像机姿态矩阵,对全景图进行校正。\n[0127] 此外,作为辅助部件,例如,还可以包括存储单元,用于全景图像的存储;显示单元,用于实时显示当前视频图像以及全景图像的生成结果。应当理解,在具体应用中,全景图像生成装置100可以成为单独的设备,也可以体现为集成于终端设备之中。\n[0128] 这里所使用的“终端”、“终端设备”既包括仅具备无发射能力的无线信号接收器的设备,又包括具有能够在双向通信链路上进行双向通信的接收和发射硬件的设备。这种设备可以包括:具有或没有多线路显示器的蜂窝或其他通信设备;可以组合语音和数据处理、传真和/或数据通信能力的个人通信系统(PCS);可以包括射频接收器和寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或全球定位系统(GPS)接收器的个人数字助理(PDA);和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行和/或以分布形式在地球和/或空间的任何其他位置运行。\n[0129] 为便于理解本发明,下面结合具体的处理过程对上述方法或设备作进一步说明。\n[0130] 例如,根据图2的流程图:\n[0131] 摄像机内部参数标定。采用Caltech camera calibration toolbox对摄像机的内部参数进行标定。在本例中fx,fy,u0,v0的标定结果分别是669.43519,667.52837,\n318.96791,233.78367。\n[0132] 以摄像机等效光心为坐标原点,建立世界坐标系。\n[0133] 以摄像机等效光心为坐标原点,建立初始摄像机坐标系。其中,摄像机的初始姿态中的alpha角(如图4所示)设为0。\n[0134] 以摄像机等效光心为几何中心,创建圆柱投影面,根据内参数将投影圆柱面离散化为适当分辨率的图像,并在该图像上进行子图像划分。在本例中,摄像机获取的单帧视频分辨率为640×480,依据公式(4)、(5)计算,全景图像的分辨率为4096×1024。子图像的分辨率取为64×64。\n[0135] 通过摄像机、摄像头等视频采集设备获取用于生成全景图像的视频图像。\n[0136] 设置投影图像的掩码,以标识投影图像上每行已填充像素的位置范围。\n[0137] 全景图像生成过程由投影计算序列构成。在每个投影图像计算周期内,包括以下计算过程:\n[0138] 利用前面各帧对应的各个摄像机姿态矩阵,估计摄像机的运动速度,并进一步估计当前帧对应的摄像机姿态矩阵的近似值;\n[0139] 根据所述摄像机当前姿态矩阵的近似值,将投影面各级子图像上的特征点投影到像平面上;\n[0140] 将上述特征点的投影和当前像平面上的像素点进行特征匹配,得到一组匹配点对;\n[0141] 以所述当前姿态矩阵的近似值作为初值,根据所述匹配点对,优化当前摄像机的姿态矩阵,得到精确的当前姿态矩阵的值。\n[0142] 以得到的摄像机当前姿态矩阵计算当前图像投影到圆柱面的覆盖范围。根据图像掩码查找覆盖范围内未填充像素点,并以当前图像的投影值进行填充。\n[0143] 填充完毕后修改图像掩码,并查找新填满的子图像,对新填满的子图像进行多级降采样,并对子图像和各级采样图像进行FAST特征提取。\n[0144] 通过修改摄像机的初始姿态参数alpha,可以校正因姿态初值估计的误差所产生的图像扭曲。\n[0145] 例如,图10为生成全景图的过程中,摄像机获取的当前视频图像。图11为生成全景图的过程中,当前全景图的拼接状态。其中图像上的矩形框内部区域表示当前摄像机的投影区域。\n[0146] 根据上述公开的全景图实时生成的方法,在具体的应用中,本发明实施例还提出了一种拍摄全景图的方法,包括以下步骤:\n[0147] 启动摄像机拍摄视频图像;\n[0148] 根据上述公开的全景图实时生成的方法,将拍摄的视频图像生产全景图;\n[0149] 在屏幕上显示形成的全景图。\n[0150] 如图12所示,为将终端的摄像头对准所要拍摄全景图的场景。\n[0151] 具体而言,还包括:启动摄像机拍摄视频图像时,摄像机能够在任意方向移动,通过转动摄像头对场景进行拍摄,并在屏幕上显示拍摄到的视频图像,实时更新视频图像对应的全景图。\n[0152] 例如,在用户进行全景图拍摄时,对用户移动摄像头等视频采集单元的拍摄方式无限制。用户可以上、下、左、右任意方向移动、转动摄像头对场景进行拍摄,获取视频图像。\n[0153] 此外,实时更新视频图像对应的全景图时,在屏幕上动态显示全景图的拼接过程。\n[0154] 例如,包括全景图拼接状态显示,用户在进行全景图拍摄的过程中,可以同时在屏幕上观察到全景图像的拼接状态,用户可观察到当前摄像机在全景图上的投影区域。例如,在屏幕上动态显示全景图的拼接过程时,显示当前摄像机拍摄的视频图像在全景图上的投影区域。如图13所示,为将当前摄像头拍摄到的图像填充到用于生成全景图画布中的示意图,其中,下半部分屏幕中黑点包围的区域为图示的视频图像在全景图上的投影区域。如图\n14所示,为对各个位置下摄像头拍摄到的视频图像进行拼接的示意图,下半部分屏幕中黑点包围的区域为图示的视频图像在全景图上的投影区域。此外,在全景图拼接的过程中,用户通过交互方式调整和/或结束拼接过程,例如,用户调整调整界面上的参数修改首帧视频图像对应的摄像机姿态矩阵,对全景图进行校正;例如,用户对拍摄的全景图满意时,通过点击End键停止拍摄。如图15所示,为全景图拼接完毕的示意图,下半部分屏幕中黑点包围的区域为图示的视频图像在全景图上的投影区域。\n[0155] 根据上述公开的全景图实时生成装置或方法,在具体的应用中,本发明实施例还提出了一种终端设备,包括:\n[0156] 启动模块,用于启动摄像机拍摄视频图像;\n[0157] 上述公开的全景图实时生成装置,用于将拍摄的视频图像生产全景图;或者,生成模块,用于根据上述公开的全景图实时生成的方法将拍摄的视频图像生产全景图;\n[0158] 显示模块,用于在屏幕上显示形成的全景图。\n[0159] 具体而言,启动摄像机拍摄视频图像时,摄像机能够在任意方向移动,通过转动摄像头对场景进行拍摄;显示模块还用于在屏幕上显示拍摄到的视频图像,实时更新视频图像对应的全景图。\n[0160] 此外,实时更新视频图像对应的全景图时,显示模块还用于在屏幕上动态显示全景图的拼接过程。\n[0161] 终端设备包括但不限于手机、平板电脑等移动设备,以手机为例描述如下:\n[0162] 将手机摄像头对准所要拍摄全景图的场景,如图12所示,为将终端的摄像头对准所要拍摄全景图的场景。\n[0163] 点击界面上的开始按钮“Start”,将当前摄像头拍摄到的图像填充到用于生成全景图画布中。例如,在屏幕上动态显示全景图的拼接过程时,显示当前摄像机拍摄的视频图像在全景图上的投影区域。如图13所示,为将当前摄像头拍摄到的图像填充到用于生成全景图画布中的示意图,其中,下半部分屏幕中黑点包围的区域为图示的视频图像在全景图上的投影区域。在手机显示屏上,上半部分显示的是手机摄像头当前拍摄的视频图像,下半部分显示的是当前全景图的拼接状态,其中图像上的矩形框内部区域表示当前摄像头的投影区域,矩形框内部区域的图像即为摄像头当前拍摄的视频图像。\n[0164] 上、下、左、右任意方向移动、转动手机摄像头对场景进行拍摄。拍摄过程中,对各个位置下摄像头拍摄到的视频图像进行拼接。如图14所示,为对各个位置下摄像头拍摄到的视频图像进行拼接的示意图,下半部分屏幕中黑点包围的区域为图示的视频图像在全景图上的投影区域。\n[0165] 此外,在全景图拼接的过程中,用户通过交互方式调整和/或结束拼接过程,例如,用户调整调整界面上的参数修改首帧视频图像对应的摄像机姿态矩阵,对全景图进行校正;例如,用户对拍摄的全景图满意时,通过点击End键停止拍摄。当全景图拼接完毕,或用户点击结束按钮“End”时,将拼接好的全景图像存储到存储设备中,结束整个过程。如图15所示,为全景图拼接完毕的示意图,下半部分屏幕中黑点包围的区域为图示的视频图像在全景图上的投影区域。\n[0166] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。\n[0167] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。\n[0168] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。\n[0169] 以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2018-09-21
- 2014-07-16
实质审查的生效
IPC(主分类): H04N 5/232
专利申请号: 201210548920.8
申请日: 2012.12.17
- 2014-06-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-11-24
|
2010-06-07
| | |
2
| |
2010-05-19
|
2009-12-07
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |