发明内容
本申请实施例提供一种数据处理方法、设备以及计算机可读存储介质,可以为视频片段匹配与之高相似度的目标视频片段。
本申请实施例一方面提供一种数据处理方法,包括:
获取视频片段对应的第一视频帧序列;
生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;
获取针对目标视频的第二帧特征序列;第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;
根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果,根据帧特征匹配结果,确定视频片段与目标视频之间的视频帧匹配关系;
根据视频帧匹配关系在目标视频中获取与视频片段相似的目标视频片段。
本申请实施例一方面提供一种数据处理装置,包括:
第一获取模块,用于获取视频片段对应的第一视频帧序列;
第一获取模块,还用于生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;
第二获取模块,用于获取针对目标视频的第二帧特征序列;第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;
第一确定模块,用于根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果,根据帧特征匹配结果,确定视频片段与目标视频之间的视频帧匹配关系;
第三获取模块,用于根据视频帧匹配关系在目标视频中获取与视频片段相似的目标视频片段。
其中,第一确定模块,包括:
第一确定单元,用于根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果;
统计数量单元,用于在第一帧特征序列中的每个帧特征对应的帧特征匹配结果中,统计帧特征匹配结果为帧匹配成功结果的数量,作为帧特征匹配成功数量;
第二确定单元,用于根据帧特征匹配成功数量以及第一帧特征序列,确定视频片段与目标视频之间的视频帧匹配关系。
其中,第三获取模块,包括:
第三确定单元,用于若视频帧匹配关系为视频帧匹配无效关系,则确定目标视频中不存在与视频片段相似的目标视频片段;
第一获取单元,用于若视频帧匹配关系为视频帧匹配有效关系,则在第一帧特征序列中获取属于帧匹配成功结果的帧特征,作为第一目标帧特征;
第二获取单元,用于根据第一目标帧特征,在第二帧特征序列中获取第二目标帧特征;第一目标帧特征与第二目标帧特征之间的帧特征匹配结果为帧匹配成功结果;
第三获取单元,用于根据第二目标帧特征,在目标视频中获取与视频片段相似的目标视频片段。
其中,第三获取单元,包括:
第一获取子单元,用于从第二目标帧特征中获取具有最小时间戳的起始帧特征,以及具有最大时间戳的结束帧特征;
第一确定子单元,用于在第二视频帧序列中确定起始帧特征对应的起始视频帧,以及结束帧特征对应的结束视频帧;
第二获取子单元,用于根据起始视频帧以及结束视频帧,在目标视频中获取与视频片段相似的目标视频片段。
其中,第二确定单元,包括:
第二确定子单元,用于确定第一帧特征序列中帧特征的帧数量,根据帧数量以及帧特征匹配成功数量,确定帧特征匹配成功比例;
第三确定子单元,用于若帧特征匹配成功比例小于比例阈值,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;
第三确定子单元,还用于若帧特征匹配成功比例等于或大于比例阈值,则确定视频帧匹配关系为视频帧匹配有效关系。
其中,第一帧特征序列包括第一帧特征Ci以及第一帧特征Ci+1,第一帧特征Ci+1对应的视频帧为第一帧特征Ci对应的视频帧的下一个视频帧,i为正整数,且i小于第一视频帧序列中视频帧的总数量;第二帧特征序列包括第二帧特征Dm,m为正整数,且m小于或等于第二视频帧序列中视频帧的总数量;
第三确定单元,包括:
第三获取子单元,用于获取第一帧特征序列中的第一帧特征Ci,获取第二帧特征序列中的第二帧特征Dm;
第一匹配子单元,用于将第一帧特征Ci与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i,m);
第二匹配子单元,用于将第一帧特征Ci+1与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i+1,m);
第四确定子单元,用于根据中间匹配结果J(i,m)以及中间匹配结果J(i+1,m),分别确定第一帧特征Ci的帧特征匹配结果以及第一帧特征Ci+1的帧特征匹配结果。
其中,第四确定子单元,具体用于若中间匹配结果J(i,m)为中间匹配成功结果,则确定第一帧特征Ci的帧特征匹配结果为帧匹配成功结果;
第四确定子单元,还具体用于若中间匹配结果J(i+1,m)为中间匹配失败结果,则获取第二帧特征序列的第一匹配数量阈值,根据第二帧特征Dm以及第一匹配数量阈值,在第二帧特征序列中确定针对第一帧特征Ci+1的第一匹配序列范围;其中,第二帧特征Dm为第一匹配序列范围的起始帧特征,第一匹配序列范围中的第二帧特征的数量等于第一匹配数量阈值;
第四确定子单元,还具体用于将第一帧特征Ci+1对第一匹配序列范围中的第二帧特征进行逐一特征匹配,直至找到与第一帧特征Ci+1之间具有中间匹配成功结果的第二帧特征;
第四确定子单元,还具体用于若第二帧特征Dm+k为第一匹配序列范围中的结尾帧特征,且第一帧特征Ci+1与第二帧特征Dm+k之间的中间匹配结果J(i+1,m+k)为中间匹配失败结果,则确定第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果;k等于第一匹配数量阈值。
其中,第二确定单元,还包括:
第四获取子单元,用于若第一帧特征Ci的帧特征匹配结果为帧匹配成功结果,且第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果,则获取第一帧特征序列的第二匹配数量阈值;
第五获取子单元,用于根据第二匹配数量阈值,在第一帧特征序列中获取以第一帧特征Ci+1为起始帧特征的第二匹配序列范围;第二匹配序列范围中的第一帧特征的数量等于第二匹配数量阈值;
第三匹配子单元,用于根据第一匹配序列范围对第二匹配序列范围中的第一帧特征进行逐一特征匹配,直至找到具有帧匹配成功结果的第一帧特征;
第五确定子单元,用于若第一帧特征Ci+e为第二匹配序列范围中的结尾帧特征,且第一帧特征Ci+e的帧特征匹配结果为帧匹配失败结果,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;e等于第二匹配数量阈值。
其中,第四确定子单元,具体用于若中间匹配结果J(i,m)为中间匹配失败结果,则将第一帧特征Ci与剩余第二帧特征进行特征匹配,得到第一帧特征Ci的剩余中间匹配结果;剩余第二帧特征为第二帧特征序列中时间戳大于第二帧特征Dm对应的时间戳的第二帧特征;
第四确定子单元,还具体用于若第一帧特征Ci的剩余中间匹配结果均为中间匹配失败结果,则确定第一帧特征Ci的帧特征匹配结果为帧匹配失败结果;
第四确定子单元,还具体用于若中间匹配结果J(i+1,m)为匹配失败结果,且第一帧特征Ci+1的剩余中间匹配结果均为中间匹配失败结果,则确定第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果;第一帧特征Ci+1的剩余中间匹配结果为第一帧特征Ci+1与剩余第二帧特征分别进行特征匹配得到的中间匹配结果。
其中,第三确定单元,还包括:
第六确定子单元,用于若第一帧特征Ci为第一帧特征序列的起始帧特征,且第一帧特征Ci的帧特征匹配结果为帧匹配失败结果,则根据帧匹配比例以及第一帧特征序列中帧特征的帧数量,确定第一帧特征序列的第三匹配数量阈值;
第六确定子单元,还用于根据起始帧特征以及第三匹配数量阈值,确定第一帧特征序列的第三匹配序列范围;第三匹配序列范围中的第一帧特征的数量等于第三匹配数量阈值;
第四匹配子单元,用于根据第二帧特征序列对第三匹配序列范围中的第一帧特征进行逐一特征匹配,直至找到具有帧匹配成功结果的第一帧特征;
第七确定子单元,用于若第一帧特征Ci+x为第三匹配序列范围中的结尾帧特征,且第一帧特征Ci+x的帧特征匹配结果为帧匹配失败结果,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;x等于第三匹配数量阈值。
其中,目标视频片段包括目标视频片段Sn以及目标视频片段Sn+1,n为正整数;
数据处理装置,还包括:
第二确定模块,用于根据目标视频片段Sn以及目标视频片段Sn+1,确定目标视频片段对应的片段数量;目标视频包括目标视频Pu以及目标视频Pu+1,目标视频Pu为包括目标视频片段Sn的视频,目标视频Pu+1为包括目标视频片段Sn+1的视频,u为正整数;
第三确定模块,用于根据片段数量,确定返回至目标终端的目标视频片段以及目标视频标识;目标终端为发送视频片段的终端,目标视频标识用于表征返回至目标终端的目标视频片段所属的目标视频。
其中,第三确定模块,包括:
第一返回单元,用于若片段数量小于或等于片段数量阈值,则将目标视频片段Sn、目标视频Pu的目标视频标识、目标视频片段Sn+1以及目标视频Pu+1的目标视频标识返回至目标终端;
第四获取单元,用于若片段数量大于片段数量阈值,则获取目标视频片段Sn与视频片段之间的片段匹配度Dn,获取目标视频片段Sn+1与视频片段之间的片段匹配度Dn+1;
第二返回单元,用于若片段匹配度Dn等于或大于片段匹配度Dn+1,则将目标视频片段Sn以及目标视频Pu的目标视频标识返回至目标终端;
第二返回单元,还用于若片段匹配度Dn小于片段匹配度Dn+1,则将目标视频片段Sn+1以及目标视频Pu+1的目标视频标识返回至目标终端。
其中,第一视频帧序列中包括视频帧Zi,i为正整数,且i小于或等于第一视频帧序列中的视频帧的总数量;
第一获取模块,包括:
第五获取单元,用于获取特征提取器;特征提取器包括输入层以及特征提取层;
第一生成单元,用于将视频帧Zi输入特征提取器,通过输入层,得到视频帧Zi对应的原始帧特征;
第二生成单元,用于通过特征提取层,对视频帧Zi对应的原始帧特征进行卷积处理以及池化处理,得到视频帧Zi对应的帧特征;
第三生成单元,用于根据视频帧Zi对应的帧特征,组成第一帧特征序列。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令被处理器执行时,以执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中的方法。
本申请实施例通过获取视频片段,可以生成与视频片段对应的第一视频帧序列,然后生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;同理,获取针对目标视频的第二帧特征序列,第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;后续,根据第二帧特征序列中的每一个帧特征,确定第一帧特征序列中的每一个帧特征的帧特征匹配结果,根据帧特征匹配结果,可以确定视频片段与目标视频之间的视频帧匹配关系;最后根据视频帧匹配关系,可以在目标视频中获取与视频片段高度相似的目标视频片段。上述可知,本申请实施例完整地保留视频中每个视频帧的帧特征,用第一帧特征序列表征视频片段,用第二帧特征序列表征目标视频,因此,视频片段以及目标视频的视频信息保留地更加完整,另外,利用第一帧特征序列中的每一个帧特征以及第二帧特征序列中的每一个帧特征,确定目标视频以及视频片段的视频帧匹配关系,可以使得所确定出的视频帧匹配关系更加准确,从而可以在目标视频中获取与视频片段相似度更高的目标视频片段。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,CV)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括数据处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
本申请实施例提供的方案涉及人工智能的计算机视觉技术以及深度学习等技术,具体过程通过如下实施例进行说明。
请参见图1,图1是本申请实施例提供的一种系统架构示意图。如图1所示,该系统可以包括服务器10a以及用户终端集群,用户终端集群可以包括:用户终端10b、用户终端10c、...、用户终端10d,其中,用户终端集群之间可以存在通信连接,例如用户终端10b与用户终端10c之间存在通信连接,用户终端10b与用户终端10d之间存在通信连接。同时,用户终端集群中的任一用户终端可以与服务器10a存在通信连接,例如用户终端10b与服务器10a之间存在通信连接,用户终端10c与服务器10a之间存在通信连接,其中,上述的通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他方式,本申请在此不做限制。
应当理解,如图1所示的用户终端集群中的每个用户终端均可以安装有应用客户端,当该应用客户端运行于各用户终端中时,可以分别与上述图1所示的服务器10之间进行数据交互。其中,该应用客户端可以为社交客户端、多媒体客户端(例如,视频客户端)、娱乐客户端(例如,游戏客户端)、教育客户端、直播客户端等具有帧序列(例如,帧动画序列)加载和播放功能的应用客户端。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端、教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。服务器10a通过通信连接功能为用户终端集群提供服务,当用户终端(可以是用户终端10b、用户终端10c或用户终端10d)获取到视频片段A,并需要对视频片段A进行处理时,例如获取视频片段A的完整视频B,或者查询与视频片段A相似的视频片段C,用户终端可以通过上述应用客户端将视频片段A发送至服务器10a。服务器10a接收到用户终端发送的视频片段A后,先提取视频片段A的每一帧图像,生成视频片段A对应的第一视频帧序列,然后基于提前训练好的特征提取器对第一视频帧序列中的每个视频帧进行特征提取,得到第一视频帧序列对应的第一帧特征序列;服务器10a对已离线生成的第二帧特征序列以及第一帧特征序列进行特征匹配,得到第二帧特征序列以及第一帧特征序列的帧特征匹配结果,然后根据帧特征匹配结果,可以确定视频片段A与目标视频(可以是上述的完整视频B,也可以是视频片段C,还可以是其他视频)之间的视频帧匹配关系,其中,第二帧特征序列是目标视频对应的第二视频帧序列的帧特征序列;服务器10a再根据视频帧匹配关系在目标视频中获取与视频片段A相似的目标视频片段。后续,服务器10a将获取的目标视频片段以及目标视频标识发送至用户终端的应用客户端,用户终端的应用客户端接收到服务器10a发送的目标视频片段以及目标视频标识后,可以在其对应的屏幕上显示目标视频片段以及目标视频标识。其中,目标视频标识可以表征目标视频片段所属的目标视频,例如为目标视频的视频名称、视频网址等等,此处不限定。
服务器10a还可以将视频片段A、目标视频片段以及目标视频标识关联存储至数据库中,当再次获取到视频片段A时,可以直接将目标视频片段以及目标视频标识返回至发送视频片段A的用户终端。上述数据库可视为电子化的文件柜——存储电子文件(本申请指视频片段A、目标视频片段以及目标视频标识)的处所,服务器10a可以对文件中的视频片段A、目标视频片段以及目标视频标识进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
可以理解的是,本申请实施例所提供的方法可以由计算机设备执行,计算机设备包括但不限于用户终端或服务器。本申请实施例中的服务器10a可以为计算机设备。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述用户终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。用户终端以及服务器的数量不做限制,且两者之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
进一步地,请参见图2,图2是本申请实施例提供的一种数据处理的场景示意图。如图2所示,实现该数据处理场景的计算机设备可以包括离线计算模块以及实时计算模块,下面根据图2分别阐述实时计算模块以及离线计算模块。
1、离线计算模块
目标视频存储于视频数据库中,该视频数据库可视为电子化的文件柜——存储电子文件(本申请指目标视频以及目标视频标识)的处所,计算机设备可以对文件中的目标视频以及目标视频标识进行新增、查询、更新、删除等操作。所谓“视频数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
由于视频数据库中的目标视频众多,假设视频数据库包括目标视频E1、目标视频E2、…、目标视频Eg,g为正整数,为了响应用户终端的实时请求,例如请求查询与视频片段相关联的目标视频片段等,如图2所示,计算机设备首先对视频数据库中的每个目标视频进行线下帧特征提取,下述以计算机设备生成目标视频E1对应的第二帧特征序列20d为例进行叙述,生成其他目标视频的第二帧特征序列的过程可以参见目标视频E1。具体过程为:计算机设备提取目标视频E1的每一帧影像,生成目标视频E1的第二视频帧序列20b,然后将第二视频帧序列20b输入特征提取器,以提取第二视频帧序列20b中每个视频帧的帧特征,组成图2中的第二帧特征序列20d,然后计算机设备将第二帧特征序列20d存储至视频数据库中,用第二帧特征序列20d表征目标视频E1。
同样,当有新的目标视频被存储至视频数据库时,计算机设备需要进行上述操作,以生成其对应的第二帧特征序列。
其中,计算机设备利用具有海量图片的图片数据库,训练深度神经网络生成特征提取器,一般来说,特征提取器的更新频率不会很高,当特征提取器有更新时,计算机设备将利用更新后的特征提取器,同步更新视频数据库中每个目标视频的第二帧特征序列,更新过程与生成目标视频E1对应的第二帧特征序列20d一致,故此处不再进行赘述。
具体来说,特征提取器可以采用预训练模型,包括残差网络(Residual NeuralNetwork,ResNet),例如ResNet50、ResNet101,或者密集连接网络(Densely ConnectedConvolutional Networks,DenseNet),例如DenseNet121等,这类模型规模较大、训练参数较多,推理速度会相对于小型神经网络(例如MobileNetV2)慢,但其由于残差模块的存在,使得模型的特征提取层对图片(本申请实施例是指视频帧)的特征提取效果更好。可以理解的是,由于特征提取器既需要在离线计算模块中提取每个目标视频的视频帧特征,又需要在实时计算模块中对线上用户截取的视频帧序列(即第一视频帧序列20a)实时提取视频帧特征,因此特征提取器需要在实际生产环境中,根据特定的业务需求,在性能和推理速度两者之间寻找平衡,最终确定合适的特征提取器。
2、实时计算模块
当计算机设备接收到用户终端发送的视频片段时,可以进行如下操作:
计算机设备提取视频片段的每一帧影像,生成视频片段的第一视频帧序列20a,然后将第一视频帧序列20a输入特征提取器,如图2所示,以提取第一视频帧序列20a中每个视频帧的帧特征,组成图2中的第一帧特征序列20c,然后计算机设备可以将第一帧特征序列20c存储至视频数据库中,用第一帧特征序列20c表征视频片段。
当得到可以表征视频片段的第一帧特征序列20c后,计算机设备将第一帧特征序列20c分别与视频数据库中的每个第二帧特征序列进行特征匹配,下面以对第一帧特征序列20c以及第二帧特征序列20d进行特征匹配,得到第一帧特征序列20c以及第二帧特征序列20d之间的特征距离1为例进行叙述,第一帧特征序列20c与其他第二帧特征序列之间的特征距离可以参见下述步骤。
请再参见图2,计算机设备根据第二帧特征序列20d中的每个帧特征,确定第一帧特征序列20c中的每个帧特征对应的帧特征匹配结果,具体过程可以为:假设第一帧特征序列20c包括10个帧特征,分别为第一帧特征C1、第一帧特征C2、…、第一帧特征C9以及第一帧特征C10;第二帧特征序列20d包括100个帧特征,分别为第二帧特征D1、第二帧特征D2、…、第二帧特征D99、第二帧特征D100。
为了便于理解以及区分,将第一帧特征与某个第二帧特征之间的匹配结果,称作中间匹配结果,例如第一帧特征C1与第二帧特征D1之间的匹配结果为中间匹配结果,将第一帧特征最终的匹配结果称作帧匹配结果,例如第一帧特征C1与第二帧特征序列20d进行特征匹配之后,生成的最终匹配结果称作为帧匹配结果。
计算机设备从第一帧特征C1开始,分别与第二帧特征D1、第二帧特征D2、…、第二帧特征D99、第二帧特征D100进行特征匹配,直至找到与第一帧特征C1之间的特征距离小于或等于系统预设的特征距离阈值的第二帧特征。若第二帧特征D1与第一帧特征C1之间的特征距离大于特征距离阈值,则第二帧特征D1与第一帧特征C1之间的中间匹配结果为中间匹配失败结果,此时,对第二帧特征D2以及第一帧特征C1进行特征匹配,假设第二帧特征D2以及第一帧特征C1之间的特征距离小于特征距离阈值,即第二帧特征D2与第一帧特征C1之间的中间匹配结果为中间匹配成功结果,此时,计算机设备可以确定第一帧特征C1的帧特征匹配结果为帧匹配成功结果。
如上所述,当第二帧特征D2与第一帧特征C1之间的中间匹配结果为中间匹配成功结果时,第一帧特征C2从第二帧特征D2开始,分别与第二帧特征D2、…、第二帧特征D99、第二帧特征D100进行特征匹配,直至找到与第一帧特征C2之间的特征距离小于特征距离阈值的第二帧特征(即找到与第一帧特征C2之间的中间匹配结果为中间匹配成功结果的第二帧特征),若第一帧特征C2与第二帧特征D2、…、第二帧特征D99、第二帧特征D100之间的中间匹配结果均为中间匹配失败结果,则计算机设备可以确定第一帧特征C2的帧特征匹配结果为帧匹配失败结果。此时,第一帧特征C3接着从第二帧特征D2开始,分别与第二帧特征D2、…、第二帧特征D99、第二帧特征D100进行特征匹配,直至找到与第一帧特征C3之间的特征距离小于特征距离阈值的第二帧特征,下述过程与上述过程一致,此处不再进行赘述,请参见上述。同理,其余第一帧特征(包括第一帧特征C4、…、第一帧特征C9以及第一帧特征C10)的帧特征匹配结果的确定也和上述过程一致,此处亦不再一一赘述,请参见上述过程。
可以理解都是,上述叙述的任意两个帧特征之间的特征距离,也可以理解成两个帧特征之间的相似度,需要注意的是,两个帧特征之间的特征距离越近,则两个帧特征之间的相似度越高。
得到第一帧特征C1、第一帧特征C2、…、第一帧特征C9以及第一帧特征C10分别对应的帧特征匹配结果后,计算机设备统计上述10个帧特征匹配结果中为帧匹配成功结果的数量,作为帧特征匹配成功数量;根据帧数量(本申请实施例示意为10个帧特征)以及帧特征匹配成功数量,确定帧特征匹配成功比例;若帧特征匹配成功比例小于比例阈值,则确定视频片段与目标视频E1之间的视频帧匹配关系,为视频帧匹配无效关系;若帧特征匹配成功比例等于或大于比例阈值,则确定视频帧匹配关系为视频帧匹配有效关系。假设比例阈值为0.7,那么当第一帧特征C1、第一帧特征C2、…、第一帧特征C9以及第一帧特征C10分别对应的帧特征匹配结果中存在9个帧匹配成功结果,那么可以确定视频片段与目标视频E1之间的视频帧匹配关系为视频帧匹配有效关系,若10个帧特征匹配结果中的帧匹配成功结果的数量低于7个,那么可以确定视频帧匹配关系为视频帧匹配无效关系。
若视频帧匹配关系为视频帧匹配无效关系,则确定目标视频E1中不存在与视频片段相似的目标视频片段;若视频帧匹配关系为视频帧匹配有效关系,如图2所示,则在第一帧特征序列20c中获取属于帧匹配成功结果的帧特征,作为第一目标帧特征;根据第一目标帧特征,在第二帧特征序列20d中获取第二目标帧特征20e;根据第二目标帧特征20e,在目标视频E1中获取与视频片段相似的目标视频片段。
可以理解的是,该计算机设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。所以上述提及的离线计算以及实时计算均可以发布在多个物理服务器,或多个云服务器上,即通过分布式或集群并行完成整个视频数据库的计算,进而可以快速地获取到与目标视频相似的目标视频片段。
上述可知,视频片段与目标视频片段很可能不是逐帧对齐的,例如:两段视频中主人公都在接听电话,其中,视频片段中主人公接听电话的时间长,目标视频片段中主人公接听电话的时间短。这种情况下,如果按逐帧对齐的思路,则两段视频大概率无法对齐匹配上,进而计算机设备会得出“不相似”的结论。为了解决这一问题,本申请实施例借鉴了动态时间规整(Dynamic Time Warping,DTW)算法。该算法对序列的延展和压缩并不敏感,不同时间序列可能仅仅存在时间轴上的位移,所以在还原位移的情况下,两个时间序列是一致的。
综上所述,本申请实施例基于深度神经网络,线下对视频数据库中的海量目标视频进行逐帧特征提取,为每个目标视频构建帧特征序列(即第二帧特征序列)。线上应对实时用户请求时,在分布式集群上利用DTW算法快速定位与视频片段最为相似的若干目标视频片段,并返回这些相似的目标视频片段以及其所在的完整视频的视频标识,以让用户选择。本申请实施例实现了用户希望以视频片段来查找相似目标视频的功能。
进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图。如图3所示,该数据处理方法可以由图1所述的用户终端或服务器执行,也可以由用户终端和服务器共同执行,本申请实施例中,以该方法由服务器执行为例进行说明;
步骤S101,获取视频片段对应的第一视频帧序列。
具体的,请一并参见图4,图4是本申请实施例提供的一种数据处理的场景示意图。如图4所示,终端用户通过用户终端40c查询与视频片段401c相似的视频片段(即下述的目标视频片段),或是查询视频片段401的完整视频(例如下述的目标视频),则终端用户可以点击用户终端401c对应的显示屏上的查询控件402c,则用户终端40c响应针对查询控件402c的触发操作,将视频片段401c发送至服务器40d(即图1中的服务器10d)。
服务器40d获取到视频片段401c后,利用视频编辑器或视频编辑算法对视频片段401c进行分帧处理,例如通过Adobe Premiere Pro、Fast Forward Mpeg以及Open CV,服务器40d可以获取视频片段401c的每一帧影像,假设视频片段401c可以被分为9帧视频帧,如图4所示,视频片段401c被分为第一视频帧401a、第一视频帧402a、…、第一视频帧408a以及第一视频帧409a,将第一视频帧401a、第一视频帧402a、…、第一视频帧408a以及第一视频帧409a按照视频时间顺序组成第一视频帧序列40a。
可选的,若用户终端40c安装有视频编辑器或者可以运行视频编辑算法,那么终端用户可以先通过在用户终端40c,对视频片段401c进行分帧处理,生成其对应的第一视频帧序列40a,然后将第一视频帧序列40a发送至服务器40d。本地生成视频片段401c对应的第一视频帧序列40a,与服务器40d生成视频片段401c对应的第一视频帧序列40a的过程一致,故此处不再进行赘述。
步骤S102,生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列。
具体的,第一视频帧序列中包括视频帧Zi,i为正整数,且i小于或等于第一视频帧序列中的视频帧的总数量;获取特征提取器;特征提取器包括输入层以及特征提取层;将视频帧Zi输入特征提取器,通过输入层,得到视频帧Zi对应的原始帧特征;通过特征提取层,对视频帧Zi对应的原始帧特征进行卷积处理以及池化处理,得到视频帧Zi对应的帧特征;根据视频帧Zi对应的帧特征,组成第一帧特征序列。
本申请实施例抛弃用一个视频全局特征来表征视频的传统思路,选择完整保留视频每个图像帧的特征,用帧特征序列来表征整个视频,由此一来,视频信息保留更加完整。假设第一视频帧序列40a中的视频帧的总数量为9,请再参见图4,服务器40d将第一视频帧序列40a中的第一视频帧401a、第一视频帧402a、…、第一视频帧408a以及第一视频帧409a输入至特征提取器40e。其中,第一视频帧401a对应于视频帧Z1、第一视频帧402a对应于视频帧Z2、…、第一视频帧408a对应于视频帧Z8,第一视频帧409a对应于视频帧Z9。
下述以特征提取器40e提取第一视频帧401a的第一帧特征401b为例,叙述特征提取过程,得到其余第一视频帧对应的第一帧特征的过程可以参见下述,此处不再一一进行赘述。请一并参见图5,图5是本申请实施例提供的一种数据处理的场景示意图。需要理解的是,虽然图5中示例的特征提取器40e只标注出特征提取层(即第一卷积层、第一池化层、第二卷积层以及第二池化层),但实际应用时,上述特征提取器40e的网络结构包括输入层、特征提取层、标准化(BatchNorm,BN)层、激活层以及输出层等。由于特征提取器40e的线性表达能力不够,因此需要使用激活函数(激活层),以加入非线性因素,常用的激活函数有Sigmod函数、Tanh函数、修正线性单元(Rectified Linear Unit,Relu)函数等。
请再参见图5,第一视频帧401a为人脸图像50a,在特征提取器40e中,服务器40d将第一视频帧401a(即人脸图像50a)输入至特征提取器40e的输入层,通过输入层,获取第一视频帧401a对应的原始帧特征;通过多个连续的卷积层和池化层逐步将原始帧特征变为高层帧特征,如图5所示,通过第一卷积层,得到第一视频帧401a对应的第一中间帧特征50b,通过第一池化层,对第一中间帧特征50b进行池化处理,得到第一视频帧401a的第一中间帧特征50c,通过第二卷积层,对第一中间帧特征50c进行卷积处理,得到第一视频帧401a的第一中间帧特征50d,通过第二池化层,对第一中间帧特征50d进行池化处理,得到第一视频帧401a的第一中间帧特征50e,通过连续的卷积操作和池化操作(子采样)可以增加更深层次的网络的感受野,捕获更多上下文信息,最后得到第一视频帧401a的第一帧特征401b。
可以理解的是,图5所示的特征提取器可以包括一个特征提取层,也可以有多个特征提取层。
如图4所示,通过特征提取器40e,服务器40d得到第一视频帧401a的第一帧特征401b、第一视频帧402a的第一帧特征402b、…、第一视频帧408a的第一帧特征408b,第一视频帧409a的第一帧特征409b,根据第一帧特征401b、第一帧特征402b、…、第一帧特征408b以及第一帧特征409b,组成第一帧特征序列40b。
步骤S103,获取针对目标视频的第二帧特征序列;第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征。
具体的,第二视频帧序列中包括视频帧Ym,m为正整数,且m小于或等于第二视频帧序列中的视频帧的总数量;获取特征提取器;特征提取器包括输入层以及特征提取层;将视频帧Ym输入特征提取器,通过输入层,得到视频帧Ym对应的原始帧特征;通过特征提取层,对视频帧Ym对应的原始帧特征进行卷积处理以及池化处理,得到视频帧Ym对应的帧特征;根据视频帧Ym对应的帧特征,组成第二帧特征序列。
请再参见图4,目标视频40g存储于视频数据库40f中,由于视频数据库40f中的目标视频的数量极大,为了响应用户终端40c的实时请求,服务器40d首先对视频数据库40f中的每个目标视频进行线下帧特征提取,通过特征提取器40e生成目标视频(也包括图4中的目标视频40g)的第二帧特征序列40h的过程,与通过特征提取器40e提取第一视频帧401a的第一帧特征401b过程一致,故再次不再进行赘述,可以参见步骤S102中的叙述。本申请实施例以目标视频40g以及其对应的第二帧特征序列40h为例进行叙述,服务器40d将得到的第二帧特征序列40h与目标视频40g关联存储至视频数据库40f中。
步骤S104,根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果,根据帧特征匹配结果,确定视频片段与目标视频之间的视频帧匹配关系。
具体的,根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果;在第一帧特征序列中的每个帧特征对应的帧特征匹配结果中,统计帧特征匹配结果为帧匹配成功结果的数量,作为帧特征匹配成功数量;根据帧特征匹配成功数量以及第一帧特征序列,确定视频片段与目标视频之间的视频帧匹配关系。
其中,根据帧特征匹配成功数量以及第一帧特征序列,确定视频片段与目标视频之间的视频帧匹配关系,包括:确定第一帧特征序列中帧特征的帧数量,根据帧数量以及帧特征匹配成功数量,确定帧特征匹配成功比例;若帧特征匹配成功比例小于比例阈值,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;若帧特征匹配成功比例等于或大于比例阈值,则确定视频帧匹配关系为视频帧匹配有效关系。
请再参见图4,明显地,目标视频40g的视频帧的帧数量,与视频片段40a的视频帧的帧数量不一致,实际上,一个完整视频的帧数量可达上万帧,而一个视频片段可能只有几十帧,所以视频片段401c与目标视频40g很可能不是逐帧对齐,这种情况下,如果按逐帧对齐的思路,则两段视频大概率无法对齐匹配上,进而计算机设备会得出“不相似”的结论。为了解决这一问题,本申请实施例借鉴了语音识别领域中的动态时间规整算法。
当得到可以表征视频片段401c的第一帧特征序列40b后,服务器40d将第一帧特征序列40b分别与视频数据库40f中的每个第二帧特征序列(包括上述的第二帧特征序列40h)进行特征匹配,该过程可以参见图2中的叙述,此处不再进行赘述,仅以目标视频40g以及其对应的第二帧特征序列40h为例进行叙述,其他目标视频以及其对应的第二帧特征序列也可以参见目标视频40g以及其对应的第二帧特征序列40h。
如图4所示,通过第二帧特征序列40h,得到第一帧特征序列40b中的第一帧特征401b、第一帧特征402b、…、第一帧特征408b以及第一帧特征409b分别对应的帧特征匹配结果,即帧特征匹配结果401i、帧特征匹配结果402i、…、帧特征匹配结果408i以及帧特征匹配结果409i。
服务器40d统计上述9个帧特征匹配结果中为帧匹配成功结果的数量,作为帧特征匹配成功数量,假设帧特征匹配结果401i为帧匹配失败结果,帧特征匹配结果402i为帧匹配成功结果,…,帧特征匹配结果408i为帧匹配成功结果,帧特征匹配结果409i为帧匹配成功结果,最终,帧特征匹配成功数量为6,帧数量为9,所以帧特征匹配成功比例为三分之二,若比例阈值小于或等于三分之二,则确定视频帧匹配关系为视频帧匹配有效关系,若比例阈值大于三分之二,则确定视频帧匹配关系为视频帧匹配无效关系。
综上所述,本申请实施例的DTW部分的输入分为两部分,一个视频片段401c对应的第一帧特征序列40b,为(Ts,D)的二维向量,其中,Ts表示视频片段401c的帧数量,在本申请实施例中等于9,D表示特征提取器40e对于第一帧特征序列40b的每个帧特征的特征输出维度;另一个是视频数据库40f中任一目标视频对应的第二帧特征序列,为(Tm,D)的二维向量,Tm表示当前被检索目标视频的帧数量,本申请实施例以目标视频40g为例,故Tm等于99,D表示特征提取器40e对于第二帧特征序列40h的每个帧特征的特征输出维度。DTW算法的目标即是将(Ts,D)的每一个时间片在(Tm,D)上找到尽可能多的对齐帧,两个特定的时间片(两个一维向量)是否能对齐,需要根据距离函数来确定,本申请实施例不限定距离函数,根据实际应用选择距离函数,例如欧式距离、余弦相似度等。
步骤S105,根据视频帧匹配关系在目标视频中获取与视频片段相似的目标视频片段。
具体的,若视频帧匹配关系为视频帧匹配无效关系,则确定目标视频中不存在与视频片段相似的目标视频片段;若视频帧匹配关系为视频帧匹配有效关系,则在第一帧特征序列中获取属于帧匹配成功结果的帧特征,作为第一目标帧特征;根据第一目标帧特征,在第二帧特征序列中获取第二目标帧特征;第一目标帧特征与第二目标帧特征之间的帧特征匹配结果为帧匹配成功结果;根据第二目标帧特征,在目标视频中获取与视频片段相似的目标视频片段。
其中,在目标视频中获取与视频片段相似的目标视频片段,包括:从第二目标帧特征中获取具有最小时间戳的起始帧特征,以及具有最大时间戳的结束帧特征;在第二视频帧序列中确定起始帧特征对应的起始视频帧,以及结束帧特征对应的结束视频帧;根据起始视频帧以及结束视频帧,在目标视频中获取与视频片段相似的目标视频片段。
请再参见图4,结合步骤S104可知,帧特征匹配结果401i为帧匹配失败结果,帧特征匹配结果402i为帧匹配成功结果,…,帧特征匹配结果408i为帧匹配成功结果,帧特征匹配结果409i为帧匹配成功结果,若视频帧匹配关系为视频帧匹配有效关系,服务器40d先获取属于帧匹配成功结果的帧特征,例如第一帧特征402b、第一帧特征408b以及第一帧特征409b,下述亦以第一帧特征402b、第一帧特征408b以及第一帧特征409b为例进行叙述。服务器40d将他们作为第一目标帧特征,然后根据第一目标帧特征,可以从第二帧特征序列40h中获取第二目标帧特征,若第一帧特征402b与第二帧特征402h之间的帧特征匹配结果为帧匹配成功结果,第一帧特征408b与第二帧特征410h之间的帧特征匹配结果为帧匹配成功结果,以及第一帧特征409b与第二帧特征412h之间的帧特征匹配结果为帧匹配成功结果,则可以确定第二目标帧特征包括第二帧特征402h、第二帧特征410h以及第二帧特征412h。
假设上述的第二目标帧特征中的第二帧特征402h具有最小时间戳,第二帧特征412h具有最大时间戳,则在目标视频40g中,以起始视频帧开始获取目标视频片段,在结束视频帧停止获取,即获取起始视频帧与结束视频帧中间的所有第二视频帧(包括起始视频帧与结束视频帧),组成目标视频片段。其中,起始视频帧是与第二帧特征402h对应的第二视频帧,结束视频帧是与第二帧特征412h对应的第二视频帧。
可选的,目标视频片段包括目标视频片段Sn以及目标视频片段Sn+1,n为正整数;根据目标视频片段Sn以及目标视频片段Sn+1,确定目标视频片段对应的片段数量;目标视频包括目标视频Pu以及目标视频Pu+1,目标视频Pu为包括目标视频片段Sn的视频,目标视频Pu+1为包括目标视频片段Sn+1的视频,u为正整数;
若片段数量小于或等于片段数量阈值,则将目标视频片段Sn、目标视频Pu的目标视频标识、目标视频片段Sn+1以及目标视频Pu+1的目标视频标识返回至目标终端;若片段数量大于片段数量阈值,则获取目标视频片段Sn与视频片段之间的片段匹配度Dn,获取目标视频片段Sn+1与视频片段之间的片段匹配度Dn+1;若片段匹配度Dn等于或大于片段匹配度Dn+1,则将目标视频片段Sn以及目标视频Pu的目标视频标识返回至目标终端;若片段匹配度Dn小于片段匹配度Dn+1,则将目标视频片段Sn+1以及目标视频Pu+1的目标视频标识返回至目标终端;目标终端为发送视频片段的终端,目标视频标识用于表征返回至目标终端的目标视频片段所属的目标视频。
步骤S104中主要是以目标视频40g为例进行叙述,实际上,服务器40d会对视频片段40a对应的第一帧特征序列40b,与视频数据库40f中的所有目标视频分别对应的第二帧特征序列进行特征距离计算,假设视频数据库40f包括第二帧特征序列20d、第二帧特征序列202d、…、第二帧特征序列20gd,g为正整数。因此服务器40d将第一帧特征序列40b与第二帧特征序列20d进行特征匹配,得到第一帧特征序列40b以及第二帧特征序列20d之间的特征距离1;将第一帧特征序列40b与第二帧特征序列202d进行特征匹配,得到第一帧特征序列40b以及第二帧特征序列202d之间的特征距离2,…,将第一帧特征序列40b与第二帧特征序列20gd进行特征匹配,得到第一帧特征序列40b以及第二帧特征序列20gd之间的特征距离g。
若特征距离1小于或等于系统预设的特征距离阈值,则服务器40d可以保留第二帧特征序列20d对应的目标视频,以及属于该目标视频的,且与视频片段40a对齐的目标视频片段,该目标视频片段根据第一帧特征序列40b与第二帧特征序列20d之间的帧特征匹配结果决定,具体过程请参见上述步骤,此处不再进行赘述。若特征距离2小于或等于系统预设的特征距离阈值,则服务器40d可以保留第二帧特征序列202d对应的目标视频,以及属于该目标视频的,且与视频片段40a对齐的目标视频片段。同理,服务器40d可以根据其他特征距离保留对应的目标视频以及目标视频片段。
当将第一帧特征序列40b与视频数据库40f中的所有第二帧特征序列之间的特征匹配完成后,服务器40d对符合要求(即第一帧特征序列40b与第二帧特征序列之间的特征距离小于或等于特征距离阈值)的目标视频再进行重排序,例如生成一个视频序列,该视频序列中,以特征距离从小到大进行排序,即特征距离越小的目标视频排在前面,特征距离越大的目标视频排在后面。
假设服务器40d预设的返回数量为10个,当符合要求的目标视频数量小于或等于10个时,则将符合要求的目标视频片段以及可以表征目标视频的目标视频标识返回至用户终端;当符合要求的目标视频数量大于10个时,则根据上述的视频序列,将排序在前的10个目标视频片段以及可以表征目标视频的目标视频标识返回至用户终端40c。
可以理解都是,上述叙述的任意两个帧特征之间的特征距离,也可以理解成两个帧特征之间的相似度,或片段匹配度,需要注意的是,两个帧特征之间的特征距离越近,则两个帧特征之间的相似度越高,片段匹配度越高。
本申请实施例通过获取视频片段,可以生成与视频片段对应的第一视频帧序列,然后生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;同理,获取针对目标视频的第二帧特征序列,第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;后续,根据第二帧特征序列中的每一个帧特征,确定第一帧特征序列中的每一个帧特征的帧特征匹配结果,根据帧特征匹配结果,可以确定视频片段与目标视频之间的视频帧匹配关系;最后根据视频帧匹配关系,可以在目标视频中获取与视频片段高度相似的目标视频片段。上述可知,本申请实施例完整地保留视频中每个视频帧的帧特征,用第一帧特征序列表征视频片段,用第二帧特征序列表征目标视频,因此,视频片段以及目标视频的视频信息保留地更加完整,另外,利用第一帧特征序列中的每一个帧特征以及第二帧特征序列中的每一个帧特征,确定目标视频以及视频片段的视频帧匹配关系,可以使得所确定出的视频帧匹配关系更加准确,从而可以在目标视频中获取与视频片段相似度更高的目标视频片段。
进一步地,请参见图6,图6是本申请实施例提供的一种数据处理方法的流程示意图。如图6所示,该数据处理方法的过程包括如下步骤S201-步骤S206,且步骤S201-步骤S206为图3所对应实施例中步骤S104的一个具体实施例:该数据处理过程包括如下步骤:
步骤S201,获取第一帧特征序列中的第一帧特征Ci,获取第二帧特征序列中的第二帧特征Dm。
具体的,第一帧特征序列包括第一帧特征Ci以及第一帧特征Ci+1,第一帧特征Ci+1对应的视频帧为第一帧特征Ci对应的视频帧的下一个视频帧,i为正整数,且i小于第一视频帧序列中视频帧的总数量;第二帧特征序列包括第二帧特征Dm,m为正整数,且m小于或等于第二视频帧序列中视频帧的总数量。
请再参见图4,假设i等于9,即第一帧特征序列40b包括9个第一帧特征;m等于99,即第二帧特征序列40h包括99个第二帧特征。其中,图4中的第一帧特征401b对应于文中的第一帧特征C1,其余帧特征类似对应,此处不再一一赘述。
步骤S202,将第一帧特征Ci与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i,m),将第一帧特征Ci+1与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i+1,m)。
其中,步骤S202的具体实现过程请参见上述图3对应的实施例,此处不再进行赘述。
步骤S203,若中间匹配结果J(i,m)为中间匹配成功结果,则确定第一帧特征Ci的帧特征匹配结果为帧匹配成功结果。
具体的,请再参见图4,第一帧特征序列40b包括9个帧特征,分别为第一帧特征401b、第一帧特征402b、…、第一帧特征408b以及第一帧特征409b;第二帧特征序列40h包括99个帧特征,分别为第二帧特征401h、第二帧特征402h、…、第二帧特征498h、第二帧特征499h。
为了便于理解以及区分,将第一帧特征与某个第二帧特征之间的匹配结果,称作中间匹配结果,例如第一帧特征401b与第二帧特征401h之间的匹配结果为中间匹配结果,将第一帧特征最终的匹配结果称作帧匹配结果,例如第一帧特征401b与第二帧特征序列40h进行特征匹配之后,生成的最终匹配结果称作为帧匹配结果401i。
服务器40d首先对第一帧特征401b以及第二帧特征序列40h中的第二帧特征401h进行特征匹配,得到第一帧特征401b以及第二帧特征401h的中间匹配结果,若第一帧特征401b以及第二帧特征401h的中间匹配结果为中间匹配失败结果,则对第一帧特征401b以及第二帧特征402h进行特征匹配,得到第一帧特征401b以及第二帧特征402h的中间匹配结果,若第一帧特征401b以及第二帧特征402h的中间匹配结果为中间匹配成功结果,则确定第一帧特征401b的帧特征匹配结果为帧匹配成功结果。
步骤S204,若中间匹配结果J(i+1,m)为中间匹配失败结果,则获取第二帧特征序列的第一匹配数量阈值,根据第二帧特征Dm以及第一匹配数量阈值,在第二帧特征序列中确定针对第一帧特征Ci+1的第一匹配序列范围;其中,第二帧特征Dm为第一匹配序列范围的起始帧特征,第一匹配序列范围中的第二帧特征的数量等于第一匹配数量阈值。
具体的,由步骤S203可知,第一帧特征401b以及第二帧特征402h的中间匹配结果为中间匹配成功结果,因此,第一帧特征402b从第二帧特征402h开始进行特征匹配,若第一帧特征402b以及第二帧特征402h的中间匹配结果为中间匹配失败结果,则获取第二帧特征序列40h的第一匹配数量阈值,根据第二帧特征402h以及第一匹配数量阈值,在第二帧特征序列40h中确定针对第一帧特征402b的第一匹配序列范围。
步骤S205,将第一帧特征Ci+1对第一匹配序列范围中的第二帧特征进行逐一特征匹配,直至找到与第一帧特征Ci+1之间具有中间匹配成功结果的第二帧特征。
假设第一匹配数量阈值为5,则针对第一帧特征402b的第一匹配序列范围包括第二帧特征402h、第二帧特征403h、第二帧特征404h、第二帧特征405h以及第二帧特征406h,将第一帧特征402b分别与第二帧特征402h、第二帧特征403h、第二帧特征404h、第二帧特征405h以及第二帧特征406h进行特征匹配,直至找到与第一帧特征402b之间的特征距离,小于或等于系统预设的特征距离阈值的第二帧特征,即找到与第一帧特征402b之间具有中间匹配成功结果的第二帧特征。
步骤S206,若第二帧特征Dm+k为第一匹配序列范围中的结尾帧特征,且第一帧特征Ci+1与第二帧特征Dm+k之间的中间匹配结果J(i+1,m+k)为中间匹配失败结果,则确定第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果;k等于第一匹配数量阈值。
若第一帧特征402b与第一匹配序列范围中的所有第二帧特征的中间匹配结果均为中间匹配失败结果,此时,服务器确定第一帧特征402b的帧特征匹配结果为帧匹配失败结果。
可选的,若第一帧特征Ci的帧特征匹配结果为帧匹配成功结果,且第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果,则获取第一帧特征序列的第二匹配数量阈值;根据第二匹配数量阈值,在第一帧特征序列中获取以第一帧特征Ci+1为起始帧特征的第二匹配序列范围;第二匹配序列范围中的第一帧特征的数量等于第二匹配数量阈值;根据第一匹配序列范围对第二匹配序列范围中的第一帧特征进行逐一特征匹配,直至找到具有帧匹配成功结果的第一帧特征;若第一帧特征Ci+e为第二匹配序列范围中的结尾帧特征,且第一帧特征Ci+e的帧特征匹配结果为帧匹配失败结果,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;e等于第二匹配数量阈值。
如步骤S203-步骤S206所述,第一帧特征401b的帧特征匹配结果为帧匹配成功结果,第一帧特征402b的帧特征匹配结果为帧匹配失败结果,此时获取第一帧特征序列40b的第二匹配数量阈值,假设第二匹配数量阈值为3,则第二匹配序列范围包括第一帧特征402b、第一帧特征403b以及第一帧特征404b。
已确定第一帧特征402b的帧特征匹配结果为帧匹配失败结果,则对第一帧特征403b与第一匹配序列范围中的第二帧特征进行特征匹配,即第二帧特征402h、第二帧特征403h、第二帧特征404h、第二帧特征405h以及第二帧特征406h,确定第一帧特征403b的中间匹配结果请参见步骤S204-步骤S206,此处不再进行赘述。若第一帧特征403b的帧特征匹配结果为帧匹配失败结果,则对第一帧特征404b进行上述操作,若第一帧特征403b的帧特征匹配结果仍为帧匹配失败结果,则服务器40d可以确定视频片段401c与目标视频40g之间的视频帧匹配关系,为视频帧匹配无效关系。
可以理解的是,本申请实施例中所示的数字均为虚构数字,实际应用时,应以实际数字为准。
本申请实施例通过获取视频片段,可以生成与视频片段对应的第一视频帧序列,然后生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;同理,获取针对目标视频的第二帧特征序列,第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;后续,根据第二帧特征序列中的每一个帧特征,确定第一帧特征序列中的每一个帧特征的帧特征匹配结果,根据帧特征匹配结果,可以确定视频片段与目标视频之间的视频帧匹配关系;最后根据视频帧匹配关系,可以在目标视频中获取与视频片段高度相似的目标视频片段。上述可知,本申请实施例完整地保留视频中每个视频帧的帧特征,用第一帧特征序列表征视频片段,用第二帧特征序列表征目标视频,因此,视频片段以及目标视频的视频信息保留地更加完整,另外,利用第一帧特征序列中的每一个帧特征以及第二帧特征序列中的每一个帧特征,确定目标视频以及视频片段的视频帧匹配关系,可以使得所确定出的视频帧匹配关系更加准确,从而可以在目标视频中获取与视频片段相似度更高的目标视频片段。
进一步地,请参见图7,图7是本申请实施例提供的一种数据处理方法的流程示意图。如图7所示,该数据处理方法的过程包括如下步骤S301-步骤S305,且步骤S301-步骤S305为图3所对应实施例中步骤S104的另一个具体实施例:该数据处理过程包括如下步骤:
步骤S301,获取第一帧特征序列中的第一帧特征Ci,获取第二帧特征序列中的第二帧特征Dm。
具体的,第一帧特征序列包括第一帧特征Ci以及第一帧特征Ci+1,第一帧特征Ci+1对应的视频帧为第一帧特征Ci对应的视频帧的下一个视频帧,i为正整数,且i小于第一视频帧序列中视频帧的总数量;第二帧特征序列包括第二帧特征Dm,m为正整数,且m小于或等于第二视频帧序列中视频帧的总数量。
步骤S302,将第一帧特征Ci与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i,m),将第一帧特征Ci+1与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i+1,m)。
其中,步骤S301-步骤S302的具体实现过程请参见上述图6对应的实施例中的步骤S201-步骤S202,此处不再进行赘述。
步骤S303,若中间匹配结果J(i,m)为中间匹配失败结果,则将第一帧特征Ci与剩余第二帧特征进行特征匹配,得到第一帧特征Ci的剩余中间匹配结果;剩余第二帧特征为第二帧特征序列中时间戳大于第二帧特征Dm对应的时间戳的第二帧特征。
具体的,请再参见图4,若第一帧特征401b与第二帧特征401h之间的中间匹配结果为中间匹配失败结果,则将第一帧特征401b与第二帧特征402h进行特征匹配,若第一帧特征401b与第二帧特征401h之间的中间匹配结果仍为中间匹配失败结果,则对第一帧特征401b与剩下的第二帧特征进行特征匹配。
步骤S304,若第一帧特征Ci的剩余中间匹配结果均为中间匹配失败结果,则确定第一帧特征Ci的帧特征匹配结果为帧匹配失败结果。
步骤S305,若中间匹配结果J(i+1,m)为匹配失败结果,且第一帧特征Ci+1的剩余中间匹配结果均为中间匹配失败结果,则确定第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果;第一帧特征Ci+1的剩余中间匹配结果为第一帧特征Ci+1与剩余第二帧特征分别进行特征匹配得到的中间匹配结果。
其中,步骤S305的具体实现过程请参见上述步骤S303,此处不再进行赘述。
如上所述,当第二帧特征402h与第一帧特征401b之间的中间匹配结果为中间匹配成功结果时,第一帧特征402b从第二帧特征402h开始,分别与第二帧特征402h、…、第二帧特征403h、第二帧特征499h进行特征匹配,直至找到与第一帧特征402b之间的特征距离小于特征距离阈值的第二帧特征(即找到与第一帧特征402b之间的中间匹配结果为中间匹配成功结果的第二帧特征),若第一帧特征402b与第二帧特征402h、…、第二帧特征403h、第二帧特征499h之间的中间匹配结果均为中间匹配失败结果,则服务器40d可以确定第一帧特征402b的帧特征匹配结果为帧匹配失败结果。此时,第一帧特征403b接着从第二帧特征402h开始,分别与第二帧特征402h、…、第二帧特征403h、第二帧特征499h进行特征匹配,直至找到与第一帧特征403b之间的特征距离小于特征距离阈值的第二帧特征,下述过程与上述过程一致,估此处不再进行赘述,请参见上述。同理,其余第一帧特征(包括第一帧特征404b、…、第一帧特征405b以及第一帧特征409b)的帧特征匹配结果的确定也和上述过程一致,此处亦不再一一赘述,请参见上述过程。
可选的,若第一帧特征Ci为第一帧特征序列的起始帧特征,且第一帧特征Ci的帧特征匹配结果为帧匹配失败结果,则根据帧匹配比例以及第一帧特征序列中帧特征的帧数量,确定第一帧特征序列的第三匹配数量阈值;根据起始帧特征以及第三匹配数量阈值,确定第一帧特征序列的第三匹配序列范围;第三匹配序列范围中的第一帧特征的数量等于第三匹配数量阈值;根据第二帧特征序列对第三匹配序列范围中的第一帧特征进行逐一特征匹配,直至找到具有帧匹配成功结果的第一帧特征;若第一帧特征Ci+x为第三匹配序列范围中的结尾帧特征,且第一帧特征Ci+x的帧特征匹配结果为帧匹配失败结果,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;x等于第三匹配数量阈值。
本申请实施例通过获取视频片段,可以生成与视频片段对应的第一视频帧序列,然后生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;同理,获取针对目标视频的第二帧特征序列,第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;后续,根据第二帧特征序列中的每一个帧特征,确定第一帧特征序列中的每一个帧特征的帧特征匹配结果,根据帧特征匹配结果,可以确定视频片段与目标视频之间的视频帧匹配关系;最后根据视频帧匹配关系,可以在目标视频中获取与视频片段高度相似的目标视频片段。上述可知,本申请实施例完整地保留视频中每个视频帧的帧特征,用第一帧特征序列表征视频片段,用第二帧特征序列表征目标视频,因此,视频片段以及目标视频的视频信息保留地更加完整,另外,利用第一帧特征序列中的每一个帧特征以及第二帧特征序列中的每一个帧特征,确定目标视频以及视频片段的视频帧匹配关系,可以使得所确定出的视频帧匹配关系更加准确,从而可以在目标视频中获取与视频片段相似度更高的目标视频片段。
综合图3至图7分别对应的实施例,可以在视频数据库的每个目标视频中检索出与第一视频帧序列对齐(相似)的目标视频片段,并且根据每段目标视频片段所返回的距离函数进行排序,最终返回最相似的TopN个目标视频片段,N为正整数。请一并参见图8,图8是本申请实施例提供的一种数据处理的场景示意图。如图8所示,用户终端40c响应用户针对搜索控件402c的触发操作,将视频片段401c发送至服务器40d,服务器40d为视频片段401c检索视频数据库40f的每个目标视频,其具体过程此处不再赘述,请参见图3、图6以及图7中的描述,得到与视频片段401c相似度最高的5个目标视频片段。
如图8所示,5个目标视频片段分别为目标视频片段801、目标视频片段802、…、目标视频片段805,然后服务器40d将上述5个目标视频片段以及目标视频标识一起返回至用户终端40c。此时,用户终端40c对应的显示屏上可以显示提示语,如“已为您找到5个相似视频片段”,并且显示上述5个目标视频片段以及目标视频标识,目标视频标识是用于表征目标视频,本申请实施例是以目标视频的视频名称为例,目标视频片段801对应的目标视频的视频名称为80a,目标视频片段802对应的目标视频的视频名称为80b,…,目标视频片段805对应的目标视频的视频名称为80c。同时,可以将视频名称对应于控件,如图8所示,当用户点击视频名称80a时,用户终端40c对应的显示屏,可以显示针对目标视频片段801的目标视频806的相关信息,相关信息可以包括目标视频806的视频名称80a,目标视频806的视频简介等,此处可以根据实际应用场景设置相关信息,本申请实施例不做限定。
请再参见图8,当用户点击目标视频片段805时,用户终端40c对应的显示屏可以播放目标视频片段805,同时,显示屏还可以显示基本控件,如播放键,可以让用户暂停播放或继续播放目标视频片段805,还可以显示播放进度条,还可以目标视频片段805的总时长以及播放时长。可以理解的是,此处用户终端40c对应的显示屏所显示的内容可以根据实际应用场景设置,本申请实施例不做限定。
进一步地,请参见图9,图9是本申请实施例提供的一种数据处理装置的结构示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图9所示,该数据处理装置1可以包括:第一获取模块11、第二获取模块12、第一确定模块13以及第三获取模块14。
第一获取模块11,用于获取视频片段对应的第一视频帧序列;
第一获取模块11,还用于生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;
第二获取模块12,用于获取针对目标视频的第二帧特征序列;第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;
第一确定模块13,用于根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果,根据帧特征匹配结果,确定视频片段与目标视频之间的视频帧匹配关系;
第三获取模块14,用于根据视频帧匹配关系在目标视频中获取与视频片段相似的目标视频片段。
其中,第一获取模块11、第二获取模块12、第一确定模块13以及第三获取模块14的具体功能实现方式可以参见上述图3对应实施例中的步骤S101-步骤S105,这里不再进行赘述。
再请参见图9,第一确定模块13可以包括:第一确定单元131、统计数量单元132以及第二确定单元133。
第一确定单元131,用于根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果;
统计数量单元132,用于在第一帧特征序列中的每个帧特征对应的帧特征匹配结果中,统计帧特征匹配结果为帧匹配成功结果的数量,作为帧特征匹配成功数量;
第二确定单元133,用于根据帧特征匹配成功数量以及第一帧特征序列,确定视频片段与目标视频之间的视频帧匹配关系。
其中,第一确定单元131、统计数量单元132以及第二确定单元133的具体功能实现方式可以参见上述图3对应实施例中的步骤S104,这里不再进行赘述。
再请参见图9,第三获取模块14可以包括:第三确定单元141、第一获取单元142、第二获取单元143以及第三获取单元144。
第三确定单元141,用于若视频帧匹配关系为视频帧匹配无效关系,则确定目标视频中不存在与视频片段相似的目标视频片段;
第一获取单元142,用于若视频帧匹配关系为视频帧匹配有效关系,则在第一帧特征序列中获取属于帧匹配成功结果的帧特征,作为第一目标帧特征;
第二获取单元143,用于根据第一目标帧特征,在第二帧特征序列中获取第二目标帧特征;第一目标帧特征与第二目标帧特征之间的帧特征匹配结果为帧匹配成功结果;
第三获取单元144,用于根据第二目标帧特征,在目标视频中获取与视频片段相似的目标视频片段。
其中,第三确定单元141、第一获取单元142、第二获取单元143以及第三获取单元144的具体功能实现方式可以参见上述图3对应实施例中的步骤S105,这里不再进行赘述。
再请参见图9,第三获取单元144可以包括:第一获取子单元1441、第一确定子单元1442以及第二获取子单元1443。
第一获取子单元1441,用于从第二目标帧特征中获取具有最小时间戳的起始帧特征,以及具有最大时间戳的结束帧特征;
第一确定子单元1442,用于在第二视频帧序列中确定起始帧特征对应的起始视频帧,以及结束帧特征对应的结束视频帧;
第二获取子单元1443,用于根据起始视频帧以及结束视频帧,在目标视频中获取与视频片段相似的目标视频片段。
其中,第一获取子单元1441、第一确定子单元1442以及第二获取子单元1443的具体功能实现方式可以参见上述图3对应实施例中的步骤S105,这里不再进行赘述。
再请参见图9,第二确定单元133可以包括:第二确定子单元1331以及第三确定子单元1332。
第二确定子单元1331,用于确定第一帧特征序列中帧特征的帧数量,根据帧数量以及帧特征匹配成功数量,确定帧特征匹配成功比例;
第三确定子单元1332,用于若帧特征匹配成功比例小于比例阈值,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;
第三确定子单元1332,还用于若帧特征匹配成功比例等于或大于比例阈值,则确定视频帧匹配关系为视频帧匹配有效关系。
其中,第二确定子单元1331以及第三确定子单元1332的具体功能实现方式可以参见上述图3对应实施例中的步骤S104,这里不再进行赘述。
再请参见图9,第一帧特征序列包括第一帧特征Ci以及第一帧特征Ci+1,第一帧特征Ci+1对应的视频帧为第一帧特征Ci对应的视频帧的下一个视频帧,i为正整数,且i小于第一视频帧序列中视频帧的总数量;第二帧特征序列包括第二帧特征Dm,m为正整数,且m小于或等于第二视频帧序列中视频帧的总数量;
第三确定单元141可以包括:第三获取子单元1411、第一匹配子单元1412、第一匹配子单元1412以及第四确定子单元1414。
第三获取子单元1411,用于获取第一帧特征序列中的第一帧特征Ci,获取第二帧特征序列中的第二帧特征Dm;
第一匹配子单元1412,用于将第一帧特征Ci与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i,m);
第二匹配子单元1413,用于将第一帧特征Ci+1与第二帧特征Dm进行特征匹配,得到中间匹配结果J(i+1,m);
第四确定子单元1414,用于根据中间匹配结果J(i,m)以及中间匹配结果J(i+1,m),分别确定第一帧特征Ci的帧特征匹配结果以及第一帧特征Ci+1的帧特征匹配结果。
其中,第三获取子单元1411、第一匹配子单元1412、第一匹配子单元1412以及第四确定子单元1414的具体功能实现方式可以参见上述图6对应实施例中的步骤S201-步骤S206,这里不再进行赘述。
再请参见图9,第四确定子单元1414,具体用于若中间匹配结果J(i,m)为中间匹配成功结果,则确定第一帧特征Ci的帧特征匹配结果为帧匹配成功结果;
第四确定子单元1414,还具体用于若中间匹配结果J(i+1,m)为中间匹配失败结果,则获取第二帧特征序列的第一匹配数量阈值,根据第二帧特征Dm以及第一匹配数量阈值,在第二帧特征序列中确定针对第一帧特征Ci+1的第一匹配序列范围;其中,第二帧特征Dm为第一匹配序列范围的起始帧特征,第一匹配序列范围中的第二帧特征的数量等于第一匹配数量阈值;
第四确定子单元1414,还具体用于将第一帧特征Ci+1对第一匹配序列范围中的第二帧特征进行逐一特征匹配,直至找到与第一帧特征Ci+1之间具有中间匹配成功结果的第二帧特征;
第四确定子单元1414,还具体用于若第二帧特征Dm+k为第一匹配序列范围中的结尾帧特征,且第一帧特征Ci+1与第二帧特征Dm+k之间的中间匹配结果J(i+1,m+k)为中间匹配失败结果,则确定第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果;k等于第一匹配数量阈值。
其中,第四确定子单元1414的具体功能实现方式可以参见上述图6对应实施例中的步骤S203-步骤206,这里不再进行赘述。
再请参见图9,第二确定单元133可以包括:第四获取子单元1333、第五获取子单元1334、第三匹配子单元1335以及第五确定子单元1336。
第四获取子单元1333,用于若第一帧特征Ci的帧特征匹配结果为帧匹配成功结果,且第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果,则获取第一帧特征序列的第二匹配数量阈值;
第五获取子单元1334,用于根据第二匹配数量阈值,在第一帧特征序列中获取以第一帧特征Ci+1为起始帧特征的第二匹配序列范围;第二匹配序列范围中的第一帧特征的数量等于第二匹配数量阈值;
第三匹配子单元1335,用于根据第一匹配序列范围对第二匹配序列范围中的第一帧特征进行逐一特征匹配,直至找到具有帧匹配成功结果的第一帧特征;
第五确定子单元1336,用于若第一帧特征Ci+e为第二匹配序列范围中的结尾帧特征,且第一帧特征Ci+e的帧特征匹配结果为帧匹配失败结果,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;e等于第二匹配数量阈值。
其中,第四获取子单元1333、第五获取子单元1334、第三匹配子单元1335以及第五确定子单元1336的具体功能实现方式可以参见上述图6对应实施例中的步骤S206,这里不再进行赘述。
再请参见图9,第四确定子单元1414,具体用于若中间匹配结果J(i,m)为中间匹配失败结果,则将第一帧特征Ci与剩余第二帧特征进行特征匹配,得到第一帧特征Ci的剩余中间匹配结果;剩余第二帧特征为第二帧特征序列中时间戳大于第二帧特征Dm对应的时间戳的第二帧特征;
第四确定子单元1414,还具体用于若第一帧特征Ci的剩余中间匹配结果均为中间匹配失败结果,则确定第一帧特征Ci的帧特征匹配结果为帧匹配失败结果;
第四确定子单元1414,还具体用于若中间匹配结果J(i+1,m)为匹配失败结果,且第一帧特征Ci+1的剩余中间匹配结果均为中间匹配失败结果,则确定第一帧特征Ci+1的帧特征匹配结果为帧匹配失败结果;第一帧特征Ci+1的剩余中间匹配结果为第一帧特征Ci+1与剩余第二帧特征分别进行特征匹配得到的中间匹配结果。
其中,第四确定子单元1414的具体功能实现方式可以参见上述图7对应实施例中的步骤S301-步骤S305,这里不再进行赘述。
再请参见图9,第三确定单元133可以包括:第六确定子单元1337、第四匹配子单元1338以及第七确定子单元1339。
第六确定子单元1337,用于若第一帧特征Ci为第一帧特征序列的起始帧特征,且第一帧特征Ci的帧特征匹配结果为帧匹配失败结果,则根据帧匹配比例以及第一帧特征序列中帧特征的帧数量,确定第一帧特征序列的第三匹配数量阈值;
第六确定子单元1337,还用于根据起始帧特征以及第三匹配数量阈值,确定第一帧特征序列的第三匹配序列范围;第三匹配序列范围中的第一帧特征的数量等于第三匹配数量阈值;
第四匹配子单元1338,用于根据第二帧特征序列对第三匹配序列范围中的第一帧特征进行逐一特征匹配,直至找到具有帧匹配成功结果的第一帧特征;
第七确定子单元1339,用于若第一帧特征Ci+x为第三匹配序列范围中的结尾帧特征,且第一帧特征Ci+x的帧特征匹配结果为帧匹配失败结果,则确定视频片段与目标视频之间的视频帧匹配关系,为视频帧匹配无效关系;x等于第三匹配数量阈值。
其中,第六确定子单元1337、第四匹配子单元1338以及第七确定子单元1339的具体功能实现方式可以参见上述图7对应实施例中的步骤S303-步骤S305,这里不再进行赘述。
再请参见图9,目标视频片段包括目标视频片段Sn以及目标视频片段Sn+1,n为正整数;
数据处理装置1,还可以包括:第二确定模块15以及第三确定模块16。
第二确定模块15,用于根据目标视频片段Sn以及目标视频片段Sn+1,确定目标视频片段对应的片段数量;目标视频包括目标视频Pu以及目标视频Pu+1,目标视频Pu为包括目标视频片段Sn的视频,目标视频Pu+1为包括目标视频片段Sn+1的视频,u为正整数;
第三确定模块16,用于根据片段数量,确定返回至目标终端的目标视频片段以及目标视频标识;目标终端为发送视频片段的终端,目标视频标识用于表征返回至目标终端的目标视频片段所属的目标视频。
其中,第二确定模块15以及第三确定模块16的具体功能实现方式可以参见上述图6对应实施例中的步骤S305,这里不再进行赘述。
再请参见图9,第三确定模块16可以包括:第一返回单元161、第四获取单元162以及第二返回单元163。
第一返回单元161,用于若片段数量小于或等于片段数量阈值,则将目标视频片段Sn、目标视频Pu的目标视频标识、目标视频片段Sn+1以及目标视频Pu+1的目标视频标识返回至目标终端;
第四获取单元162,用于若片段数量大于片段数量阈值,则获取目标视频片段Sn与视频片段之间的片段匹配度Dn,获取目标视频片段Sn+1与视频片段之间的片段匹配度Dn+1;
第二返回单元163,用于若片段匹配度Dn等于或大于片段匹配度Dn+1,则将目标视频片段Sn以及目标视频Pu的目标视频标识返回至目标终端;
第二返回单元163,还用于若片段匹配度Dn小于片段匹配度Dn+1,则将目标视频片段Sn+1以及目标视频Pu+1的目标视频标识返回至目标终端。
其中,第一返回单元161、第四获取单元162以及第二返回单元163的具体功能实现方式可以参见上述图3对应实施例中的步骤S105,这里不再进行赘述。
再请参见图9,第一视频帧序列中包括视频帧Zi,i为正整数,且i小于或等于第一视频帧序列中的视频帧的总数量;
第一获取模块11可以包括:第五获取单元111、第一生成单元112、第二生成单元113以及第三生成单元114。
第五获取单元111,用于获取特征提取器;特征提取器包括输入层以及特征提取层;
第一生成单元112,用于将视频帧Zi输入特征提取器,通过输入层,得到视频帧Zi对应的原始帧特征;
第二生成单元113,用于通过特征提取层,对视频帧Zi对应的原始帧特征进行卷积处理以及池化处理,得到视频帧Zi对应的帧特征;
第三生成单元114,用于根据视频帧Zi对应的帧特征,组成第一帧特征序列。
其中,第五获取单元111、第一生成单元112、第二生成单元113以及第三生成单元114的具体功能实现方式可以参见上述图3对应实施例中的步骤S102,这里不再进行赘述。
本申请实施例通过获取视频片段,可以生成与视频片段对应的第一视频帧序列,然后生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;同理,获取针对目标视频的第二帧特征序列,第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;后续,根据第二帧特征序列中的每一个帧特征,确定第一帧特征序列中的每一个帧特征的帧特征匹配结果,根据帧特征匹配结果,可以确定视频片段与目标视频之间的视频帧匹配关系;最后根据视频帧匹配关系,可以在目标视频中获取与视频片段高度相似的目标视频片段。上述可知,本申请实施例完整地保留视频中每个视频帧的帧特征,用第一帧特征序列表征视频片段,用第二帧特征序列表征目标视频,因此,视频片段以及目标视频的视频信息保留地更加完整,另外,利用第一帧特征序列中的每一个帧特征以及第二帧特征序列中的每一个帧特征,确定目标视频以及视频片段的视频帧匹配关系,可以使得所确定出的视频帧匹配关系更加准确,从而可以在目标视频中获取与视频片段相似度更高的目标视频片段。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取视频片段对应的第一视频帧序列;
生成第一视频帧序列中每个视频帧的帧特征,组成第一帧特征序列;
获取针对目标视频的第二帧特征序列;第二帧特征序列包括目标视频所对应的第二视频帧序列中每个视频帧的帧特征;
根据第二帧特征序列中的每个帧特征,确定第一帧特征序列中的每个帧特征对应的帧特征匹配结果,根据帧特征匹配结果,确定视频片段与目标视频之间的视频帧匹配关系;
根据视频帧匹配关系在目标视频中获取与视频片段相似的目标视频片段。
应当理解,本申请实施例中所描述的计算机设备1000可执行上述图3、图6和图7所对应实施例中对数据处理方法的描述,也可执行前文图9所对应实施例中对数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果的描述,也不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图3、图6以及图7中各个步骤所提供的数据处理方法,具体可参见图3、图6以及图7各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。