全景视频显示方法及相关装置、电子设备和存储介质与流程

文档序号:32008020发布日期:2022-11-02 14:24阅读:42来源:国知局
全景视频显示方法及相关装置、电子设备和存储介质与流程

1.本技术涉及视频处理技术领域,特别是涉及一种全景视频显示方法及相关装置、电子设备和存储介质。


背景技术:

2.随着安防行业的不断发展,对于环境的监控要求越来越高,采用多镜头相机进行全景采集进而实现全景视频监控已经成为一种不可或缺的技术手段。
3.在实际应用场景中,用户往往需要在视频客户端上根据自己的偏好在全景视频上增加标签,并且会对全景视频的观看视野进行调整。因此当用户对包含标签的全景视频画面进行视野调整时,如何及时更新全景视频及标签,成为亟需解决的问题。


技术实现要素:

4.本技术主要解决的技术问题是提供一种全景视频显示方法及相关装置、电子设备和存储介质,能够在用户调整全景视频视野时及时更新全景视频及标签。
5.为了解决上述技术问题,本技术第一方面提供了一种全景视频显示方法,包括:响应于用户对全景视频窗口中当前全景视频的视野调整指令,获取当前全景视频的视野调整参数;其中,当前全景视频上叠加有对象标签,当前全景视频基于全景模型构建得到;基于视野调整参数和全景模型,得到新的全景模型;基于新的全景模型和全景视频码流中的视频信息,得到新的全景视频,并基于新的全景模型和全景视频码流中的标签信息,得到新的对象标签和新的对象标签的标签坐标;基于新的对象标签的标签坐标,将新的对象标签叠加于全景视频窗口中新的全景视频。
6.为了解决上述技术问题,本技术第二方面提供了一种全景视频显示装置,包括:视野调整模块、模型更新模块、视频构建模块和标签叠加模块。其中,视野调整模块用于响应于用户对全景视频窗口中当前全景视频的视野调整指令,获取当前全景视频的视野调整参数;其中,当前全景视频上叠加有对象标签,当前全景视频基于全景模型构建得到;模型更新模块用于基于视野调整参数和全景模型,得到新的全景模型;视频构建模块用于基于新的全景模型和全景视频码流中的视频信息,得到新的全景视频,并基于新的全景模型和全景视频码流中的标签信息,得到新的对象标签和新的对象标签的标签坐标;标签叠加模块用于基于新的对象标签的标签坐标,将新的对象标签叠加于全景视频窗口中新的全景视频。
7.为了解决上述技术问题,本技术第三方面提供了一种电子设备,包括处理器、人机交互电路和存储器,人机交互电路和存储器分别耦接至处理器,处理器用于执行存储器存储的程序指令,以实现上述第一方面中的全景视频显示方法。
8.为了解决上述技术问题,本技术第四方面提供了一种计算机可读存储介质,存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面中的全景视频显示方法。
9.上述方案中,一方面通过对用户的视野调整指令分析得到视野调整参数,进而对全景模型进行更新,得到新的全景模型,能够根据用户的视野调整指令有效更新全景视频模型;另一方面仅需要对获取的全景视频码流进行解码,并按照新的全景视频模型进行映射重组,并筛选出位于全景视频窗口范围内的标签的坐标,即可实现全景视频的及时更新和标签的及时叠加。
附图说明
10.图1是本技术全景视频显示方法一实施例的流程示意图;
11.图2是图1中步骤s12一实施例的流程示意图;
12.图3是图2中步骤s122一实施例的流程示意图;
13.图4是图1中步骤s12另一实施例的流程示意图;
14.图5是图1步骤s13中得到新的全景视频一实施例的流程示意图;
15.图6是全景平面坐标系下的视频画面的示意图;
16.图7是基于图6的视频画面构建得到全景视频画面的示意图;
17.图8是本技术图1步骤s13中得到新的对象标签和新的对象标签的标签坐标一实施例的流程示意图;
18.图9是本技术全景视频显示方法另一实施例的流程示意图;
19.图10是本技术全景视频显示方法又一实施例的流程示意图;
20.图11是打开全景视频并绘制标签的流程示意图;
21.图12是本技术全景视频显示装置一实施例的框架示意图;
22.图13是本技术电子设备一实施例的框架示意图;
23.图14是本技术全景视频管理系统一实施例的框架示意图;
24.图15是本技术计算机可读存储介质一实施例的框架示意图。
具体实施方式
25.下面结合说明书附图,对本技术实施例的方案进行详细说明。
26.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
27.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
28.请参阅图1,图1是本技术全景视频显示方法一实施例的流程示意图。具体而言,本实施例中的全景视频显示方法可以包括如下步骤:
29.步骤s11:响应于用户对全景视频窗口中当前全景视频的视野调整指令,获取当前全景视频的视野调整参数。
30.在一个实施场景中,全景视频正在显示器的视频窗口(即为全景视频窗口)进行播放,全景视频基于全景模型构建得到,并且当前全景视频上叠加有对象标签。对象标签为用户根据自身的需要在视频窗口上自行添加的标记内容,有助于用户后续对全景视频中部分
特定物件的跟踪查看。
31.在一个实施场景中,用户可以自主地调整查看全景视频时的视野。例如,用户可以通过鼠标控制显示器视频窗口中的光标对全景视频进行拖拽,此时视野调整参数包括二维视野下的第一移动尺度,第一移动尺度可以根据拖拽开始时光标的起点位置和拖拽结束时光标的终点位置分析计算得到。
32.在一个具体的实施场景中,可以参照显示器视频窗口尺寸构建直角坐标系,因而拖拽开始时光标的起点坐标为(x1,y1),拖拽结束时光标的终点坐标为(x2,y2),此时可以确定第一移动尺度为偏移向量(x2-x1,y2-y1)。
33.在另一个具体的实施场景中,也可以根据拖拽开始时光标的起点坐标(x1,y1),拖拽结束时光标的终点坐标(x2,y2),确定第一移动尺度的距离和方向为(d,a),为了便于计算,假设x2>x1>0,y2>y1>0,其中
34.在另一个实施场景中,全景视频在显示器的视频窗口(即为全景视频窗口)进行播放,用户也可以通过鼠标的滚轮对全景视频进行缩放,实现对全景视频视野的调整,此时视野调整参数包括视野缩放比例。
35.在一个具体的实施场景中,鼠标滚轮滚动的单位数为n,固定灵敏度系数为a,此时视野缩放比例即为n*a。需要说明的是,一般情况下,鼠标滚轮进行滚动时是需要区分方向来区别放大还是缩小,故而在鼠标滚轮滚动方向不一致时固定灵敏度系数也会有所区别,可以设置正向滚动的固定灵敏度系数为a,反向滚动的固定灵敏度系数为1/a。
36.当然,视野调整指令还包括许多其他方式。例如,可以在显示器视频窗口界面直接输入视野缩放比例,也可以在显示器视频窗口界面直接输入视野旋转的角度,在此不做具体限制,相关实施方式可以参照其他实施例。
37.步骤s12:基于视野调整参数和全景模型,得到新的全景模型。
38.在一个实施场景中,如前所述,视野调整参数为二维视野下的第一移动尺度。请参阅图2,图2是图1中步骤s12一实施例的流程示意图。
39.具体而言,上述实施例中的步骤s12可以包括如下步骤:
40.步骤s121:基于第一移动尺度和全景视频窗口的尺寸信息,获取视野相对移动值。
41.第一移动尺度反映的是拖拽指令下,全景视频发生位移的大小和方向,因此可以结合第一移动尺度和全景视频的尺寸信息的比值数据,来获取视野相对移动值。故而,基于第一移动尺度和全景视频窗口的尺寸信息来获取相对移动值,充分考虑了视野在拖拽指令下的在视频窗口中的整体位移量,便于调整后续的全景视频。
42.更为具体地,若显示器的形状为长方形,其中显示器的宽为w,高为h,第一移动尺度为偏移向量(x2-x1,y2-y1),此时x轴方向上的视野相对移动值为(x2-x1)/w,y轴方向上的视野相对偏移值为(y2-y1)/h。
43.步骤s122:基于视野相对移动值和全景模型,得到新的全景模型。
44.在一个实施场景中,全景模型为三维球状模型,请参阅图3,图3是图2中步骤s122一实施例的流程示意图。具体而言,上述实施例中的步骤s122可以包括如下步骤:
45.步骤s1221:基于视野相对移动值和三维球状模型的半径,得到三维视野下的第二
移动尺度。
46.在一个实施场景中,三维球状模型的半径为r,将视野相对移动值代入球坐标模型中,类比扇球体计算弧面的方法,可以计算出拖拽指令在三维球状模型中拖动的距离。以x轴方向上的视野相对移动值为(x2-x1)/w,y轴方向上的视野相对偏移值为(y2-y1)/h为例,此时三维球状模型中x轴方向的拖动距离为r*(x2-x1)/w,y轴方向的拖动距离为r*(y2-y1)/h,两者反映了视野相对移动值在三维视野下的第二移动尺度。
47.步骤s1222:基于第二移动尺度,获得模型转换矩阵。
48.根据第二移动尺度所表征的各个坐标轴方向的偏移距离,对其进行矩阵化,获取模型转换矩阵。例如,三维球状模型中x轴方向的拖动距离为5,y轴方向的拖动距离为1,此时模型转换矩阵表征的即为将三维球状模型中所有元素坐标的x轴分量加5,y轴分量加1,其他保持不变。
49.步骤s1223:基于模型转换矩阵对全景模型进行转换,得到新的全景模型。
50.对原有的全景模型,按照模型转换矩阵进行转换,进而构建出新的全景坐标模型,使其包含有拖拽指令对原有全景坐标模型的改变。
51.在一个具体的实施场景中,可以直接将原有的全景模型与模型转换矩阵相乘,得到新的全景模型。
52.上述实施方式中,通过视野相对移动值和原有的全景模型,得到模型转换矩阵,进而对原有的全景模型进行转换,得到新的全景模型,使得新的全景模型包含有拖拽指令对原有的全景模型的影响,进而可以在后续直接依照新的全景模型进行全景视频构建。
53.在另一个实施场景中,如前所述,视野调整参数为视野缩放比例,请参阅图4,图4是图1中步骤s12另一实施例的流程示意图。具体而言,上述实施例中的步骤s12可以包括如下步骤:
54.步骤s123:基于视野缩放比例,获取模型缩放矩阵。
55.视野缩放比例无论是在显示器的视频窗口,还是在全景模型中,该比例都是一致的,故而无需进行复杂的模型之间的转换。对视野缩放比例进行矩阵化,得到模型缩放矩阵。例如,视野缩放比例为2,此时模型缩放矩阵表征的即为将三维球状模型中所有元素点的坐标数值均放大两倍。
56.步骤s124:基于模型缩放矩阵对全景模型进行缩放,得到新的全景模型。
57.对原有的全景模型,按照模型缩放矩阵进行转换,进而构建出新的全景坐标模型,使其包含有缩放指令对原有全景坐标模型的改变。类似地,在一些具体的实施场景中,可以直接将原有的全景模型与模型缩放矩阵相乘,得到新的全景模型。
58.上述实施方式中,通过将视野缩放比例矩阵化,得到模型缩放矩阵,进而调整全景模型,得到新的全景模型,使得新的全景模型包含有缩放指令对原有的全景模型的影响,进而可以在后续直接依照新的全景模型进行全景视频构建。
59.步骤s13:基于新的全景模型和全景视频码流中的视频信息,得到新的全景视频,并基于新的全景模型和全景视频码流中的标签信息,得到新的对象标签和新的对象标签的标签坐标。
60.一般情况下,可以通过向前端设备发送拉流指令,来实现对全景视频码流的获取。在不同的应用场景,对于全景码流的获取也会存在一定的区别。
61.在一个具体的实施场景中,为了满足监控这类特定的应用需求,需要即时向前端设备发送拉流指令,实时获取全景视频码流。
62.在另一个具体的实施场景中,在一些传输速率有限(如,海上无线传输)的应用场景,可以按照预设间隔向前端设备发送拉流指令,间歇性获取全景视频码流。
63.在又一个具体的实施场景中,同样是对信息实时性要求不高的应用场景(如,导航地图应用程序中的全景地图功能),前端设备可以预先将部分全景视频码流进行存储,按照时间间隔接收到拉流指令时,可以将预先存储的全景视频码流发回。
64.在一个实施场景中,全景视频码流中包含有视频信息和标签信息,视频信息中包括有像素点数据、音频数据等原始数据,可以根据全景视频码流中的视频信息和新的全景模型,得到新的全景视频。请参阅图5,图5是图1步骤s13中得到新的全景视频一实施例的流程示意图。具体而言,上述实施例中的步骤s13中得到新的全景视频可以包括如下步骤:
65.步骤s131:对全景视频码流中的视频信息进行解码,得到全景平面坐标系下的视频画面。
66.在一个实施场景中,对全景视频码流中的视频信息进行解码,由于全景视频基于多镜头相机采集获得,故而直接解析出来的全景平面坐标系下的视频画面存在一定程度上的畸变,不适合直接展示给用户。请参阅图6,图6是全景平面坐标系下的视频画面的示意图。如图6所示,由于是对相同物件按照不同角度进行拍摄,故而直接解码出来各个角度重合的位置存在畸变,比如弯曲的围栏等等。
67.步骤s132:基于新的全景模型,对全景平面坐标系下的视频画面中的像素点进行坐标映射,得到新的全景视频。
68.对于解析出来的全景平面坐标系下的视频画面中的全部像素点按照新的全景模型进行坐标映射,使得像素点能够与新的全景模型适配,并根据新的全景模型构建新的全景视频。请参阅图7,图7是基于图6的视频画面构建得到全景视频画面的示意图,可以看出,全景平面坐标系下的视频画面按照新的全景模型进行构建后能够大大缓解畸变的问题,便于用户直接观看。
69.上述实施方式中,通过对全景视频码流中的视频信息进行解码,得到全景平面坐标系下的视频画面,进而对视频画面中的像素点按照新的全景模型进行坐标映射,得到新的全景视频。一方面,根据新的全景模型构建新的全景视频,使得新的全景视频包含有视野调整指令的调整作用,另一方面只需要进行解码映射即可完成新的全景视频的构建,能够及时更新全景视频画面。
70.在一个实施场景中,在得到新的全景视频后,同样还需要基于新的全景模型和全景视频码流中的标签信息,得到新的对象标签和新的对象标签的标签坐标。请参阅图8,图8是本技术图1步骤s13中得到新的对象标签和新的对象标签的标签坐标一实施例的流程示意图。具体而言,上述实施例中的步骤s13中得到新的对象标签和新的对象标签的标签坐标可以包括如下步骤:
71.步骤s133:对全景视频码流中的标签信息进行解码,得到全景平面坐标系下预设标签的第一坐标。
72.与前文中对全景视频码流中的视频信息相类似,对全景视频码流中的标签信息进行解码,得到全景平面坐标系下的预设标签的第一坐标。值得一提的是,标签信息中除了标
签的坐标信息,还可以包括标签的附带信息,例如标签的名称,该标签所关联的一些图片、文字乃至视频信息等等。这些附带信息无需进行解码,仅在叠加标签时进行使用即可。
73.步骤s134:基于新的全景模型对第一坐标进行投影,得到预设标签在新的全景模型中的第二坐标。
74.将全景平面坐标系下的预设标签的第一坐标投影至新的全景模型中,得到预设标签在新的全景模型中的第二坐标。
75.步骤s135:基于第二坐标和全景视频窗口,选择预设标签作为新的对象标签,并基于选择的预设标签的第二坐标,得到新的对象标签的标签坐标。
76.在一个实施场景中,可以获取新的全景模型在全景视频窗口的显示范围,筛选第二坐标位于显示范围的预设标签,作为新的对象标签。值得一提的是,由于一般显示器均为平面,故而必然存在无法显示的部分全景视频,因此只需要筛选出当前视野下需要显示的部分标签的坐标进行显示即可。故而,基于显示范围进行筛选,避免了部分无需显示的标签的叠加,节约了系统算力,有利于提高更新全景视频及标签的速度。
77.在一个具体的实施场景中,新的全景模型在全景视频窗口的显示范围为[-1,1],遍历全部预设标签的第二坐标,将x轴坐标分量和y轴坐标分量均位于区间内的预设标签作为新的对象标签。
[0078]
进一步地,在一个实施场景中,可以将选择的预设标签的第二坐标转换为全景视频窗口下的平面坐标,即为新的对象标签的标签坐标。
[0079]
在一个具体的实施场景中,若显示器的形状为长方形,其中显示器的宽为w,高为h,选择的预设标签的第二坐标为(x3,y3),此时可以确定新的对象标签的标签坐标在x轴的分量为(1+x3)*w/2,在y轴的分量为(1+y3)*h/2。
[0080]
在另一个具体的实施场景中,若显示器的形状为长方形的曲面,则还需要在前述实施例的基础上,增加对标签坐标x轴分量和y轴分量的曲率转换。
[0081]
需要说明的是,得到新的对象标签和新的对象标签的标签坐标的相关步骤,也可以在得到新的全景视频过程中同步执行。同步执行或者顺序执行,在此不作限制。
[0082]
上述实施方式中,一方面对全景视频码流中的标签信息进行解码得到全景平面坐标系下预设标签的第一坐标,进而将第一坐标投影至新的全景模型,得到第二坐标,使得标签的坐标与新的全景模型同步,便于后续在全景视频中叠加标签。另一方面,根据全景视频窗口确定新的对象标签的标签坐标,有利于后续在全景视频窗口中叠加标签。
[0083]
步骤s14:基于新的对象标签的标签坐标,将新的对象标签叠加于全景视频窗口中新的全景视频。
[0084]
在一个实施场景中,确定新的对象标签的标签坐标后,可以自主选择标签的样式图片,将其叠加于全景视频窗口中新的全景视频的相应坐标位置上,并将全景视频码流中标签的附带信息与新的对象标签进行关联。在完成标签叠加之后,用户可以按照个人喜好查看标签附带信息或者更换标签样式。
[0085]
上述方案中,一方面通过对用户的视野调整指令分析得到视野调整参数,进而对全景模型进行更新,得到新的全景模型,能够根据用户的视野调整指令有效更新全景视频模型;另一方面仅需要对获取的全景视频码流进行解码,并按照新的全景视频模型进行映射重组,并筛选出位于全景视频窗口范围内的标签的坐标,即可实现全景视频的及时更新
和标签的及时叠加。
[0086]
请参阅图9,图9是本技术全景视频显示方法另一实施例的流程示意图。具体而言,本实施例中的全景视频显示方法可以包括如下步骤:
[0087]
步骤s901:识别用户按住鼠标左键并拖动鼠标。
[0088]
确实用户按住鼠标左键,并拖动鼠标来实现对全景视频视野的调整。
[0089]
步骤s902:判断是否为首次拖动鼠标,若是则执行步骤s903,否则执行步骤s905。
[0090]
步骤s903:记录用户按住鼠标左键时,显示器上光标的当前坐标(m0,n0)。
[0091]
相当于前述实施例中的“拖拽开始时光标的起点位置”,具体实施方式可以参照前述实施例,在此不再赘述。
[0092]
步骤s904:返回执行步骤s902及其后续步骤。
[0093]
在确定起点位置后,需要返回执行其余后续步骤。
[0094]
步骤s905:获取光标的当前坐标(m,n),计算鼠标拖动单位向量(xa,ya),其中,x=m-m0,y=n-n0。
[0095]
相当于前述实施例中的“确定第一移动尺度”,具体实施方式可以参照前述实施例,在此不再赘述。
[0096]
步骤s906:将(m,n)作为新的(m0,n0),用于下次拖拽时使用。
[0097]
将此次拖动时的终点坐标,作为下次拖动的起点坐标,故而下次无需再获取起点坐标。
[0098]
步骤s907:将鼠标拖动单位向量(xa,ya)转化为球坐标模型上的拖动距离(xn,yn)。
[0099]
相当于前述实施例中的“基于第一移动尺度和全景视频窗口的尺寸信息,获取视野相对移动值”以及“基于视野相对移动值和三维球状模型的半径,得到三维视野下的第二移动尺度”,具体实施方式可以参照前述实施例,在此不再赘述。
[0100]
需要说明的是,步骤s907执行完毕后,并列执行步骤s908和步骤s914。
[0101]
步骤s908:(xn,yn)转换为视野角度。
[0102]
球坐标模型上的拖动距离必然导致视野角度发生变化,因此需要对两者进行转换。
[0103]
步骤s909:调整模型转换矩阵。
[0104]
相当于前述实施例中的“基于第二移动尺度,获得模型转换矩阵”,具体实施可以参照前述实施例,在此不再赘述。
[0105]
步骤s910:球坐标模型与转换矩阵相乘。
[0106]
相当于前述实施例中的“基于模型转换矩阵对全景模型进行转换,得到新的全景模型”,具体实施可以参照前述实施例,在此不再赘述。
[0107]
步骤s911:渲染拖动之后的视频。
[0108]
为了展现在用户眼前的视频更加美观真实,还需要对拖动之后的视频进行渲染。
[0109]
步骤s912:判断拖动是否结束,若是,则结束流程,否则执行步骤s913。
[0110]
步骤s913:返回执行步骤s901及其后续步骤。
[0111]
步骤s914:标签球坐标更新。
[0112]
相当于前述实施例中的“对全景视频码流中的标签信息进行解码,得到全景平面
坐标系下预设标签的第一坐标”以及“基于新的全景模型对第一坐标进行投影,得到预设标签在新的全景模型中的第二坐标”,具体实施可以参照前述实施例,在此不再赘述。
[0113]
步骤s915:遍历所有标签坐标点。
[0114]
相当于前述实施例中的“筛选第二坐标位于显示范围的预设标签”,具体实施可以参照前述实施例,在此不再赘述。
[0115]
步骤s916:标签平面坐标重新计算。
[0116]
相当于前述实施例中的“基于选择的预设标签的第二坐标,得到新的对象标签的标签坐标”,具体实施可以参照前述实施例,在此不再赘述。
[0117]
步骤s917:新坐标处绘制标签。
[0118]
相当于前述实施例中的“基于新的对象标签的标签坐标,将新的对象标签叠加于全景视频窗口中新的全景视频”,具体实施可以参照前述实施例,在此不再赘述。
[0119]
步骤s918:判断遍历是否结束,若是,则执行步骤s912,否则执行步骤s919。
[0120]
步骤s919:返回执行步骤s915及其后续步骤。
[0121]
上述方案中,根据光标在拖动前后的坐标,确定鼠标拖动单位向量,进而转化为球坐标模型上的拖动距离,根据拖动距离确定球坐标模型及标签的平面坐标,最终实现全景视频的及时更新和标签的及时叠加。
[0122]
请参阅图10,图10是本技术全景视频显示方法又一实施例的流程示意图。具体而言,本实施例中的全景视频显示方法可以包括如下步骤:
[0123]
步骤s1001:识别用户滑动鼠标滚轮。
[0124]
确定用户滑动鼠标滚轮实现对全景视频视野的缩放指令。
[0125]
步骤s1002:将滚轮滚动的单位数n与灵敏度系数a的乘积,作为球坐标模型中的缩放比例。
[0126]
相当于前述实施例中的“视野调整参数包括视野缩放比例”,具体实施可以参照前述实施例,在此不再赘述。
[0127]
步骤s1003:缩放比例转换为投影张度。
[0128]
球坐标模型上的缩放需要转换为投影张度的改变,利于坐标及像素点的投影映射。
[0129]
步骤s1004:调整模型投影矩阵。
[0130]
相当于前述实施例中的“基于视野缩放比例,获取模型缩放矩阵”,具体实施可以参照前述实施例,在此不再赘述。
[0131]
步骤s1005:球坐标模型与投影矩阵相乘。
[0132]
相当于前述实施例中的“基于模型缩放矩阵对全景模型进行缩放,得到新的全景模型”,具体实施可以参照前述实施例,在此不再赘述。
[0133]
步骤s1006至步骤s1014可以参照前述实施例中的步骤s911至s919的实施方式,在此不再赘述。
[0134]
上述方案中,根据滚轮滚动的单位数和灵敏度系数确定缩放比例,进而调整球坐标模型及确定标签的平面坐标,最终实现全景视频的及时更新和标签的及时叠加。
[0135]
请参阅图11,图11是打开全景视频并绘制标签的流程示意图。具体而言,可以包括如下步骤:
[0136]
步骤s1101:打开全景视频。
[0137]
响应于用户的操作指令,需要打开全景视频。
[0138]
步骤s1102:向前端设备发送拉流指令。
[0139]
发送拉流指令至位于前端的摄像设备,用以获取视频码流。
[0140]
步骤s1103:rtsp拉流。
[0141]
基于rtsp(real time streaming protocol,实时流传输协议)拉流,实现拉流指令的发送。
[0142]
步骤s1104:判断拉流是否成功,若是,则执行步骤s1105,否则结束流程。
[0143]
步骤s1105:建立球坐标模型。
[0144]
拉流成功后,建立球坐标模型,准备构建全景视频。
[0145]
步骤s1106:选定初始角度和高度。
[0146]
由于全景视频显示窗口一般为平面,而全景视频一般为球模型,故而只能显示部分视频画面,因此需要选定初始角度和高度来确定最终显示的画面。
[0147]
步骤s1107:全景视频解码。
[0148]
对拉流获取的视频码流进行解码。
[0149]
步骤s1108:开始播放全景视频。
[0150]
根据解码后的视频信息以及已建立的球坐标模型和已选定的初始角度和高度,播放全景视频。
[0151]
步骤s1109:解析码流中所有标签在全景平面上的坐标信息。
[0152]
将码流中的所有标签的坐标解析至全景平面。
[0153]
步骤s1110:获取每个标签的附带信息(标签名称,联动信息)。
[0154]
每个标签均为用户自主创建,一般会包含若干附带信息,例如标签的名称,该标签所关联的一些图片、文字乃至视频信息等等。
[0155]
步骤s1111:遍历所有标签的全景平面坐标,将其转换为全景图像上的坐标。
[0156]
全景平面坐标还需要转换到全景图像坐标以确定标签在球坐标模型中的具体位置。
[0157]
步骤s1112:球坐标转换。
[0158]
将全景平面坐标按照球坐标模型进行转换。
[0159]
步骤s1113:坐标齐次化。
[0160]
为了坐标系的统一,还需要对转换后的坐标进行齐次化。
[0161]
步骤s1114:与变换矩阵相乘。
[0162]
在一些具体的实施场景中,根据用户对全景视频视野的调整,生成相应的变换矩阵,求坐标模型下的标签坐标与之相乘,得到视野调整后的标签坐标。
[0163]
步骤s1115:坐标归一化。
[0164]
对于调整后的坐标进行归一化处理,使得三维坐标模型的坐标归一至二维坐标平面的二维坐标。
[0165]
步骤s1116:输出当前标签在全景图像上的坐标投影到视频窗口上的投影坐标(xm,ym)。
[0166]
将二维坐标系下的标签坐标投影至视频窗口,得到投影坐标(xm,ym)。
[0167]
步骤s1117:确定(xm,ym)位于区间[-1,1]之间的坐标。
[0168]
筛选出位于区间[-1,1]之间的标签的投影坐标,用于在视频窗口显示。
[0169]
步骤s1118:计算转换坐标,xk=(1+xm)*w/2,yk=(1+ym)*h/2。
[0170]
按照公式将标签的投影坐标换算成视频窗口的比例大小,确定标签在视频窗口的具体位置。
[0171]
步骤s1119:选择标签样式图片,在屏幕(xk,yk)处绘制标签,并携带标签附带信息。
[0172]
确定标签的样式,在确定的视频窗口的具体位置绘制标签,并使之与其附带信息保持关联。
[0173]
步骤s1120:判断遍历是否完毕,若是则流程结束,否则执行步骤s1121。
[0174]
步骤s1121:返回执行步骤s1111及其后续步骤。
[0175]
上述方案中,在打开全景视频后,通过解析码流中的坐标信息,并将其转换为全景图像中的坐标,进而映射至相应的视频窗口,确定标签在视频窗口中的具体显示位置,故此可实现在用户打开全景视频后,及时准确地确定标签的位置并在全景视频中叠加标签。
[0176]
请参阅图12,图12是本技术全景视频显示装置12一实施例的框架示意图。具体而言,全景视频显示装置12包括视野调整模块1201、模型更新模块1202、视频构建模块1203和标签叠加模块1204。其中,视野调整模块1201用于响应于用户对全景视频窗口中当前全景视频的视野调整指令,获取当前全景视频的视野调整参数;其中,当前全景视频上叠加有对象标签,当前全景视频基于全景模型构建得到;模型更新模块1202用于基于视野调整参数和全景模型,得到新的全景模型;视频构建模块1203用于基于新的全景模型和全景视频码流中的视频信息,得到新的全景视频,并基于新的全景模型和全景视频码流中的标签信息,得到新的对象标签和新的对象标签的标签坐标;标签叠加模块1204用于基于新的对象标签的标签坐标,将新的对象标签叠加于全景视频窗口中新的全景视频。
[0177]
上述方案中,一方面通过对用户的视野调整指令分析得到视野调整参数,进而对全景模型进行更新,得到新的全景模型,能够根据用户的视野调整指令有效更新全景视频模型;另一方面仅需要对获取的全景视频码流进行解码,并按照新的全景视频模型进行映射重组,并筛选出位于全景视频窗口范围内的标签的坐标,即可实现全景视频的及时更新和标签的及时叠加。
[0178]
在一些公开实施例中,视野调整指令包括拖拽指令,视野调整参数包括二维视野下的第一移动尺度,第一移动尺度基于开始执行时的拖拽起点和拖拽指令执行结束时的拖拽终点获得,模型更新模块1202包括视野相对移动获取单元,用于基于第一移动尺度和全景视频窗口的尺寸信息,获取视野相对移动值;模型更新模块1202还用于基于视野相对移动值和全景模型,得到新的全景模型。
[0179]
因此,基于第一移动尺度和全景视频窗口的尺寸信息来获取相对移动值,充分考虑了视野在拖拽指令下的整体位移量,便于调整后续的全景视频。
[0180]
在一些公开实施例中,全景模型为三维球状模型,模型更新模块1202还包括第二移动尺度获取单元、矩阵获取单元,第二移动尺度获取单元用于基于视野相对移动值和三维球状模型的半径,得到三维视野下的第二移动尺度;矩阵获取单元用于基于第二移动尺度,获得模型转换矩阵;模型更新模块1202还用于基于模型转换矩阵对全景模型进行转换,
得到新的全景模型。
[0181]
因此,通过视野相对移动值和原有的全景模型,得到模型转换矩阵,进而对原有的全景模型进行转换,得到新的全景模型,使得新的全景模型包含有拖拽指令对原有的全景模型的影响,进而可以在后续直接依照新的全景模型进行全景视频构建。
[0182]
在一些公开实施例中,视频构建模块1203还包括视频解码单元和坐标映射单元,视频解码单元用于对全景视频码流中的视频信息进行解码,得到全景平面坐标系下的视频画面;坐标映射单元用于基于新的全景模型,对全景平面坐标系下的视频画面中的像素点进行坐标映射,得到新的全景视频。
[0183]
因此,通过对全景视频码流中的视频信息进行解码,得到全景平面坐标系下的视频画面,进而对视频画面中的像素点按照新的全景模型进行坐标映射,得到新的全景视频。一方面,根据新的全景模型构建新的全景视频,使得新的全景视频包含有视野调整指令的调整作用,另一方面只需要进行解码映射即可完成新的全景视频的构建,能够及时更新全景视频画面。
[0184]
在一些公开实施例中,视频构建模块1203还包括视频解码单元、坐标映射单元和标签选择单元,视频解码单元用于对全景视频码流中的标签信息进行解码,得到全景平面坐标系下预设标签的第一坐标;坐标映射单元用于基于新的全景模型对第一坐标进行投影,得到预设标签在新的全景模型中的第二坐标;标签选择单元用于基于第二坐标和全景视频窗口,选择预设标签作为新的对象标签,并基于选择的预设标签的第二坐标,得到新的对象标签的标签坐标。
[0185]
因此,一方面对全景视频码流中的标签信息进行解码得到全景平面坐标系下预设标签的第一坐标,进而将第一坐标投影至新的全景模型,得到第二坐标,使得标签的坐标与新的全景模型同步,便于后续在全景视频中叠加标签。另一方面,根据全景视频窗口确定新的对象标签的标签坐标,有利于后续在全景视频窗口中叠加标签。
[0186]
在一些公开实施例中,标签选择单元还包括显示范围确定子单元和标签筛选子单元,显示范围确定子单元用于获取新的全景模型在全景视频窗口的显示范围;标签筛选子单元用于筛选第二坐标位于显示范围的预设标签,作为新的对象标签。
[0187]
因此,基于显示范围进行筛选,避免了部分无需显示的标签的叠加,节约了系统算力,有利于提高更新全景视频及标签的速度。
[0188]
请参阅图13,图13是本技术电子设备13一实施例的框架示意图。具体而言,电子设备13包括人机交互电路1303、处理器1301和存储器1302,人机交互电路1303和存储器1302分别与处理器1301耦接,处理器1301用于执行存储器1302存储的程序指令,以实现全景视频显示方法任一实施例中的步骤。
[0189]
具体地,处理器1301还可以称为cpu(central processing unit,中央处理单元)。处理器1301可能是一种集成电路芯片,具有信号的处理能力。处理器1301还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器1301可以由多个成电路芯片共同实现。人机交互电路1303可以是台式电脑、平板电脑、智能手机等
智能终端。
[0190]
上述方案中,一方面通过对用户的视野调整指令分析得到视野调整参数,进而对全景模型进行更新,得到新的全景模型,能够根据用户的视野调整指令有效更新全景视频模型;另一方面仅需要对获取的全景视频码流进行解码,并按照新的全景视频模型进行映射重组,并筛选出位于全景视频窗口范围内的标签的坐标,即可实现全景视频的及时更新和标签的及时叠加。
[0191]
请参阅图14,图14是本技术全景视频管理系统一实施例的框架示意图。具体而言,全景视频管理系统14包括管理平台1401和前端设备1402,且管理平台1401与前端设备1402通信连接。需要说明的是,前端设备1402可以包括但不限于:多目摄像机等视频采集设备,在此不做限定。此外,管理平台1401可以为本技术电子设备公开实施例中电子设备,用户可以向管理平台发出诸如打开视频、标签增/删/改、全景视频放大/拖拽等指令。管理平台1401可以用于处理用户打开视频,标签增/删/改等操作;对视频进行全景解码;解析码流中的标签信息,计算并叠加在全景视频中;在视频放大和拖拽时,刷新标签位置并重新绘制;向前端设备1402发送rtsp拉流指令。前端设备1402可以用于存储标签信息,携带在码流中;处理管理平台1401的rtsp拉流;向管理平台1401返回rtsp信息。
[0192]
上述方案中,当用户对标签进行增/删/改操作或全景视频放大/拖拽操作时,可以及时获取视频码流,实现全景视频和标签的及时更新。
[0193]
请参阅图15,图15是本技术计算机可读存储介质15一实施例的框架示意图。本实施例中,该计算机可读存储介质15存储有处理器可运行的程序指令1501,该程序指令1501用于执行上述全景视频显示方法实施例中的步骤。
[0194]
该计算机可读存储介质15具体可以为u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
[0195]
上述方案中,一方面通过对用户的视野调整指令分析得到视野调整参数,进而对全景模型进行更新,得到新的全景模型,能够根据用户的视野调整指令有效更新全景视频模型;另一方面仅需要对获取的全景视频码流进行解码,并按照新的全景视频模型进行映射重组,并筛选出位于全景视频窗口范围内的标签的坐标,即可实现全景视频的及时更新和标签的及时叠加。
[0196]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0197]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0198]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0199]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0200]
若本技术技术方案涉及个人信息,应用本技术技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本技术技术方案涉及敏感个人信息,应用本技术技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1