视频帧图像的测试方法、装置、设备、计算机存储介质转让专利

申请号 : CN202011021599.9

文献号 : CN112153374B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨军文施嘉

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请实施例提供一种视频帧图像的测试方法、装置、设备及计算机存储介质,其中,方法包括:获取待测试视频和参考视频,该待测试视频和参考视频的版本信息不同;获取该待测试视频中各个测试帧图像的逻辑帧号,并获取该参考视频中各个参考帧图像的逻辑帧号;分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值;基于各个图像相似度值,确定待测试视频的测试结果;输出该测试结果;通过本申请,利用逻辑帧号得到完全对应的测试帧图像和参考帧图像,从而提高视频帧图像的测试准确度。

权利要求 :

1.一种视频帧图像的测试方法,其特征在于,包括:获取待测试的测试场景对应的至少一个对局协议,所述对局协议中包括针对虚拟角色的操作信息;

向第一终端发送第一视频录制请求,所述第一视频录制请求中包括所述至少一个对局协议,以使所述第一终端基于所述至少一个对局协议录制得到待测试视频;

接收所述第一终端发送的第一视频录制响应,所述第一视频录制响应中携带有所述待测试视频;

获取待测试视频和参考视频,所述待测试视频和参考视频对应的应用程序客户端的版本信息不同;所述待测试视频和所述参考视频是基于相同的对局协议得到的;

获取所述待测试视频中各个测试帧图像的逻辑帧号,并获取所述参考视频中各个参考帧图像的逻辑帧号;

分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值;

基于所述各个图像相似度值,确定待测试视频的测试结果;

输出所述测试结果。

2.根据权利要求1中所述的方法,其特征在于,所述获取所述待测试视频中各个测试帧图像的逻辑帧号,包括:获取各个测试帧图像中预设的目标位置对应的各个目标图像区域;

对所述各个目标图像区域进行灰度化处理,得到各个灰度化的目标图像区域;

对各个灰度化的目标图像区域进行字符识别,得到各个测试帧图像的逻辑帧号。

3.根据权利要求2中所述的方法,其特征在于,所述方法还包括:将所述各个测试帧图像的逻辑帧号,确定为所述各个测试帧图像的标识;

基于所述各个测试帧图像的标识,存储所述各个测试帧图像。

4.根据权利要求1中所述的方法,其特征在于,分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值,包括:分别提取逻辑帧号相同的测试帧图像和参考帧图像的特征向量,对应得到各个测试特征向量和各个参考特征向量;

基于所述各个测试特征向量和对应的各个参考特征向量,确定各个逻辑帧号相同的测试帧图像和参考帧图像之间的各个特征相似度值;

分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的各个颜色相似度值;

基于所述各个特征相似度值和对应的各个颜色相似度值,确定各个图像相似度值。

5.根据权利要求4中所述的方法,其特征在于,所述基于所述各个特征相似度值和对应的各个颜色相似度值,确定各个图像相似度值,包括:将所述各个特征相似度值和对应的各个颜色相似度进行融合计算,得到各个图像相似度值。

6.根据权利要求1中所述的方法,其特征在于,所述基于所述各个图像相似度值,确定待测试视频的测试结果,包括:当所述各个图像相似度值中存在低于预设的相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试不通过;

当所述各个图像相似度值中不存在低于预设的相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试通过。

7.根据权利要求6中所述的方法,其特征在于,所述方法还包括:当所述测试结果为测试不通过时,确定所述目标相似度值对应的测试帧图像中与参考帧图像中存在差异的差异图像区域;

将所述差异图像区域按照预设样式进行差异标记,得到标记后的测试帧图像;

输出标记后的测试帧图像和对应的参考帧图像。

8.根据权利要求1中所述的方法,其特征在于,所述方法还包括:获取待测试的测试场景对应的至少一个对局协议和预设的参考版本信息,所述对局协议中包括针对虚拟角色的操作信息;

基于所述参考版本信息,对所述至少一个对局协议进行兼容处理,得到至少一个兼容后的对局协议;

向第二终端发送第二视频录制请求,所述视频录制请求中包括所述至少一个兼容后的对局协议;

接收所述第二终端发送的第二视频录制响应,所述第二视频录制响应中携带有所述参考视频。

9.根据权利要求1或7所述的方法,其特征在于,所述方法还包括:获取历史对局中产生的多个对局协议;

从所述多个对局协议中,确定出待测试的测试场景对应的至少一个对局协议。

10.一种视频帧图像的测试方法,其特征在于,所述方法包括:接收服务器发送的第一视频录制请求,所述第一视频录制请求中包括至少一个对局协议,所述对局协议中包括针对虚拟角色的操作信息;

响应于所述第一视频录制请求,回放所述至少一个对局协议,并录制回放所述至少一个对局协议时的视频,得到待测试视频,所述待测试视频中的各个测试帧图像中预设的目标图像区域中呈现有所述各个测试帧图像的逻辑帧号;

将携带有所述待测试视频的第一视频录制响应发送给所述服务器,以使所述服务器基于相同的对局协议获取参考视频,并获取所述待测试视频中各个测试帧图像的逻辑帧号和所述参考视频中各个参考帧图像的逻辑帧号,基于逻辑帧号相同的测试帧图像和参考帧图像之间的相似度对所述待测试视频进行测试,得到测试结果,所述待测试视频和参考视频对应的应用程序客户端的版本信息不同。

11.根据权利要求10中所述的方法,其特征在于,所述响应于所述第一视频录制请求,回放所述至少一个对局协议,并录制回放所述至少一个对局协议时的视频,得到待测试视频,包括:响应于所述第一视频录制请求,启动逻辑帧号显示和噪声过滤功能;

回放所述至少一个对局协议,以执行所述对局协议包括的针对虚拟角色的操作信息,得到各个测试帧图像;

对所述各个测试帧图像进行噪声过滤处理,得到处理后的各个测试帧图像;

获取所述各个测试帧图像的逻辑帧号,并在处理后的各个测试帧图像中的目标图像区域增加对应的逻辑帧号;

在播放所述各个测试帧图像时进行视频录制,在录制完成后得到待测试视频。

12.根据权利要求11中所述的方法,其特征在于,所述方法还包括:获取自身播放视频时的渲染帧率和逻辑帧率;

当所述渲染帧率和逻辑帧率不同时,将所述渲染帧率更新为所述逻辑帧率,或者,将所述逻辑帧率更新为所述渲染帧率。

13.一种视频帧图像的测试装置,其特征在于,包括:第三获取模块,用于获取待测试的测试场景对应的至少一个对局协议,所述对局协议中包括针对虚拟角色的操作信息;

第二发送模块,用于向第一终端发送第一视频录制请求,所述第一视频录制请求中包括所述至少一个对局协议,以使所述第一终端基于所述至少一个对局协议录制得到待测试视频;

第二接收模块,用于接收所述第一终端发送的第一视频录制响应,所述第一视频录制响应中携带有所述待测试视频;

第一获取模块,用于获取待测试视频和参考视频,所述待测试视频和参考视频对应的应用程序客户端的版本信息不同;所述待测试视频和所述参考视频是基于相同的对局协议得到的;

第二获取模块,用于获取所述待测试视频中各个测试帧图像的逻辑帧号,并获取所述参考视频中各个参考帧图像的逻辑帧号;

第一确定模块,用于分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值;

第二确定模块,用于基于所述各个图像相似度值,确定待测试视频的测试结果;

第一输出模块,用于输出所述测试结果。

14.一种视频帧图像的测试装置,其特征在于,包括:第一接收模块,用于接收服务器发送的第一视频录制请求,所述第一视频录制请求中包括至少一个对局协议,所述对局协议中包括针对虚拟角色的操作信息;

视频录制模块,用于响应于所述第一视频录制请求,回放所述至少一个对局协议,并录制回放所述至少一个对局协议时的视频,得到待测试视频,所述待测试视频中的各个测试帧图像中预设的目标图像区域中呈现有所述各个测试帧图像的逻辑帧号;

第一发送模块,用于将携带有所述待测试视频的第一视频录制响应发送给所述服务器,以使所述服务器基于相同的对局协议获取参考视频,并获取所述待测试视频中各个测试帧图像的逻辑帧号和所述参考视频中各个参考帧图像的逻辑帧号,基于逻辑帧号相同的测试帧图像和参考帧图像之间的相似度对所述待测试视频进行测试,得到测试结果,所述待测试视频和参考视频对应的应用程序客户端的版本信息不同。

15.一种视频帧图像的测试设备,其特征在于,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至9任一项,或者,权利要求10至12任一项所述的方法。

16.一种计算机存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至9任一项,或者,权利要求10至12任一项所述的方法。

说明书 :

视频帧图像的测试方法、装置、设备、计算机存储介质

技术领域

[0001] 本申请实施例涉及技术领域,涉及但不限于一种视频帧图像的测试方法、装置、设备及计算机存储介质。

背景技术

[0002] 目前网络游戏已经成为越来越多人的娱乐消遣项目,为了吸引更多的用户,游戏开发人员会不断开发新版本的游戏应用,以增加更酷炫的特效,或者更美观的角色形象,亦或者修复旧版本中存在的缺陷。在新版本的游戏应用上线之前,需要对新版本的游戏应用进行测试,其中,对虚拟角色形象和技能特效等进行测试为较为重要的一个测试环节。
[0003] 在相关技术中,可以是通过静态资源文件在对虚拟角色形象和技能特技进行测试,还可以是通过执行脚本进行动态测试,但这两种方法都无法保证不同版本所对比的测试对象的一致性,从而导致测试准确度较低。

发明内容

[0004] 本申请实施例提供一种视频帧图像的测试方法、装置、设备及计算机存储介质,通过逻辑帧号得到完全对应的测试帧图像和参考帧图像,从而提高视频帧图像的测试准确度。
[0005] 本申请实施例的技术方案是这样实现的:
[0006] 本申请实施例提供一种视频帧图像的测试方法,包括:
[0007] 获取待测试视频和参考视频,该待测试视频和参考视频的版本信息不同;
[0008] 获取该待测试视频中各个测试帧图像的逻辑帧号,并获取该参考视频中各个参考帧图像的逻辑帧号;
[0009] 分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值;
[0010] 基于各个图像相似度值,确定待测试视频的测试结果;
[0011] 输出该测试结果。
[0012] 本申请实施例提供一种视频帧图像的测试方法,包括:
[0013] 接收服务器发送的第一视频录制请求,该第一视频录制请求中包括至少一个对局协议;
[0014] 响应于该第一视频录制请求,回放该至少一个对局协议,并录制回放该至少一个对局协议时的视频,得到待测试视频,
[0015] 该待测试视频中的各个测试帧图像中预设的目标图像区域中呈现有各个测试帧图像的逻辑帧号;
[0016] 将携带有该待测试视频的第一视频录制响应发送给该服务器。
[0017] 本申请实施例提供一种视频帧图像的测试装置,包括:
[0018] 第一获取模块,用于获取待测试视频和参考视频,该待测试视频和参考视频的版本信息不同;
[0019] 第二获取模块,用于获取该待测试视频中各个测试帧图像的逻辑帧号,并获取该参考视频中各个参考帧图像的逻辑帧号;
[0020] 第一确定模块,用于分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值;
[0021] 第二确定模块,用于基于各个图像相似度值,确定待测试视频的测试结果;
[0022] 第一输出模块,用于输出该测试结果。
[0023] 在一些实施例中,该第二获取模块还用于:
[0024] 获取各个测试帧图像中预设的目标位置对应的各个目标图像区域;
[0025] 对各个目标图像区域进行灰度化处理,得到各个灰度化的目标图像区域;
[0026] 对各个灰度化的目标图像区域进行字符识别,得到各个测试帧图像的逻辑帧号。
[0027] 在一些实施例中,该装置还包括:
[0028] 第三确定模块,用于将各个测试帧图像的逻辑帧号,确定为各个测试帧图像的标识;
[0029] 存储模块,用于基于各个视频帧的标识,存储各个测试帧图像。
[0030] 在一些实施例中,该第一确定模块还用于:
[0031] 分别提取逻辑帧号相同的测试帧图像和参考帧图像的特征向量,对应得到各个测试特征向量和各个参考特征向量;
[0032] 基于各个测试特征向量和对应的各个参考特征向量,确定各个逻辑帧号相同的测试帧图像和参考帧图像之间的各个特征相似度值;
[0033] 分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的各个颜色相似度值;
[0034] 基于各个特征相似度值和对应的各个颜色相似度值,确定各个图像相似度值。
[0035] 在一些实施例中,该第一确定模块还用于:
[0036] 将各个特征相似度值和对应的各个颜色相似度进行融合计算,得到各个图像相似度值。
[0037] 在一些实施例中,该第二确定模块还用于:
[0038] 当各个图像相似度值中存在低于预设的相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试不通过;
[0039] 当各个图像相似度值中不存在低于预设的相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试通过。
[0040] 在一些实施例中,该装置还包括:
[0041] 第四确定模块,用于当该测试结果为测试不通过时,确定该目标相似度值对应的测试帧图像中与参考帧图像中存在差异的差异图像区域;
[0042] 标记模块,用于将该差异图像区域按照预设样式进行差异标记,得到标记后的测试帧图像;
[0043] 第二输出模块,用于输出标记后的测试帧图像和对应的参考帧图像。
[0044] 在一些实施例中,该装置还包括:
[0045] 第三获取模块,用于获取待测试的测试场景对应的至少一个对局协议,该对局协议中包括针对虚拟角色的操作信息;
[0046] 第二发送模块,用于向第一终端发送第一视频录制请求,该第一视频录制请求中包括该至少一个对局协议;
[0047] 第二接收模块,用于接收该第一终端发送的第一视频录制响应,该第一视频录制响应中携带有该待测试视频。
[0048] 在一些实施例中,该装置还包括:
[0049] 第四获取模块,用于获取待测试的测试场景对应的至少一个对局协议和预设的参考版本信息,该对局协议中包括针对虚拟角色的操作信息;
[0050] 兼容处理模块,用于基于该参考版本信息,对该至少一个对局协议进行兼容处理,得到至少一个兼容后的对局协议;
[0051] 第三发送模块,用于向第二终端发送第二视频录制请求,该视频录制请求中包括该至少一个兼容后的对局协议;
[0052] 第三接收模块,用于接收该第二终端发送的第二视频录制响应,该第二视频录制响应中携带有该参考视频。
[0053] 在一些实施例中,该装置还包括:
[0054] 第五获取模块,用于获取历史对局中产生的多个对局协议;
[0055] 第五确定模块,用于从该多个对局协议中,确定出待测试的测试场景对应的至少一个对局协议。
[0056] 本申请实施例提供一种视频帧图像的测试装置,包括:
[0057] 第一接收模块,用于接收服务器发送的第一视频录制请求,该第一视频录制请求中包括至少一个对局协议;
[0058] 视频录制模块,用于响应于该第一视频录制请求,回放该至少一个对局协议,并录制回放该至少一个对局协议时的视频,得到待测试视频,
[0059] 该待测试视频中的各个测试帧图像中预设的目标图像区域中呈现有各个测试帧图像的逻辑帧号;
[0060] 第一发送模块,用于将携带有该待测试视频的第一视频录制响应发送给该服务器。
[0061] 在一些实施例中,该视频录制模块,还用于:
[0062] 响应于所述第一视频录制请求,启动逻辑帧号显示和噪声过滤功能;
[0063] 回放所述至少一个对局协议,以执行所述对局协议包括的针对虚拟角色的操作信息,得到各个测试帧图像;
[0064] 对所述各个测试帧图像进行噪声过滤处理,得到处理后的各个测试帧图像;
[0065] 获取所述各个测试帧图像的逻辑帧号,并在处理后的各个测试帧图像中的目标图像区域增加对应的逻辑帧号;
[0066] 在播放所述各个测试帧图像时进行视频录制,在录制完成后得到待测试视频。
[0067] 在一些实施例中,该装置还包括:
[0068] 第六获取模块,用于获取自身播放视频时的渲染帧率和逻辑帧率;
[0069] 帧率更新模块,用于当该渲染帧率和逻辑帧率不同时,将该渲染帧率更新为该逻辑帧率,或者,将该逻辑帧率更新为该渲染帧率。
[0070] 本申请实施例提供一种视频帧图像的测试设备,包括:
[0071] 存储器,用于存储可执行指令;处理器,用于执行该存储器中存储的可执行指令时,实现上述的方法。
[0072] 本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
[0073] 本申请实施例具有以下有益效果:
[0074] 在获取到待测试视频和参考视频之后,首先提取待测试视频中各个测试帧图像的逻辑帧号,并提取该参考视频中各个参考帧图像的逻辑帧号,待测试视频和参考视频的版本信息不同,其中,待测试视频对应的是新版本信息,参考视频对应的是旧版本信息;进而再确定出逻辑帧号相同的测试帧图像和参考帧图像,由于逻辑帧号相同,因此能够保证进行对比的两个图像逻辑时间点完全一致,从而再分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值,并基于各个图像相似度值,确定待测试视频的测试结果,如此,由于进行对比的两个帧图像的逻辑时间是准确对应的,从而能够提高测试结果的精确度。

附图说明

[0075] 图1为本申请实施例提供的视频帧图像的测试系统的网络架构示意图;
[0076] 图2为本申请实施例提供的服务器300的结构示意图;
[0077] 图3为本申请实施例提供的视频帧图像的测试方法的一种实现流程示意图;
[0078] 图4为本申请实施例提供的视频帧图像的测试方法的另一种实现流程示意图;
[0079] 图5为本申请实施例提供的视频帧图像的测试方法的再一种实现流程示意图;
[0080] 图6为本申请实施例提供的视频帧图像的测试方法的再一种实现流程示意图;
[0081] 图7A为本申请实施例提供的虚拟场景协议录制的硬件架构示意图;
[0082] 图7B为本申请实施例提供的虚拟场景视频录制的硬件架构示意图;
[0083] 图7C为本申请实施例提供的执行图像算法,获取图片间差异的硬件架构示意图;
[0084] 图8为本申请实施例提供的视频帧图像的测试方法的再一种实现流程示意图;
[0085] 图9为按表现帧号进行抽帧的示意图;
[0086] 图10为本申请实施例提供的添加逻辑帧号的游戏界面示意图;
[0087] 图11为本申请实施例皮肤专用测试地图;
[0088] 图12A为本申请实施例提供的图片提取方法的实现过程示意图;
[0089] 图12B为本申请实施例提供的图片提取方法的界面示意图;
[0090] 图13为本申请实施例提供的相似度计算的实现流程示意图;
[0091] 图14A为本申请实施例提供的差异标记界面示意图;
[0092] 图14B为本申请实施例提供的另一个差异标记界面示意图;
[0093] 图14C为本申请实施例提供的再一个差异标记界面示意图。

具体实施方式

[0094] 为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0095] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0096] 1)逻辑帧,基于从服务端收到的帧指令执行的帧,所有客户端和服务端的帧同步,指的就是逻辑帧同步,将从服务端发送过来的帧统一称为逻辑帧指令。逻辑帧存在于服务端和客户端,且两端的帧指令数据要一致。
[0097] 2)渲染帧,又称为表现帧,是负责渲染表现的帧,客户端在某一帧产生了一个指令,如果在该执行该帧逻辑的时候,还没收到服务端发来的逻辑帧指令,由于有预测机制的存在,客户端会直接执行此帧所产生的渲染表现。渲染帧只存在于客户端。
[0098] 3)帧同步:客户端发送针对虚拟角色的操作信息到服务器,服务器广播转发所有客户端的操作信息,客户端根据收到的所有操作信息来做游戏运算和显示。
[0099] 4)视频抽帧:将视频提取出一张张图片,一般通过FFmpeg开源软件进行抽取,其中FFmpeg是一个开放源代码的自由软件,可以运行音频和视频多种格式的录影、转换、流功能。
[0100] 5)光学字符识别(OCR,Optical Character Recognition),也可简单地称为文字识别,是电子设备通过检测暗、亮的模式确定纸质文档、PDF文件或者数码相机拍摄的图片中的字符形状,然后用字符识别方法将形状翻译成计算机文字的过程。
[0101] 6)ORB,为Oriented Fast and Rotated Brief的简称,用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象,其中Fast和Brief分别是特征检测算法和向量创建算法,也即ORB是在FAST关键点检测+BRIEF特征上做的改进。
[0102] 7)颜色直方图:图像中像素强度分布的图形表达方式,是最常用的表达颜色特征的方法,其优点是不受图像旋转和平移变化的影响。
[0103] 为了更好地理解本申请实施例中提供的视频帧图像的测试方法,首先对相关技术中的利用视频帧图像的测试方法来实现游戏局内模型与特效测试的实现方案及存在的缺点进行说明:
[0104] 目前针对游戏局内模型与特效测试的实现方式主要有以下两种:
[0105] 1、静态资源对比方案。
[0106] 对比新旧版本的局内角色的模型和技能特效所引用的静态资源文件的md5值,如果md5值有变动,说明资源有变更,就需要手工测试验证一遍有无问题。
[0107] 2、通过脚本采集图片数据的动态方案。
[0108] 通过脚本编写局内角色技能测试场景,分别在新旧版本运行该脚本,脚本运行过程中,每隔固定时间截图手机图片,通过对比两个版本的图像数据来检测是否有问题。
[0109] 静态资源对比方案存在的缺点包括:
[0110] 1)有些静态资源是共用的,一旦变化,会导致所有文件的md5有变更。
[0111] 2)发现有md5变更的资源,依然需要手工测试,才能确定变更有无问题。
[0112] 3)如果是游戏代码或者游戏引擎的变更导致表现不一致的问题,无法通过静态资源变更发现。
[0113] 通过脚本采集图片数据的动态方案存在的缺点包括:
[0114] 1)使用脚本还原的测试场景无法完美保证场景的一致性,很容易导致对比的图片时间错位,对比出来的图片全部不一致。
[0115] 2)通过脚本截图的时间点无法保证和游戏的逻辑时间一致。
[0116] 基于此,本申请实施例提供一种视频帧图像的测试方法,首先录制测试场景的整个协议,并保存起来,需要还原测试场景的时候,只需要回放本次保存的协议即可,可以保证场景的一致性,并且在游戏代码中插入显示游戏逻辑帧号的模块,使得游戏界面可以显示逻辑帧号;然后通过图像OCR算法识别视频中每一帧图像中的游戏逻辑帧号,并按照逻辑帧号保存成对应的图片集合;新旧版本的视频保存成对应图片集合之后,依次对同逻辑帧号的图片进行相似度计算得到综合评分,评分低于设置的阈值则将差异标注出来,以作为测试结果进行输出展示。
[0117] 下面说明本申请实施例提供的视频帧图像的测试设备的示例性应用,本申请实施例提供的视频帧图像的测试设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能机器人等终端,也可以实施为服务器。下面,将说明视频帧图像的测试设备实施为服务器时的示例性应用。
[0118] 参见图1,图1为本申请实施例提供的视频帧图像的测试系统的网络架构示意图。如图1所示,视频帧图像的测试系统中包括终端100(在图1中示例性示出第一终端100‑1、第二终端100‑2和第三终端100‑3)、网络200和服务器300。其中,第一终端100‑1、第二终端
100‑2和第三终端100‑3上分别安装有游戏客户端,并且第一终端100‑1和第三终端100‑3上安装有同一版本的第一客户端,第二终端100‑2上安装有另一版本的第二客户端,需要说明的是,第一客户端和第二客户端对应的是相同的游戏应用程序,只是版本不同,其中,第一客户端对应的可以是新版本的游戏应用程序,第二客户端对应的可以是旧版本的游戏应用程序。
[0119] 游戏玩家可以通过第三终端100‑3启动游戏对局,并将游戏对局中的对局协议上传至服务器300,在游戏对局结束后,服务器300可以从接收到的多个对局协议中选择出需要测试的对局协议,并将对局协议下发给第一终端100‑1,以使得第一终端100‑1利用该对局协议,回放并录制新版本的待测试视频;另外,服务器300还会基于第二终端100‑2中所安装的第二客户端的版本信息,将对局协议进行兼容处理,并将兼容后的对局协议下发给第二终端100‑2,以使得第二终端100‑2利用兼容后的对局协议,回放并录制旧版本的参考视频。第一终端100‑1和第二终端100‑2分别将待测试视频和参考视频上传至服务器,且待测试视频中各个测试帧图像和参考视频中的各个参考帧图像中是呈现有自身的逻辑帧号的,从而能够使得服务器300在接收到待测试视频和参考视频之后,将逻辑帧号相同的测试帧图像和参考帧图像进行相似度计算,从而确定测试结果,保证测试结果的准确性。
[0120] 服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
[0121] 参见图2,图2为本申请实施例提供的服务器300的结构示意图,图2所示的服务器300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。服务器
300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统340。
[0122] 处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0123] 用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
[0124] 存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0125] 操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0126] 网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
[0127] 输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
[0128] 在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器350中的一种视频帧图像的测试装置354,该视频帧图像的测试装置354可以是服务器300中的视频帧图像的测试装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块3541、第二获取模块3542、第一确定模块3543、第二确定模块3544和第一输出模块3545,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
[0129] 在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的视频帧图像的测试方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Applicati on Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field‑Programmable Gate Array)或其他电子元件。
[0130] 下面将结合本申请实施例提供的服务器300的示例性应用和实施,说明本申请实施例提供的视频帧图像的测试方法。参见图3,图3为本申请实施例提供的视频帧图像的测试方法的一种实现流程示意图,将结合图3示出的步骤进行说明。
[0131] 步骤S101,获取待测试视频和参考视频。
[0132] 这里,待测试视频和参考视频的版本信息不同,但是待测试视频和参考视频对应的是相同的对局场景,也就是是待测试视频和参考视频中的虚拟角色、虚拟角色所在背景以及虚拟角色所执行的动作是一致的。
[0133] 待测试视频和参考视频可以是从不同的终端获取的,例如待测试视频是从第一终端获取的,参考视频是从第二终端获取的,并且第一终端中安装有第一客户端,第二终端安装有第二客户端,第一客户端和第一客户端可以是相同应用不同版本的客户端,在实现时,第一客户端可以是应用A对应的新版本客户端,第二客户端可以是应用A对应的旧版本客户端。
[0134] 步骤S102,获取该待测试视频中各个测试帧图像的逻辑帧号,并获取该参考视频中各个参考帧图像的逻辑帧号。
[0135] 这里,服务器在获取到待测试视频和参考视频后,可以分别对待测试视频和参考视频分别进行解析,从而对应得到待测试视频中的各个测试帧图像和参考视频中的各个参考帧图像。进而再从各个测试帧图像和各个参考帧图像中提取出用于呈现逻辑帧号的目标图像区域,并对目标图像区域进行文字识别,从而获取到各个测试帧图像的逻辑帧号以及各个参考帧图像的逻辑帧号。
[0136] 步骤S103,分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值。
[0137] 在一些实施例中,在获取到各个测试视频帧图像的逻辑帧号和各个参考帧图像的逻辑帧号之后,可以将逻辑帧号作为图像标识,也即将各个帧图像以自身的逻辑帧号命名,从而能够直接通过图像的命名而确定出逻辑帧号相同的测试帧图像和参考帧图像。
[0138] 在本申请实施例中,逻辑帧号用于表征服务器接收到帧指令的先后顺序,当测试帧图像的逻辑帧号与参考帧图像的逻辑帧号相同时,说明该测试帧图像与参考帧图像的对局逻辑时间是一致的,此时确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,从而保证进行对比的两个图像的时间是没有发生错位的,进而保证图像之间相似度的准确性。
[0139] 确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,在实际实现时,可以是分别提取逻辑帧号相同的测试帧图像和参考帧图像的特征向量,从而基于两个特征向量确定测试帧图像和参考帧图像之间的特征相似度值,还可以基于逻辑帧号相同的测试帧图像和参考帧图像的颜色直方图,确定两者之间的颜色相似度值。在实际实现时,可以是将特征相似度值作为图像相似度值,还可以是将颜色相似度值确定为最终的图像相似度值,还可以将特征相似度值和颜色相似度值进行融合计算,确定最终的图像相似度值。
[0140] 步骤S104,基于各个图像相似度值,确定待测试视频的测试结果。
[0141] 这里,步骤S104在实现时,可以是首先判断各个图像相似度值中是否有低于预设的相似度阈值的目标相似度值,当各个图像相似度值中存在低于相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试不通过;当各个图像相似度值中不存在低于预设的相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试通过。
[0142] 步骤S105,输出该测试结果。
[0143] 这里,当测试结果为测试通过时,可以仅输出测试通过的测试结果;都能够测试结果为测试不通过时,为了能够直观的确定出测试帧图像和参考帧图像的差异,除了输出测试不通过的测试结果,还可以根据下述的步骤S106至步骤S108,将测试帧图像中与参考帧图像存在差异的区域标记出来,并输出标记后的测试帧图像和参考帧图像。
[0144] 本申请实施例提供的视频帧的测试方法,在获取到待测试视频和参考视频之后,首先提取待测试视频中各个测试帧图像的逻辑帧号,并提取该参考视频中各个参考帧图像的逻辑帧号,待测试视频和参考视频的版本信息不同,其中,待测试视频对应的是新版本信息,参考视频对应的是旧版本信息;进而再确定出逻辑帧号相同的测试帧图像和参考帧图像,由于逻辑帧号相同,因此能够保证进行对比的两个图像逻辑时间点完全一致,从而再分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值,并基于各个图像相似度值,确定待测试视频的测试结果,如此,由于进行对比的两个帧图像的逻辑时间是准确对应、不存在时间错位的,从而能够提高测试结果的精确度。
[0145] 在一些实施例中,当确定出测试结果,且该测试结果为测试不通过时,还可以执行以下步骤:
[0146] 步骤S106,确定该目标相似度值对应的测试帧图像中与参考帧图像中存在差异的差异图像区域。
[0147] 这里,步骤S106在实现时,可以是根据目标相似度值对应的测试帧图像的特征向量和参考帧图像的特征向量之间的差异信息确定差异图像区域。
[0148] 步骤S107,将该差异图像区域按照预设样式进行差异标记,得到标记后的测试帧图像。
[0149] 步骤S107在实现时,可以是将差异图像区域用预设颜色的预设图形标记出来,例如可以是用红色的矩形框标记出来,还可以是用绿色的正方形框标记出来,也可以是用黑色的圆形标记出来,从而得到标记后的测试帧图像。
[0150] 步骤S108,输出标记后的测试帧图像和对应的参考帧图像。
[0151] 这里,将标记后的测试帧图像和对应的参考帧图像一并输出,从而能够使得测试人员直观的看到测试帧图像和参考帧图像的区别。
[0152] 在一些实施例中,除了将测试帧图像中的差异图像区域标记出来,还可以将参考帧图像中的差异图像区域也标记出来,因此在步骤S108中,可以是将标记后的测试帧图像和对应的标记后的参考帧图像一并输出。
[0153] 在一些实施例中,在步骤S101之前,如图4所示,还需要执行步骤S001至步骤S002,以得到测试场景中的一个或多个对局协议:
[0154] 步骤S001,获取历史对局中产生的多个对局协议。
[0155] 这里,该历史对局可以是外网玩家在历史对局场景中的多个对局协议。在本申请实施例中,对局协议中包括玩家在对局过程中针对虚拟角色的操作信息,在客户端与服务器进行信息交互时需要根据对局协议将操作信息转换为统一的格式。例如,对局协议中第一个字段为操作类型,可以包括移动、释放技能等;第二个字段可以是虚拟对象的角色ID;第三个字段可以是执行动作的动作参数,例如,操作类型为走路时,动作参数可以包括移动方向、移动距离等,操作类型为释放技能时,动作参数可以包括技能ID、技能等级等。
[0156] 假设某一操作信息为控制角色A向正前方移动20步,该操作信息对应的对局协议可以是(移动;角色A;正前方,20步)。
[0157] 步骤S002,从该多个对局协议中,确定出待测试的测试场景对应的至少一个对局协议。
[0158] 这里,在实现时,可以是从多个对局协议中,根据测试需求确定待测试的测试场景对应的至少一个对局协议。在本申请实施例中,一个测试场景一般会包括多个对局协议。
[0159] 通过上述的步骤S001至步骤S002,能够实现测试场景的对局协议的选取过程,在选取出对局协议后,还可以保存该测试场景的对局协议,在需要还原测试场景的时候,只需要回放保存的对局协议即可,从而能够保证测试场景的一致性。
[0160] 在一些实施例中,还可以是通过人工的方式在局内构造测试场景,获取并保存所构造的测试场景对应的对局协议。例如,测试人员需要构造的测试场景为角色A释放技能S,然后再向左前方移动10步,最后执行击杀动作5次,那么测试人员可以利用测试客户端加入或组建一次对局,并在对局中执行上述一系列操作,并将这一系列操作的对局协议上传至服务器,服务器获取该测试场景对应的对局协议。
[0161] 如图4所示,在步骤S002之后还可以执行步骤S003A至步骤S005A以获取待测试视频,还可以通过步骤S003B至步骤S006B获取参考视频:
[0162] 步骤S003A,获取待测试的测试场景对应的至少一个对局协议。
[0163] 这里,对局协议中包括针对虚拟角色的操作信息。
[0164] 步骤S004A,向第一终端发送第一视频录制请求。
[0165] 这里,该第一视频录制请求中包括该至少一个对局协议。在一些实施例中,第一终端中安装有第一客户端,并且第一客户端已启动逻辑帧号显示和噪声过滤功能,第一终端在接收到第一视频录制请求后,可以获取到该第一视频录制请求中的至少一个对局协议,然后回放该对局协议,从而录制测试场景视频,也即待测试视频,并将待测试视频携带于第一视频录制响应中发送至服务器。
[0166] 步骤S005A,接收该第一终端发送的第一视频录制响应。
[0167] 这里,该第一视频录制响应中携带有该待测试视频。
[0168] 基于上述的步骤S003A至步骤S005A,获取待测试视频在实现时,可以是解析该第一视频录制响应,以获取待测试视频。
[0169] 步骤S003B,获取待测试的测试场景对应的至少一个对局协议和预设的参考版本信息。
[0170] 这里,对局协议中包括针对虚拟角色的操作信息,相对于待测试视频对应的版本信息,该参考版本信息为旧版本。
[0171] 步骤S004B,基于该参考版本信息,对该至少一个对局协议进行兼容处理,得到至少一个兼容后的对局协议。
[0172] 这里,由于不同版本的客户端对应的对局协议的格式往往是不同的,因此步骤S004B在实现时,需要首先获取该参考版本信息对应的对局协议格式,然后根据该对局协议格式,对测试场景对应的至少一个对局协议进行兼容处理,以得到对应的至少一个兼容后的对局协议。
[0173] 步骤S005B,向第二终端发送第二视频录制请求。
[0174] 这里,该第二视频录制请求中包括该至少一个兼容后的对局协议。在一些实施例中,第二终端中安装有第二客户端,该第二客户端为同一应用程序对应的不同版本的客户端,并且该第二客户端对应的是参考版本信息。第二客户端已启动逻辑帧号显示和噪声过滤功能,第二终端在接收到第二视频录制请求后,可以获取到该第二视频录制请求中的至少一个兼容后的对局协议,然后回放各个兼容后的对局协议,从而录制测试场景对应的参考视频,并将参考视频携带于第二视频录制响应中发送至服务器。
[0175] 步骤S006B,接收该第二终端发送的第二视频录制响应。
[0176] 这里,该第二视频录制响应中携带有该参考视频。
[0177] 基于上述的步骤S003B至步骤S006B,获取参考视频在实现时,可以是解析该第二视频录制响应,以获取参考视频。
[0178] 通过上述步骤S003A至步骤S005A以及步骤S003B至步骤S006B能够实现待测试视频和参考视频对应的测试场景是一致的,从而能够避免出现对比图像间的时间错位。
[0179] 在一些实施例中,上述的步骤S102“获取该待测试视频中各个测试帧图像的逻辑帧号”可以通过下述的步骤S1021至步骤S1023实现:
[0180] 步骤S1021,获取各个测试帧图像中预设的目标位置对应的各个目标图像区域。
[0181] 在第一终端和第二终端通过回放对局协议录制视频时,会启动逻辑帧号显示功能,使得各个帧图像的逻辑帧号显示在预设的目标位置,因此,服务器在获取各个帧图像的逻辑帧号时,可以从各个帧图像中分割出该目标位置对应的目标图像区域。
[0182] 步骤S1022,对各个目标图像区域进行灰度化处理,得到各个灰度化的目标图像区域。
[0183] 这里,目标图像区域一般为彩色图像,也就是红绿蓝(Red Green Blue,RGB)图像,将彩色图像转换为灰度图像可以认为是将R、G、B三个通道转换成一个通道。
[0184] 步骤S1022在实现时,可以是将目标图像区域中的各个像素点的R、G、B三个通道的值进行平均,得到各个像素点的灰度值;还可以是将各个像素点的R、G、B三个通道的值进行加权平均,得到各个像素点的灰度值。这里的直接求平均和加权平均都是示例性说明,在实际应用中还可以利用其他方式将目标图像区域转换为灰度化参考图像,本申请实施例不做限定。
[0185] 步骤S1023,对各个灰度化的目标图像区域进行字符识别,得到各个测试帧图像的逻辑帧号。
[0186] 这里,在实现时,可以是利用OCR方法对各个灰度化的目标图像区域进行字符识别,以识别出目标图像区域中所包含的字符,从而得到各个测试帧图像的逻辑帧号。
[0187] 通过上述的步骤S1021至步骤S1023即可识别出各个测试帧图像的逻辑帧号,获取参考视频中各个参考帧图像的逻辑帧号的实现过程与上述步骤S1021至步骤S1023的实现过程是类似的。由于在启动逻辑帧号显示功能时,设置的逻辑帧号的字体、大小都是规范、合理的,因此利用OCR进行字符识别基本能达到100%的准确率。
[0188] 在一些实施例中,在步骤S102之后还可以执行以下步骤:
[0189] 步骤S21,将各个测试帧图像的逻辑帧号,确定为各个测试帧图像的标识。
[0190] 这里,在实现时,也即将各个测试帧图像的逻辑帧号确定为各个测试帧图像的图像名,例如,某一测试帧图像的逻辑帧号为107,那么可以将该测试帧图像的图像名更新为107.jpg。
[0191] 步骤S22,基于各个测试帧图像的标识,存储各个测试帧图像。
[0192] 在一些实施例中,与步骤S21和步骤S22类似,将各个参考帧图像的逻辑帧号,确定为各个参考帧图像的标识,并基于各个参考帧图像的标识,存储各个参考帧图像;如此,各个参考帧图像的图像名以及各个测试帧图像的图像名都更新为了逻辑帧号,如此直接可以通过图像名就可以方便快捷的确定出逻辑帧号相同的测试帧图像和参考帧图像,从而实现精确对比。
[0193] 在一些实施例中,上述的步骤S103“分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值”可以通过以下步骤实现:
[0194] 步骤S1031,分别提取逻辑帧号相同的测试帧图像和参考帧图像的特征向量,对应得到各个测试特征向量和各个参考特征向量。
[0195] 这里,在实际实现时,可以利用ORB算法提取测试帧图像和参考帧图像的特征向量。在一些实施例中,还可以利用其它的特征提取算法提取帧图像的特征向量,例如可以是方向梯度直方图(HOG,Histogram of Oriented Gradient)特征提取算法、局部二值模式(LBP,Local Binary Patterns)特征提取算法等。
[0196] 步骤S1032,基于各个测试特征向量和对应的各个参考特征向量,确定各个逻辑帧号相同的测试帧图像和参考帧图像之间的各个特征相似度值。
[0197] 这里,在实现时,可以是计算测试特征向量和参考特征向量的汉明距离,从而根据两者之间的汉明距离确定测试帧图像和参考帧图像之间的特征相似度值。
[0198] 在实际实现时,可以直接利用ORB算法确定各个逻辑帧号相同的测试帧图像和参考帧图像之间的各个特征相似度值。
[0199] 步骤S1033,分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的各个颜色相似度值。
[0200] 这里,步骤S1033在实现时,可以分别确定逻辑帧号相同的测试帧图像和参考帧图像的颜色直方图,然后基于测试帧图像和参考帧图像的颜色直方图,确定两者之间的颜色相似度值。
[0201] 步骤S1034,基于各个特征相似度值和对应的各个颜色相似度值,确定各个图像相似度值。
[0202] 这里,步骤S1034在实现时,可以是将各个特征相似度值和对应的各个颜色相似度进行融合计算,得到各个图像相似度值,进一步地,可以是将特征相似度值和颜色相似度值进行算术平均,得到最终的图像相似度值,还可以是将特征相似度值和颜色相似度值进行加权平均,得到最终的图像相似度值。通过将特征相似度值和颜色相似度值进行融合计算,从而得到综合的图像相似度值,能够提高相似度计算的准确性。
[0203] 在一些实施例中,如果为了提高计算效率,或者降低计算复杂度,还可以是仅将特征相似度值作为图像相似度值,或者仅将颜色相似度值作为图像相似度值,这样不仅能够保证计算效率,还能得到相对准确的相似度值。
[0204] 基于前述的实施例,本申请实施例再提供一种视频帧图像的测试方法,应用于图1所示的网络架构,图5为本申请实施例提供的视频帧图像的测试方法的再一种实现流程示意图,如图5所示,该流程包括:
[0205] 步骤S501,第三终端获取在游戏对局中用户的操作信息。
[0206] 这里,第三终端中安装有第一客户端,当第三终端启动第一客户端并进入游戏对局时,用户可以触发用于控制虚拟角色的操作,第三终端获取用户的操作信息。
[0207] 步骤S502,第三终端将获取到的操作信息转换为对局协议,并将该对局协议发送至服务器。
[0208] 这里,第三终端基于第一客户端对应的版本信息所设置的对局协议的格式,将获取到的操作信息转换为对局协议,并将该对局协议发送至服务器。在游戏对局过程中,客户端每一帧都会将玩家的操作指令转换为对局协议上报给服务器,服务器收集齐了所有玩家在这一帧的指令或者服务端的时间已经到达了该帧的时间点,服务端统一将此帧产生的指令广播给客户端,客户端收到后,再按照服务端广播的指令进行相应帧的表现处理,然后步进逻辑帧,所有的游戏逻辑计算都放在了客户端,服务端只负责转发每一帧的消息。
[0209] 步骤S503,在游戏对局结束后,服务器获取该游戏对局中产生的多个对局协议。
[0210] 步骤S504,服务器从该多个对局协议中,确定出待测试的测试场景对应的至少一个对局协议。
[0211] 步骤S505,服务器向第一终端发送第一视频录制请求
[0212] 这里,该第一视频录制请求中包括该至少一个对局协议。
[0213] 步骤S506,第一终端响应于该第一视频录制请求,回放该至少一个对局协议,并录制回放该至少一个对局协议时的视频,得到待测试视频。
[0214] 这里,步骤S506可以通过以下步骤实现:
[0215] 步骤S5061,响应于该第一视频录制请求,启动逻辑帧号显示和噪声过滤功能。
[0216] 这里,逻辑帧号显示功能和噪声过滤功能可以是独立的,可以单独启动逻辑帧号显示功能,还可以单独启动噪声过滤功能;逻辑帧号显示功能和噪声过滤功能也可以是集成的一个综合功能,也就是说,逻辑帧号显示和噪声过滤功能是同时启动的。
[0217] 步骤S5062,回放所述至少一个对局协议,以执行该至少一个对局协议包括的针对虚拟角色的操作信息,得到各个测试帧图像。
[0218] 这里,第一终端回放各个对局协议,即可在第一客户端中自动依次执行该至少一个对局协议包括的针对虚拟角色的操作信息,得到各个测试帧图像。这一般来说,一个对局协议一般对应有多个测试帧图像。
[0219] 步骤S5063,对各个测试帧图像进行噪声过滤处理,得到处理后的各个测试帧图像。
[0220] 在本申请实施例中,噪声指的是与角色形象、技能特效无关的因素,比如背景、地图等,这些噪声可能会导致所有图片都被标记不一样。因此在本申请实施例中需要将背景、地图等噪声都过滤掉,从而得到处理后的各个测试帧图像。
[0221] 步骤S5064,获取各个测试帧图像的逻辑帧号,并在处理后的各个测试帧图像中的目标图像区域增加对应的逻辑帧号。
[0222] 这里,可以从各个测试帧图像的图像属性信息中获取各个逻辑帧号,并将获取到的各个逻辑帧号按照预设的呈现格式增加至处理后的各个测试帧图像中预设的目标图像区域。
[0223] 在一些实施例中,还可以是在启动逻辑帧号显示和噪声过滤功能之后,首先获取各个测试帧图像的逻辑帧号,然后将各个测试帧图像中的目标图像区域增加对应的逻辑帧号,最后再进行噪声过滤,以过滤掉除去角色形象、技能特效、逻辑帧号无关的因素,从而得到各个处理后的测试帧图像。
[0224] 步骤S5065,在播放所述各个测试帧图像时进行视频录制,在录制完成后得到待测试视频。
[0225] 在一些实施例中,在步骤S5065之前,第一终端还需要首先获取自身录制视频时的渲染帧率和逻辑帧率;当该渲染帧率和逻辑帧率不同时,将该渲染帧率更新为该逻辑帧率,或者,将该逻辑帧率更新为该渲染帧率,以保证渲染帧率和逻辑帧率一致。
[0226] 只有在渲染帧率和逻辑帧率一致的情况下,才能保证一个逻辑帧号对应有唯一的一个帧图像,当渲染帧率大于逻辑帧率时,一个逻辑帧号可能对应有一个或多个帧图像,当对应有多个帧图像时,这多个帧图像并不能保证是完全一致的,这样在逻辑帧号相同的会有多个测试帧图像,也会有多个参考帧图像,不仅进行相似度计算时会明显增加计算量,并且还会降低计算精度。
[0227] 步骤S507,第一终端将携带有该待测试视频的第一视频录制响应发送给该服务器。
[0228] 步骤S508,服务器获取预设的参考版本信息,并基于该参考版本信息,对该至少一个对局协议进行兼容处理,得到至少一个兼容后的对局协议。
[0229] 步骤S509,服务器向第二终端发送第二视频录制请求。
[0230] 这里,第二视频录制请求中包括该至少一个兼容后的对局协议。
[0231] 步骤S510,第二终端响应于该第二视频录制请求,回放该至少一个兼容后的对局协议,并进行视频录制,得到参考视频。
[0232] 步骤S510的实现过程与步骤S506的实现过程是类似的,在实际实现时可以参考步骤S506的实现过程。
[0233] 步骤S511,第二终端将携带有该参考视频的第二视频录制响应发送给该服务器。
[0234] 步骤S512,服务器解析第一视频录制响应,以获取待测试视频,并解析第二视频录制响应,以获取参考视频。
[0235] 步骤S513,服务器获取该待测试视频中各个测试帧图像的逻辑帧号,并获取该参考视频中各个参考帧图像的逻辑帧号。
[0236] 这里,服务器获取到待测试视频和参考视频后,对待测试视频和参考视频分别进行解析,从而得到对应的各个测试帧图像和各个参考帧图像;然后再获取各个测试帧图像的逻辑帧号,以及各个参考帧图像的逻辑帧号。
[0237] 在一些实施例中,在获取到测试帧图像的逻辑帧号和参考帧图像的逻辑帧号之后,让逻辑帧号确定为各个帧图像的图像标识,并进行存储。
[0238] 步骤S514,服务器分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值。
[0239] 在本申请实施例中,可以是通过ORB算法和颜色直方图算法对不同版本同一逻辑帧号的测试帧图像和参考帧图像进行相似度计算,得到综合的图像相似度值。
[0240] 步骤S515,服务器判断各个图像相似度值中是否存在低于预设的相似度阈值的目标相似度值。
[0241] 这里,当各个图像相似度值中存在低于相似度阈值的目标相似度值时,进入步骤S516;当各个图像相似度中不存在低于相似度阈值的目标相似度值时,进入步骤S520。
[0242] 步骤S516,服务器确定待测试视频的测试结果为测试不通过。
[0243] 步骤S517,服务器确定该目标相似度值对应的测试帧图像中与参考帧图像中存在差异的差异图像区域。
[0244] 步骤S518,服务器将该差异图像区域按照预设样式进行差异标记,得到标记后的测试帧图像。
[0245] 步骤S519,服务器输出测试结果,并输出标记后的测试帧图像和对应的参考帧图像。
[0246] 步骤S520,服务器确定待测试视频的测试结果为测试通过,并输出测试结果。
[0247] 需要说明的是,本实施例中与其它实施例中相同步骤或概念的解释可以参考其它实施例中的描述。
[0248] 在本申请实施例提供的视频帧图像的测试方法中,第三终端将游戏对局中产生的对局协议上传至服务器,服务器根据测试需求选取待测试场景对应的对局协议,从而实现测试场景对局协议的录制,然后再将对局协议下发给第一终端,以请求第一终端进行场景视频录制,并且在录制之前启动逻辑帧号显示和噪声过滤功能,使得第一终端录制的待测试视频中的各个测试帧图像中显示有逻辑帧号,服务器再对对局协议进行兼容化处理,得到兼容后的对局协议,并将兼容后的对局协议发送至第二终端,由第二终端基于兼容后的对局协议录制参考视频,并且参考视频中的各个参考帧图像中同样显示有逻辑帧号,如此,服务器能够将逻辑帧号相同的测试帧图像和参考帧图像进行对比,以确定两者之间的相似度,这样能够保证进行对比的图像在逻辑时间上是一致的,从而避免出现时间错位,进而能够提高测试准确率,因此利用本申请实施例提供的视频帧图像的测试方法能够取代之前的人工测试,大大降低了人力成本,并且随着版本的迭代,录制的测试场景越来越多,保存的对局协议也越多,测试的场景也越来越全面。
[0249] 下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
[0250] 在本申请实施例提供的视频帧图像的测试方法中,以游戏视频为例进行说明。
[0251] 图6为本申请实施例提供的视频帧图像的测试方法的再一种实现流程示意图,如图6所示,该流程包括:
[0252] 步骤S601,录制测试场景。
[0253] 这里,步骤S601可以通过如图6所示的以下步骤实现:
[0254] 步骤S6011,录制皮肤测试场景。
[0255] 这里,实际实现过程中,可以对外网玩家完整对局场景中的协议进行切割,选择自己需要的片段保存成测试场景,也可以通过人工的方式在局内构造皮肤测试场景。
[0256] 步骤S6012,保存场景对局协议。
[0257] 这里,在实现时,可以是将玩家对局涉及到的帧协议保存起来。
[0258] 步骤S6013,获取回放文件集合。
[0259] 这里,每个测试场景对应一个回放文件,每个回放文件中包括该测试场景中涉及的对局协议,一般来说,每个回放文件中包括多个对局协议,多个测试场景的回放文件构成了回放文件集合。
[0260] 如图7A所示,服务器701获取玩家通过游戏客户端702进行游戏对局时的对局视频,并录制皮肤测试场景,服务器再提取出玩家在游戏对局中涉及的帧协议,从而得到回放文件集合。
[0261] 步骤S602,回放场景并提取图像数据。
[0262] 这里,步骤S602可以通过如图6所示的步骤S6021至步骤S6024实现:
[0263] 步骤S6021,打开逻辑帧号显示功能。
[0264] 步骤S6022,噪声过滤。
[0265] 在游戏客户端中添加逻辑帧号显示和噪声过滤的模块,用于游戏界面显示逻辑帧号以及噪声的过滤,步骤S6021和步骤S6022在实现时,可以通过启动该模块,打开逻辑帧号显示功能,并进行噪声过滤。
[0266] 在本申请实施例中,噪声主要是指游戏界面与测试内容不相干的因素。
[0267] 步骤S6023,回放对局协议。
[0268] 这里,在客户端回放之前录制好的协议文件还原测试场景。
[0269] 步骤S6024,通过录制软件录制皮肤测试场景视频。
[0270] 图7B为本申请实施例提供的回放场景并提取图像数据的硬件架构示意图,如图7B所示,游戏客户端702从服务器701获取回放文件集合,并基于回放文件集合中的帧协议,还原测试场景,进而录制回放视频。
[0271] 步骤S603,差异检测。
[0272] 图7C为本申请实施例提供的差异检测的硬件架构示意图,如图7C所示,差异检测是由服务器实现的,服务器执行图像差异检测算法,获取版本间差异图片。
[0273] 在本申请实施例中,步骤S603可以通过如图6所示的步骤S6031至步骤S6034实现:
[0274] 步骤S6031,根据逻辑帧号提取图片。
[0275] 在实现时,可以利用OCR算法,识别视频中的每一帧图像的逻辑帧号位置,得到逻辑帧号,并按逻辑帧号进行图片的存储。
[0276] 步骤S6032,相似度计算。
[0277] 在本申请实施例中,通过ORB和颜色直方图算法对不同版本同一逻辑帧号的图片进行相似度计算,得到综合评分。
[0278] 步骤S6033,差异标记。
[0279] 在实现时,如果综合评分低于设定的阈值,则将差异部分通过红色矩形框标记出来。
[0280] 图8为本申请实施例提供的视频帧图像的测试方法的再一种实现流程示意图,如图8所示,该流程包括:
[0281] 步骤S801,录制皮肤测试场景。
[0282] 这里,对外网玩家完整对局场景中的协议进行切割,选择自己需要的片段保存成测试场景,也可以通过人工的方式在局内构造皮肤测试场景。
[0283] 步骤S802,保存场景对局协议。
[0284] 步骤S803,获取回放文件集合。
[0285] 这里,将玩家对局内涉及到的帧协议命令保存起来,即得到回放文件集合。
[0286] 步骤S804,游戏客户端在游戏界面增加逻辑帧号显示。
[0287] 这里,视频数据的抽帧策略有以下几种:
[0288] 一、等时抽帧或场景抽帧。
[0289] 在实现时,可以采用ffmpeg进行等时抽帧或者场景抽帧。这种方式对于应用场景为视频去重比较适合,但是对于皮肤特效的版本间对比会比较粗糙。
[0290] 二、按表现帧号提取图片,同帧号图片进行对比。
[0291] 游戏的表现依赖表现帧进行更新,逻辑依赖以逻辑帧进行更新,逻辑与表现分离。对于表现帧,unity引擎的每次update时间并不固定,版本间对比的时候,一旦错开一帧,后续可能会一直错帧。
[0292] 图9为按表现帧号进行抽帧的示意图,如图9所示,如果在第M+1个表现帧出现错帧,虽然后续表现帧号一致,但是逻辑时间是没有对准的,因此渲染的结果会不一致。
[0293] 三、按逻辑帧号进行图片提取,同帧号图片进行对比。
[0294] 添加逻辑帧号显示模块,在游戏界面显示具体的逻辑帧号,便于后续提取相应帧号的图片。
[0295] 在本申请实施例中,采用第三种策略进行视频抽帧,逻辑帧号显示位置为图10所示矩形框标注区域1001。
[0296] 步骤S805,游戏客户端进行噪声过滤。
[0297] 这里的噪声指的是跟皮肤、技能特效无关的因素比如地图资源差异,如果不去除这些差异,可能会导致所有图片都被标记不一样。将噪声过滤后得到如图11所示的皮肤专用测试地图,在图11中仅包括了角色1101和角色1102的两个角色图像。
[0298] 步骤S806,游戏客户端进行帧率、粒子系统初始随机种子设置。
[0299] 这里,Unity特效的particle system组件,有许多随机事件,比如粒子发射角度等等,同样一个特效,连续播放两次可能不一样,所以在特效加载的时候,需要将自动随机种子(Auto Random Seed)设置成False,同时将初始随机种子设置成为0。
[0300] 如果游戏逻辑帧率和表现帧率不一致,会有可能同一逻辑帧被渲染两次,有两个状态,为了保证同一逻辑帧只有一个渲染状态,需要把逻辑帧率和表现帧率设置一致。
[0301] 步骤S807,采集录制回放视频。
[0302] 这里,在完成对帧率、随机种子的设置之后,可以进行录制回放视频,并进行视频采集。
[0303] 步骤S808,游戏客户端将回放视频发送至服务器。
[0304] 步骤S809,服务器根据游戏逻辑帧号提取图片。
[0305] 图12A为本申请实施例提供的图片提取方法的实现过程示意图,如图12A所示,该过程包括:
[0306] 步骤S8091,获取回放视频;
[0307] 步骤S8092,对回放视频进行解析,得到各个视频帧。
[0308] 步骤S8093,截取逻辑帧号位置对应的图像区域,并将该图像区域进行灰度化。
[0309] 这里,图12B为本申请实施例提供的图片提取方法的界面示意图,如图12B所示,视频帧中的逻辑帧号位置为图像区域1201,将该图像区域截取出来,并灰度化,得到1202所示的灰度图像。
[0310] 步骤S8094,对灰度图像进行OCR识别。
[0311] 这里,在实现时,可以利用tesseract+自己训练好的数字模型库进行OCR识别,由于字体规范,目前准确率可以达到100%。
[0312] 步骤S8095,按照逻辑帧号进行图片存储。
[0313] 这里,可以如图12B所示的1203所示,直接将图片标识设置为识别出的逻辑帧号,例如,可以将图片命名为346.jpg。
[0314] 步骤S810,服务器将不同版本统一逻辑帧号的图片进行相似度计算。
[0315] 这里,图13为本申请实施例提供的相似度计算的实现流程示意图,如图13所示,该流程包括:
[0316] 步骤S8101,对不同版本相同帧号图片进行ORB相似度计算,得到整个图片的英雄、技能、特效位置和形状相似度。
[0317] 步骤S8102,对不同版本相同帧号图片进行精确对比。
[0318] 步骤S8103,获取差异区域颜色直方图,从而得到差异区域的颜色相似度。
[0319] 步骤S8104,将ORB特征匹配相似度和颜色相似度进行综合评价,得到综合评价结果。
[0320] 步骤S811,服务器基于相似度计算结果进行差异标记。
[0321] 这里,如果综合评价结果低于设定的阈值,则会使用矩形框将差异区域标注出来。图14A为本申请实施例提供的差异标记界面示意图,对比图14A中的1401和1402可以看出,两者在地面上的装置特效不一致,此时将1401中地面上的装置特效用矩形框14011标记出来。
[0322] 图14B为本申请实施例提供的另一个差异标记界面示意图,对比图14B中的1411和1412可以看出,对于角色A来说,1411中是有角色A的影子的,1412中没有角色A的影子,因此,1411中影子区域用矩形框14111标记出来。
[0323] 图14C为本申请实施例提供的再一个差异标记界面示意图,对比图14C中的1421和1422可以看出,角色B在1421和1422中显示的大小是不一样的,此时可以是将1421中的角色B用矩形框14211标记出来。
[0324] 需要说明的是,图14A、图14B和图14C中分别在1401、1411、1421中将差异区域标记出来,在实际实现时,还可以是将1402、1412和1422中的差异区域标记出来。
[0325] 在本申请实施例提供的视频帧图像的测试方法中,通过录制测试场景的整个协议,并保存起来,并在新旧版本分别回放,从而能够保证新旧版本测试场景一致性;并且将游戏里的逻辑帧号渲染到游戏界面,然后通过OCR识别逻辑帧号,并保存成对应图片,后续按逻辑帧号进行图片的对比,保证所对比的两个图片逻辑时间是一致的,从而能够提高检测的准确性,如此利用本申请实施例提供的视频帧图像的测试方法能够取代人工测试,从而降低人力成本,并且精准性也能够得到很大提升。
[0326] 下面继续说明本申请实施例提供的视频帧图像的测试装置354实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器350的视频帧图像的测试装置354中的软件模块可以是服务器300中的视频帧图像的测试装置,包括:
[0327] 第一获取模块3541,用于获取待测试视频和参考视频,该待测试视频和参考视频的版本信息不同;
[0328] 第二获取模块3542,用于获取该待测试视频中各个测试帧图像的逻辑帧号,并获取该参考视频中各个参考帧图像的逻辑帧号;
[0329] 第一确定模块3543,用于分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的相似度,得到各个图像相似度值;
[0330] 第二确定模块3544,用于基于各个图像相似度值,确定待测试视频的测试结果;
[0331] 第一输出模块3545,用于输出该测试结果。
[0332] 在一些实施例中,该第二获取模块3542还用于:
[0333] 获取各个测试帧图像中预设的目标位置对应的各个目标图像区域;
[0334] 对各个目标图像区域进行灰度化处理,得到各个灰度化的目标图像区域;
[0335] 对各个灰度化的目标图像区域进行字符识别,得到各个测试帧图像的逻辑帧号。
[0336] 在一些实施例中,该装置还包括:
[0337] 第三确定模块,用于将各个测试帧图像的逻辑帧号,确定为各个测试帧图像的标识;
[0338] 存储模块,用于基于各个视频帧的标识,存储各个测试帧图像。
[0339] 在一些实施例中,该第一确定模块3543还用于:
[0340] 分别提取逻辑帧号相同的测试帧图像和参考帧图像的特征向量,对应得到各个测试特征向量和各个参考特征向量;
[0341] 基于各个测试特征向量和对应的各个参考特征向量,确定各个逻辑帧号相同的测试帧图像和参考帧图像之间的各个特征相似度值;
[0342] 分别确定逻辑帧号相同的测试帧图像和参考帧图像之间的各个颜色相似度值;
[0343] 基于各个特征相似度值和对应的各个颜色相似度值,确定各个图像相似度值。
[0344] 在一些实施例中,该第一确定模块3543还用于:
[0345] 将各个特征相似度值和对应的各个颜色相似度进行融合计算,得到各个图像相似度值。
[0346] 在一些实施例中,该第二确定模块3544还用于:
[0347] 当各个图像相似度值中存在低于预设的相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试不通过;
[0348] 当各个图像相似度值中不存在低于预设的相似度阈值的目标相似度值时,确定待测试视频的测试结果为测试通过。
[0349] 在一些实施例中,该装置还包括:
[0350] 第四确定模块,用于当该测试结果为测试不通过时,确定该目标相似度值对应的测试帧图像中与参考帧图像中存在差异的差异图像区域;
[0351] 标记模块,用于将该差异图像区域按照预设样式进行差异标记,得到标记后的测试帧图像;
[0352] 第二输出模块,用于输出标记后的测试帧图像和对应的参考帧图像。
[0353] 在一些实施例中,该装置还包括:
[0354] 第三获取模块,用于获取待测试的测试场景对应的至少一个对局协议,该对局协议中包括针对虚拟角色的操作信息;
[0355] 第二发送模块,用于向第一终端发送第一视频录制请求,该第一视频录制请求中包括该至少一个对局协议;
[0356] 第二接收模块,用于接收该第一终端发送的第一视频录制响应,该第一视频录制响应中携带有该待测试视频。
[0357] 在一些实施例中,该装置还包括:
[0358] 第四获取模块,用于获取待测试的测试场景对应的至少一个对局协议和预设的参考版本信息,该对局协议中包括针对虚拟角色的操作信息;
[0359] 兼容处理模块,用于基于该参考版本信息,对该至少一个对局协议进行兼容处理,得到至少一个兼容后的对局协议;
[0360] 第三发送模块,用于向第二终端发送第二视频录制请求,该视频录制请求中包括该至少一个兼容后的对局协议;
[0361] 第三接收模块,用于接收该第二终端发送的第二视频录制响应,该第二视频录制响应中携带有该参考视频。
[0362] 在一些实施例中,该装置还包括:
[0363] 第五获取模块,用于获取历史对局中产生的多个对局协议;
[0364] 第五确定模块,用于从该多个对局协议中,确定出待测试的测试场景对应的至少一个对局协议。
[0365] 需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0366] 本申请实施例再提供一种视频帧图像的测试装置,该装置为存储在客户端中的软件模块,在本申请实施例中,该装置包括:
[0367] 第一接收模块,用于接收服务器发送的第一视频录制请求,该第一视频录制请求中包括至少一个对局协议;
[0368] 视频录制模块,用于响应于该第一视频录制请求,回放该至少一个对局协议,并录制回放所述至少一个对局协议时的视频,得到待测试视频,
[0369] 该待测试视频中的各个测试帧图像中预设的目标图像区域中呈现有各个测试帧图像的逻辑帧号;
[0370] 第一发送模块,用于将携带有该待测试视频的第一视频录制响应发送给该服务器。
[0371] 在一些实施例中,该视频录制模块,还用于:
[0372] 响应于所述第一视频录制请求,启动逻辑帧号显示和噪声过滤功能;
[0373] 回放所述至少一个对局协议,以执行所述对局协议包括的针对虚拟角色的操作信息,得到各个测试帧图像;
[0374] 对所述各个测试帧图像进行噪声过滤处理,得到处理后的各个测试帧图像;
[0375] 获取所述各个测试帧图像的逻辑帧号,并在处理后的各个测试帧图像中的目标图像区域增加对应的逻辑帧号;
[0376] 在播放所述各个测试帧图像时进行视频录制,在录制完成后得到待测试视频。
[0377] 在一些实施例中,该装置还包括:
[0378] 第六获取模块,用于获取自身播放视频时的渲染帧率和逻辑帧率;
[0379] 帧率更新模块,用于当该渲染帧率和逻辑帧率不同时,将该渲染帧率更新为该逻辑帧率,或者,将该逻辑帧率更新为该渲染帧率。
[0380] 需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0381] 本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。
[0382] 在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD‑ROM,Compact Disk‑Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0383] 在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0384] 作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper Text Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0385] 以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。