具体实施方式
下面结合附图,对本申请的实施例进行描述。
视频拆分指的是对于任意长度的视频,我们根据视频中行为人的动作、行为人所处的场景,发生在行为人之间的事件,将整个视频进行拆分。而通常情况下,为了保证拆分后的视频表达的内容更加完整、故事性更强,可以在拆分时保证拆分后的每个片段聚焦于相对完整的一段故事,发生在同样的行为人之间,发生在同样的场景之内,此时的视频拆分可以称为视频拆条。
相关技术中,视频拆分算法往往依赖于局部建模加上人工策略的方式来完成,通过在视频局部基于人工智能进行人脸检测与场景分类的方式,找出相似的行为人以及事件发生的场景,然后通过一系列后处理策略对相似片段进一步融合。
然而这种方法由于缺乏对整体故事的建模,很容易收到局部噪声的影响,需要设计不同的人工策略以适应各种应用场景,影响了算法实用性与鲁棒性。比如当只关注于局部特征之时,人脸检测的结果就很容易受到事件无关的“路人”的影响。
为了解决上述技术问题,本申请实施例提供一种视频拆分方法,该方法在进行视频拆分时,针对每一个视频单元,都计算了它与待处理视频中其他所有视频单元的相似程度,然后基于该相似程度和初始视频特征得到新的特征(即目标视频特征)作为该视频单元的特征表达,通过这样的策略,使得视频单元的特征具有了全局建模的能力,避免利用局部信息进行判断,然后依赖于大量人工设计准则的情况,从而解决了视频拆分结果易受到局部噪声影响的问题,提高了视频拆分的准确性。
需要说明的是,本申请实施例提供的方法主要涉及云技术领域,具体涉及云技术中的人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
本申请实施例提供的方法主要涉及人工智能技术,人工智能(ArtificialIntelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本申请主要涉及其中的计算机视觉技术、语音处理技术、机器学习/深度学习。
其中,计算机视觉技术(Computer Vision,CV)是一门研究如何使机器“看”的科学。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。例如,针对每个视频单元进行特征提取,包括场景特征提取、人脸特征提取。
语音技术(Speech Technology)的关键技术有自动语音识别技术(ASR)和语音合成技术(TTS)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。例如,针对每个视频单元进行特征提取,包括音频特征提取。
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
本申请实施例提供的视频拆分方法还可以涉及区块链,如本申请所公开的视频拆分方法可以由服务器执行,其中多个服务器可组成为一区块链,而服务器为区块链上的节点。
可以理解的是,本申请实施例提供的视频拆分方法可以用于视频剪辑领域,实现将一段视频拆分为一个个的单元故事,例如各种视频网站以及短视频APP,从而辅助视频创作者进行更好的内容创作。
参见图1,图1为本申请实施例提供的视频拆分方法的系统架构示意图。该系统架构中包括服务器101和终端102,服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端102以及服务器101可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
终端102可以获取待处理视频,其中待处理视频可以是终端102拍摄的视频,也可以是终端102从其他拍摄设备获取的视频,还可以是从网络上获取的成品素材,例如影视剧视频、综艺视频等等。
终端102可以将待处理视频发送至服务器101,以便服务器101可以根据本申请实施例提供的视频拆分方法对待处理视频进行视频拆分。
服务器101确定待处理视频对应的视频单元序列,视频单元序列中包括的多个视频单元按照其在所述待处理视频中的时序排列。视频单元是对待处理视频进行拆分得到的,每个视频单元中包括至少一个视频帧。
服务器101对视频单元序列中包括的每个视频单元进行特征提取,得到视频单元序列对应的特征序列,特征序列中包括每个视频单元对应的初始视频特征;将每个视频单元分别作为目标视频单元,根据目标视频单元与其他视频单元之间的相似程度以及目标视频单元对应的初始视频特征,确定目标视频单元的目标视频特征,其他视频单元为视频单元序列中除目标视频单元之外的视频单元。该方法针对每一个视频单元,都计算了它与待处理视频中其他所有视频单元的相似程度,然后基于该相似程度和初始视频特征得到新的特征(即目标视频特征)作为该视频单元的特征表达,通过这样的策略,使得视频单元的特征具有了全局建模的能力,即每个视频单元对应的目标视频特征体现了待处理视频的全局信息。服务器101根据这样的目标视频特征预测目标视频单元是否属于拆分边界,得到特征序列对应的预测结果序列,进而根据预测结果序列,得到属于拆分边界的目标视频单元对待处理视频进行视频拆分。
服务器101完成视频拆分后,可以将视频拆分得到的视频片段发送到终端102。
由于目标视频特征体现了待处理视频的全局信息,避免利用局部信息进行判断,然后依赖于大量人工设计准则的情况,从而解决了视频拆分结果易受到局部噪声影响的问题,提高了视频拆分的准确性。
需要说明的是,图1仅是一种示例,本申请实施例提供的方法还可以由终端102执行,本实施例对此不做限定。
接下来,将结合附图对本申请实施例提供的视频拆分方法进行详细介绍。
参见图2a,图2a示出了一种视频拆分方法的流程图,所述方法包括:
S201、确定待处理视频对应的视频单元序列。
其中,视频单元序列中包括的多个视频单元按照其在待处理视频中的时序排列。
在本实施例中,视频单元可以是待处理视频的拆分粒度,例如视频单元可以是视频帧,然而在一些情况下,由于待处理视频中可能包括很多视频帧,为了避免拆分得到的视频单元过多,降低后续数据处理数量,视频单元可以为镜头,即将待处理视频拆分成不同的镜头,此时视频单元序列为镜头序列。例如待处理视频包括100个视频帧,但是如果对待处理视频进行镜头拆分,待处理视频可能被拆分为3个镜头,与100个视频帧相比,大大减少了后续数据处理数量。
其中,一个镜头可以一个拍摄镜头所拍摄得到的视频片段,当然也可以指一个拍摄镜头在同一个拍摄角度下拍摄得到的视频片段。
需要说明的是,在一种可能的实现方式中确定待处理视频对应的视频单元序列的方式可以是确定待处理视频中视频帧之间的像素变化程度,进而根据像素变化程度,将待处理视频拆分成多个视频单元,得到视频单元序列。参见图2b所示,当获取到待处理视频201后,对待处理视频进行拆分得到视频单元序列202。此时,拆分得到的视频单元可以称为镜头,视频单元序列为镜头序列。
在本实施例中,可以只是根据视频内容的像素变化程度进行拆分,对视频内容本身不做任何理解。以针对任意两个视频帧确定像素变化程度为例,例如第一视频帧和第二视频帧,即视频帧之间的像素变化程度为第一视频帧和第二视频帧之间的像素变化程度,则确定待处理视频中视频帧之间的像素变化程度的方式可以是获取第一视频帧的第一像素分布和第二视频帧的第二像素分布,根据第一像素分布和所述第二像素分布确定第一视频帧和第二视频帧之间的像素变化程度。通常情况下,可以用第一像素分布和第二像素分布差距来表示像素变化程度,若像素变化程度大于一定预设阈值,则可以认为第一视频帧和第二视频帧之间的像素变化程度比较剧烈,从而将第一视频帧和第二视频帧拆分成两个视频单元,否则确定将第一视频帧和第二视频帧属于同一个视频单元,进而针对每个视频帧完成划分。
其中,预设阈值可以是根据实际拆分需求确定的,若希望同一片段的变化程度比较小,则可以将预设阈值设置的比较大,否则,可以将预设阈值设置的小一些。像素分布可以是统计视频帧各个像素点的像素值得到的,例如对第一视频帧的各像素点的像素值进行统计得到第一像素分布,对第二视频帧的各像素点的像素值进行统计得到第二像素分布。第一像素分布和第二像素分布差距可以是通过像素值不相同的像素点数量来衡量,或者通过像素值不相同的像素点数量与总像素点数量的比值来衡量。例如第一视频帧和第二视频帧分别有100个像素点,其中,通过比对相对应的像素点的像素值是否相同,确定二者存在90个像素点的像素值相同,10个像素点的像素值不相同,则可以确定第一像素分布和第二像素分布差距为10%。
本申请使用镜头拆分算法,根据视频帧与视频帧之间的运动变化,将待处理视频拆分成多个镜头得到镜头序列,这里的镜头拆分只是根据视频的像素变化剧烈程度进行拆分,对视频内容本身不做任何理解。
举例来说,同样的一组行为人互动,拍摄场景也没有发生变化,只是拍摄镜头的角度发生了切换,这段视频就会被分割为两个镜头。但是如果加上对于视频内容本身的理解,即结合像素变化程度和视频内容本身共同确定两个视频帧是否可能属于同一视频单元,此时,即使像素变化程度较大,但是由于拍摄场景没有发生变化,这两个镜头其实应该属于同一段故事,应该被划分在一起作为输出。所以,一般意义上我们认为,镜头是拆条的一个子元素,通过视频拆分得到的一段拆条是由多个镜头组成的。
根据镜头与拆条之间的关系特性,本实施例主要以视频单元是镜头,视频单元序列是镜头序列为例对视频拆分方法进行介绍。
S202、对所述视频单元序列中包括的每个视频单元进行特征提取,得到所述视频单元序列对应的特征序列。
其中,特征序列中包括每个视频单元对应的初始视频特征,特征序列中的初始视频特征同样按照视频单元在待处理视频中的时序进行排列。
在一种可能的实现方式中,初始视频特征可以包括场景特征、人脸特征和音频特征中一种或多种组合。通常情况下,初始视频特征具体为上述哪种特征或者是多种组合的多模态特征可以根据具体的视频拆分任务决定。
若视频拆分任务为将同一场景发生的故事作为一个完整故事,则初始视频特征可以是场景特征。对于场景特征,可以提取镜头关键帧,然后使用预训练得到的场景分类器提取关键帧的场景特征。
若视频拆分任务为将同一行为人发生的故事作为一个完整故事,则初始视频特征可以是人脸特征。对于人脸特征,可以使用人脸检测器检测镜头中每一个视频帧的人脸并且抽取特征,同时使用聚类算法,例如K均值聚类算法(k-means)等得到几个具有代表性的人脸特征作为最后的输入。
对于音频特征,可以使用音频预训练模型对镜头中的声音提取相应的特征。
由此可见,在本申请实施例中,在提取不同类型的特征时可能具有对应的特征提取算法,即在对视频单元序列中包括的每个视频单元进行特征提取,得到视频单元序列对应的特征序列时,可以确定待提取的特征类型,进而根据特征类型调用对应的特征提取算法对每个视频单元进行特征提取,得到视频单元序列对应的特征序列。
假设这一初始视频特征为
,D代表初始视频特征的维度。经过特征提取之后,整个待处理视频转变为了一段由初始视频特征表达的镜头序列
。
当然,在任一种情况下,为了结合更加丰富的特征进行后续的预测过程,可以针对每个视频单元例如镜头提取多模态特征例如图2b中203所示,多个模态特征包括上述场景特征、人脸特征、以及音频特征,即初始视频特征为上述多个视频特征组合得到的多模态特征。最终将三种模态的特征进行拼接,得到整体的特征作为整个视频单元例如镜头的特征表达(即初始视频特征)。
S203、将每个视频单元分别作为目标视频单元,根据所述目标视频单元与其他视频单元之间的相似程度以及所述目标视频单元对应的初始视频特征,确定所述目标视频单元的目标视频特征。
其中,其他视频单元为视频单元序列中除目标视频单元之外的视频单元,从而针对每一个视频单元,都计算了它与待处理视频中其他所有视频单元的相似程度,然后基于该相似程度和初始视频特征得到新的特征(即目标视频特征)作为该视频单元的特征表达,通过这样的策略,使得视频单元的特征具有了全局建模的能力。
视频拆分的目标,就是预测每个视频单元(例如镜头)是否属于拆分边界,用预测标签(例如1/0)表示
。如果属于拆分边界,也就是在某个镜头之前是A故事,在这一镜头之后是B故事,则这一镜头处的预测为
(即该镜头是拆分边界),反之这一镜头处的预测为0(即该镜头不是拆分边界)。
当然,预测标签也可以采用其他形式表示,例如1/2/0,即如果属于拆分边界,拆分边界可以是一个故事的起始边界,也可以是终止边界,因此为了便于区分起始边界和终止边界,以便进行视频拆分,则若一镜头处的预测为
(即该镜头是起始拆分边界),若一镜头处的预测为
(即该镜头是终止拆分边界),若这一镜头处的预测为0(即该镜头不是拆分边界)。
通过这样的处理,我们就把视频拆分任务转化为了一个标准的序列到序列(sequence-to-sequence)任务。
在本实施例中,具体可以通过自注意力机制根据目标视频单元与其他视频单元之间的相似程度以及目标视频单元对应的初始视频特征,确定目标视频单元的目标视频特征。
需要说明的是,为了实现这一转换,本实施例可以采用自然语言处理中标准的transformer模型对这一任务进行处理,即将S202得到的特征序列输入到transformer模型(例如图2b中的204),以便transformer模型根据特征序列输出预测结果序列。
transformer模型的结构示意图如图3所示。transformer结构大体上包含两个部分,第一个部分是编码器(encoder),第二个部分是解码器(decoder)。编码器接受特征序列作为输入,图3以特征序列包括两个镜头对应的视频特征
的例子,将
作为编码器的输入,经过两层编码层(encode layer)即编码器1和编码器2之后(实际应用中可以包含多个encode layer),负责输出两个镜头各自的embedding特征,即对应的目标视频特征。其中,每个编码器1和编码器2分别包括自注意力机制模块301、求和与归一化模块302、两个前馈神经网络303、求和与归一化模块304;解码器1包括自注意力机制模块305、求和与归一化模块306、编码-解码注意力层307、求和与归一化模块308、两个前馈神经网络309、求和与归一化模块310。在经过解码器1和解码器2后,还包括线性变换模块311和归一化模块312,归一化模块312使用softmax函数实现。
需要说明的是,在单一的encode layer中,最核心的部分就是自注意力(selfattention)机制模块,encode layer使用self attention机制模块用于建模整个视频单元序列(例如镜头序列)的全局信息。
为了获取全局信息,通过自注意力机制根据目标视频单元与其他视频单元之间的相似程度以及目标视频单元对应的初始视频特征,确定目标视频单元的目标视频特征的方式可以是对每个视频单元的初始视频特征分别进行投影,得到每个视频单元的第一视频特征、第二视频特征和第三视频特征;根据目标视频单元对应的第一视频特征和第二视频特征,以及其他视频单元对应的第一视频特征和第二视频特征,计算目标视频单元与其他视频单元之间的相似程度;根据该相似程度和每个视频单元对应的第三视频特征进行加权求和,得到目标视频单元的目标视频特征。其中,投影可以是线性投影,也可以是非线性投影,本实施例对此不做限定。
具体的自注意力机制模块如图4所示,主要包括矩阵乘法(matmul)模块401、尺度变换模块402、归一化模块403和矩阵乘法模块404,归一化模块403可以通过softmax函数实现归一化,即self attention操作主要包括矩阵乘法、尺度变换、归一化和矩阵乘法。图4主要以视频单元是镜头为例进行介绍。图4中Q、K、V代表将
两个初始视频特征经过线性投影之后得到的三个矩阵,分别代表着query、key,以及value。假设线性投影之后,Q、K、V的维度为
,那么Q、K、V三个矩阵的大小就是
,其中2代表我们例子中有两个镜头要处理。
之后self attention操作的公式化表示即为:
其中,Q可以为每个视频单元(例如镜头)的初始视频特征经过线性投影得到的第一视频特征构成的矩阵,K可以为每个视频单元(例如镜头)的初始视频特征经过线性投影得到的第二视频特征构成的矩阵,V可以为每个视频单元(例如镜头)的初始视频特征经过线性投影得到的第三视频特征构成的矩阵。Q、K之间的运算可以看作是根据第一视频特征和第二视频特征计算第一个镜头和第二个镜头之间的相似程度,然后对相似程度进行尺度变换,
为尺度变换模块402进行尺度变换所采用的尺度变换参数。接着,使用softmax函数进行归一化,如果两个镜头之间很相似,使用Q、K计算出的相似程度就很高,取值趋近于1。得到相似程度之后,与V之间的计算就可以看作是对原本视频特征(例如第三视频特征)进行加权求和作为新的视频特征(即目标视频特征)。
通过self attention操作,针对每一个镜头,都计算了它与待处理视频中其他所有镜头的相似程度,然后通过加权求和的方式得到新的视频特征,通过这样的策略,使得我们的特征具有了全局建模的能力。
S204、根据所述目标视频特征预测所述目标视频单元是否属于拆分边界,得到所述特征序列对应的预测结果序列。
S205、根据所述预测结果序列,得到属于拆分边界的目标视频单元对所述待处理视频进行视频拆分。
S204可以是基于transformer模型的解码器实现的,与编码器类似,同样包括自注意力机制模块,从而可以通过自注意力机制根据目标视频特征预测目标视频单元是否属于拆分边界,得到特征序列对应的预测结果序列。
具体的,可以是获取位置编码,该位置编码的数量与多个视频单元的数量相同,且位置编码的维度与所述初始视频特征的维度一致。将位置编码与目标视频特征结合作为自注意力机制的输入,以便在目标视频特征中嵌入位置信息,通过位置编码指示目标视频特征所属的视频单元,或者说指示目标视频特征在特征序列中对应的位置,进而知晓目标视频特征所属的视频单元。根据自注意力机制的输入,输出位置编码所指示的目标视频特征对应的预测结果,得到预测结果序列。
decoder的输入是两个位置编码(positional embedding),该数量与多个视频单元(镜头)的数量相同,这两个位置编码与视频特征
的维度一致,这些位置编码在transformer模型开始训练时是随机产生的,并且在transformer模型训练过程中不断的学习,学习得到可以准确指示视频特征所属视频单元的最终的位置编码。在模型训练完成后,这些最终学习得到的位置编码的值固定下来,供transformer模型测试使用,其意义在于按照位置编码的指示进行预测,输出位置编码所指示的目标视频特征对应的预测结果,换句话说就是告诉decoder,第一个位置编码对应着预测第一个镜头是否属于拆分边界,第二个位置编码对应着预测第二个镜头是否属于拆分边界这一任务。
同时在decoder的自注意力机制模块305,同样有Q、K、V三个部分组成。与encoder不同的地方在于,Q是由位置编码通过线性变化得到,而K、V则是由encoder的输出,Attention(Q,K,V)通过线性变化得到,也就是说,自注意力机制的输入是位置编码与目标视频特征结合得到的。
最终decoder的输出经过线性变换模块311的线性变换后得到一个2×2的输出矩阵,第一个2代表有两个镜头,第二个2代表有是否属于拆分边界两个类别状态。在训练时,就可以把这个任务当作标准的二分类任务进行处理,每个镜头当作一个训练样本,若预测标签是1/0,即通过1/0表示一镜头是否属于拆分边界。在测试时,只需要在两个类别当中挑选得分最高的类别作为镜头的类别的输出即可。
也就是说,通过预测可以得到预测结果序列(例如图2b中205),预测结果序列可以是由预测标签1/0组成的序列,分别表示每个视频单元例如镜头是否为拆分边界,进而根据预测结果序列,得到属于拆分边界的目标视频单元对待处理视频进行视频拆分。
例如视频单元序列包括5个视频单元,视频单元序列对应的预测结果序列为{00100},则表示第三个视频单元是拆分边界,则可以将第三个视频单元之前的视频单元作为一个视频片段,将第三个视频单元之后的视频单元作为一个视频片段,从而完成视频拆分。
需要说明的是,若拆分得到的视频片段需要体现一个完成故事,此时确定的拆分边界可以称为拆条边界,完成的视频拆分可以称为视频拆条。
由上述技术方案可以看出,在进行视频拆分时,确定待处理视频对应的视频单元序列,视频单元序列中包括的多个视频单元按照其在待处理视频中的时序排列;对视频单元序列中包括的每个视频单元进行特征提取,得到视频单元序列对应的特征序列,特征序列中包括每个视频单元对应的初始视频特征;将每个视频单元分别作为目标视频单元,通过自注意力机制根据目标视频单元对应的初始视频特征和目标视频单元与其他视频单元之间的相似程度确定目标视频单元的目标视频特征,其他视频单元为视频单元序列中除目标视频单元之外的视频单元;根据目标视频特征预测目标视频单元是否属于拆分边界,得到特征序列对应的预测结果序列;根据预测结果序列,得到属于拆分边界的目标视频单元对待处理视频进行视频拆分。该方法针对每一个视频单元,都计算了它与待处理视频中其他所有视频单元的相似程度,然后基于该相似程度和初始视频特征得到新的特征(即目标视频特征)作为该视频单元的特征表达,通过这样的策略,使得视频单元的特征具有了全局建模的能力,避免利用局部信息进行判断,然后依赖于大量人工设计准则的情况,从而解决了视频拆分结果易受到局部噪声影响的问题,提高了视频拆分的准确性。
接下来,将结合实际应用场景对本申请实施例提供的视频拆分方法进行介绍。在短视频APP中,用户希望对某个电视剧中的视频片段进行剪辑从而得到一个短视频,并将该短视频在该短视频APP上发布。为了准确的将一个视频片段进行视频拆分以得到一个完整单元故事的短视频,本申请提供一种视频拆分方法,该方法可以集成在视频剪辑软件上,以电视剧中的视频片段作为待处理视频,参见图5,包括:
S501、用户打开视频剪辑软件。
S502、获取待处理视频。
S503、对待处理视频进行镜头拆分得到镜头序列。
在本实施例中,将待处理视频按照镜头进行拆分,此时得到的视频单元序列可以称为镜头序列,视频单元序列中包括的视频单元可以称为镜头。
S504、对镜头序列中的每个镜头进行多模态特征提取,得到镜头序列对应的特征序列。
在本实施例中,将提取的多模态特征作为初始视频特征,每个视频单元(镜头)的初始特征可以依次表示为
,该特征序列中包括按照镜头在待处理视频中时序排列的多模态特征,该特征序列表示为
。
S505、将镜头序列对应的特征序列输入至transformer模型。
S506、通过transformer模型中的自注意力机制根据目标镜头与其他镜头之间的相似程度以及目标镜头对应的初始视频特征,确定目标镜头的目标视频特征。
将待处理视频按照镜头进行拆分,视频单元可以称为镜头,那么将每个视频单元分别作为目标视频单元则相当于将每个镜头分别作为目标镜头,从而确定目标镜头的目标视频特征。
S507、通过transformer模型,根据目标视频特征输出镜头序列对应的预测结果序列。
S508、根据预测结果序列,得到属于拆分边界的目标镜头对待处理视频进行视频拆分,得到视频片段,从而完成视频剪辑。
S509、将视频拆分得到的视频片段发布至短视频APP。
由上述技术方案可以看出,为了剪辑得到视频片段以在短视频APP上发布,本实施例可以将待处理视频发送到视频剪辑软件上,确定待处理视频对应的镜头序列,进而对镜头序列中包括的每个镜头进行特征提取,得到镜头序列对应的特征序列,特征序列中包括每个镜头对应的初始视频特征。然后将每个镜头分别作为目标镜头,通过transformer模型中的自注意力机制根据目标镜头与其他镜头之间的相似程度以及目标镜头对应的初始视频特征,确定目标镜头的目标视频特征,根据目标视频特征预测目标镜头是否属于拆分边界,得到预测结果序列;根据预测结果序列,得到属于拆分边界的目标镜头对待处理视频进行视频拆分。该视频剪辑软件使用的视频拆分方法针对每一个镜头,都计算了它与待处理视频中其他所有镜头的相似程度,然后基于该相似程度和初始视频特征得到新的特征(即目标视频特征)作为该镜头的特征表达,通过这样的策略,使得镜头的特征具有了全局建模的能力,避免利用局部信息进行判断,然后依赖于大量人工设计准则的情况,从而解决了视频拆分结果易受到局部噪声影响的问题,提高了视频拆分的准确性。使得剪辑得到的视频片段更加完整,故事性更强,进而辅助视频创作者进行更好的内容创作。
基于图2a对应实施例提供的视频拆分方法,本申请实施例还提供一种视频拆分装置,参见图6,所述装置600包括第一确定单元601、提取单元602、第二确定单元603、预测单元604和拆分单元605:
所述第一确定单元601,用于确定待处理视频对应的视频单元序列,所述视频单元序列中包括的多个视频单元按照其在所述待处理视频中的时序排列;
所述提取单元602,用于对所述视频单元序列中包括的每个视频单元进行特征提取,得到所述视频单元序列对应的特征序列,所述特征序列中包括每个视频单元对应的初始视频特征;
所述第二确定单元603,用于将每个视频单元分别作为目标视频单元,根据所述目标视频单元与其他视频单元之间的相似程度以及所述目标视频单元对应的初始视频特征,确定所述目标视频单元的目标视频特征,所述其他视频单元为所述视频单元序列中除所述目标视频单元之外的视频单元;
所述预测单元604,用于根据所述目标视频特征预测所述目标视频单元是否属于拆分边界,得到所述特征序列对应的预测结果序列;
所述拆分单元605,用于根据所述预测结果序列,得到属于拆分边界的目标视频单元对所述待处理视频进行视频拆分。
在一种可能的实现方式中,所述第一确定单元601,用于:
确定所述待处理视频中视频帧之间的像素变化程度;
根据所述像素变化程度,将所述待处理视频拆分成多个视频单元,得到所述视频单元序列。
在一种可能的实现方式中,若所述视频帧之间的像素变化程度为第一视频帧和第二视频帧之间的像素变化程度,所述第一确定单元601,用于:
获取所述第一视频帧的第一像素分布和所述第二视频帧的第二像素分布;
根据所述第一像素分布和所述第二像素分布确定所述第一视频帧和所述第二视频帧之间的像素变化程度;
若所述像素变化程度小于预设阈值,确定所述第一视频帧和所述第二视频帧属于同一个视频单元。
在一种可能的实现方式中,所述初始视频特征包括场景特征、人脸特征和音频特征中一种或多种组合。
在一种可能的实现方式中,所述提取单元602,用于:
确定待提取的特征类型;
根据所述特征类型调用对应的特征提取算法对所述每个视频单元进行特征提取,得到所述视频单元序列对应的特征序列。
在一种可能的实现方式中,所述第二确定单元603,用于:
通过自注意力机制根据所述目标视频单元与其他视频单元之间的相似程度以及所述目标视频单元对应的初始视频特征,确定所述目标视频单元的目标视频特征。
在一种可能的实现方式中,所述第二确定单元603,用于:
对所述每个视频单元的初始视频特征分别进行投影,得到每个视频单元的第一视频特征、第二视频特征和第三视频特征;
根据所述目标视频单元对应的第一视频特征和第二视频特征,以及所述其他视频单元对应的第一视频特征和第二视频特征,计算所述目标视频单元与其他视频单元之间的相似程度;
根据所述相似程度和所述每个视频单元对应的第三视频特征进行加权求和,得到所述目标视频单元的目标视频特征。
在一种可能的实现方式中,所述预测单元604,用于:
通过自注意力机制根据所述目标视频特征预测所述目标视频单元是否属于拆分边界,得到所述特征序列对应的预测结果序列。
在一种可能的实现方式中,所述预测单元604,用于:
获取位置编码,所述位置编码的数量与所述多个视频单元的数量相同,且所述位置编码的维度与所述目标视频特征的维度一致;
将所述位置编码与所述目标视频特征结合作为所述自注意力机制的输入,所述位置编码用于指示所述目标视频特征所属的视频单元;
根据所述自注意力机制的输入,输出所述位置编码所指示的目标视频特征对应的预测结果,得到所述预测结果序列。
本申请实施例还提供了一种用于视频拆分的电子设备,该电子设备可以是终端,以终端为智能手机为例:
图7示出的是与本申请实施例提供的终端相关的智能手机的部分结构的框图。参考图7,智能手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(英文全称:wirelessfidelity,英文缩写:WiFi)模块770、处理器780、以及电源790等部件。输入单元730可包括触控面板731以及其他输入设备732,显示单元740可包括显示面板741,音频电路760可以包括扬声器761和传声器762。本领域技术人员可以理解,图7中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器780是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
在本实施例中,终端中的处理器780可以执行以下步骤:
确定待处理视频对应的视频单元序列,所述视频单元序列中包括的多个视频单元按照其在所述待处理视频中的时序排列;
对所述视频单元序列中包括的每个视频单元进行特征提取,得到所述视频单元序列对应的特征序列,所述特征序列中包括每个视频单元对应的初始视频特征;
将每个视频单元分别作为目标视频单元,根据所述目标视频单元与其他视频单元之间的相似程度以及所述目标视频单元对应的初始视频特征,确定所述目标视频单元的目标视频特征,所述其他视频单元为所述视频单元序列中除所述目标视频单元之外的视频单元;
根据所述目标视频特征预测所述目标视频单元是否属于拆分边界,得到所述特征序列对应的预测结果序列;
根据所述预测结果序列,得到属于拆分边界的目标视频单元对所述待处理视频进行视频拆分。
该电子设备还可以包括服务器,本申请实施例还提供服务器,请参见图8所示,图8为本申请实施例提供的服务器800的结构图,服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
在本实施例中,所述服务器800中的中央处理器822可以执行以下步骤:
确定待处理视频对应的视频单元序列,所述视频单元序列中包括的多个视频单元按照其在所述待处理视频中的时序排列;
对所述视频单元序列中包括的每个视频单元进行特征提取,得到所述视频单元序列对应的特征序列,所述特征序列中包括每个视频单元对应的初始视频特征;
将每个视频单元分别作为目标视频单元,根据所述目标视频单元与其他视频单元之间的相似程度以及所述目标视频单元对应的初始视频特征,确定所述目标视频单元的目标视频特征,所述其他视频单元为所述视频单元序列中除所述目标视频单元之外的视频单元;
根据所述目标视频特征预测所述目标视频单元是否属于拆分边界,得到所述特征序列对应的预测结果序列;
根据所述预测结果序列,得到属于拆分边界的目标视频单元对所述待处理视频进行视频拆分。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的视频拆分方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。