所属的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。根据本发明的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。其中,所述储存器存储有程序代码,所述程序代码可以被所述处理器执行,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(ram)和/或高速缓存储存器,还可以进一步包括只读储存器(rom)。储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
背景技术:
1、目前的场景构建方法是通过对需要构建场景的环境或物体进行拍摄,得到环境或物体的整体视频,开发人员再根据整体视频进行场景构建,但当环境或物体的拍摄尺寸过大,或拍摄的视频过长时,其中可能会存在多余的视角图片,数据处理量也会随之变大,占用较大算力的同时,还会对开发人员的查看造成影响。
技术实现思路
1、针对上述技术问题,本发明采用的技术方案为:
2、根据本技术的一个方面,提供一种基于拍摄角度的视频抽帧方法,包括如下步骤:
3、步骤s100、响应于接收到待处理视频,获取待处理视频对应的帧率;待处理视频为根据图像采集设备对目标物进行环绕一周拍摄得到的视频;
4、步骤s200、根据待处理视频对应的帧率,对待处理视频进行分解处理,以得到待处理视频对应的若干初始图像;每一初始图像对应有时间标识;
5、步骤s300、根据每一初始图像对应的时间标识,对若干初始图像进行聚类,以得到若干初始图像组;同一初始图像组中的若干初始图像对应的时间标识相同;
6、步骤s400、遍历每一初始图像组中的若干初始图像,若任一初始图像的分辨率满足预设的分辨率条件,则将该初始图像确定为关键图像;
7、步骤s500、根据每一初始图像组中的若干关键图像对应的拍摄角度,从每一初始图像组中的若干关键图像中确定出每一初始图像组对应的目标图像;关键图像对应的拍摄角度为图像采集设备在该关键图像对应的拍摄时间时对目标物进行拍摄的角度。
8、在本技术的一种示例性实施例中,步骤s200包括:
9、步骤s210、获取待处理视频的总时长t1;
10、步骤s220、对待处理视频进行分解处理,以得到待处理视频对应的b个初始图像;其中,b=t1×t2;t2为待处理视频对应的帧率;
11、步骤s230、根据每一初始图像对应的拍摄时间,生成对应的时间标识,并将时间标识增加至该初始图像中。
12、在本技术的一种示例性实施例中,步骤s300包括:
13、步骤s310、获取每一初始图像对应的时间标识,得到时间标识列表e=(e1,e2,...,ea,...,eb);其中,a=1,2,...,b;ea为第a个初始图像对应的时间标识;
14、步骤s320、遍历时间标识列表e,若ea对应的拍摄时间与ec对应的拍摄时间属于同一个预设的拍摄时间段内,则将ea对应的初始图像和ec对应的初始图像确定为同一个初始图像组;其中,c=1,2,...,b;且c≠a。
15、在本技术的一种示例性实施例中,步骤s400包括:
16、步骤s410、获取每一初始图像组中的若干初始图像对应的分辨率,得到分辨率列表集f=(f1,f2,...,fd,...,fe);fd=(fd1,fd2,...,fdf,...,fdg);其中,d=1,2,...,e;e为初始图像组的数量;e=t3;t3为预设的拍摄时间段的数量;fd为第d个初始图像组对应的分辨率列表;f=1,2,...,g;g为每一初始图像组中初始图像的数量;g=b/t3;fdf为第d个初始图像组中第f个初始图像对应的分辨率;
17、步骤s420、遍历分辨率列表集f,若fdf>f0,则将fdf对应的初始图像确定为关键图像;其中,f0为预设的分辨率阈值。
18、在本技术的一种示例性实施例中,步骤s500包括:
19、步骤s510、获取每一初始图像组中若干关键图像对应的拍摄角度,得到拍摄角度列表集g=(g1,g2,...,gd,...,ge);gd=(gd1,gd2,...,gdh,...,gdj(d));其中,gd为第d个初始图像组对应的拍摄角度列表;h=1,2,...,j(d);j(d)为第d个初始图像组中关键图像的数量;gdh为第d个初始图像组中第h个关键图像对应的拍摄角度;
20、步骤s520、根据gd中每相邻两个拍摄角度的角度差,确定第d个初始图像组对应的拍摄角度波动值ad;
21、步骤s530、若ad<a0,则执行步骤s540;否则,执行步骤s550;其中,a0为预设的拍摄角度波动值阈值;
22、步骤s540、将gd中第个拍摄角度对应的关键图像确定为第d个初始图像组对应的目标图像;其中,为预设的上取整函数;
23、步骤s550、若d=1,则执行步骤s560;否则,执行步骤s570;
24、步骤s560、根据gd1和gdj(d),确定出第d个初始图像组对应的目标图像;
25、步骤s570、根据第d-1个初始图像组对应的目标图像的拍摄角度和gdj(d),确定出第d个初始图像组对应的目标图像。
26、在本技术的一种示例性实施例中,步骤s520包括:
27、步骤s521、获取gd中每相邻两个关键图像对应的拍摄角度的角度差,得到第d个初始图像组对应的角度差列表bd=(bd1,bd2,...,bdi,...,bd(j(d)-1));其中,i=1,2,...,j(d)-1;bdi为第d个初始图像组对应的第i个角度差;bdi=gd(i+1)-gdi;
28、步骤s522、根据角度差列表bd,确定第d个初始图像组对应的拍摄角度波动值ad=(∑j(d)-1i=1(bdi-avg(bd))2)/(j(d)-1);其中,avg()为预设的平均值确定函数。
29、在本技术的一种示例性实施例中,步骤s560包括:
30、步骤s561、确定第一个初始图像组对应的平均角度差值k1=(gdj(d)-gd1)/2;
31、步骤s562、获取g1中每一拍摄角度与k1的差值,得到第一拍摄角差值列表c1=(c11,c12,...,c1h,...,c1j(d));其中,c1h=|g1h-k1|;
32、步骤s563、将min(c1)对应的关键图像确定为第一个初始图像组对应的目标图像;其中,min()为预设的最小值确定函数。
33、在本技术的一种示例性实施例中,步骤s570包括:
34、步骤s571、获取第d-1个初始图像组对应的目标图像的拍摄角度dd-1;
35、步骤s572、根据dd-1和gdj(d),确定第d个初始图像组对应的平均角度差值kd=(gdj(d)-dd-1)/2;
36、步骤s573、获取gd中每一拍摄角度与kd的差值,得到第二拍摄角差值列表cd=(cd1,cd2,...,cdh,...,cdj(d));其中,cdh=|gdh-kd|;
37、步骤s574、将min(cd)对应的关键图像确定为第d个初始图像组对应的目标图像;其中,min()为预设的最小值确定函数。
38、根据本技术的一个方面,提供一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现前述的基于拍摄角度的视频抽帧方法。
39、根据本技术的一个方面,提供一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
40、本发明至少具有以下有益效果:
41、本发明的基于拍摄角度的视频抽帧方法,根据接收到的待处理视频对应的帧率,对待处理视频进行分解,得到若干初始图像,再根据每一初始图像对应的时间标识,对若干初始图像进行聚类,以得到若干初始图像组,以使位于同一个初始图像组中的若干初始图像的拍摄时间位于同一时间段内,便于后续对同一时间段内的若干初始图像进行处理,遍历每一初始图像,若任一初始图像的分辨率满足预设的分辨率条件,则将该初始图像确定为关键图像,并根据每一初始图像组中的若干关键图像对应的目标物的拍摄角度,从每一初始图像组中的若干关键图像中确定出每一初始图像组对应的目标图像,以使从每个预设的时间段对应的若干关键图像中确定出一张目标图像,便于用户根据每个时间段内的目标图像,得到目标物的周身视频,以搭建目标物所在环境的场景。
1.一种基于拍摄角度的视频抽帧方法,其特征在于,所述方法包括如下步骤:
2.根据权利要求1所述的方法,其特征在于,所述步骤s200包括:
3.根据权利要求2所述的方法,其特征在于,所述步骤s300包括:
4.根据权利要求3所述的方法,其特征在于,所述步骤s400包括:
5.根据权利要求4所述的方法,其特征在于,所述步骤s500包括:
6.根据权利要求5所述的方法,其特征在于,所述步骤s520包括:
7.根据权利要求5所述的方法,其特征在于,所述步骤s560包括:
8.根据权利要求5所述的方法,其特征在于,所述步骤s570包括:
9.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8中任意一项所述的基于拍摄角度的视频抽帧方法。
10.一种电子设备,其特征在于,包括处理器和权利要求9中所述的非瞬时性计算机可读存储介质。