1.本技术涉及弹幕技术领域,尤其涉及一种弹幕生成方法、装置、计算机设备和存储介质。
背景技术:
2.用户在观影过程中,可以通过实时发送弹幕来表达自己的想法、情感等,所以发弹幕已经逐渐成为用户的观影习惯,好的弹幕环境可以很好的改善用户的观影体验。然而,视频网站上的一些视频的弹幕量偏低,弹幕的丰富度较低,有弹幕的可推荐点位很少,这样用户对弹幕的点赞、评论、举报等互动行为也是比较少的,因此有必要对弹幕进行补充。
技术实现要素:
3.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供了一种弹幕生成方法、装置、计算机设备和存储介质。
4.第一方面,本技术提供了一种弹幕生成方法,包括:
5.获取当前时刻对应的当前图像帧和上下文弹幕;其中,所述上下文弹幕包括上文弹幕和/或下文弹幕,所述上文弹幕为所述当前时刻的上一时刻对应的图像帧中的弹幕,所述下文弹幕为所述当前时刻的下一时刻对应的图像帧中的弹幕;
6.根据所述当前图像帧和所述上下文弹幕,生成所述当前图像帧的新弹幕。
7.第二方面,本技术提供了一种弹幕生成装置,包括:
8.信息获取模块,用于获取当前时刻对应的当前图像帧和上下文弹幕;其中,所述上下文弹幕包括上文弹幕和/或下文弹幕,所述上文弹幕为所述当前时刻的上一时刻对应的图像帧中的弹幕,所述下文弹幕为所述当前时刻的下一时刻对应的图像帧中的弹幕;
9.新弹幕生成模块,用于根据所述当前图像帧和所述上下文弹幕,生成所述当前图像帧的新弹幕。
10.第三方面,本技术提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
11.第四方面,本技术提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
12.本技术中,首先获取当前时刻对应的当前图像帧和上下文弹幕,然后基于当前图像帧和上下文弹幕生成新弹幕,然后用新弹幕对当前图像帧的弹幕进行补充。在生成新弹幕时,不仅考虑到了当前图像帧,也考虑到了上下文弹幕,即考虑到了弹幕与图像之间的复杂依赖关系,可以使得生成的新弹幕是符合实际应用场景的。采用本技术提供的方法可以丰富视频中的弹幕,提高用户的点赞量、评论量、举报量,即提高用户与弹幕之间的互动率,从而进一步改善观影体验。
附图说明
13.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
14.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
15.图1a为本技术实施例提供的一种弹幕生成方法的流程示意图;
16.图1b为本技术实施例提供的补充新弹幕的图像帧的示意图;
17.图1c为本技术实施例提供的弹幕生成模型的结构示意图;
18.图2为本技术实施例提供的一种弹幕生成装置的结构示意图;
19.图3为本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
20.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.第一方面,本技术实施例提供的一种弹幕生成方法,如图1a所示,该方法包括如下步骤:
22.s110、获取当前时刻对应的当前图像帧和上下文弹幕;
23.其中,所述上下文弹幕包括上文弹幕和/或下文弹幕,所述上文弹幕为所述当前时刻的上一时刻对应的图像帧中的弹幕,所述下文弹幕为所述当前时刻的下一时刻对应的图像帧中的弹幕;
24.举例来说,以秒为时刻单位的话,上文弹幕为当前时刻的上一秒对应的图像帧中的弹幕,下文弹幕为当前时刻的下一秒对应的图像帧中的弹幕。
25.在具体实施时,可以上一时刻对应的图像帧中取一条或者多条弹幕作为上文弹幕,假如选择多条弹幕的话,将这多条弹幕连接起来形成一条长的上文弹幕。在下一时刻对应的图像帧中取一条或者多条弹幕作为下文弹幕,加入选择多条弹幕的话,将这多条弹幕连接起来形成一条长的下文弹幕。当然,也可以在上一时刻对应的图像帧中随机选择一条弹幕作为上文弹幕,在下一时刻对应的图像帧中随机选择一条弹幕作为下文弹幕,这样更加简单方便。
26.s120、根据所述当前图像帧和所述上下文弹幕,生成所述当前图像帧的新弹幕。
27.可理解的是,新弹幕的生成不完全依赖于当前图像帧中的内容,也和当前图像帧前后的弹幕有关。例如,我们经常会看到一些“高能预警”类弹幕来预告即将到来的惊悚画面,或者,剧透弹幕会提前告诉用户后面的剧情,或者,对之前发生过的剧情的回顾等。所以这里在生成新弹幕时,不仅考虑到了当前图像帧,也考虑到了上下文弹幕,即考虑到了弹幕与图像之间的复杂依赖关系。
28.在具体实施时,步骤s120可以具体包括:将所述当前图像帧和所述上下文弹幕输入至预设的弹幕生成模型中,得到所述当前图像帧的新弹幕。即采用弹幕生成模型生成新
弹幕。
29.其中,弹幕生成模型是预先训练好的,其具体结构可以包括多种,这里介绍其中一种结构,如图1c所示:
30.弹幕生成模型200包括依次连接的图像编码器210、弹幕编码器220和弹幕解码器230,其中:图像编码器210的输入为所述当前图像帧,用于对所述当前图像帧进行编码,得到第一编码信息;弹幕编码器220的输入包括所述上下文弹幕和所述第一编码信息,用于对所述下文弹幕和所述第一编码信息进行编码,得到第二编码信息;弹幕解码器230的输入包括所述第一编码信息和所述第二编码信息,用于对所述第一编码信息和所述第二编码信息进行解码,得到所述新弹幕。
31.可理解的是,图像编码器210对当前图像帧进行编码,得到第一编码信息,即第一编码信息为当前图像帧的编码信息。弹幕编码器220是对上下文弹幕和第一编码信息进行编码,得到第二编码信息,可见第二编码信息中既包含上下文弹幕的相关信息,也包含当前图像帧的相关信息。弹幕解码器230对第一编码信息和第二编码信息进行解码,进而得到新弹幕。上述弹幕生成模型200是一个编码器—解码器的结构。
32.在具体实施时,图像编码器210可以有多种结构,下面介绍其中一种:
33.图像编码器210包括依次连接的卷积网络模块211、第一多头注意力模块212和第一前馈模块213,其中:所述卷积网络模块211用于提取所述当前图像帧的图像特征,得到第一向量;所述第一多头注意力模块212用于采用多头注意力机制对所述第一特征向量进行加权处理,得到第二向量;所述第一前馈模块213用于对所述第二向量进行维度变换,得到预设维度的第三向量,所述第三向量为所述第一编码信息。
34.其中,卷积网络模块211,即cnn,对当前图像帧进行特征提取,得到第一向量,第一向量实际上是当前图像帧的特征向量。
35.其中,第一多头注意力模块212,即multi
‑
head attention模块,可以将输入的第一向量映射到不同的子空间,可以从不同的角度理解第一向量,即采用多个注意力方法对第一向量进行处理,即多头注意力机制。经过一个注意力方法会产生一个输出向量,经过多个注意力方法会得到多个输出向量,然后将这多个输出向量映射为一个向量,即第二向量,可见第二向量实际上是带有注意力信息的图像特征信息。采用多头注意力机制有助于捕捉到更加丰富的信息。
36.其中,加权处理是指对第一向量中的每一个元素增加不同的权重值,在第一向量中各个元素的权重值是相同的,由于第一向量中不同的元素对于整个向量的重要程度是不同的,因此这里给不同的元素设置不同的权重值。采用一个注意力方法对第一向量进行加权处理,得到一个输出向量,经过多个注意力方法会得到多个输出向量,然后将这多个输出向量映射为一个向量,上述过程即多头注意力机制的处理过程。不同的注意力方法关注的是第一向量的不同方面,因此不同的注意力方法,针对第一向量中各元素会设置不同的权重值。一种注意力方法关注的是图像中的标题内容,而另一种注意力方法关注的是图像中的台词内容,当然还可以关注其它的内容,将所关注的信息对应的元素设置较大的权重值,而不关注的信息对应的元素设置较小的权重值。
37.其中,第一前馈模块213的作用是对第二向量进行维度变换,由于不同的图像帧会对应不同维度的第一向量,进而对应不同维度的第二向量,这里采用第一前馈模块213可以
将维度不同的第二向量均转换为维度相同的向量,即第三向量,方便进行后续的操作。可理解的是,这里的维度是指向量的长度,即向量中元素的个数。也就是说,由于不同的图像帧会得到不同长度的第一向量,进而得到不同长度的第二向量,而第三向量的长度是固定的,因此第一前馈模块213的目的就是将不同长度的第二向量转换为长度固定的第三向量。
38.可见,通过以上结构的图像编码器210,可以得到向量形式的第一编码信息。
39.在具体实施时,弹幕编码器220可以有多种结构,下面介绍其中一种:
40.弹幕编码器220包括依次连接的第一向量化表征模块221、第二多头注意力模块222、第三多头注意力模块223和第二前馈模块224;其中:所述第一向量化表征模块221用于将所述上下文弹幕转换为对应的第四向量,所述第四向量用于表征所述上下文弹幕的含义;所述第二多头注意力模块222用于采用多头注意力机制对所述第四向量进行加权处理,得到第五向量;所述第三多头注意力模块223用于采用多头注意力机制对所述第三向量与所述第五向量连接所形成的向量进行加权处理,得到第六向量;所述第二前馈模块224用于对所述第六向量进行维度变换,得到预设维度的第七向量,所述第七向量为所述第二编码信息。
41.其中,第一向量化表征模块221即embedding模块,这一模块的作用是将上下文弹幕中的每一个词转换为对应的向量,然后将这些向量连接起来形成第四向量,其中每一个词对应的向量用于表征这个词的含义,因此第四向量可以用于表征上下文弹幕的含义。其中,若选取一条上文弹幕作为上下文弹幕,则将这条上文弹幕中的每一个词转换为一个对应的向量,然后将各个词对应的向量拼接起来形成第四向量,即第四向量用来表示这条上文弹幕的含义。下文弹幕也是如此。若选取一条上文弹幕和一条下文弹幕作为上下文弹幕,则将上文弹幕和下文弹幕拼接起来得到拼接弹幕,然后对拼接弹幕中的每一个词转换为一个向量,然后将各个词的向量拼接起来形成第四向量,这样第四向量就表示这条上文弹幕和这条下文弹幕的含义。
42.其中,第二多头注意力模块222的具体说明可以参见上述第一多头注意力模块212。经过图像编码器210,可以得到第三向量;经过弹幕编码器220中的第二多头注意力模块222,可以得到第五向量;将第三向量和第五向量拼接起来形成一个长向量,然后将长向量输入到第三多头注意力模块223中,经过第三多头注意力模块223的多头注意力机制的加权处理,可以得到第六向量。可理解的是,为了使得弹幕编码器220既使用到图像帧的内容,又使用到弹幕文本的内容,所以将第三向量和第五向量进行拼接后进行处理。
43.其中,第二前馈模块224,类似于第一前馈模块213,也是对向量的维度进行转换,因为不同弹幕的长度不同,经过第二多头注意力模块222、第三多头注意力模块223之后,得到的第六向量的维度不同,将不同维度的第六向量均转换为相同维度的第七向量,便于后续操作。也就是说,不同长度的弹幕,得到的第六向量的长度不同,这里第二前馈模块224就是将不同长度的第六向量转换为长度固定的第七向量。
44.可见,通过以上结构的弹幕编码器220,可以得到向量形式的第二编码信息。
45.在具体实施时,弹幕解码器230可以有多种结构,下面介绍其中一种:
46.弹幕解码器230包括依次连接的第二向量化表征模块231、第一掩码多头注意力模块232、第四多头注意力模块233、第五多头注意力模块234和第三前馈模块235;其中:所述第二向量化表征模块231用于将其输入文本转换为对应的第八向量;所述第八向量用于表
征所述输入文本的含义,所述第二向量化表征模块231第一次的输入文本为空,所述第二向量化表征模块231第n次的输入文本由所述弹幕解码器230第一次至第n
‑
1次输出的词构成;n为大于1的正整数;所述第一掩码多头注意力模块232用于对所述第八向量掩码处理和加权处理,得到第九向量;所述第四多头注意力模块233用于采用多头注意力机制对所述第九向量和所述第三向量连接所形成的向量进行加权处理,得到第十向量;所述第五多头注意力模块234用于采用多头注意力机制对所述第十向量和所述第七向量连接所形成的向量进行加权处理,得到第十一向量;所述第三前馈模块235用于对所述第十一向量进行维度变换,得到预设维度的第十二向量,所述第十二向量对应所述新弹幕中的一个词。
47.其中,第二向量化表征模块231即embedding模块,作用是将第二向量化表征模块231的输入文本中的每一个词转换为对应的向量,然后将这些向量拼接起来,得到对应的第八向量。当第一次采用弹幕解码器230进行解码处理时,即第一次输入第二向量化表征模块231的输入文本为空,第二向量化表征模块231将空的输入文本转换为一个第八向量。经过弹幕解码器230的第一次解码处理后,得到第一个词,将第一个词作为第二向量化表征模块231的第二次输入文本,进行其余几个模块的相应处理,得到第二个词,然后将第一个词和第二个词组合成第二向量化表征模块231的第三次输入文本,依次类推,直到弹幕解码器230的输出内容为一个句号。可理解的是,空的输入文本其实相当于一个词,这个词的含义就是句子的开头,每个词都对应一个向量,包括空也对应一个向量,具体的向量可以从词与向量的映射数据库(即词典库)中查找。
48.可见,弹幕解码器230从整体是一个自回归过程,即弹幕解码器230是一个词一个词的预测出来的,当前输出的预测结果会作为弹幕解码器230的下一次输入,参与下一个词的预测。
49.可理解的是,第二向量化表征模块231能够将空的输入文本转换为对应的第八向量,以及弹幕解码器230能够输出一个句号,都是弹幕生成模型200学习的结果。
50.其中,第一掩码多头注意力模块232,即masked multi
‑
head attention模块,该模块的作用不仅仅是为向量中的每一个元素设置对应的权重,而且还进行掩码处理。之所以要进行掩码处理是因为:确保在预测第i个词时仅仅依赖于第i个词之前的输出结果,确保预测第i个词时不会接触到第i个词之后的信息即未来的信息。在机器翻译中,解码过程是一个顺序操作的过程,也就是当解码第i词对应的向量时,我们只能看到第i
‑
1及其之前的解码结果,所以这里要进行掩码处理,从而实现一个词一个词的预测。
51.其中,经过图像编码器210,可以得到第三向量;经过弹幕解码器230中的第一掩码多头注意力模块232,可以得到第九向量,将第三向量和第九向量连接起来形成一个长向量,然后将这个长向量输入到第四多头注意力模块233中,可以得到第十向量。经过弹幕编码器220,可以得到第七向量,经过弹幕解码器230中的第四多头注意力模块233,可以得到第十向量,将第十向量和第七向量连接起来形成一个长向量,然后将这个长向量输入到第五多头注意力模块234中,可以得到第十一向量。可理解的是,由于生成的新的弹幕就是用来描述图像帧的,如果不基于图像帧生成新的弹幕,那么生成的新弹幕就可能偏离主题较远。而且,在经过编码器得到的向量中包含了图像或者文字的含义,通过这个向量就可以学习出对应的弹幕。
52.其中,第三前馈模块235的作用也是将不同维度的第十一向量转换为相同维度的
向量,即第十二向量,这一向量对应一个词,例如,将第十二向量输入到弹幕解码器230的输出层softmax中,可以得到对应的词。
53.在具体实施时,可以采用热门视频的图像帧和上下文弹幕作为训练样本对上述弹幕生成模型200进行训练,利用训练好的弹幕生成模型200对冷门视频的弹幕进行补充。其中,热门视频是指播放量、弹幕量都比较多的视频,冷门视频是播放量、弹幕量都比较少的视频。
54.可理解的是,上述各个前馈模块(即上述第一前馈模块213、第二前馈模块224、第三前馈模块235)的工作原理类似,采用全连接网络,并在全连接网络的最后一层设置n个隐节点,就可以将任意维度的向量转换为n维向量。当然,对于不同的前馈模块,m和n的取值可以不同。
55.其中,上述弹幕生成模型200是通过训练样本训练得到,经过一定的迭代次数之后,损失函数达到收敛,表明弹幕生成模型200的训练完成。
56.举例来说,基于一张图像帧和上下文弹幕“竹林真美、萧敬腾在这剧里才正常啊一直下雨、这衣服防水你说气不气”,生成的新弹幕是“衣服都没湿”。
57.在视频网站选取了10部冷门电影,每部电影自身的弹幕量级范围为2000~4000左右(此为实验前的统计数据),利用弹幕生成模型为每部电影生成了500~700左右弹幕量。调用视频网站前端的弹幕发送接口,模拟线上真实的观影用户进行弹幕的发送,从2019年的3月22日开始发送生成的新弹幕,平均每1.5min发送一条,第一批在2019年的3月28日发送完成;第二批从2019年的4月3日开始发送,2019年的4月8日发送完毕。视频网站前端的最终展示效果如图1b所示,被圈出来的弹幕为模拟真实用户发送的新弹幕。在发送新弹幕之前和之后,通过对比,弹幕的互动率明显提高,这10部电影的平均互动率与电影频道整体的平均互动率之间的差距有明显的缩小,可见,本技术提供的方法的效果很明显。
58.本技术提供的弹幕生成方法,首先获取当前时刻对应的当前图像帧和上下文弹幕,然后基于当前图像帧和上下文弹幕生成新弹幕,然后用新弹幕对当前图像帧的弹幕进行补充。在生成新弹幕时,不仅考虑到了当前图像帧,也考虑到了上下文弹幕,即考虑到了弹幕与图像之间的复杂依赖关系,可以使得生成的新弹幕是符合实际应用场景的。采用本技术提供的方法可以丰富视频中的弹幕,这样可以提高用户的点赞量、评论量、举报量,即提高用户与弹幕之间的互动率,从而进一步改善观影体验。这种方法尤其适合对长尾视频(即冷门视频)进行弹幕补充。
59.第二方面,本技术提供一种弹幕生成装置,如图2所示,该装置100包括如下模块:
60.信息获取模块110,用于获取当前时刻对应的当前图像帧和上下文弹幕;其中,所述上下文弹幕包括上文弹幕和/或下文弹幕,所述上文弹幕为所述当前时刻的上一时刻对应的图像帧中的弹幕,所述下文弹幕为所述当前时刻的下一时刻对应的图像帧中的弹幕;
61.新弹幕生成模块120,用于根据所述当前图像帧和所述上下文弹幕,生成所述当前图像帧的新弹幕。
62.可理解的是,本技术实施例提供的弹幕生成装置,有关内容的解释、举例、有益效果等部分可以参考第一方面中的相应部分,此处不再赘述。
63.第三方面,本技术实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面
提供的方法。
64.图3示出了一个实施例中计算机设备的内部结构图。如图3所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏等。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可以存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现弹幕生成方法。该内存储器中也可以储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行弹幕生成方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
65.本领域技术人员可以理解,图2中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
66.在一个实施例中,本技术提供的弹幕生成装置可以实现为一种计算机程序的形式,计算机程序可在如图3所示的计算机设备上运行。计算机设备的存储器中可存储组成该扩容装置的各个程序模块,比如,图2所示的信息获取模块110和新弹幕生成模块120。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本技术各个实施例的弹幕生成方法中的步骤。
67.例如,图3所示的计算机设备可以通过如图2所示的弹幕生成装置中的信息获取模块110执行获取当前时刻对应的当前图像帧和上下文弹幕;其中,所述上下文弹幕包括上文弹幕和/或下文弹幕,所述上文弹幕为所述当前时刻的上一时刻对应的图像帧中的弹幕,所述下文弹幕为所述当前时刻的下一时刻对应的图像帧中的弹幕。计算机设备可以通过新弹幕生成模块120执行根据所述当前图像帧和所述上下文弹幕,生成所述当前图像帧的新弹幕。
68.可理解的是,本技术实施例提供的计算机设备,有关内容的解释、举例、有益效果等部分可以参考第一方面中的相应部分,此处不再赘述。
69.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的方法。
70.可理解的是,本技术实施例提供的计算机可读存储介质,有关内容的解释、举例、有益效果等部分可以参考第一方面中的相应部分,此处不再赘述。
71.可理解的是,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
72.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之
间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
73.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
转载请注明原文地址:https://win.8miu.com/read-50044.html