本申请涉及计算机技术领域,尤其涉及人工智能技术领域。
背景技术:
近两年,增强现实(augmentedreality,简称ar)技术备受关注,尤其是在动态表情制作上有了较广泛的应用。以制作包括ar动态表情的视频数据为例,为了便于描述,可以将ar动态表情渲染引擎暂称作ar动态表情软件开发工具包(softwaredevelopmentkit,简称sdk),ar动态表情sdk先解析视频数据中的人脸信息和素材包配置,并将素材包中的虚拟套件渲染到视屏数据中的指定位置,从而完成ar动态表情的制作。
为了确保制作得到的ar动态表情的正确性,在使用素材包中的虚拟套件制作ar动态表情之前,需要先通过ar动态表情测试实例对素材包中的参数和ar动态表情sdk中的渲染参数进行测试,以确保素材包中的参数和ar动态表情sdk中的渲染参数的正确性,需要先获取较多的ar动态表情测试实例,用于测试素材包中的参数和ar动态表情sdk中的渲染参数,从而确保素材包中的参数和ar动态表情sdk中的渲染参数的正确性。
现有技术中,在获取ar动态表情测试实例时,每一次获取ar动态表情测试实例,均需要用户手动打开摄像头录制视频数据,且可能需要重复修改素材包中的参数或者渲染函数,还要将修改后的素材包中的参数或者渲染函数进行打包,导入至ar动态表情sdk进行渲染才能得到ar动态表情测试实例,这样采用人工方式获取ar动态表情测试实例,使得ar动态表情测试实例的获取效率较低。
技术实现要素:
本申请实施例提供一种测试实例的获取方法、装置和电子设备,提高了测试实例的获取效率。
第一方面,本申请实施例提供一种测试实例的获取方法,该测试实例的获取方法可以包括:
确定虚拟套件对应的触发条件,以及所述虚拟套件对应的目标位置。
在基础视频库中获取所述触发条件对应的视频数据。
在满足所述触发条件时,将所述虚拟套件渲染在所述视频数据中的目标位置,生成测试实例。
可以看出,本申请实施例提供的测试实例的获取方法,与现有技术不同的是,本申请实施例是通过预先在基础视频库中存储触发条件对应的视频数据,使得可以直接在基础视频库中获取触发条件对应的视频数据,并在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,自动生成测试实例置,该生成过程无需人工参与,避免了手动打开摄像头录制视频数据,且重复修改素材包中的参数或者渲染函数而导致测试实例的获取效率较低,从而提高测试实例的获取效率。
在一种可能的实现方式中,所述确定虚拟套件对应的触发条件,以及所述虚拟套件对应的目标位置,包括:
获取所述视频数据对应的专属素材包参数。
基于所述专属素材包参数和通用素材包参数,生成所述视频片段对应的素材包;其中,所述素材包中包括所述虚拟套件、所述触发条件、以及所述目标位置。
这样在生成视频片段对应的素材包后,由于该素材包中定义了虚拟套件、虚拟套件对应的触发条件,以及用于虚拟套件的渲染位置的素材包,就可以确定虚拟套件对应的触发条件,以及虚拟套件对应的目标位置,之后,就可以根据虚拟套件对应的触发条件,在基础视频库中获取到该触发条件对应的视频数据,并在满足触发条件时,将视频片段对应的素材包中的虚拟套件渲染在视频数据中的目标位置。
在一种可能的实现方式中,若触发条件包括至少两个动作触发,则在基础视频库中获取所述触发条件对应的视频数据,包括:
在所述基础视频库中,查找所述至少两个动作触发中,每一个动作触发各自对应的视频片段;将所述每一个动作触发各自对应的视频片段进行合成,得到所述触发条件对应的视频数据,这样只需要用户拍摄每一个动作触发各自对应的视频片段,并将其存储在基础视频库中即可,无需再手动打开摄像头拍摄包括至少两个动作触发的视频数据,从而提高了视频数据的获取效率。
在一种可能的实现方式中,所述在所述基础视频库中,查找所述至少两个动作触发中,每一个动作触发各自对应的视频片段之前,还包括:
拍摄每一个动作触发各自对应的视频片段,将所述每一个动作触发各自对应的视频片段存储在所述基础视频库中,这样后续就可以在获取包括面部表情动作触发的视频数据时,均可以通过该基础表情库获取,无需每次均需要用户手动打开摄像头录制视频数据,从而提高了视频数据的获取效率。
在一种可能的实现方式中,所述方法还包括:
基于目标检测技术,对所述测试实例中的所述虚拟套件进行检测。
输出第一检测结果;所述第一检测结果用于指示所述虚拟套件是否被渲染在所述视频数据中的目标位置。
通过对测试实例中的虚拟套件进行检测,可以有效地确定渲染得到的测试实例中没有虚拟套件,以确保生成的测试实例为可用性较高的测试实例,提高了测试实例的可用性。
在一种可能的实现方式中,所述方法还包括:
基于帧率测试技术,对所述测试实例的播放流畅度进行检测。
输出第二检测结果;所述第二检测结果用于指示所述测试实例的播放过程中是否存在掉帧的现象。
通过对测试实例的播放流畅度进行检测,可以有效地确定测试实例的播放过程中是否存在掉帧的现象,以确保生成的测试实例为可用性较高的测试实例,提高了测试实例的可用性。
在一种可能的实现方式中,所述方法还包括:
基于图像检测技术,对所述测试实例的播放过程进行异常检测;所述异常包括花屏、黑屏、不规则色块或屏幕线条异常中的至少一种。
输出第三检测结果;所述第三检测结果用于指示所述测试实例的播放过程中是否存在异常。
通过对测试实例的播放过程进行异常检测,可以有效地确定测试实例的播放过程中是否存在异常,以确保生成的测试实例为可用性较高的测试实例,提高了测试实例的可用性。
第二方面,本申请实施例还提供一种测试实例的获取装置,该测试实例的获取装置可以包括:
获取模块,用于确定虚拟套件对应的触发条件,以及所述虚拟套件对应的目标位置;并在基础视频库中获取所述触发条件对应的视频数据。
处理模块,用于在满足所述触发条件时,将所述虚拟套件渲染在所述视频数据中的目标位置,生成测试实例。
在一种可能的实现方式中,所述获取模块,具体用于获取所述视频数据对应的专属素材包参数;并基于所述专属素材包参数和通用素材包参数,生成所述视频片段对应的素材包;其中,所述素材包中包括所述虚拟套件、所述触发条件、以及所述目标位置。
在一种可能的实现方式中,若触发条件包括至少两个动作触发;所述获取模块,具体用于在所述基础视频库中,查找所述至少两个动作触发中,每一个动作触发各自对应的视频片段;并将所述每一个动作触发各自对应的视频片段进行合成,得到所述触发条件对应的视频数据。
在一种可能的实现方式中,所述获取模块,还用于拍摄每一个动作触发各自对应的视频片段;并将所述每一个动作触发各自对应的视频片段存储在所述基础视频库中。
在一种可能的实现方式中,所述测试实例的获取装置还包括检测模块和输出模块。
所述检测模块,用于基于目标检测技术,对所述测试实例中的所述虚拟套件进行检测。
所述输出模块,用于输出第一检测结果;所述第一检测结果用于指示所述虚拟套件是否被渲染在所述视频数据中的目标位置。
在一种可能的实现方式中,所述检测模块,还用于基于帧率测试技术,对所述测试实例的播放流畅度进行检测。
所述输出模块,还用于输出第二检测结果;所述第二检测结果用于指示所述测试实例的播放过程中是否存在掉帧的现象。
在一种可能的实现方式中,所述检测模块,还用于基于图像检测技术,对所述测试实例的播放过程进行异常检测;所述异常包括花屏、黑屏、不规则色块或屏幕线条异常中的至少一种。
所述输出模块,还用于输出第三检测结果;所述第三检测结果用于指示所述测试实例的播放过程中是否存在异常。
第三方面,本申请实施例还提供一种电子设备,该电子设备可以包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面任一种可能的实现方式所述的测试实例的获取方法。
第四方面,本申请实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述第一方面任一种可能的实现方式所述的测试实例的获取方法。
第五方面,本申请实施例还提供一种测试实例的获取方法,该测试实例的获取方法可以包括:
确定虚拟套件对应的触发条件。
在基础视频库中获取所述触发条件对应的视频数据。
在满足所述触发条件时,将所述虚拟套件渲染在所述视频数据中,生成测试实例。
上述申请中的一个实施例具有如下优点或有益效果:在获取测试实例时,通过确定虚拟套件对应的触发条件,以及虚拟套件对应的目标位置;并在基础视频库中获取触发条件对应的视频数据;使得在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,生成测试实例。与现有技术不同的是,本申请实施例是通过预先在基础视频库中存储触发条件对应的视频数据,使得可以直接在基础视频库中获取触发条件对应的视频数据,并在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,自动生成测试实例置,该生成过程无需人工参与,避免了手动打开摄像头录制视频数据,且重复修改素材包中的参数或者渲染函数而导致测试实例的获取效率较低,从而提高测试实例的获取效率。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是可以实现本申请实施例的测试实例的获取方法的一种场景图;
图2是根据本申请实施例提供的测试实例的获取方法的流程示意图;
图3是根据本申请实施例提供的系统架构的示意图;
图4是根据本申请实施例提供的面部表情动作划分的示意图;
图5是根据本申请第一实施例提供的测试实例的获取方法的流程示意图;
图6是根据本申请实施例提供的包括虚拟套件猫耳朵的图像的示意图;
图7是根据本申请第二实施例提供的测试实例的获取方法的流程示意图;
图8是根据本申请实施例提供的包括有虚拟套件猫耳朵的图像的示意图;
图9是根据本申请第三实施例提供的测试实例的获取装置90的结构示意图;
图10是根据本申请实施例的测试实例的获取方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本申请的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。在本申请的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。
图1是可以实现本申请实施例的测试实例的获取方法的一种场景图,示例的,请结合图1所示,该测试实例的获取方法可以应用于移动端增强现实(augmentedreality,简称ar)动态表情测试的场景中。为了确保素材包中的参数和ar动态表情sdk中的渲染参数的正确性,需要先获取较多的ar动态表情测试实例,用于测试素材包中的参数和ar动态表情sdk中的渲染参数。由于现有技术中,每一次获取ar动态表情测试实例,均需要用户手动打开摄像头录制视频数据,以将素材包中的虚拟套件渲染至视频数据中得到ar动态表情测试实例,但是在渲染过程中,可能需要重复修改素材包中的参数或者渲染函数,还要将修改后的素材包中的参数或者渲染函数进行打包,导入至ar动态表情sdk进行渲染才能得到ar动态表情测试实例,这样采用人工方式获取ar动态表情测试实例,且需要重复修改素材包中的参数或者渲染函数,使得ar动态表情测试实例的获取效率较低。
为了提高测试实例的获取效率,可以尝试在生成ar动态表情测试实例时,通过提高素材包中的参数或者渲染函数的准确度,以减少素材包中的参数或者渲染函数中的修改次数,这样就可以避免重复修改素材包中的参数或者渲染函数,还要将修改后的素材包中的参数或者渲染函数进行打包,以提高测试实例的获取效率。但是由于无法保证素材包中的参数或者渲染函数的准确度,而且即使可以保证素材包中的参数或者渲染函数的准确度,并减少了素材包中的参数或者渲染函数中的修改次数,但是在获取测试实例时,依然需要用户手动打开摄像头录制视频数据,同样会导致测试实例的获取效率较低。
基于上述论述,为了提高测试实例的获取效率,本申请实施例提供了一种测试实例的获取方法,可以考虑从自动化生成测试实例的角度入手,以避免采用人工方式获取ar动态表情测试实例,从而提高测试实例的获取效率。示例的,可参见图2所示。图2是根据本申请实施例提供的测试实例的获取方法的流程示意图,在获取测试实例时,可以执行s201确定虚拟套件对应的触发条件,以及虚拟套件对应的目标位置;并执行s202在基础视频库中获取触发条件对应的视频数据;这样在分别获取到虚拟套件对应的触发条件和目标位置,以及虚拟套件对应的视频数据之后,就可以执行s203在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,生成测试实例。由此可见,本申请实施例提供的测试实例的获取方法,是通过预先在基础视频库中存储触发条件对应的视频数据,这样在获取测试实例时,可以直接在基础视频库中获取触发条件对应的视频数据,并在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,自动生成测试实例置,该生成过程无需人工参与,避免了手动打开摄像头录制视频数据,且重复修改素材包中的参数或者渲染函数而导致测试实例的获取效率较低,从而提高测试实例的获取效率。这样在获取到较多的测试实例后,就可以通过这些测试实例测试素材包中的参数和ar动态表情sdk中的渲染参数,以确保素材包中的参数和ar动态表情sdk中的渲染参数的正确性。
需要说明的是,若单纯为了提高测试实例的获取效率,且并不考虑测试实例的准确度,则在生成测试实例时,可以先确定虚拟套件对应的触发条件;并在基础视频库中获取触发条件对应的视频数据;使得在满足触发条件时,将虚拟套件渲染在视频数据中,生成测试实例,通过该方式同样可以提高测试实例的获取效率,但是与上述同时确定渲染位置相比,因为其未考虑渲染位置,因此,使得生成的测试实例的准确度较低。在后续的实施例中,将以图2所示的测试实例的获取方法为例进行详细地描述。
可以理解的是,本申请实施例提供的测试实例的获取方法的系统架构可以参见图3所示,图3是根据本申请实施例提供的系统架构的示意图,可以包括两个输入和一个输出,一个输入为虚拟套件(可以包含在素材包中),一个输入为根据虚拟套件对应的触发条件(可以包含在素材包中)在基础视频库中确定的需要渲染的视频数据,根据该两个输入可以得到一个输出,该输出为触发条件满足时,将虚拟套件在渲染的视频数据的目标位置,得到的测试实例。当然,在生成测试实例之后,还可以对测试实例中的虚拟套件进行检测,对测试实例的播放流畅度进行检测,对测试实例的播放过程进行异常检测,后续将进行详细地描述。
需要说明的是,在本申请实施例中,以基础视频库为基础表情库为例,即以动态表情为例,为了避免每次均需要用户手动打开摄像头录制视频数据,示例的,可参见图4所示,图4是根据本申请实施例提供的面部表情动作划分的示意图,可以先将用户的面部表情动作为头部动作、嘴部动作、手势动作以及眼部动作,当然,也可以包括腿部动作,脚部动作等,在此,本申请实施例只是以用户的面部表情动作为头部动作、嘴部动作、手势动作以及眼部动作为例进行说明,但并不代表本申请实施例均局限于此。值得注意的是,与现有技术中不同的是,在本申请实施例中,在生成测试实例之前,只需要执行一次视频数据录制操作即可。示例的,可以分别录制包括头部动作的视频片段、包括嘴部动作的视频片段、包括手势动作的视频片段以及包括眼部动作的视频片段,这样在后续在基础表情库中获取触发条件(即某一个面部表情动作触发或者多个面部表情动作触发)对应的视频数据时,若触发条件为某一个面部表情动作触发,则可以直接在该基础表情库中查找包括该面部表情动作触发的视频片段,并将该视频片段作为面部表情动作触发对应的视频数据;若触发条件为某两个或者多个面部表情动作触发,则可以先在该基础表情库中查找包括该两个或者多个面部表情动作中每一个面部表情动作各自对应的视频片段,并将每一个面部表情动作各自对应的视频片段进行合成处理,并将合成后的视频片段确定为该两个或者多个面部表情动作触发对应的视频数据。可以看出,对于用户而言,在后续获取包括面部表情动作触发的视频数据时,均可以通过该基础表情库获取,无需每次均需要用户手动打开摄像头录制视频数据,从而提高了视频数据的获取效率。
可以理解的是,在本申请实施例中,虚拟套件可以理解为需要在视频数据中渲染的对象。例如,虚拟套件可以为一对猫耳朵,即将该猫耳朵渲染在视频数据中;虚拟套件也可以为一些小花花,即将该小花花渲染在视频数据中;当然,虚拟套件也可以为其它想渲染在视频数据中的对象;在此,本申请实施例只是以虚拟套件可以为一对猫耳朵或者一些小花花为例进行说明,但并不代表本申请实施例仅局限于此。
虚拟套件对应的触发条件,可以理解该虚拟套件渲染在视频数据中的触发条件,即何时将该虚拟套件渲染在视频数据中。换言之,只有在满足触发条件时,才会执行渲染操作,才会将该虚拟套件渲染在视频数据中。例如,虚拟套件可以为一对猫耳朵,且该虚拟套件猫耳朵对应的触发条件为头部摇晃触发,若视频数据中对象发生头部摇晃,则将该虚拟套件猫耳朵渲染在视频数据中,即在触发条件头部摇晃触发满足时,才会执行渲染操作,将该虚拟套件猫耳朵渲染在视频数据中。虚拟套件也可以为一对小花花,且该虚拟套件小花花对应的触发条件为张嘴触发,若视频数据中对象发生张嘴,则将该虚拟套件小花花渲染在视频数据中,即在触发条件张嘴触发满足时,才会执行渲染操作,将该虚拟套件小花花渲染在视频数据中。当然,虚拟套件对应的触发条件也可以为其它触发;在此,本申请实施例只是以虚拟套件对应的触发条件可以为头部摇晃触发或者张嘴触发为例进行说明,但并不代表本申请实施例仅局限于此。
基于上述描述,在满足触发条件时,才会执行渲染操作,将该虚拟套件渲染在视频数据中。不难想到,若要执行渲染操作,将该虚拟套件渲染在视频数据中,则在渲染之前,需要先确定该虚拟套件在视频数据中的渲染位置,该渲染位置即为前述的目标位置。例如,当虚拟套件为一对猫耳朵,且该虚拟套件猫耳朵对应的触发条件为头部摇晃触发时,若虚拟套件该猫耳朵渲染的目标位置为视频数据中对象头部的两边,则在确定视频数据中对象发生头部摇晃时,则将该虚拟套件猫耳朵渲染在视频数据中对象头部的两边,从而生成包括虚拟套件猫耳朵的测试实例。当虚拟套件为一对小花花,且该虚拟套件小花花对应的触发条件为张嘴触发时,若虚拟套件该虚拟套件小花花渲染的目标位置为视频数据中整个画面,则在确定视频数据中对象发生张嘴时,则将该虚拟套件小花花在视频数据中整个画面,从而生成包括虚拟套件小花花的测试实例。
在通过上述举例详细描述了虚拟套件、虚拟套件对应的触发条件以及虚拟套件的渲染位置之后,下面,将通过实施例一和实施例二对本申请实施例提供的测试实例的获取方法进行详细地说明。需要说明的是,在下述实施例一和实施例二中,将继续以动态表情为例对本申请实施例提供的测试实例的获取方法进行详细地描述。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实施例一
图5是根据本申请第一实施例提供的测试实例的获取方法的流程示意图,该测试实例的获取方法可以由软件和/或硬件装置执行,例如,该硬件装置可以为测试实例的获取装置,该测试实例的获取装置可以设置在电子设备中。示例的,请参见图5所示,该测试实例的获取方法可以包括:
s501、获取视频数据对应的专属素材包参数。
示例的,素材包参数可以用inputparam参数表示,该素材包参数可以包括用于指示虚拟套件的参数、用于指示虚拟套件对应的触发条件的参数,以及用于指示虚拟套件的渲染位置的参数,当然,也可以包括用于指示虚拟套件展示形式的参数,具体可以根据实际需要进行设置,在此,对于素材包参数包括的内容,本申请实施例不做进一步地限制。
在将虚拟套件渲染到视频数据中的目标位置时,由于该虚拟套件和目标位置通常是在素材包中定义的,因此,在将虚拟套件渲染到视频数据中的目标位置之前,需要先获取到视频数据对应的素材包。示例的,在本申请实施例中,可以先将各视频数据对应的素材包进行模板化和参数化处理,得到适用于各视频数据对应的素材包模板。
示例的,可参见下述表1所示,对素材包进行模板化和参数化处理时,可以将素材包拆解为多个参数,该参数可以包括inputvideo参数、casetemplate参数、inputemotemplate参数以及inputparam参数;其中,inputvideo参数表示需要渲染的视频数据;casetemplate参数表示将虚拟套件渲染到视频数据中的模板函数、inputemotemplate参数表示视频数据通用的素材包模板函数,以及inputparam参数表示各视频数据对应的专属素材包参数。其中,通过将表示各视频数据对应的专属素材包参数的inputparam参数传递至表示视频数据通用的素材包模板函数的inputemotemplate参数中,可以生成视频数据对应的素材包。
表1
可以理解的是,由于不同的视频数据需要不同的素材包参数,例如,虚拟套件或者触发条件不同,因此,对于不同的视频数据,会对应有各自的专属素材包参数,使得在生成某一个视频数据对应的素材包时,需要将该视频数据对应的专属素材包参数作为参数传递给素材包模板,使得可以基于该专属素材包参数和素材包模板中的通用素材包参数,生成视频片段对应的素材包,即执行下述s502:
s502、基于专属素材包参数和通用素材包参数,生成视频片段对应的素材包。
其中,素材包中包括虚拟套件、虚拟套件对应的触发条件,以及用于虚拟套件的渲染位置,当然,也可以包括虚拟套件展示形式,具体可以根据实际需要进行设置,在此,对于素材包包括的内容,本申请实施例不做进一步地限制。通用素材包参数可以理解为素材包模板中,适用于各视频数据的素材包参数。示例的,素材包模板可以用inputemotemplate参数表示,包含各类虚拟套件资源和必要参数字段,通过将表示各视频数据对应的专属素材包参数的inputparam参数传递至表示视频数据通用的素材包模板函数的inputemotemplate参数中,可以生成视频数据对应的具体素材包。
这样在分别获取到某一视频数据对应的专属素材包参数和素材包模板中的通用素材包参数之后,就可以基于该视频数据对应的专属素材包参数和素材包模板中的通用素材包参数,生成该视频片段对应的素材包,并且该视频片段对应的素材包中定义了虚拟套件、虚拟套件对应的触发条件,以及用于虚拟套件的渲染位置。
可以看出,通过执行上述s501和s502,就可以生成视频片段对应的素材包,由于该素材包中定义了虚拟套件、虚拟套件对应的触发条件,以及用于虚拟套件的渲染位置的素材包,即通过该s501和s502,就可以确定虚拟套件对应的触发条件,以及虚拟套件对应的目标位置,之后,就可以根据虚拟套件对应的触发条件,在基础视频库中获取到该触发条件对应的视频数据,并在满足触发条件时,将视频片段对应的素材包中的虚拟套件渲染在视频数据中的目标位置,生成测试实例,即执行下述s503-s504。
s503、在基础视频库中获取触发条件对应的视频数据。
示例的,触发条件对应的视频数据可以用inputvideo参数表示。触发条件可以为某一个面部表情动作触发,也可以为某两个或者多个面部表情动作触发,具体可以根据实际需要进行设置,在此,对于触发条件具体包括几个面部表情动作触发,本申请实施例不做具体限制。
不难理解的是,若触发条件为某一个面部表情动作触发,则在基础视频库中获取触发条件对应的视频数据时,可以直接在该基础表情库中查找包括该面部表情动作触发的视频片段,并将该视频片段作为面部表情动作触发对应的视频数据;若触发条件为某两个或者多个面部表情动作触发,则在基础视频库中获取触发条件对应的视频数据时,可以先在该基础表情库中查找包括该两个或者多个面部表情动作中每一个面部表情动作各自对应的视频片段,并将每一个面部表情动作各自对应的视频片段进行合成处理,并将合成后的视频片段确定为该两个或者多个面部表情动作触发对应的视频数据。
可以理解的是,在本申请实施例中,若要在基础视频库中查找每一个动作触发各自对应的视频片段,需要先拍摄每一个动作触发各自对应的视频片段;将每一个动作触发各自对应的视频片段存储在基础视频库中,这样后续就可以在获取包括面部表情动作触发的视频数据时,均可以通过该基础表情库获取,无需每次均需要用户手动打开摄像头录制视频数据,从而提高了视频数据的获取效率。
在基础视频库中获取触发条件对应的视频数据之后,不是直接将虚拟套件渲染至触发条件对应的视频数据中,而是在满足触发条件时,才会将频片段对应的素材包中的虚拟套件渲染在视频数据中的目标位置,生成测试实例,即执行下述s504:
s504、在满足触发条件时,将视频片段对应的素材包中的虚拟套件渲染在视频数据中的目标位置,生成测试实例。
示例的,在满足触发条件时,可以通过casetemplate参数,并将视频数据作为输入,调用接口导入视频片段对应的素材包中的虚拟套件等参数传递至测试框架中。以android端自动化测试框架uiautomator2为例执行测试实例生成命令,该测试实例命令开始执行时,首先使用内置合成视频数据替换相机中的视屏流,并通过代码打桩方式,在将视频数据传递至渲染引擎节点处进行了替换;视频数据注入后,即可同步开始视屏录制并导入素材包,且在素材包中虚拟套件对应的触发条件满足时,将素材包中的虚拟套件渲染在视频数据中的目标位置,从而生成测试实例。
由此可见,本申请实施例提供的测试实例的获取方法,是通过预先在基础视频库中存储触发条件对应的视频数据,这样在获取测试实例时,可以直接在基础视频库中获取触发条件对应的视频数据,并在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,自动生成测试实例置,该生成过程无需人工参与,避免了手动打开摄像头录制视频数据,且重复修改素材包中的参数或者渲染函数而导致测试实例的获取效率较低,从而提高测试实例的获取效率。
为了便于理解本申请实施例提供的测试实例的获取方法,以虚拟套件为一对猫耳朵,该虚拟套件猫耳朵对应的触发条件为张嘴触发,且虚拟套件该猫耳朵的渲染位置为视频数据中对象头部的两边为例,则在确定视频数据中对象张嘴时,则将该虚拟套件猫耳朵渲染在视频数据中对象头部的两边,从而生成包括虚拟套件猫耳朵的测试实例。为了直观地观察到渲染后的测试实例,可以从测试实例中截取一帧包括虚拟套件猫耳朵的图像,示例的,可以参见图6所示,图6是根据本申请实施例提供的包括虚拟套件猫耳朵的图像的示意图,可以看出,图像中的对象女孩张嘴时,其头部的两边渲染有虚拟套件猫耳朵。
可以看出,上述实施例一详细描述了在本申请实施例中如何自动化生成测试实例的技术方案。通常情况下,由于生成的测试实例会存在多种问题,该多种问题可以被大致概括为三种情况:渲染得到的测试实例中没有虚拟套件、渲染得到的测试实例的播放流畅度较差,会在播放过程中出现掉帧的现象、或者,渲染得到的测试实例存在异常现象,例如,渲染得到的测试实例在播放过程中出现花屏、黑屏、不规则色块或屏幕线条异常中的至少一种,因此,在生成测试实例之后,还可以对该测试实例执行进一步地检测,以确保生成的测试实例是可用的测试实例,可参见下述实施例二。
实施例二
图7是根据本申请第二实施例提供的测试实例的获取方法的流程示意图,该测试实例的获取方法同样可以由软件和/或硬件装置执行,例如,该硬件装置可以为测试实例的获取装置,该测试实例的获取装置可以设置在电子设备中。示例的,请参见图7所示,该测试实例的获取方法还可以包括:
s701、基于目标检测技术,对测试实例中的虚拟套件进行检测,并输出第一检测结果。
其中,第一检测结果用于指示虚拟套件是否被渲染在视频数据中的目标位置。
示例的,在基于目标检测技术,对测试实例中的虚拟套件进行检测时,可以先导出测试实例中视屏面部识别数据,并结合测试实例的预期效果可以预测出虚拟套件出现的位置;且由于基于sift的目标检测方法具有尺度不变性,可以很好地解决不同设备分辨率不一致的问题,这样就可以对比预测出虚拟套件出现的位置和测试实例中虚拟套件实际出现的位置,从而确定该虚拟套件是否被渲染在视频数据中的目标位置。
示例的,可结合上述图6所示,在生成包括图6所示的图像的测试实例之后,可以基于sift的目标检测方法对测试实例中的虚拟套件进行检测,通过检测,可以成功检测到生成的测试实例中包括一对猫耳朵,即左耳朵和右耳朵,示例的,可参见图8所示,图8是根据本申请实施例提供的包括有虚拟套件猫耳朵的图像的示意图,可以看出,图像中的对象女孩张嘴时,基于sift的目标检测方法可以成功检测出测试实例中包括左耳朵和右耳朵。
在确定检测结果之后,就可以根据检测结果输出第一检测结果。若检测结果指示该虚拟套件被渲染在视频数据中的目标位置,则第一检测结果可以为“渲染位置正确”等类似确认信息;相反的,检测结果指示该虚拟套件未被渲染在视频数据中的目标位置,则第一检测结果可以为“渲染位置不正确,请再次确认”等类似提示信息。
通过对测试实例中的虚拟套件进行检测,可以有效地确定渲染得到的测试实例中没有虚拟套件,以确保生成的测试实例为可用性较高的测试实例,提高了测试实例的可用性。
s702、基于帧率测试技术,对测试实例的播放流畅度进行检测,并输出第二检测结果。
其中,第二检测结果用于指示测试实例的播放过程中是否存在掉帧的现象。
示例的,在基于帧率测试技术,对测试实例的播放流畅度进行检测时,主要通过在源码中打桩获取渲染帧率,判断是否有掉帧情况,从而实现对测试实例的播放流畅度检测。以android为例,可以设置阈值为25,当大于或者等于25时视为未出现掉帧请况。
在确定检测结果之后,就可以根据检测结果输出第二检测结果。若检测结果指示测试实例的播放过程中不存在掉帧的现象,则第二检测结果可以为“测试实例的播放流畅”等类似确认信息;相反的,检测结果指示测试实例的播放过程中存在掉帧的现象,则第二检测结果可以为“测试实例的播放不流畅,请再次确认”等类似提示信息。
通过对测试实例的播放流畅度进行检测,可以有效地确定测试实例的播放过程中是否存在掉帧的现象,以确保生成的测试实例为可用性较高的测试实例,提高了测试实例的可用性。
s703、基于图像检测技术,对测试实例的播放过程进行异常检测,并输出第三检测结果。
其中,异常包括花屏、黑屏、不规则色块或屏幕线条异常中的至少一种;第三检测结果用于指示测试实例的播放过程中是否存在异常。
示例的,在基于图像检测技术,对测试实例的播放过程进行异常检测时,可以基于opencv传统的图像检测技术对测试实例的播放过程进行异常检测,从而得到测试实例的检测结果。
在确定检测结果之后,就可以根据检测结果输出第三检测结果。若检测结果指示测试实例的播放过程中不存在异常,则第三检测结果可以为“测试实例的播放过程正常”等类似确认信息;相反的,检测结果指示测试实例的播放过程中存在异常,则第三检测结果可以为“测试实例的播放过程异常,请再次确认”等类似提示信息。可以理解的是,在检测结果指示测试实例的播放过程中存在异常时,还可以进一步确定存在异常的具体原因,例如花屏、黑屏、不规则色块或屏幕线条异常,这样可以便于工作人员快速地定位原因所在,为工作人员的校验工作提供了便利。
通过对测试实例的播放过程进行异常检测,可以有效地确定测试实例的播放过程中是否存在异常,以确保生成的测试实例为可用性较高的测试实例,提高了测试实例的可用性。
需要说明的是,上述s701、s702以及s703之间并无先后顺序,在此,本申请实施例只是以先执行s701、再执行s702,最后执行s703为例进行说明,但并不代表本申请实施例仅局限于此。
此外,还需要说明的是,在本申请实施例中,在生成测试实例之后,在对自动生成的测试实例进行检测时,可以只执行上述s701、s702以及s703中的任一种检测操作,也可以执行上述s701、s702以及s703中的任意两种检测操作,当然,也可以执行上述s701、s702以及s703中的这三种检测操作,具体可以根据实际需要进行设置。在此,本申请实施例只是以执行上述s701、s702以及s703中的这三种检测操作为例进行说明,但并不代表本申请实施例仅局限于此。
可以看出,在本申请实施例中,在生成测试实例之后,还可以基于目标检测技术,对测试实例中的虚拟套件进行检测,基于帧率测试技术,对测试实例的播放流畅度进行检测,基于图像检测技术,对测试实例的播放过程进行异常检测,以确保生成的测试实例是可用的测试实例,从而提高了测试实例的可用性。
实施例三
图9是根据本申请第三实施例提供的测试实例的获取装置90的结构示意图,示例的,请参见图9所示,该测试实例的获取装置90可以包括:
获取模块901,用于确定虚拟套件对应的触发条件,以及虚拟套件对应的目标位置;并在基础视频库中获取触发条件对应的视频数据。
处理模块902,用于在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,生成测试实例。
可选的,获取模块901,具体用于获取视频数据对应的专属素材包参数;并基于专属素材包参数和通用素材包参数,生成视频片段对应的素材包;其中,素材包中包括虚拟套件、触发条件、以及目标位置。
可选的,若触发条件包括至少两个动作触发;获取模块901,具体用于在基础视频库中,查找至少两个动作触发中,每一个动作触发各自对应的视频片段;并将每一个动作触发各自对应的视频片段进行合成,得到触发条件对应的视频数据。
可选的,获取模块901,还用于拍摄每一个动作触发各自对应的视频片段;并将每一个动作触发各自对应的视频片段存储在基础视频库中。
可选的,该测试实例的获取装置90还包括检测模块903和输出模块904。
检测模块903,用于基于目标检测技术,对测试实例中的虚拟套件进行检测。
输出模块904,用于输出第一检测结果;第一检测结果用于指示虚拟套件是否被渲染在视频数据中的目标位置。
可选的,检测模块903,还用于基于帧率测试技术,对测试实例的播放流畅度进行检测。
输出模块904,还用于输出第二检测结果;第二检测结果用于指示测试实例的播放过程中是否存在掉帧的现象。
可选的,检测模块903,还用于基于图像检测技术,对测试实例的播放过程进行异常检测;异常包括花屏、黑屏、不规则色块或屏幕线条异常中的至少一种。
输出模块904,还用于输出第三检测结果;第三检测结果用于指示测试实例的播放过程中是否存在异常。
本申请实施例提供的测试实例的获取装置90,可以执行上述任一实施例中的测试实例的获取方法的技术方案,其实现原理以及有益效果与测试实例的获取方法的实现原理及有益效果类似,可参见测试实例的获取方法的实现原理及有益效果,此处不再进行赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图10所示,图10是根据本申请实施例的测试实例的获取方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图10所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器1001为例。
存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的测试实例的获取方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的测试实例的获取方法。
存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的测试实例的获取方法对应的程序指令/模块(例如,附图9所示的获取模块901、处理模块902、检测模块903和输出模块904)。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的测试实例的获取方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据测试实例的获取方法的电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至测试实例的获取方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
测试实例的获取方法的电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。
输入装置1003可接收输入的数字或字符信息,以及产生与测试实例的获取方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,在获取测试实例时,通过确定虚拟套件对应的触发条件,以及虚拟套件对应的目标位置;并在基础视频库中获取触发条件对应的视频数据;使得在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,生成测试实例。与现有技术不同的是,本申请实施例是通过预先在基础视频库中存储触发条件对应的视频数据,使得可以直接在基础视频库中获取触发条件对应的视频数据,并在满足触发条件时,将虚拟套件渲染在视频数据中的目标位置,自动生成测试实例置,该生成过程无需人工参与,避免了手动打开摄像头录制视频数据,且重复修改素材包中的参数或者渲染函数而导致测试实例的获取效率较低,从而提高测试实例的获取效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
1.一种测试实例的获取方法,其特征在于,包括:
确定虚拟套件对应的触发条件,以及所述虚拟套件对应的目标位置;
在基础视频库中获取所述触发条件对应的视频数据;
在满足所述触发条件时,将所述虚拟套件渲染在所述视频数据中的目标位置,生成测试实例。
2.根据权利要求1所述的方法,其特征在于,所述确定虚拟套件对应的触发条件,以及所述虚拟套件对应的目标位置,包括:
获取所述视频数据对应的专属素材包参数;
基于所述专属素材包参数和通用素材包参数,生成所述视频片段对应的素材包;其中,所述素材包中包括所述虚拟套件、所述触发条件、以及所述目标位置。
3.根据权利要求1所述的方法,其特征在于,若触发条件包括至少两个动作触发,则在基础视频库中获取所述触发条件对应的视频数据,包括:
在所述基础视频库中,查找所述至少两个动作触发中,每一个动作触发各自对应的视频片段;
将所述每一个动作触发各自对应的视频片段进行合成,得到所述触发条件对应的视频数据。
4.根据权利要求3所述的方法,其特征在于,所述在所述基础视频库中,查找所述至少两个动作触发中,每一个动作触发各自对应的视频片段之前,还包括:
拍摄每一个动作触发各自对应的视频片段;
将所述每一个动作触发各自对应的视频片段存储在所述基础视频库中。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
基于目标检测技术,对所述测试实例中的所述虚拟套件进行检测;
输出第一检测结果;所述第一检测结果用于指示所述虚拟套件是否被渲染在所述视频数据中的目标位置。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
基于帧率测试技术,对所述测试实例的播放流畅度进行检测;
输出第二检测结果;所述第二检测结果用于指示所述测试实例的播放过程中是否存在掉帧的现象。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
基于图像检测技术,对所述测试实例的播放过程进行异常检测;所述异常包括花屏、黑屏、不规则色块或屏幕线条异常中的至少一种;
输出第三检测结果;所述第三检测结果用于指示所述测试实例的播放过程中是否存在异常。
8.一种测试实例的获取装置,其特征在于,包括:
获取模块,用于确定虚拟套件对应的触发条件,以及所述虚拟套件对应的目标位置;并在基础视频库中获取所述触发条件对应的视频数据;
处理模块,用于在满足所述触发条件时,将所述虚拟套件渲染在所述视频数据中的目标位置,生成测试实例。
9.根据权利要求8所述的装置,其特征在于,
所述获取模块,具体用于获取所述视频数据对应的专属素材包参数;并基于所述专属素材包参数和通用素材包参数,生成所述视频片段对应的素材包;其中,所述素材包中包括所述虚拟套件、所述触发条件、以及所述目标位置。
10.根据权利要求8所述的装置,其特征在于,若触发条件包括至少两个动作触发;
所述获取模块,具体用于在所述基础视频库中,查找所述至少两个动作触发中,每一个动作触发各自对应的视频片段;并将所述每一个动作触发各自对应的视频片段进行合成,得到所述触发条件对应的视频数据。
11.根据权利要求10所述的装置,其特征在于,
所述获取模块,还用于拍摄每一个动作触发各自对应的视频片段;并将所述每一个动作触发各自对应的视频片段存储在所述基础视频库中。
12.根据权利要求8-11任一项所述的装置,其特征在于,所述装置还包括检测模块和输出模块;
所述检测模块,用于基于目标检测技术,对所述测试实例中的所述虚拟套件进行检测;
所述输出模块,用于输出第一检测结果;所述第一检测结果用于指示所述虚拟套件是否被渲染在所述视频数据中的目标位置。
13.根据权利要求12所述的装置,其特征在于,
所述检测模块,还用于基于帧率测试技术,对所述测试实例的播放流畅度进行检测;
所述输出模块,还用于输出第二检测结果;所述第二检测结果用于指示所述测试实例的播放过程中是否存在掉帧的现象。
14.根据权利要求12所述的装置,其特征在于,
所述检测模块,还用于基于图像检测技术,对所述测试实例的播放过程进行异常检测;所述异常包括花屏、黑屏、不规则色块或屏幕线条异常中的至少一种;
所述输出模块,还用于输出第三检测结果;所述第三检测结果用于指示所述测试实例的播放过程中是否存在异常。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的测试实例的获取方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的测试实例的获取方法。
17.一种测试实例的获取方法,其特征在于,包括:
确定虚拟套件对应的触发条件;
在基础视频库中获取所述触发条件对应的视频数据;
在满足所述触发条件时,将所述虚拟套件渲染在所述视频数据中,生成测试实例。
技术总结