发明内容
本发明提供了一种实时全景直播拼接方法及***,技术上实现不需要通过全景相机输出实时全景视频。
第一方面,本发明提供了一种实时全景直播拼接方法,所述实时全景直播拼接方法包括:
接收第一多路图像流数据,所述第一多路图像流数据包括第一标签信息和第一图像数据;
将第一图像数据进行预处理,生成预处理后第一图像数据,再将预处理后第一图像数据按照预设算法进行运算生出拼接参数,其中所述预处理后第一图像数据按照所述拼接参数形成全景视频;
根据所述第一标签信息和所述拼接参数生成拼接模型并存储于数据库中;
接收到第二多路图像流数据,所述第二多路图像流数据包括第二标签信息和第二图像数据;
根据所述第二标签信息判断所述第一标签信息是否与所述第二标签信息相匹配;
当所述第二标签信息和所述第一标签信息相匹配时,从所述数据库中调用所述第一标签信息所关联的拼接模型;
将第二图像数据进行预处理,生成预处理后第二图像数据;
根据调用的拼接模型对预处理后第二图像数据进行处理,形成全景视频。
第二方面,本发明提供了一种实时全景直播拼接***,所述实时全景直播拼接***包括:
存储器,存储器用于存储实时全景直播拼接方法程序指令;
处理器,处理器用于执行所述实时全景直播拼接方法程序指令以实现实时全景直播拼接方法。
第三方面,本发明提供了一种实时全景直播拼接***,所述实时全景直播拼接***包括:
图像处理模块,用于接收第一多路图像流数据,所述第一多路图像流数据包括第一标签信息和第一图像数据,将第一图像数据进行预处理,生成预处理后第一图像数据,接收到第二多路图像流数据,所述第二多路图像流数据包括第二标签信息第二图像数据,将第二图像数据进行预处理,生成预处理后第二图像数据;
图像识别模块,用于将预处理后第一图像数据按照预设算法进行运算生出拼接参数;
存储模块,用于存储根据所述第一标签信息和所述拼接参数生成拼接模型;
拼接模块,用于所述预处理后第一图像数据按照所述拼接参数形成全景视频,根据所述第二标签信息判断所述第一标签信息是否与所述第二标签信息相匹配,当所述第二标签信息和所述第一标签信息相匹配时,从所述数据库中调用所述第一标签信息所关联的拼接模型,根据调用的拼接模型对所述预处理后第二图像数据进行处理,形成全景视频。
上述实时全景直播拼接方法及***,实现不需要通过全景相机就能够输出全景视频。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。说明书附图示出本发明的实施例的示例。可以理解的是,说明书附图示出的比例并非本发明实际实施的比例,其仅为示意说明为目的,并非依照原尺寸作图。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,换句话说,描述的实施例根据除了这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,还可以包含其他内容,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于只清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
请参看图1,其为本发明实施例提供的实时全景直播拼接方法的流程图包括如下步骤:
步骤S102接收第一多路图像流数据,所述第一多路图像流数据包括第一标签信息和第一图像数据。其中,第一图像数据是收集到的图像数据。第一标签信息包括第一位置信息和第一身份标识,所述第一身份标识用于表示所述第一多路图像流数据中每一路图像流数据的源设备,所述第一多路图像流数据中的每一路图像流数据具有唯一的第一身份标识,所述第一多路图像流数据中的每一路图像流数据的第一位置信息相同。例如,在一些实施例中,第一多路图像流数据是位于地点H,由摄像机C1、摄像机C2、摄像机C3和摄像机C4四个摄像机获取的数据。即第一多路图像流数据包括四路图像数据流,且每一路图像数据的源设备为摄像机C1、摄像机C2、摄像机C3和摄像机C4。其中,摄像机C1、摄像机C2、摄像机C3和摄像机C4的身份标识为001a、001b、001c和001d,即第一身份标识为001a、001b、 001c和001d。另外,地点H用位置坐标P表示,地点H可以通过GPS 获取,即第一位置信息为P。其中,摄像机可以是有小于120°视场角的摄像机。在其他一些实施例中,摄像机也可为全景摄像机。
步骤S104,将第一图像数据进行预处理,生成预处理后第一图像数据,再将预处理后第一图像数据按照预设算法进行运算生出拼接参数,其中所述预处理后第一图像数据按照所述拼接参数形成全景视频。具体地,步骤S104具体实现如下。首先,对第一图像处理进行初处理,其次,计算匹配同一时间戳所有的图像之间可重叠的特征点,形成所述拼接参数;然后,根据拼接参数进行拼接。在上述实施例中,识别的特征信息是特征点,其中计算特征点的算法包括SIFT算法,FAST算法,SURF算法等。在其他一些施例中,特征信息可以是特征轮廓,特征曲线等。
步骤S106,根据所述第一标签信息和所述拼接参数生成拼接模型并存储于数据库中。具体地,将第一标签信息和拼接参数关联起来存入数据库中,以便下次查找。例如,第一标签信息为P1-001a,拼接参数为{A1(x1,y1)、A2(x1,y1)......AN(xN,yN)},则拼接模型为(P1-001a,A1(x1,y1)~AN(xN,yN))。
步骤S108,接收到第二多路图像流数据,所述第二多路图像流数据包括第二标签信息和第二图像数据。第二标签信息包括第二位置信息和第二身份标识,所述第二身份标识用于表示所述第二多路图像流数据中每一路图像流数据的源设备,所述第二多路图像流数据中的每一路图像流数据具有唯一的第二身份标识,所述第二多路图像流数据中的每一路图像流数据的第二位置信息相同。
步骤S110,根据所述第二标签信息判断所述第一标签信息是否与所述第二标签信息相匹配。具体地,根据第二标签信息中的第二位置信息和第二身份标识在数据库中检索是否有和所述第二标签信息相匹配的标签信息。
步骤S112,当所述第二标签信息和所述第一标签信息相匹配时,从所述数据库中调用所述第一标签信息所关联的拼接模型。例如,在一些实施例中,第二多路图像流数据是由四个摄像机在地点H获取的数据,摄像机C1、摄像机C2、摄像机C3和摄像机C4的身份标识为 001a、001b、001c和001d,即第一身份标识为001a、001b、001c和 001d。则第二图像数据就不需要计算拼接参数,可直接调用第一标签信息所关联的拼接模型。
步骤S114,将第二图像数据进行预处理,生成预处理后第二图像数据。
步骤S116,根据调用的拼接模型对预处理后第二图像数据进行处理,形成全景视频。
上述实施例,通过实时全景直播拼接方法,完成了实时的全景直播,从技术上实现了不需要全景摄像机就可以输出全景视频,并且将地理位置和设备与拼接参数关联起来,不需要多次计算拼接参数,不仅减少直播延时,还节约了服务器计算资源。
请参看图2,其为本发明实施例提供的图像预处理流程图包括如下步骤:
步骤S202,解析所述第一图像数据,获取所述第一图像数据中时间戳、编号、视频的宽与高。
步骤S204,将第一图像数据存入到指定内存。具体地,将每路图像流所有的图像进行路数标记,并将所述每路图像流分开存入指定内存。
步骤S206,根据时间戳的先后顺序读取指定内存同一时间戳的图像。具体地,将第一个图像流数据到达服务器的时间作为起始时间,在根据时间戳的先后顺序读取各个路图像流的数据,完成对视频帧的同步。
步骤S208,当所述同一时间戳的图像高度和宽度相同时,生成预处理后第一图像数据。
步骤S210,当所述同一时间戳的图像高度和宽度不同时,将所述同一时间戳的图像按照预设的基准宽度与高度进行缩放处理,生成预处理后第一图像数据。具体地,由于不同设备传输的图像信息流分辨率可能会不一样,为了保存在拼接过程当中可拼接的图像宽高是一样的,对不同的图像流分辨率进行一个缩放处理。
请参看图3其为本发明实施例提供实时全景直播拼接***的模块示意图。实时全景直播拼接800还包括图像处理模块501、图像识别模块503、存储模块502和拼接模块504。
其中,图像处理模块501用于接收第一多路图像流数据,所述第一多路图像流数据包括第一标签信息和第一图像数据,将第一图像数据按照预设算法进行运算生出拼接参数,其中所述第一图像数据按照所述拼接参数形成全景视频,接收到第二多路图像流数据,所述第二多路图像流数据包括第二标签信息第二图像数据;
图像识别模块503用于将所述第一图像数据按照预设算法进行运算生出拼接参数;
存储模块502用于存储根据所述第一标签信息和所述拼接参数生成拼接模型;
拼接模块504用于所述第一图像数据按照所述拼接参数形成全景视频,根据所述第二标签信息判断所述第一标签信息是否与所述第二标签信息相匹配,当所述第二标签信息和所述第一标签信息相匹配时,从所述数据库中调用所述第一标签信息所关联的拼接模型,根据调用的拼接模型对所述第二图像数据进行处理,形成全景视频。
请参看图4其为本发明实施例提供实时全景直播拼接***的内部结构示意。实时全景直播拼接800还包括存储器801、处理器 802、总线803和通信组件807。
其中,存储器801至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器801在一些实施例中可以是实时全景直播拼接***800的内部存储单元,例如实时全景直播拼接***800的硬盘。存储器801在另一些实施例中也可以是的外部智能设备800存储装置,例如实时全景直播拼接***800上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器801还可以既包括实时全景直播拼接***800的内部存储单元也包括外部存储装置。存储器801不仅可以用于存储安装于实时全景直播拼接*** 800的应用软件及各类数据。
总线803可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,实时全景直播拼接***800还可以包括通信组件807,通信组件807可选的可以包括有线通信组件和/或无线通信组件(如 WI-FI通信组件、蓝牙通信组件等),通常用于在实时全景直播拼接***800与外部装置之间建立通信连接。
处理器802在一些实施例中可以是一中央处理器 (CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器801中存储的程序代码或处理数据。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。该管理端可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、流动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器 (RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。