CN107376360B - 游戏直播方法及游戏直播系统 - Google Patents
游戏直播方法及游戏直播系统 Download PDFInfo
- Publication number
- CN107376360B CN107376360B CN201710465943.5A CN201710465943A CN107376360B CN 107376360 B CN107376360 B CN 107376360B CN 201710465943 A CN201710465943 A CN 201710465943A CN 107376360 B CN107376360 B CN 107376360B
- Authority
- CN
- China
- Prior art keywords
- image
- current
- feature point
- game
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
- A63F13/86—Watching games played by other players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4038—Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/57—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
- A63F2300/577—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player for watching a game played by other players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
Abstract
本发明公开了一种VR游戏的直播方法及游戏直播系统。其包括:可以让游戏观众拥有和玩家相同的全景视角,并且可以根据自己的需要自由掌握自己的视角,从而体验到和player相同的沉浸感;而且不需要游戏厂商提供支持,也不会给玩家带来额外的开销,就可以让游戏观众拥有和玩家同样的全景视角。本系统会做大量的预处理工作,以保证VR游戏直播过程实时。直播过程中,系统会通过分层选择的方式判断玩家所在的位置,在提高判断准确性的基础上缩短了计算时间。系统还通过全局调整相机参数方法和基于特征点群的位置调整算法计算玩家当前的视角,并准确的拼合到对应的全景图中。
Description
技术领域
本发明涉及视频直播技术领域,具体地,涉及一种游戏直播方法和游戏直播系统。
背景技术
游戏直播可以让观众实时看到游戏者的游戏情况,游戏者可以通过游戏直播来分享游戏的内容和操作。传统的屏幕对屏幕的方式完全可以应对各种情况的游戏直播。
然而,现在虚拟现实VR((Virtual Reality;虚拟现实)游戏越来越多,由于游戏视角可以随着头部转动以及双眼时差技术,VR游戏会给游戏玩家一种身临其境的感觉。现在的VR游戏设备只能采集出游戏玩家当前的视角下的图像进行直播,虽然有双目视差,即观察者可以看到立体画面,但是,观察者只能看到游戏玩家当前的视角,无法根据自己头部的转动变换视角,因而观察者无法体验到和游戏玩家相同的身临其境的感觉。
为了解决VR游戏直播的问题,如果游戏厂商提供支持,原理上可以开放观察者接口,也就是说让游戏引擎不只渲染玩家当前的视角,而是同时渲染以玩家为中心的360度的视角。但是这就会给玩家的游戏设备带来过大的负担,会直接影响到玩家本身的游戏体验。
为了解决VR游戏直播的问题,还可以设计出专门的SDK(Software DevelopmentKit;软件开发工具包),游戏开发者只要使用这些SDK进行开发,就可以提供观察者接口。然而,这些方法不但不能让VR游戏的观察者体验到和玩家相同的体验,有些还为游戏开发者和玩家带来了额外的负担。
可见,相关技术中在进行VR游戏直播时,存在以下问题:一是需要游戏厂商提供接口支持,二是会给玩家的设备带来额外的开销。
发明内容
本发明的目的是提供一种游戏直播方法和游戏直播系统。
为了实现上述目的,根据本发明的第一方面,提供一种游戏直播方法,包括:
根据本发明的第一方面,提供一种游戏直播方法,应用于直播系统中,所述方法包括:
获得游戏玩家在虚拟现实VR游戏中的当前视角图像;
根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置;
获取预先存储的所述当前位置对应的全景图像数据;
将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像;并向至少一个终端发送所述拼接后的全景图像。
可选的,所述方法还包括:
建立所述游戏的全景图像数据库;其中,所述全景图数据库包括全景图像的角点数据、具有缝隙的蒙版数据、根据蒙版数据进行变形得到的图像数据;
建立所述游戏的特征点数据库;其中,所述特征点数据库包括组成全景图像的每个图像的特征点数据;
建立所述游戏的相机参数数据库;其中,所述相机参数数据库包括组成全景图像的每个图像的相机参数。
可选的,建立所述游戏的特征点数据库,包括:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点,获得所述每个位置的特征点集合;其中,所述全景图集合中包括组成所述每个位置的全景图像的多张图像;
根据所述每个位置的特征点集合,按照聚类的划分方式,以游戏中的位置作为索引建立所述特征点数据库;其中,每个聚类内的单个节点对应相应区域内的位置的节点特征库。
可选的,计算所述全景图集合中的每张图像的特征点,获得所述每个位置的特征点集合,包括:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点;
基于所述全景图集合中每张图像的特征点,组成原始特征点集合;
对所述原始特征点集合中的特征点进行排序,并通过计算特征点向量之间范数的方法,去重去除所述原始特征点集合中重复的特征点,获得所述特征点集合。
可选的,根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置,包括:
获取预先建立的所述游戏的特征点数据库;
将所述当前视角图像的特征点与所述特征点数据库进行特征点匹配,从所述特征点数据库中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
可选的,所述聚类的划分方式为四叉树的划分方式;以及,将所述当前视角图像的特征点与所述特征点数据库进行特征点匹配,从所述特征点数据库中确定出与所述当前视角图像匹配的第一图像和第二图像,包括:
在所述四叉树的非叶节点时,将所述当前视角图像的特征点与四叉树的非叶节点对应的节点特征点库进行逐级匹配;
在所述四叉树的叶节点时,根据单点最小距离,合适匹配点的个数和合适匹配点平均距离,从所述叶节点对应的节点特征点库中确定出所述第一图像和所述第二图像。
可选的,根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置,包括:
获取所述游戏玩家在第一时刻在所述游戏中的第一位置;所述第一时刻为获取所述当前视角图像之前的时刻;
确定所述第一位置的多个相邻位置;
根据所述第一位置的特征点集合和所述多个相邻位置中的多个特征点集合,组成连续匹配特征点集合;
将所述当前视角图像的特征点与所述连续匹配特征点集合进行匹配,从所述连续匹配特征点集合中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
可选的,将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像,包括:
将所述当前视角图像划分为多张图像;
将所述多张图像中的每张图像分别与所述第一图像和所述第二图像进行模板匹配,并确定模板距离最小的图像为所述匹配图像。
可选的,将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像,包括:
计算所述当前视角图像的当前相机参数,所述当前相机参数包括第一相机内参矩阵和第一相机旋转矩阵;
根据所述当前相机参数,对所述当前视角图像进行变形,获得变形后的当前视角图像;
根据所述全景图数据,生成当前全景图;
计算所述当前视角图像在所述当前全景图中的位置坐标;
根据所述位置坐标,对所述变形后的当前视角图像和所述当前全景图进行拼接,获得所述拼接后的全景图像。
可选的,计算所述当前视角图像的当前相机参数,包括:
获取预先建立的所述相机参数数据库,所述相机参数数据库中包括所述匹配图像的第二相机内参矩阵和第二相机旋转矩阵;
根据Kf*Rf=H01.INV*Ki*Ri,计算获得所述第一相机旋转矩阵;其中,所述Kf为第一相机内参矩阵,Rf为第一相机旋转矩阵,Ki为第二相机内参矩阵,Ri为第二相机旋转矩阵;
根据E2d=∑特征点∑fici*cf||xf~(xi^;Kf,Rf,Ki,Ri)Δ(Kf,Rf,Ki,Ri)–xi^||2,计算获得所述当前相机参数,其中,E2d为当前相机参数,f为当前视角图像上的特征点的标识,i为第一参考图像上的特征点的标识,ci为第一参考图像的置信度,cf为当前视角图像的置信度,xf为当前视角图像上的一个特征点的二维坐标,xi为第一参考图像上的对应特征点的二维坐标。
可选的,计算所述当前视角图像在所述当前全景图中的位置坐标,包括:
对所述第一参考图像和所述第二参考图像进行特征点匹配,获得所述当前视角图像上的目标特征点与所述第一参考图像和所述第二参考图像上的对应特征点之间的描述矩阵的范数,并确定特征点描述矩阵的范数最小的多个对应特征点;从所述当前视角图像上确定出以所述目标特征点为圆心,半径为第一预设半径的区域内的所有特征点,获得第一特征点群;
从所述第一参考图像和第二参考图像上确定出以多个对应特征点中的每个对应特征点为圆心,半径为第二预设半径的区域内的所有特征点,获得多个第二特征点群,其中,所述第二预设半径大于所述第一预设半径;
将所述第一特征点群与所述多个第二特征点群进行匹配,确定匹配的第二特征点群;
确定所述匹配的第二特征点群对应的特征点所在的位置坐标为所述当前视角图像在所述当前全景图中的位置坐标。
根据本发明的第二方面,提供一种游戏直播系统,包括:
当前视角图像获得模块,用于获得游戏玩家在虚拟现实VR游戏中的当前视角图像;
当前位置确定模块,用于根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置;
全景图获取模块,用于获取预先存储的所述当前位置对应的全景图像数据;
全景图拼接模块,用于将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像;
发送模块,用于向至少一个终端发送所述拼接后的全景图像。
可选的,所述系统还包括:
全景图像数据库建立模块,用于建立所述游戏的全景图像数据库;其中,所述全景图数据库包括全景图像的角点数据、具有缝隙的蒙版数据、根据蒙版数据进行变形得到的图像数据;
特征点数据库建立模块,用于建立所述游戏的特征点数据库;其中,所述特征点数据库包括组成全景图像的每个图像的特征点数据;
相机参数数据库建立模块,用于建立所述游戏的相机参数数据库;其中,所述相机参数数据库包括组成全景图像的每个图像的相机参数。
可选的,所述特征点数据库建立模块用于:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点,获得所述每个位置的特征点集合;其中,所述全景图集合中包括组成所述每个位置的全景图像的多张图像;
根据所述每个位置的特征点集合,按照聚类的划分方式,以游戏中的位置作为索引建立所述特征点数据库;其中,每个聚类内的单个节点对应相应区域内的位置的节点特征库。
可选的,所述特征点数据库建立模块用于:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点;
基于所述全景图集合中每张图像的特征点,组成原始特征点集合;
对所述原始特征点集合中的特征点进行排序,并通过计算特征点向量之间范数的方法,去重去除所述原始特征点集合中重复的特征点,获得所述特征点集合。
可选的,所述当前位置确定模块用于:
获取预先建立的所述游戏的特征点数据库;
将所述当前视角图像的特征点与所述特征点数据库进行特征点匹配,从所述特征点数据库中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
可选的,所述聚类的划分方式为四叉树的划分方式;以及,所述当前位置确定模块用于:
在所述四叉树的非叶节点时,将所述当前视角图像的特征点与四叉树的非叶节点对应的节点特征点库进行逐级匹配;
在所述四叉树的叶节点时,根据单点最小距离,合适匹配点的个数和合适匹配点平均距离,从所述叶节点对应的节点特征点库中确定出所述第一图像和所述第二图像。
可选的,所述当前位置确定模块用于:
获取所述游戏玩家在第一时刻在所述游戏中的第一位置;所述第一时刻为获取所述当前视角图像之前的时刻;
确定所述第一位置的多个相邻位置;
根据所述第一位置的特征点集合和所述多个相邻位置中的多个特征点集合,组成连续匹配特征点集合;
将所述当前视角图像的特征点与所述连续匹配特征点集合进行匹配,从所述连续匹配特征点集合中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
可选的,所述当前位置确定模块用于:
将所述当前视角图像划分为多张图像;
将所述多张图像中的每张图像分别与所述第一图像和所述第二图像进行模板匹配,并确定模板距离最小的图像为所述匹配图像。
可选的,所述全景图拼接模块用于:
计算所述当前视角图像的当前相机参数,所述当前相机参数包括第一相机内参矩阵和第一相机旋转矩阵;
根据所述当前相机参数,对所述当前视角图像进行变形,获得变形后的当前视角图像;
根据所述全景图数据,生成当前全景图;
计算所述当前视角图像在所述当前全景图中的位置坐标;
根据所述位置坐标,对所述变形后的当前视角图像和所述当前全景图进行拼接,获得所述拼接后的全景图像。
可选的,所述全景图拼接模块用于:
获取预先建立的所述相机参数数据库,所述相机参数数据库中包括所述匹配图像的第二相机内参矩阵和第二相机旋转矩阵;
根据Kf*Rf=H01.INV*Ki*Ri,计算获得所述第一相机旋转矩阵;其中,所述Kf为第一相机内参矩阵,Rf为第一相机旋转矩阵,Ki为第二相机内参矩阵,Ri为第二相机旋转矩阵;
根据E2d=∑特征点∑fici*cf||xf~(xi^;Kf,Rf,Ki,Ri)Δ(Kf,Rf,Ki,Ri)–xi^||2,计算获得所述当前相机参数,其中,E2d为当前相机参数,f为当前视角图像上的特征点的标识,i为第一参考图像上的特征点的标识,ci为第一参考图像的置信度,cf为当前视角图像的置信度,xf为当前视角图像上的一个特征点的二维坐标,xi为第一参考图像上的对应特征点的二维坐标。
可选的,所述全景图拼接模块用于:对所述第一参考图像和所述第二参考图像进行特征点匹配,获得所述当前视角图像上的目标特征点与所述第一参考图像和所述第二参考图像上的对应特征点之间的描述矩阵的范数,并确定特征点描述矩阵的范数最小的多个对应特征点;从所述当前视角图像上确定出以所述目标特征点为圆心,半径为第一预设半径的区域内的所有特征点,获得第一特征点群;
从所述第一参考图像和第二参考图像上确定出以多个对应特征点中的每个对应特征点为圆心,半径为第二预设半径的区域内的所有特征点,获得多个第二特征点群,其中,所述第二预设半径大于所述第一预设半径;
将所述第一特征点群与所述多个第二特征点群进行匹配,确定匹配的第二特征点群;
确定所述匹配的第二特征点群对应的特征点所在的位置坐标为所述当前视角图像在所述当前全景图中的位置坐标。
本发明的方案中,在进行VR游戏直播时,根据游戏玩家的当前视角图像,确定游戏玩家在游戏中的当前位置,然后获取预先存储游戏的全景图像数据,将全景图像数据和游戏玩家的当前视角图像进行拼接,并将拼接后的全景图像发送给至少一个终端,其中,至少一个终端就是观看VR游戏直播的观察者的终端,因此,基于游戏直播系统传回的拼接后的全景图像,观察者能够看到全景视角。并且,由于全景图像数据为预先建立并储存在直播系统中的数据,因此,本方案中的游戏直播方法不会对玩家的设备造成任何负担,也不需要游戏厂商提供接口或支持。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是根据本发明的一种实施方式提供的一种游戏直播方法的流程图。
图2是根据本发明的一种实施方式提供的游戏直播方法的预处理部分的方法流程图;
图3是根据本发明的一种实施方式提供的游戏直播系统的框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1是根据本发明的一种实施方式提供的一种游戏直播方法的流程图。游戏直播方法应用于直播系统中,该方法包括以下步骤。
在步骤S10中,获得游戏玩家在虚拟现实VR游戏中的当前视角图像;
在步骤S11中,根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置;
在步骤S12中,获取预先存储的所述当前位置对应的全景图像数据;
在步骤S13中,将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像;并向至少一个终端发送所述拼接后的全景图像。
在步骤S10中,游戏玩家在进行直播时,直播系统接收游戏玩家的设备发送的当前视角图像,当前视角图像是指VR游戏设备采集游戏玩家的当前视角(可以包括左眼或者右眼),然后根据游戏玩家的当前视角,确定的与当前视角对应的游戏画面。游戏直播系统获得当前视角图像之后,执行步骤S11。
在步骤S11中,直播系统根据当前视角图像确定游戏玩家在游戏中所在的位置,然后,执行步骤S12,获取预先存储的所述当前位置对应的全景图数据。本公开中,直播系统会预处理大量游戏中各个位置的全景图,并把大量的计算结果(包括全景图数据、特征点数据、相机参数数据)提前存储成文件,在进行游戏直播时,直播系统可以直接使用预先存储好的数据。
在步骤S13中,将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像;并向至少一个终端发送所述拼接后的全景图像。
其中,至少一个终端为观看游戏直播的观众的终端,在将拼接后的全景图像发送给观众的终端后,至少一个终端的观众可以拥有和游戏玩家相同的全景视角。
本公开的方案中,由于全景图像数据可以为预先建立并储存在直播系统中的数据,因此,本方案中的游戏直播方法不会对玩家的设备造成任何负担,也不需要游戏厂商提供接口或支持,就可以进行VR游戏直播,使得观众可以拥有和游戏玩家相同的全景视角。
接下来,对本公开中的游戏直播方法进行详细说明。
本公开中的游戏直播方法包括预处理部分和实时处理部分,如图2所示,预处理部分包括以下几个步骤。
在步骤S20中,建立所述游戏的全景图像数据库;其中,所述全景图数据库包括全景图像的角点数据、具有缝隙的蒙版数据、根据蒙版数据进行变形得到的图像数据。
在步骤S21中,建立所述游戏的特征点数据库;其中,所述特征点数据库包括组成全景图像的每个图像的特征点数据。
在步骤S22中,建立所述游戏的相机参数数据库;其中,所述相机参数数据库包括组成全景图像的每个图像的相机参数。
在步骤S20中,对于一个游戏场景,游戏直播系统在预处理部分会预先采集一系列的全景图,根据一种可能的实施方式,这些全景图的位置按照聚类的方式进行组织,例如,按照四叉树的方式进行组织。
本公开中,对单点全景图的生成方法进行说明。首先,系统会寻找全景图集合中的特征点并进行匹配,然后,按照匹配结果计算选择匹配的图像加入全景图集合。第二步,采用最大生成树算法估计相机参数矩阵的初值,以及采用光束平差算法迭代调整相机特征矩阵,即相机参数。第三步,确定蒙版的缝隙,并利用计算好的相机参数对全景图像中的图像和蒙版进行变形。本公开中系统存储的不是合成的全景图像,而是分别存储角点数据,变形后的图像数据和找到缝隙的蒙版数据,然后,直播系统使用角点数据,变形后的图像数据和找到缝隙的蒙版数据就可以快速合成全景图。
在步骤S21中,对于VR游戏中的每个位置的全景图集合,全景图集合中包括组成全景图的多个图像。首先,系统会用SIFT(尺度不变特征转换;Scale-invariant featuretransform)特征点描述子计算全景图集合中的每张图像的特征点,并对每张图像的所有特征点的描述矩阵进行存储。本公开中,在计算游戏玩家的当前视角图像的相机参数时,会根据已有的特征点与游戏玩家的当前视角图像的特征点进行匹配计算。然后,每个位置会建立一个该位置点的所有图像的特征点集合;第三步,直播系统按照聚类的划分方法,例如,按照四叉树的划分方法,用位置作为索引建立特征点数据库,其中,每个聚类内的单个节点对应相应区域内的位置的特征点集合,即节点特征库。
本公开中,在建立特征点数据库后,由于同一个位置的全景图集合中的图像可能会有重叠,在同一个位置的特征点集合中就可能会有重复的特征点,因此,还可以对同一个位置的特征点集合中的特征点进行去重。由于特征点是使用一组向量来表示的,因此,直播系统可以先对特征点集合中的特征点进行排序,然后,通过相邻去重实现特征点去重。
在步骤S31中,由于在建立全景图的过程中,计算全景图集合中的每张图像的相机参数时,需要经过initial guess算法和global adjustment算法两个阶段,在通过globaladjustment算法计算出一个全局收敛时,可能会花费大量时间,因此,在预处理部分可以直接计算好每张图像的相机参数,并将每张图像的相机参数存储到相机参数数据库中。
本方案中,由于组成全景的每张图像所对应的相机都是在同一个点通过旋转拍摄得到的,因此,在计算并存储的相机参数时,相机参数包括相机内参K和相机外参R,由于每张图像所对应的相机都是在同一个点通过旋转拍摄得到的,没有位移,所以相机参数中不包括相机外参T。
本公开中,相机内参K如下所示:
其中,focal为焦距,aspect为焦距的长宽比,ffx为主点的横坐标,ffy为主点的纵坐标。而相机内参可以使用JSON(JavaScript ObjectNotatio)数据结构来存储相机特征矩阵数据。具体结构如下:{camera:camera01}。
在具体实施过程中,步骤S20,步骤S21和步骤S22的执行顺序不分先后,本公开对此不作限制。
接下来,对本公开中的游戏直播方法的实时处理部分进行说明。
直播系统在游戏玩家刚开始直播时,会进行全局匹配,也就是说,直播系统会匹配游戏场景内所有位置点的特征,来确定游戏玩家的当前位置。而在匹配出游戏玩家的当前位置后,由于游戏玩家运动的连续性,直播系统会进行连续匹配,也就是说,直播系统会匹配当前位置以及当前位置附近的位置的特征,从而实时的确定游戏玩家的位置。
由于在进行全局匹配后,系统就会反复的进行连续匹配过程,连续匹配只匹配当前位置以及周围的位置,因此,可以缩小匹配的时间。
本公开中,匹配方法分为基于特征点的粗晒和基于直方图的细选。基于特征点的匹配速度较快,而直方图是基于像素分布的匹配,能够使得匹配结果更加准确。本公开中,直播系统使用分层判断的方法,首先,直播系统会使用特征点匹配缩小当前位置所在的目标范围,然后,通过直方图匹配从目标范围中获得准确的匹配结果。
接下来,对特征值匹配进行说明。
在游戏玩家开始游戏直播时,系统完全不知道游戏玩家所在的位置,因此,直播系统需要对游戏中的所有位置的特征点进行匹配。为了缩短计算时间,根据一种可能的实施方式,可以采用四叉树的方法存储和管理特征点。如图所示,其中,区域10,区域11,区域14,区域15中的特征点根据本公开中的特征点提取方法进行提取,然后去重后记为特征点集合L1,则L1={F10,F11,F14,F15},其他3个特征点集合为:L2={F16,F17,F12,F13},L3={F6,F7,F1,F2},L4={F8,F9,F3,F4},特征点数据库S={L1,L2,L3,L4}。
本公开中,同一个区域内的不同位置所看到的图像中包含的特征点重复非常大,在特征点去重后,特征点的数量会明显减少,使用四叉树存储特征点,则在做特征点匹配的时候,特征点数据库S中的特征点总数要比场景中所有特征点的数量小,从而提高特征点匹配的速度。因此,直播系统可以使用基于特征点的匹配作为筛选的第一个阶段,本公开中,特征点匹配主要包括以下步骤。
第一步,将游戏玩家的当前视角图像的特征点分别与L1、L2、L3、L4进行匹配,并从L1、L2、L3、L4中确定出最匹配的特征点集合Lmin。
第二步:迭代进行步骤一的计算,直到四叉树的叶节点时,也就是说,至少有一个节点不可以再四分时,确定出最合适的位置。
本公开中,在确定最合适的位置时,可以根据单点最小距离判别法,合适匹配点的个数判别法,以及合适匹配点平均距离判别法,这三种方式来匹配当前视角图像的特征点与四叉树节点上的特征点集合,每个参数选出最匹配的两个集合,并将这集合进行合并。
具体的,假设当前视角图像上的特征点i与节点特征库中的特征点j之间的特征矩阵范数是Mij,那么,所有匹配结果的集合是:Msum=∑Mij。
单点最小距离判别法是指找到Msum的最小值,即R1=min(∑Mij),以R1为判别标准,直播系统会得到一个合适的结果image1。
为了判断两张图像是否拥有足够多的相似特征点,可以设定一个阈值C,只有Msum中的结果小于C时才加入到结果中,即R2=num(∑Mij(Mij<C)),则以R2为判别标准,直播系统会得到一个合适的结果image2。
由于有些场景比较复杂,较好的匹配点个数较多,因此,还可以使用第三个匹配标准,平均匹配距离,即,将所有较好的匹配点距离相加再除以个数,即R3=∑(Mij)/num(Mij<c),以R3为判别标准系统会得到一个合适的结果image3。
然后,去重得到粗选的最后结果image={image1,image2,image3}。
上述特征点匹配为直播系统进行的全局匹配,直播系统会匹配游戏场景内所有位置点的特征。由于游戏玩家运动的连续性,直播系统会进行连续匹配,也就是说,直播系统会匹配当前位置以及当前位置附近的位置的特征,从而实时的确定游戏玩家的位置。也就是说,直播系统在每次重新判断游戏玩家的位置时,不需要将整个场景中的所有位置的特征点加入匹配集合,而是只需要考虑包括游戏玩家本身所在的当前位置,以及游戏玩家周围的8个位置,如图所示。在具体实施过程中,如果游戏玩家处在场景边缘或是角落,需要进行匹配的位置则更少。然后,直播系统可以根据单点最小距离判别法,合适匹配点的个数判别法,以及合适匹配点平均距离判别法,筛选9个位置的点,得到匹配结果。
本公开中,为了使匹配结果更加准确,直播系统可以在游戏直播刚开始的一段时间内,对当前视角图像的特征点进行多次全局匹配,直到每次的匹配结果的位置关系连续变化时,直播系统才进入到局部匹配阶段。
本公开中,在对当前匹配图像进行特征点匹配之后,直播系统会根据特征点匹配的匹配结果进行直方图匹配。
本公开中,可以采用SIFT作为特征点描述子,则所有的特征点是无关缩放和观察角度的,所以距离较近的两个位置如果仅从特征点判断是无法找到区别的,因此,可以采用直方图匹配进行细选。
直方图会包含物体的色彩分布,物体边缘梯度模板以及目标位置的概率分布等。基于直方图的模板匹配可以很好的区分相邻位置的图像集合,因为少量的距离偏差都会导致两幅图像像素分布概率的变化。因此,直播系统可以使用基于直方图的匹配作为筛选的第二个阶段,可以更加精确的得到游戏玩家的当前位置。直播系统会通过特征点匹配找到与当前视角图像最为匹配的两张图像P1,P2来做模板匹配。选两张图像的原因是,当前视角图像一般不会落在一张图像中,也不会超过两张图像的范围。
本公开中,直播系统直接使用整个当前视角图像来做模板匹配,并不能得到好的匹配结果。因为游戏中的当前视角图像的图像尺寸和全景图集合中单个图像的图像尺寸是相同的,所以,通常情况下,当前视角图像是垮了两个单个图像的。而模板匹配是从当前视角图像的左上角点开始匹配,所以只能得到当前视角图像和左边图像的匹配度,无法得到当前视角图像和右边图像的匹配度。
因此,本公开中,可以将当前视角图像按竖直分为N份,N为正整数,N越大匹配效果越好。具体来讲,可以将当前视角图像竖直分为N个图像,然后,将N个图像中的每个图像分别与P1,P2进行模板匹配,并选出模板距离最小的图像。
本公开中,随着N的增加,直播系统的计算量会增大。在具体实施过程中,可以获得不同的N值对应的准确率和直播系统负荷。然后选择合适的N值作为算法的参数,既能够保证准确率,又不会加重直播系统的负荷。
本公开中,直播系统在判断出游戏玩家的当前位置,并调用相应的全景图像后,由于全景图像是之前预处理的,因此是过时的,而VR游戏直播中的观察者需要实时看到最新的游戏情况。因此,直播系统还需要将游戏玩家的当前视角图像拼接到到全景图像中。
首先,直播系统会找到游戏玩家的当前视角图像的特征点,然后,与当前位置对应的全景图像的特征点进行对应匹配,并使用匹配结果估算相机的相机参数。然后,直播系统会对估算出的相机参数进行全局调整,得到准确的当前视角图像的相机参数,直播系统可以对当前视角图像进行图像变形,并计算当前视角图像在全景图中的位置坐标。最后,将变形后的当前视角图像拼接到全景图中。
接下来,对当前视角图像的相机参数的计算方法进行说明。
通过特征点匹配和直方图匹配,直播系统已经判断出游戏玩家的当前位置,也就是说,游戏玩家的当前视角图像与当前位置的全景图集合相对应。并且,根据特征点匹配,直播系统还可以得出与当前视角图像F的匹配度最高的一张图像I。因此,直播系统可以计算出当前视角图像的相机内参和相机外参。由于当前视角图像F和匹配图像I是相机在同一个点通过旋转拍摄得到的,所以相机外参只包含旋转矩阵R,可以得到如下公式:
Rf-1*Kf-1*xf=x3d=RI-1*KI-1*xi (1)
其中,Rf-1是当前视角图像的相机旋转矩阵,Kf-1是当前视角图像的相机内参矩阵,xf是当前视角图像上的一个特征点的二维坐标,RI-1是匹配图像的相机旋转矩阵,KI-1是匹配图像的相机内参矩阵,xi是这张图中对应特征点(即与xf所表示的特征点相对应的特征点)的二维坐标,x3d是特征点的空间3维坐标。由于当前视角图像和匹配图像图的二维点坐标满足如下关系。
xf=H01*xi (2)
其中,H01是匹配图像对当前视角图像的单应矩阵,进而可以得到下面的公式。
Kf*Rf=H01.INV*KI*RI (3)
由于在预处理部分,直播系统已经在相机参数数据库中,预先计算并存储了全景图集合中所有图像的相机参数,所以,KI和RI是可以通过相机参数数据库得到。
然后,我们使用RANSAC(RANdom Sample Consensus)方法来计算匹配图像和当前视角图像之间的单应矩阵H01。在得到单应矩阵H01后,可以得到Kf与Rf的乘积。
进一步,可以采用先计算相机内参矩阵的方法,计算得到Kf。相机内参矩阵包括相机的focal,focal的长宽比as,以及主点的二维坐标。首先,计算相机的focal,as定为1,然后将主点定为图像的中央。则px=WidthI/2,py=HeightI/2,其中,WidthI和HeightI分别为图像的宽度和高度。然后,根据相机内参矩阵的所有参数,计算出Rf。
本公开中,为了使得当前视角图像的相机参数更加准确,还可以对当前视角图像的相机参数进行细微调整。
具体的,根据特征点匹配,直播系统可以得到与当前视角图像的相似度最高的一张图像,即匹配图像,则直播系统会比较与匹配图像相邻的两张图像与当前视角图像的相似度,相似度更高的一张图像与匹配图像一起作为对相机参数进行细微调整的参考图像,也就是说,确定匹配图像为第一参考图像,相似度高的一张图像为第二参考图像。本方案中,如果当前视角图像和匹配图像大部分重合,那么,全景图集合中除匹配图像外的其他图像的相似度都会非常接近,因此,本方案中,确定参考图像时,没有直接找相似度最高的前两张图像,从而减少误差。
在得到了参考图像集合后,系统会基于特征点分别将当前视角图像和第一参考图像和第二参考图像进行配准,即:
E=∑||ri||2=||xi~’(xi;p)–xi^’||2 (4)而根据公式(1),可以得到:
xf=Kf*Rf*RI-1*KI-1*xi (5)将公式(4)和(5)结合,可以得到:
E2d=∑特征点∑fici*cf||xf~(xi^;Kf,Rf,Ki,Ri)Δ(Kf,Rf,Ki,Ri)–xi^||2 (6)
其中,E2d为当前相机参数,f为当前视角图像上的特征点的标识,i为第一参考图像上的特征点的标识,ci为第一参考图像的置信度,cf为当前视角图像的置信度,xf为当前视角图像上的一个特征点的二维坐标,xi为第一参考图像上的对应特征点的二维坐标。
本公开中,由于第一参考图像和第二参考图像相机参数(例如:Ki1,Ki2,Ri1,Ri2)都是在预处理部分计算并调整好的,所以在计算误差error时,只需要考虑当前视角图像与第一参考图像之间的匹配,以及当前视角图像与第二参考图像之间的匹配。然后,可以采用非线性最小二乘方法就可以快速迭代出当前视角图像的相机的参数,公式如下:
E2d=∑特征点∑fici*cf||xf~(xi^;Kf,Rf,Ki,Ri)Δ(Kf,Rf,Ki,Ri)–xi^||2 (7)
本公开中,在经过全局调整的当前视角图像的相机参数后,直播系统就可以将当前视角图像映射到球上了。为了避免当前视角图像的相机参数估计的误差,导致当前视角图像拼接的位置可能出现偏差,根据一种可能的实施方式,本公开中,可以基于相同特征点的位置进行调整。
具体来讲,首先,找到当前视角图像上某个特征点对应的图像,以及这个特征点在对应图像上的二维坐标,然后,分别计算当前视角图像上的这个特征点和对应图像上的对应特征点变形到sphere上的坐标,得到两个坐标,然后,两个坐标的欧氏距离就是需要调整的值。
在具体实施过程中,由于特征点容易受到噪声以及类似特征点的干扰,对一个特征点进行匹配可能不够准确,因此,根据一种可能的实施方式,本公开中使用特征点群的方法来匹配特征点。
由于图像的特征点是有分布规律的,比如当前视角图像上一个特征点以及周围的特征点,在另一张图上也一定聚在一起。则直播系统可以通过判断两个聚合特征点群是否相似,作为判断两个特征点是否为同一个特征点的依据,这样就可以大幅减少相似特征点以及噪音所带来的误差。
第一步,对于第一参考图像和第二参考图像可以使用目标特征点去匹配,例如:每张图像上会得到最适合的5个特征点。判断的依据是计算两个特征点描述矩阵的范数,并找到结果最小的5个点,公式如下:
kif->descriptor(kif),kij->descriptor(kij) (8)
result(kif,kij)=||descriptor(kif),descriptor(kij)|| (9)
其中,kif是在当前视角图像上的目标特征点I,kij是在图像j上的对应特征点I,descriptor(kif)和descriptor(kij)是当前视角图像和图像j的特征描述矩阵。
第二步,我们会在frame上寻找以目标特征点Kif为圆心,半径为第一预设半径R的圆内的所有特征点。公式如下:
disti’=sqrt((kif.x-ki’f.x)2+(kif.y-ki’f.y)2) (10)
Sf=[ki’f](disti’<=R) (11)
第三步,我们以从第一步找出5个相似特征点为中心,半径为第二预设半径1.5R的圆内的所有特征点,具体过程与第二步类似。
disti’=sqrt((kij.x-ki’j.x)2+(kij.y-ki’j.y)2) (12)
Sj=[ki’j](disti’<=R) (13)
本公开中,选择1.5R是因为相同的特征点在不同的图中可能会由于透视变形导致欧氏距离有所偏差。在具体实施过程中,也可以选择其他值,如1.6R或者2R,本申请对此不作限制。
第四步,直播系统会将特征点群Sf与每幅图像中的5个特征点群分别使用Flann(Fast Library for Approximate Nearest Neighbors;近似最近邻搜索方法)的方法快速匹配,得到一个符合条件的匹配集合M。
然后,我们先计算总的匹配距离SumDist=∑disti(disti∈M)。由于特征点的数量不同,所以直播系统中可以使用平均匹配距离,即avgDist=SumDist/M.size。
最后,直播系统会选择平均距离最小的图上的特征点群的特征点作为最匹配特征点。
根据上述方法,直播系统已经得到了同一个特征点在当前视角图像上的二维坐标,和在匹配图像上的二维坐标,从相机参数数据库中,可以知道匹配图像的相机内参KI和旋转矩阵RI,直播系统在前述方法中已经计算得到相机内参Kf和旋转矩阵Rf。因此,直播系统可以通过变形到sphere的方法分别得到张参考图像I1和I2上同一个特征点分别映射到球上的坐标(x1’,y1’),(x2’,y2’)。公式如下:
x1’=sθ=s*tan-1xI1/f,y1’=sΦ=s*tan-1yI1/sqrt(xI12+yI12) (14)
x2’=sθ=s*tan-1xI2/f,y2’=sΦ=s*tan-1yI2/sqrt(xI22+yI22) (15)
这两个点其实是同一个点,理论上他们在sphere上的坐标应该是相同的,因此,直播系统可以将当前视角图像整体进行偏移,偏移量分别是:
offsetx=x2’–x1’,offsety=y2’–y1’ (16)
计算出的offset就可以修正当前视角图像在全景图中的位置,得到当前视角图像在全景图像中的准确位置,从而将当前视角图像准确的拼接到全景图像中。然后,直播系统将拼接后的全景图像发送给至少一个终端,使得用户能够拥有和游戏玩家一样的全景视角。
根据本发明的第二方面,提供一种游戏直播系统,如图3所示,游戏直播系统100包括:
当前视角图像获得模块30,用于获得游戏玩家在虚拟现实VR游戏中的当前视角图像;
当前位置确定模块31,用于根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置;
全景图获取模块32,用于获取预先存储的所述当前位置对应的全景图像数据;
全景图拼接模块33,用于将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像;
发送模块34,用于向至少一个终端发送所述拼接后的全景图像。
可选的,所述系统还包括:
全景图像数据库建立模块,用于建立所述游戏的全景图像数据库;其中,所述全景图数据库包括全景图像的角点数据、具有缝隙的蒙版数据、根据蒙版数据进行变形得到的图像数据;
特征点数据库建立模块,用于建立所述游戏的特征点数据库;其中,所述特征点数据库包括组成全景图像的每个图像的特征点数据;
相机参数数据库建立模块,用于建立所述游戏的相机参数数据库;其中,所述相机参数数据库包括组成全景图像的每个图像的相机参数。
可选的,所述特征点数据库建立模块用于:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点,获得所述每个位置的特征点集合;其中,所述全景图集合中包括组成所述每个位置的全景图像的多张图像;
根据所述每个位置的特征点集合,按照聚类的划分方式,以游戏中的位置作为索引建立所述特征点数据库;其中,每个聚类内的单个节点对应相应区域内的位置的节点特征库。
可选的,所述特征点数据库建立模块用于:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点;
基于所述全景图集合中每张图像的特征点,组成原始特征点集合;
对所述原始特征点集合中的特征点进行排序,并通过计算特征点向量之间范数的方法,去重去除所述原始特征点集合中重复的特征点,获得所述特征点集合。
可选的,所述当前位置确定模块31用于:
获取预先建立的所述游戏的特征点数据库;
将所述当前视角图像的特征点与所述特征点数据库进行特征点匹配,从所述特征点数据库中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
可选的,所述聚类的划分方式为四叉树的划分方式;以及,所述当前位置确定模块31用于:
在所述四叉树的非叶节点时,将所述当前视角图像的特征点与四叉树的非叶节点对应的节点特征点库进行逐级匹配;
在所述四叉树的叶节点时,根据单点最小距离,合适匹配点的个数和合适匹配点平均距离,从所述叶节点对应的节点特征点库中确定出所述第一图像和所述第二图像。
可选的,所述当前位置确定模块31用于:
获取所述游戏玩家在第一时刻在所述游戏中的第一位置;所述第一时刻为获取所述当前视角图像之前的时刻;
确定所述第一位置的多个相邻位置;
根据所述第一位置的特征点集合和所述多个相邻位置中的多个特征点集合,组成连续匹配特征点集合;
将所述当前视角图像的特征点与所述连续匹配特征点集合进行匹配,从所述连续匹配特征点集合中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
可选的,所述当前位置确定模块31用于:
将所述当前视角图像划分为多张图像;
将所述多张图像中的每张图像分别与所述第一图像和所述第二图像进行模板匹配,并确定模板距离最小的图像为所述匹配图像。
可选的,所述全景图拼接模块33用于:
计算所述当前视角图像的当前相机参数,所述当前相机参数包括第一相机内参矩阵和第一相机旋转矩阵;
根据所述当前相机参数,对所述当前视角图像进行变形,获得变形后的当前视角图像;
根据所述全景图数据,生成当前全景图;
计算所述当前视角图像在所述当前全景图中的位置坐标;
根据所述位置坐标,对所述变形后的当前视角图像和所述当前全景图进行拼接,获得所述拼接后的全景图像。
可选的,所述全景图拼接模块33用于:
获取预先建立的所述相机参数数据库,所述相机参数数据库中包括所述匹配图像的第二相机内参矩阵和第二相机旋转矩阵;
根据Kf*Rf=H01.INV*Ki*Ri,计算获得所述第一相机旋转矩阵;其中,所述Kf为第一相机内参矩阵,Rf为第一相机旋转矩阵,Ki为第二相机内参矩阵,Ri为第二相机旋转矩阵;
根据E2d=∑特征点∑fici*cf||xf~(xi^;Kf,Rf,Ki,Ri)Δ(Kf,Rf,Ki,Ri)–xi^||2,计算获得所述当前相机参数,其中,E2d为当前相机参数,f为当前视角图像上的特征点的标识,i为第一参考图像上的特征点的标识,ci为第一参考图像的置信度,cf为当前视角图像的置信度,xf为当前视角图像上的一个特征点的二维坐标,xi为第一参考图像上的对应特征点的二维坐标。
可选的,所述全景图拼接模块33用于:对所述第一参考图像和所述第二参考图像进行特征点匹配,获得所述当前视角图像上的目标特征点与所述第一参考图像和所述第二参考图像上的对应特征点之间的描述矩阵的范数,并确定特征点描述矩阵的范数最小的多个对应特征点;从所述当前视角图像上确定出以所述目标特征点为圆心,半径为第一预设半径的区域内的所有特征点,获得第一特征点群;
从所述第一参考图像和第二参考图像上确定出以多个对应特征点中的每个对应特征点为圆心,半径为第二预设半径的区域内的所有特征点,获得多个第二特征点群,其中,所述第二预设半径大于所述第一预设半径;
将所述第一特征点群与所述多个第二特征点群进行匹配,确定匹配的第二特征点群;
确定所述匹配的第二特征点群对应的特征点所在的位置坐标为所述当前视角图像在所述当前全景图中的位置坐标。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (20)
1.一种游戏直播方法,其特征在于,应用于直播系统中,所述方法包括:
获得游戏玩家在虚拟现实VR游戏中的当前视角图像;
根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置;
获取预先存储的所述当前位置对应的全景图像数据;
将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像;并向至少一个终端发送所述拼接后的全景图像;
所述方法还包括:
建立所述游戏的全景图像数据库;其中,所述全景图像数据库包括全景图像的角点数据、具有缝隙的蒙版数据、根据蒙版数据进行变形得到的图像数据;
建立所述游戏的特征点数据库;其中,所述特征点数据库包括组成全景图像的每个图像的特征点数据;
建立所述游戏的相机参数数据库;其中,所述相机参数数据库包括组成全景图像的每个图像的相机参数。
2.根据权利要求1所述的方法,其特征在于,建立所述游戏的特征点数据库,包括:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点,获得所述每个位置的特征点集合;其中,所述全景图集合中包括组成所述每个位置的全景图像的多张图像;
根据所述每个位置的特征点集合,按照聚类的划分方式,以游戏中的位置作为索引建立所述特征点数据库;其中,每个聚类内的单个节点对应相应区域内的位置的节点特征库。
3.根据权利要求2所述的方法,其特征在于,计算所述全景图集合中的每张图像的特征点,获得所述每个位置的特征点集合,包括:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点;
基于所述全景图集合中每张图像的特征点,组成原始特征点集合;
对所述原始特征点集合中的特征点进行排序,并通过计算特征点向量之间范数的方法,去重去除所述原始特征点集合中重复的特征点,获得所述特征点集合。
4.根据权利要求2所述的方法,其特征在于,根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置,包括:
获取预先建立的所述游戏的特征点数据库;
将所述当前视角图像的特征点与所述特征点数据库进行特征点匹配,从所述特征点数据库中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
5.根据权利要求4所述的方法,其特征在于,所述聚类的划分方式为四叉树的划分方式;以及,
将所述当前视角图像的特征点与所述特征点数据库进行特征点匹配,从所述特征点数据库中确定出与所述当前视角图像匹配的第一图像和第二图像,包括:
在所述四叉树的非叶节点时,将所述当前视角图像的特征点与四叉树的非叶节点对应的节点特征点库进行逐级匹配;
在所述四叉树的叶节点时,根据单点最小距离,合适匹配点的个数和合适匹配点平均距离,从所述叶节点对应的节点特征点库中确定出所述第一图像和所述第二图像。
6.根据权利要求2所述的方法,其特征在于,根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置,包括:
获取所述游戏玩家在第一时刻在所述游戏中的第一位置;所述第一时刻为获取所述当前视角图像之前的时刻;
确定所述第一位置的多个相邻位置;
根据所述第一位置的特征点集合和所述多个相邻位置中的多个特征点集合,组成连续匹配特征点集合;
将所述当前视角图像的特征点与所述连续匹配特征点集合进行匹配,从所述连续匹配特征点集合中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
7.根据权利要求4或6所述的方法,其特征在于,将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像,包括:
将所述当前视角图像划分为多张图像;
将所述多张图像中的每张图像分别与所述第一图像和所述第二图像进行模板匹配,并确定模板距离最小的图像为所述匹配图像。
8.根据权利要求7所述的方法,其特征在于,将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像,包括:
计算所述当前视角图像的当前相机参数,所述当前相机参数包括第一相机内参矩阵和第一相机旋转矩阵;
根据所述当前相机参数,对所述当前视角图像进行变形,获得变形后的当前视角图像;
根据所述全景图数据,生成当前全景图;
计算所述当前视角图像在所述当前全景图中的位置坐标;
根据所述位置坐标,对所述变形后的当前视角图像和所述当前全景图进行拼接,获得所述拼接后的全景图像。
9.根据权利要求8所述的方法,其特征在于,计算所述当前视角图像的当前相机参数,包括:
获取预先建立的所述相机参数数据库,所述相机参数数据库中包括所述匹配图像的第二相机内参矩阵和第二相机旋转矩阵;
根据Kf*Rf=H01.INV*Ki*Ri,计算获得所述第一相机旋转矩阵;其中,所述Kf为第一相机内参矩阵,Rf为第一相机旋转矩阵,Ki为第二相机内参矩阵,Ri为第二相机旋转矩阵;
根据E2d=∑特征点∑fici*cf||xf~(xi^;Kf,Rf,Ki,Ri)Δ(Kf,Rf,Ki,Ri)–xi^||2,计算获得所述当前相机参数,其中,E2d为当前相机参数,f为当前视角图像上的特征点的标识,i为第一参考图像上的特征点的标识,ci为第一参考图像的置信度,cf为当前视角图像的置信度,xf为当前视角图像上的一个特征点的二维坐标,xi为第一参考图像上的对应特征点的二维坐标,H01是所述匹配图像对所述当前视角图像的单应矩阵。
10.根据权利要求9所述的方法,其特征在于,计算所述当前视角图像在所述当前全景图中的位置坐标,包括:
对所述第一参考图像和第二参考图像进行特征点匹配,获得所述当前视角图像上的目标特征点与所述第一参考图像和所述第二参考图像上的对应特征点之间的描述矩阵的范数,并确定特征点描述矩阵的范数最小的多个对应特征点;从所述当前视角图像上确定出以所述目标特征点为圆心,半径为第一预设半径的区域内的所有特征点,获得第一特征点群;
从所述第一参考图像和第二参考图像上确定出以多个对应特征点中的每个对应特征点为圆心,半径为第二预设半径的区域内的所有特征点,获得多个第二特征点群,其中,所述第二预设半径大于所述第一预设半径;
将所述第一特征点群与所述多个第二特征点群进行匹配,确定匹配的第二特征点群;
确定所述匹配的第二特征点群对应的特征点所在的位置坐标为所述当前视角图像在所述当前全景图中的位置坐标。
11.一种游戏直播系统,其特征在于,包括:
当前视角图像获得模块,用于获得游戏玩家在虚拟现实VR游戏中的当前视角图像;
当前位置确定模块,用于根据所述当前视角图像确定所述游戏玩家在所述游戏中的当前位置;
全景图获取模块,用于获取预先存储的所述当前位置对应的全景图像数据;
全景图拼接模块,用于将所述当前视角图像和所述全景图像数据进行拼接,获得拼接后的全景图像;
发送模块,用于向至少一个终端发送所述拼接后的全景图像;
所述系统还包括:
全景图像数据库建立模块,用于建立所述游戏的全景图像数据库;其中,所述全景图像数据库包括全景图像的角点数据、具有缝隙的蒙版数据、根据蒙版数据进行变形得到的图像数据;
特征点数据库建立模块,用于建立所述游戏的特征点数据库;其中,所述特征点数据库包括组成全景图像的每个图像的特征点数据;
相机参数数据库建立模块,用于建立所述游戏的相机参数数据库;其中,所述相机参数数据库包括组成全景图像的每个图像的相机参数。
12.根据权利要求11所述的系统,其特征在于,所述特征点数据库建立模块用于:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点,获得所述每个位置的特征点集合;其中,所述全景图集合中包括组成所述每个位置的全景图像的多张图像;
根据所述每个位置的特征点集合,按照聚类的划分方式,以游戏中的位置作为索引建立所述特征点数据库;其中,每个聚类内的单个节点对应相应区域内的位置的节点特征库。
13.根据权利要求12所述的系统,其特征在于,所述特征点数据库建立模块用于:
对于所述游戏中的每个位置的全景图集合,计算所述全景图集合中的每张图像的特征点;
基于所述全景图集合中每张图像的特征点,组成原始特征点集合;
对所述原始特征点集合中的特征点进行排序,并通过计算特征点向量之间范数的方法,去重去除所述原始特征点集合中重复的特征点,获得所述特征点集合。
14.根据权利要求12所述的系统,其特征在于,所述当前位置确定模块用于:
获取预先建立的所述游戏的特征点数据库;
将所述当前视角图像的特征点与所述特征点数据库进行特征点匹配,从所述特征点数据库中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
15.根据权利要求14所述的系统,其特征在于,所述聚类的划分方式为四叉树的划分方式;以及,所述当前位置确定模块用于:
在所述四叉树的非叶节点时,将所述当前视角图像的特征点与四叉树的非叶节点对应的节点特征点库进行逐级匹配;
在所述四叉树的叶节点时,根据单点最小距离,合适匹配点的个数和合适匹配点平均距离,从所述叶节点对应的节点特征点库中确定出所述第一图像和所述第二图像。
16.根据权利要求12所述的系统,其特征在于,所述当前位置确定模块用于:
获取所述游戏玩家在第一时刻在所述游戏中的第一位置;所述第一时刻为获取所述当前视角图像之前的时刻;
确定所述第一位置的多个相邻位置;
根据所述第一位置的特征点集合和所述多个相邻位置中的多个特征点集合,组成连续匹配特征点集合;
将所述当前视角图像的特征点与所述连续匹配特征点集合进行匹配,从所述连续匹配特征点集合中确定出与所述当前视角图像匹配的第一图像和第二图像;
将所述当前视角图像与所述第一图像和所述第二图像分别进行直方图匹配,从所述第一图像和所述第二图像中确定出与所述当前视角图像匹配的匹配图像;
确定所述匹配图像对应的位置为所述当前位置。
17.根据权利要求14或16所述的系统,其特征在于,所述当前位置确定模块用于:
将所述当前视角图像划分为多张图像;
将所述多张图像中的每张图像分别与所述第一图像和所述第二图像进行模板匹配,并确定模板距离最小的图像为所述匹配图像。
18.根据权利要求17所述的系统,其特征在于,所述全景图拼接模块用于:
计算所述当前视角图像的当前相机参数,所述当前相机参数包括第一相机内参矩阵和第一相机旋转矩阵;
根据所述当前相机参数,对所述当前视角图像进行变形,获得变形后的当前视角图像;
根据所述全景图数据,生成当前全景图;
计算所述当前视角图像在所述当前全景图中的位置坐标;
根据所述位置坐标,对所述变形后的当前视角图像和所述当前全景图进行拼接,获得所述拼接后的全景图像。
19.根据权利要求18所述的系统,其特征在于,所述全景图拼接模块用于:
获取预先建立的所述相机参数数据库,所述相机参数数据库中包括所述匹配图像的第二相机内参矩阵和第二相机旋转矩阵;
根据Kf*Rf=H01.INV*Ki*Ri,计算获得所述第一相机旋转矩阵;其中,所述Kf为第一相机内参矩阵,Rf为第一相机旋转矩阵,Ki为第二相机内参矩阵,Ri为第二相机旋转矩阵;
根据E2d=∑特征点∑fici*cf||xf~(xi^;Kf,Rf,Ki,Ri)Δ(Kf,Rf,Ki,Ri)–xi^||2,计算获得所述当前相机参数,其中,E2d为当前相机参数,f为当前视角图像上的特征点的标识,i为第一参考图像上的特征点的标识,ci为第一参考图像的置信度,cf为当前视角图像的置信度,xf为当前视角图像上的一个特征点的二维坐标,xi为第一参考图像上的对应特征点的二维坐标,H01是所述匹配图像对所述当前视角图像的单应矩阵。
20.根据权利要求19所述的系统,其特征在于,所述全景图拼接模块用于:对所述第一参考图像和第二参考图像进行特征点匹配,获得所述当前视角图像上的目标特征点与所述第一参考图像和所述第二参考图像上的对应特征点之间的描述矩阵的范数,并确定特征点描述矩阵的范数最小的多个对应特征点;从所述当前视角图像上确定出以所述目标特征点为圆心,半径为第一预设半径的区域内的所有特征点,获得第一特征点群;
从所述第一参考图像和第二参考图像上确定出以多个对应特征点中的每个对应特征点为圆心,半径为第二预设半径的区域内的所有特征点,获得多个第二特征点群,其中,所述第二预设半径大于所述第一预设半径;
将所述第一特征点群与所述多个第二特征点群进行匹配,确定匹配的第二特征点群;
确定所述匹配的第二特征点群对应的特征点所在的位置坐标为所述当前视角图像在所述当前全景图中的位置坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710465943.5A CN107376360B (zh) | 2017-06-19 | 2017-06-19 | 游戏直播方法及游戏直播系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710465943.5A CN107376360B (zh) | 2017-06-19 | 2017-06-19 | 游戏直播方法及游戏直播系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107376360A CN107376360A (zh) | 2017-11-24 |
CN107376360B true CN107376360B (zh) | 2021-01-01 |
Family
ID=60332502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710465943.5A Active CN107376360B (zh) | 2017-06-19 | 2017-06-19 | 游戏直播方法及游戏直播系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107376360B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107198876B (zh) * | 2017-06-07 | 2021-02-05 | 北京小鸟看看科技有限公司 | 游戏场景的加载方法及装置 |
CN109195020B (zh) * | 2018-10-11 | 2021-07-02 | 三星电子(中国)研发中心 | 一种ar增强的游戏直播方法和系统 |
CN110136082B (zh) | 2019-05-10 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 遮挡剔除方法、装置及计算机设备 |
CN112312146B (zh) * | 2019-08-01 | 2021-10-22 | 广州虎牙科技有限公司 | 直播数据处理方法、装置、电子设备及可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692224A (zh) * | 2009-07-08 | 2010-04-07 | 南京师范大学 | 融合空间关系语义的高分辨率遥感图像检索方法 |
CN103080928A (zh) * | 2010-05-28 | 2013-05-01 | 诺基亚公司 | 用于提供局部虚拟现实环境的方法和装置 |
CN103155538A (zh) * | 2010-10-05 | 2013-06-12 | 索尼电脑娱乐公司 | 图像显示装置及图像显示方法 |
CN104596519A (zh) * | 2015-02-17 | 2015-05-06 | 哈尔滨工业大学 | 基于ransac算法的视觉定位方法 |
CN105225240A (zh) * | 2015-09-25 | 2016-01-06 | 哈尔滨工业大学 | 一种基于视觉特征匹配与拍摄角度估计的室内定位方法 |
US9473758B1 (en) * | 2015-12-06 | 2016-10-18 | Sliver VR Technologies, Inc. | Methods and systems for game video recording and virtual reality replay |
CN106385576A (zh) * | 2016-09-07 | 2017-02-08 | 深圳超多维科技有限公司 | 立体虚拟现实直播方法、装置及电子设备 |
US9573062B1 (en) * | 2015-12-06 | 2017-02-21 | Silver VR Technologies, Inc. | Methods and systems for virtual reality streaming and replay of computer video games |
CN106710000A (zh) * | 2016-12-05 | 2017-05-24 | 武汉大学 | 一种基于离散全景图构建连续场景的图像投影方法 |
CN106767810A (zh) * | 2016-11-23 | 2017-05-31 | 武汉理工大学 | 一种基于移动终端的wifi和视觉信息的室内定位方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104998412A (zh) * | 2015-07-14 | 2015-10-28 | 北京视博云科技有限公司 | 一种单机游戏实现方法及装置 |
CN105898337A (zh) * | 2015-11-18 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 全景视频的显示方法和装置 |
CN105381611A (zh) * | 2015-11-19 | 2016-03-09 | 网易(杭州)网络有限公司 | 一种2d游戏场景分层实现立体表现的方法及装置 |
CN106412555A (zh) * | 2016-10-18 | 2017-02-15 | 网易(杭州)网络有限公司 | 游戏录制方法、装置及虚拟现实设备 |
-
2017
- 2017-06-19 CN CN201710465943.5A patent/CN107376360B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692224A (zh) * | 2009-07-08 | 2010-04-07 | 南京师范大学 | 融合空间关系语义的高分辨率遥感图像检索方法 |
CN103080928A (zh) * | 2010-05-28 | 2013-05-01 | 诺基亚公司 | 用于提供局部虚拟现实环境的方法和装置 |
CN103155538A (zh) * | 2010-10-05 | 2013-06-12 | 索尼电脑娱乐公司 | 图像显示装置及图像显示方法 |
CN104596519A (zh) * | 2015-02-17 | 2015-05-06 | 哈尔滨工业大学 | 基于ransac算法的视觉定位方法 |
CN105225240A (zh) * | 2015-09-25 | 2016-01-06 | 哈尔滨工业大学 | 一种基于视觉特征匹配与拍摄角度估计的室内定位方法 |
US9473758B1 (en) * | 2015-12-06 | 2016-10-18 | Sliver VR Technologies, Inc. | Methods and systems for game video recording and virtual reality replay |
US9573062B1 (en) * | 2015-12-06 | 2017-02-21 | Silver VR Technologies, Inc. | Methods and systems for virtual reality streaming and replay of computer video games |
CN106385576A (zh) * | 2016-09-07 | 2017-02-08 | 深圳超多维科技有限公司 | 立体虚拟现实直播方法、装置及电子设备 |
CN106767810A (zh) * | 2016-11-23 | 2017-05-31 | 武汉理工大学 | 一种基于移动终端的wifi和视觉信息的室内定位方法及系统 |
CN106710000A (zh) * | 2016-12-05 | 2017-05-24 | 武汉大学 | 一种基于离散全景图构建连续场景的图像投影方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107376360A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107376360B (zh) | 游戏直播方法及游戏直播系统 | |
US11348267B2 (en) | Method and apparatus for generating a three-dimensional model | |
EP3668093B1 (en) | Method, system and apparatus for capture of image data for free viewpoint video | |
CN106462944A (zh) | 将多个高分辨率图像映射到一个低分辨率360度图像上生成无重影的高分辨全景图 | |
US20120177284A1 (en) | Forming 3d models using multiple images | |
JP2016100899A (ja) | 映像補正方法及び装置 | |
KR20110059506A (ko) | 복수의 이미지들로부터 카메라 파라미터를 얻기 위한 시스템과 방법 및 이들의 컴퓨터 프로그램 제품 | |
US10785469B2 (en) | Generation apparatus and method for generating a virtual viewpoint image | |
KR101853269B1 (ko) | 스테레오 이미지들에 관한 깊이 맵 스티칭 장치 | |
US11676252B2 (en) | Image processing for reducing artifacts caused by removal of scene elements from images | |
US9530240B2 (en) | Method and system for rendering virtual views | |
CN110930310B (zh) | 全景图像拼接方法 | |
KR101983586B1 (ko) | 스테레오 이미지들에 관한 깊이 맵 스티칭 방법 | |
CN111105366A (zh) | 图像处理方法和装置、终端设备及存储介质 | |
JP2015153321A (ja) | 画像処理装置、画像処理方法及びプログラム | |
WO2011096136A1 (ja) | 疑似画像生成装置および疑似画像生成方法 | |
KR102138333B1 (ko) | 파노라마 영상 생성 장치 및 방법 | |
KR20210141922A (ko) | 객체의 3d 재구성 방법 | |
KR101781158B1 (ko) | 다중 카메라를 이용한 영상 매팅 장치 및 알파맵 생성 방법 | |
KR101718309B1 (ko) | 색상 정보를 활용한 자동 정합·파노라믹 영상 생성 장치 및 방법 | |
JP2021149972A (ja) | パノラマ画像においてランドマークを識別する方法、装置および記憶媒体 | |
Papadakis et al. | Virtual camera synthesis for soccer game replays | |
CN117456114B (zh) | 基于多视图的三维图像重建方法及系统 | |
RU2791081C2 (ru) | Способ трехмерной реконструкции объекта | |
CN111696161B (zh) | 一种双站相机的外部参数的标定方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |