本说明书涉及仿真模拟技术领域,尤其涉及一种仿真测试的方法及装置。
背景技术:
仿真模拟即是在构建的仿真环境中对真实世界中各种事物进行模拟。当前,仿真模拟已在无人驾驶设备的仿真测试、游戏开发、驾驶培训等诸多领域进行了广泛的应用。
为了能够得到更为接近真实世界的仿真效果,除了需要在仿真环境中模拟诸如城市建筑、公路、树木等事物,往往还需要通过气象发生器对各种天气状况进行仿真模拟。例如,在仿真环境中进行雨雪天气模拟时,可以在仿真环境中设置一个雨雪粒子产生器,进而通过控制该雨雪粒子产生器产生雨雪粒子,来实现在仿真环境中雨雪天气的仿真模拟。
在实际应用中,通常需要采集特定天气状况下仿真环境中的仿真环境图像,以实现诸如游戏中人物视觉效果的调整、无人驾驶设备的仿真测试等需求。例如,对于无人驾驶设备在雨雪天气中的仿真测试来说,通常需要在搭建的仿真环境中设置一个虚拟的图像采集器,该图像采集器可以视为在仿真环境中无人驾驶设备上设置的诸如摄像头、相机等图像采集装置。而后,需要在该图像采集器的上方设置一个雨雪粒子产生器。在进行雨雪天气的模拟时,需要控制该雨雪粒子产生器产生雨雪粒子,而图像采集器可以对雨雪粒子下落时前方的环境进行图像采集,进而通过采集到的仿真环境图像,对无人驾驶设备在雨雪天气下进行仿真测试。
然而,为了满足实际的仿真需求,通常需要图像采集器在仿真环境中处于移动状态,而处于移动状态的图像采集器很可能采集不到包含有雨雪粒子的仿真环境图像,从而降低了仿真效果。
所以,如何保证图像采集器在移动过程中能够采集到包含有雨雪粒子的图像,则是一个亟待解决的问题。
技术实现要素:
本说明书提供一种的仿真测试的方法及装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种仿真测试的方法,包括:
确定仿真环境中图像采集器在所述仿真环境中所处的位置;
根据所述位置,在所述仿真环境中创建环境粒子产生器;
控制所述图像采集器与所述环境粒子产生器在所述仿真环境中进行移动,并控制所述环境粒子产生器产生环境粒子,其中,所述图像采集器与所述环境粒子产生器在所述仿真环境中移动时相对位置保持不变;
获取所述图像采集器在所述环境粒子产生器产生所述环境粒子下所采集到的仿真环境图像;
根据所述仿真环境图像,进行仿真测试。
可选地,根据所述位置,在所述仿真环境中创建环境粒子产生器,具体包括:
确定环境粒子产生器的覆盖范围的大小;
根据所述覆盖范围的大小以及所述位置,在所述图像采集器上方创建环境粒子产生器。
可选地,控制所述环境粒子产生器产生环境粒子之前,所述方法还包括:
根据所述覆盖范围的大小以及所述位置,确定所述环境粒子产生器所产生的环境粒子在所述仿真环境中的粒子影响区域。
可选地,控制所述环境粒子产生器产生环境粒子,具体包括:
确定所述图像采集器在所述仿真环境中的移动速度,作为第一速度;
根据预设的环境粒子在所述仿真环境中的下落速度、所述仿真环境中预设的风力速度以及所述第一速度,确定所述环境粒子产生器产生的环境粒子在所述粒子影响区域内的移动速度,作为第二速度;
根据所述第二速度,控制所述环境粒子产生器在所述粒子影响区域内产生环境粒子。
可选地,控制所述环境粒子产生器产生环境粒子,具体包括:
在所述环境粒子产生器所产生的环境粒子中,确定所述图像采集器与所述环境粒子产生器在所述仿真环境中进行移动时脱离所述粒子影响区域的各环境粒子;
针对脱离所述粒子影响区域的每个环境粒子,确定该环境粒子脱离所述粒子影响区域时的位置,作为该环境粒子对应的脱离位置;
根据该环境粒子对应的脱离位置,确定该环境粒子在所述粒子影响区域内对应的投放位置,作为该环境粒子对应的投放位置;
控制所述环境粒子产生器在该环境粒子对应的投放位置产生该环境粒子。
可选地,根据该环境粒子对应的脱离位置,确定该环境粒子在所述粒子影响区域内对应的投放位置,作为该环境粒子对应的投放位置,具体包括:
确定所述粒子影响区域的中心位置;
根据所述中心位置,确定在所述粒子影响区域内与该环境粒子的脱离位置呈中心对称的位置,作为该环境粒子对应的投放位置。
可选地,所述方法还包括:
针对所述环境粒子产生器所产生的每个环境粒子,根据该环境粒子与所述图像采集器之间的距离,调整该环境粒子的粒子尺寸,其中,若该环境粒子与所述图像采集器之间的距离越远,该环境粒子的粒子尺寸越小。
本说明书提供了一种仿真测试的装置,包括:
确定模块,用于确定仿真环境中图像采集器在所述仿真环境中所处的位置;
创建模块,用于根据所述位置,在所述仿真环境中创建环境粒子产生器;
控制模块,用于控制所述图像采集器与所述环境粒子产生器在所述仿真环境中进行移动,并控制所述环境粒子产生器产生环境粒子,其中,所述图像采集器与所述环境粒子产生器在所述仿真环境中移动时相对位置保持不变;
获取模块,用于获取所述图像采集器在所述环境粒子产生器产生所述环境粒子下所采集到的仿真环境图像;
测试模块,用于根据所述仿真环境图像,进行仿真测试。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述仿真测试的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述仿真测试的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的仿真测试的方法中,确定仿真环境中图像采集器在该仿真环境中所处的位置,并根据该位置,在仿真环境中创建环境粒子产生器后,仿真系统控制图像采集器与环境粒子产生器在仿真环境中进行移动,并控制环境粒子产生器产生环境粒子。其中,图像采集器与环境粒子产生器在仿真环境中移动时相对位置保持不变。之后,获取图像采集器在环境粒子产生器产生环境粒子下所采集到的仿真环境图像,并根据仿真环境图像,进行仿真测试。
从上述方法中可以看出,由于本方法可以通过控制图像采集器与环境粒子产生器移动时两者的相对位置保持不变,使图像采集器能够稳定的采集到含有环境粒子产生器所产生的环境粒子的仿真环境图像,相比于现有技术来说,能够有效的保证采集到的仿真环境图像是受环境粒子产生器影响下的图像,进而可以保证基于图像采集器采集的图像,能够对无人驾驶设备进行有效的仿真测试。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书提供的一种图像采集器在仿真环境中快速移动时进行图像采集的场景示意图;
图2为本说明书中一种仿真测试的方法的流程示意图;
图3为本说明书提供的一种环境粒子产生器产生环境粒子的示意图;
图4为本说明书提供的一种通过中心对称的方式确定环境粒子的投放位置的示意图;
图5为本说明书提供的一种通过一个对称面确定环境粒子的投放位置的示意图;
图6为本说明书提供的一种通过多次对称变换确定出环境粒子对应的投放位置的示意图;
图7为本说明书提供的一种调整粒子影响区域内的环境粒子的尺寸的示意图;
图8为本说明书提供的一种仿真测试的装置的示意图;
图9为本说明书提供的对应于图2的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
为了满足实际的仿真需求,通常要求位于仿真环境中的图像采集器在仿真环境中进行快速移动。然而,当图像采集器在仿真环境中快速移动时,很可能拍摄不到仿真环境中雨雪粒子产生器所产生的雨雪粒子,如图1所示。
图1为本说明书提供的一种图像采集器在仿真环境中快速移动时进行图像采集的场景示意图。
在图1中可以看出,若是图像采集器在仿真环境中处于静止的状态,则可以采集到雨雪粒子产生器所产生的雨雪粒子,即,雨雪粒子产生器所产生的雨雪粒子能够落入到处于静止状态的图像采集器的采集范围。但是,由于雨雪粒子产生器所产生的雨雪粒子的下落速度往往是远小于图像采集器在仿真环境中的移动速度的,这就导致雨雪粒子产生器在开始产生雨雪粒子时,图像采集器很可能已经经过了雨雪粒子产生器的覆盖范围,相应的,图像采集器也就可能拍摄不到雨雪粒子产生器所产生的雨雪粒子。
为了解决上述问题,在现有技术中,可以通过扩大雨雪粒子产生器的覆盖范围来制造出更大范围的雨雪天气,以使仿真环境中的图像采集器即使在快速移动的基础上依然能够在仿真环境中采集到包含有雨雪粒子的图像。但是扩大雨雪粒子产生器的覆盖范围势必将增加整个仿真系统的消耗资源,从而可能降低仿真系统的性能。
除了上述方法外,也可以通过预测仿真环境中图像采集器运动的轨迹,来使雨雪粒子产生器提前移动到图像采集器在仿真环境中将要移动到的位置上并产生雨雪粒子,这样一来,当图像采集器移动到该位置上时,可能已经有雨雪粒子产生器所产生的大量雨雪粒子位于该图像采集器的采集范围内,从而使得图像采集器可以在移动过程的基础上依然能够在仿真环境中采集到包含有雨雪粒子的图像。然而在实际应用中,仿真系统无法保证准确的预测出图像采集器运动的轨迹,即仿真系统预测出的图像采集器将要移动到的位置可能并不是图像采集器未来实际出现的位置。而一旦预测出的图像采集器在仿真环境中将要移动的位置与图像采集器未来实际的位置出现了偏差,则仿真系统将无法保证图像采集器采集到包含有雨雪粒子的图像。
为了有效的解决上述问题,本说明书提供了一种仿真测试的方法,通过该方法可以使位于仿真环境中的图像采集器和环境粒子产生器在移动时,两者之间的相对位置保持不变,进而可以保证即使图像采集器在仿真环境中处于快速移动,环境粒子产生器所产生的环境粒子也可以落入到图像采集器的采集范围,保证了图像采集器在仿真环境中采集的仿真环境图像的仿真质量。并且,由于无需增加环境粒子产生器的覆盖范围,所以可以有效的保证在进行仿真测试时可以消耗较少的系统资源,从而有效的保证了仿真系统的性能。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图2为本说明书中一种仿真测试的方法的流程示意图,具体包括以下步骤:
s201:确定仿真环境中图像采集器在所述仿真环境中所处的位置。
在本说明书中,若需要在仿真环境中实现特定天气状况下的仿真测试,可以通过仿真系统在仿真环境中模拟出需求的测试场景,并在仿真环境中设置图像采集器,以使图像采集器能够在构建的仿真环境中采集到用于仿真测试的仿真环境图像。这里提到的图像采集器可以是指在仿真环境中虚拟出的摄像头、相机等装置。
例如,若需要仿真出雪天情况下的道路环境,则需要在仿真出的道路环境中模拟出飘落的雪花以及若干障碍物,进一步地,仿真系统可以在该仿真出的道路环境中设置图像采集器,该图像采集器可以采集到仿真出的雪天情况下的前方道路的仿真环境图像。
需要说明的是,本说明书中提供的仿真测试的方法可以应用于多种仿真场景,例如,可以对无人驾驶设备在仿真环境中的目标识别进行仿真测试;再例如,在游戏开发时,可以通过该仿真测试的方法,实现对游戏中人物视觉效果的调整进行测试。而为了便于描述,下面将仅以无人驾驶设备在仿真环境中的仿真测试的场景为例,对本说明书提供的仿真测试的方法进行详细说明。
其中,需要进行仿真测试的无人驾驶设备可以是指无人车、机器人、自动配送设备等能够实现自动驾驶的设备。基于此,应用本说明书提供的仿真测试的方法进行仿真测试的无人驾驶设备可以用于执行配送领域的配送任务,如,使用无人驾驶设备进行快递、物流、外卖等配送的业务场景。
另外,通过本说明书提供的仿真测试的方法,可以实现无人驾驶设备的多种仿真测试,例如,可以通过在仿真环境中模拟雨雪天气,以实现无人驾驶设备对雨雪天气中周围障碍物进行识别的仿真测试;再例如,可以通过在仿真环境中模拟风沙天气,以实现无人驾驶设备对风沙天气中前方交通指示灯进行识别的仿真测试。本说明书并不对具体的仿真测试进行限定。
在本说明书中,仿真系统需要在构建出的仿真环境中确定出该图像采集器在该仿真环境中所处的位置,进而在后续过程中,通过该位置,在仿真环境中创建用于产生环境粒子的环境粒子产生器。换句话说,图像采集器可以设置在仿真环境中的任意位置,而仿真系统只需要基于图像采集器所处的位置来创建环境粒子产生器即可。
s202:根据所述位置,在所述仿真环境中创建环境粒子产生器。
在实际应用中天气状况往往会对无人驾驶设备的行驶造成影响,如,相比于良好的天气,在暴雪的天气下无人驾驶设备识别前方障碍物的能力会下降。因此为了更好的对多种天气下对无人驾驶设备进行仿真测试,可以在仿真环境中加入环境粒子产生器,以使环境粒子产生器在仿真环境中模拟出各种天气状况。
基于此,仿真系统确定出仿真环境中的图像采集器后,可以根据该图像采集器在仿真环境中的位置,在该仿真环境中创建环境粒子产生器。其中,这里提到的环境粒子产生器是指可以在该仿真环境中产生需要仿真出的环境粒子,而这里提到的环境粒子为能够仿真出的,以粒子形态出现在仿真环境中的事物,如,仿真出的雨滴、雪花、沙尘中的沙砾等。
例如,若是根据实际需求需要在仿真环境中模拟出雨天的天气状况,则仿真系统可以通过创建出的环境粒子产生器,在仿真环境中产生模拟出的下落的雨滴(这里的雨滴即为环境粒子产生器为了模拟雨天的天气状况所产生的环境粒子);再例如,若按照实际需求需要在仿真环境中模拟出沙尘暴的天气状况,则仿真系统可以通过创建出的环境粒子产生器,在仿真环境中产生模拟出的沙砾(这里的沙砾即为环境粒子产生器为了模拟沙尘暴的天气状况所产生的环境粒子)。
在本说明书中,仿真系统创建出的环境粒子产生器在仿真环境中所处的位置需要满足图像采集器能够采集到包含有环境粒子产生器所产生出的环境粒子的图像。因此,仿真系统可以确定出环境粒子产生器的覆盖范围的大小,并根据确定出的图像采集器在仿真环境中的位置,在该图像采集器上方创建环境粒子产生器。其中,环境粒子产生器的覆盖范围的大小可以是根据实际的仿真测试需求而进行设定的。而值得一提的是,在设置环境粒子产生器的覆盖范围的大小时应考虑到仿真系统的能耗,因此不应将该覆盖范围的大小设置的过大。
上述提到的环境粒子产生器的覆盖范围可以视为仿真环境内环境粒子产生器所产生的环境粒子所能覆盖到的区域。而在本说明书中,仿真系统在确定出图像采集器在仿真环境中的位置后,可以在该图像采集器的上方,按照确定出的覆盖范围的大小创建出环境粒子产生器。具体的,仿真系统在确定出图像采集器在该仿真环境中所处的位置后,可以在该位置上确定出垂直于仿真环境中地面的垂线,并根据确定出的环境粒子产生器的覆盖范围的大小,在该垂线的方向上,创建出位于图像采集器上方的环境粒子产生器,如图3所示。
图3为本说明书提供的一种环境粒子产生器产生环境粒子的示意图。
例如,若按照实际需求需要制造出范围为10平米的雪天的仿真环境,则可以将覆盖范围的大小确定为10平米,仿真系统确定出图像采集器在仿真环境中所处的位置后,可以创建出如图3所示的覆盖范围为10平米的环境粒子产生器,并将该环境粒子产生器置于图像采集器的上方,该环境粒子产生器能够在该环境粒子产生器的下方空间内产生出雪花粒子,这样一来,图像采集器可以采集到包含有仿真雪花(即雪花粒子)的仿真环境图像。
由于环境粒子产生器能够在该环境粒子产生器下方的区域内产生环境粒子,所以,就会产生一个含有环境粒子的空间区域。基于此,可以将这一空间区域视为在仿真环境中的粒子影响区域。仿真系统可以根据环境粒子产生器的覆盖范围的大小以及图像采集器的位置确定出该粒子影响区域。例如,图3中的环境粒子产生器在10平米范围内产生了下落的环境粒子,可以看出,这些环境粒子的粒子影响区域为仿真环境中环境粒子产生器下方含有环境粒子的区域。
需要说明的是,由于环境粒子产生器和图像采集器可以在仿真环境中按照相对位置保持不变的方式进行同步移动,所以,上述提到的粒子影响区域也将随着环境粒子产生器以及图像采集器的移动而发生移动。即,粒子影响区域在仿真环境中的位置并不是保持不变的。
s203:控制所述图像采集器与所述环境粒子产生器在所述仿真环境中进行移动,并控制所述环境粒子产生器产生环境粒子,其中,所述图像采集器与所述环境粒子产生器在所述仿真环境中移动时相对位置保持不变。
为了对无人驾驶设备快速移动时识别障碍物进行仿真测试,仿真系统可以控制图像采集器以及环境粒子产生器在仿真环境中一并进行移动,并且,移动时可以控制环境粒子产生器产生环境粒子,以使图像采集器能够在移动时采集到含有环境粒子的仿真环境的图像。
其中,仿真系统控制图像采集器与环境粒子产生器进行移动时,需要保证图像采集器与环境粒子产生器在仿真环境中移动时相对位置保持不变,所谓的相对位置保持不变,其实就是指图像采集器以及环境粒子产生器的移动方向以及移动速度保持一致。这样能够保证图像采集器一直处于粒子影响区域内,即能够保证图像采集器的图像采集范围内存在环境粒子产生器所产生出的环境粒子。
需要说明的是,为了使环境粒子产生器能够形象的模拟出诸如雨滴、雪花等环境粒子,可以对每个环境粒子赋予一定的移动速度。例如,仿真系统可以对环境粒子赋予在整个仿真环境中的移动速度,那么,可以根据预设的仿真环境内的风力速度以及预设的环境粒子在仿真环境中的下落速度,确定每个环境粒子在仿真环境内的移动速度。
再例如,仿真系统可以对环境粒子赋予在粒子影响区域内的移动速度。具体的,仿真系统可以确定出图像采集器在仿真环境中的移动速度,作为第一速度,并根据预设的环境粒子在仿真环境中的下落速度、仿真环境中预设的风力速度以及第一速度,确定出环境粒子产生器产生的环境粒子在粒子影响区域内的移动速度,作为第二速度,并根据第二速度,控制环境粒子产生器产生环境粒子。也就是说,环境粒子产生器可以根据该第二速度,控制所产生的环境粒子在粒子影响区域内进行移动。需要说明的是,这里提到的所有速度均为矢量,即,这里提到的所有速度均是既有大小,又有方向的。
在本说明书中,仿真系统可以根据以下公式确定出第二速度。
v2=vd+vw-v1
其中,vd为预设的环境粒子在仿真环境中的下落速度,vw为仿真环境中预设的风力速度,v1为第一速度,即图像采集器在仿真环境中的移动速度,v2为第二速度。
由于环境粒子产生器所产生的环境粒子的移动方向相对于粒子影响区域的移动方向很可能是反向的,因此,会有环境粒子移动时脱离粒子影响区域,即从粒子影响区域中移出。为了节省仿真系统的资源,可以将脱离粒子影响区域的环境粒子重新投放到该粒子影响区域。
具体的,仿真系统可以从环境粒子产生器所产生的环境粒子中,确定出图像采集器与环境粒子产生器移动时脱离粒子影响区域的各环境粒子,并针对每个脱离粒子影响区域的环境粒子,确定该环境粒子脱离粒子影响区域时的位置,作为该环境粒子对应的脱离位置。
仿真系统可以根据该环境粒子对应的脱离位置,确定出该环境粒子在粒子影响区域内对应的投放位置,作为该环境粒子对应的投放位置,并控制环境粒子产生器在该环境粒子对应的投放位置产生该环境粒子。
也就是说,这里提到的该环境粒子对应的脱离位置为该环境粒子离开粒子影响区域时位于粒子影响区域的边界上的位置。该环境粒子对应的投放位置为该环境粒子脱离粒子影响区域后重新进入粒子影响区域的位置。
在本说明书中,仿真系统根据该环境粒子对应的脱离位置确定该环境粒子对应的投放位置所采用的方法可以有很多。例如,仿真系统可以确定出粒子影响区域的中心位置,并根据该中心位置确定出在粒子影响区域内与该环境粒子对应的脱离位置呈中心对称的位置,作为该环境粒子对应的投放位置,如图4所示。
图4为本说明书提供的一种通过中心对称的方式确定环境粒子的投放位置的示意图。
在图4中,若a位置为环境粒子在粒子影响区域内对应的脱离位置,那么仿真系统可以确定出图中粒子影响区域的中心位置,并将与a位置呈中心对称的c位置作为该环境粒子对应的投放位置。
再例如,仿真系统也可以确定出该粒子影响区域内的一个对称面,并将与该环境粒子对应的脱离位置关于该对称面对称的位置,作为该环境粒子对应的投放位置,如图5所示。
图5为本说明书提供的一种通过一个对称面确定环境粒子的投放位置的示意图。
在图5中,若a位置为图中环境粒子对应的脱离位置,仿真系统可以确定出如图5中的a对称面,并通过该a对称面,确定出与a位置呈平面对称的b位置作为该环境粒子对应的投放位置。
需要指出的是,由于在粒子影响区域中可以选取出多个不同的对称面,所以,确定出的环境粒子对应的投放位置也将随着选取出的对称面的不同而有所不同。而除此之外,仿真系统也可以在粒子影响区域中确定出多个对称面,并通过选取出的这些对称面对环境粒子对应的脱离位置进行多次对称变换,以确定出该环境粒子对应的投放位置,如图6所示。
图6为本说明书提供的一种通过多次对称变换确定出环境粒子对应的投放位置的示意图。
在图6中,若a位置为图中环境粒子对应的脱离位置,仿真系统可以确定出如图6所示的a对称面和b对称面。而后,仿真系统可以先通过a对称面对a位置进行对称变换,得到粒子影响区域中的b位置,而后,再通过b对称面对b位置进行对称变换,得到粒子影响区域中的c位置,并将c位置作为图中环境粒子对应的投放位置。也就是说,仿真系统通过将a位置进行两次对称变换,得到环境粒子对应的投放位置。
从上述方式中可以看出,由于仿真系统可以通过确定环境粒子在粒子影响区域中的投放位置,将移出粒子影响区域的环境粒子重新投放至该粒子影响区域中,这就使得环境粒子产生器无需持续的产生环境粒子,只需保证产生的环境粒子满足一定的数量后,通过重新投放的方式将产生的环境粒子在粒子影响区域内进行循环使用,从而有效的节省了仿真系统的系统资源,有效的提高了仿真系统在仿真测试时的性能。
在实际应用中,位于远处的物体在视觉效果中的尺寸通常较小,而位于近处的物体在视觉效果中的尺寸通常较大,因此为了使图像采集器采集到的仿真环境图像能够更加符合实际情况,可以对粒子影响区域内的各环境粒子的尺寸进行调整。具体的,仿真系统可以针对环境粒子产生器所产生的每个环境粒子,根据该环境粒子与图像采集器之间的距离,调整该环境粒子的粒子尺寸,其中,若该环境粒子与图像采集器之间的距离越远,该环境粒子的粒子尺寸越小,如图7所示。
图7为本说明书提供的一种调整粒子影响区域内的环境粒子的尺寸的示意图。
如图7所示,可以看出在粒子影响区域内,通过仿真系统对各环境粒子的尺寸的控制,可以保证距离图像采集器越近的环境粒子的尺寸越大,距离图像采集器越远的环境粒子的尺寸越小,这样一来,图像采集器所采集的仿真环境图像中的环境粒子较为符合实际情况。
s204:获取所述图像采集器在所述环境粒子产生器产生所述环境粒子下所采集到的仿真环境图像。
s205:根据所述仿真环境图像,进行仿真测试。
仿真系统控制图像采集器与环境粒子产生器在仿真环境中进行移动,并控制环境粒子产生器产生环境粒子后,可以获取该图像采集器在环境粒子产生器产生环境粒子下所采集到的仿真环境图像,上述一系列产生环境粒子的过程能够保证该图像采集器能够采集到包含有环境粒子产生器所产生的环境粒子的仿真环境图像。
仿真系统获取到该仿真环境图像后,可以根据该仿真环境图像,进行仿真测试。例如,若环境粒子产生器产生了若干雨滴(即环境粒子),那么快速移动中的图像采集器所采集到的仿真环境图像,为包含有下落雨滴的前方道路的图像。相应的,仿真系统可以根据该仿真环境图像,进行对无人驾驶设备在雨天状况下的仿真测试。
从上述方法中可以看出,本方法可以通过控制图像采集器与环境粒子产生器移动时两者的相对位置保持不变,使图像采集器能够稳定的采集到含有环境粒子产生器所产生的环境粒子的仿真环境图像。并且,本方法还通过调整粒子影响区域内的环境粒子的尺寸以及移动速度,使产生出的环境粒子更为贴近实际,因此,相比于现有技术来说,本方法不仅能够有效的节省系统资源,并且能够有效的保证采集到的仿真环境图像是受环境粒子产生器影响下的图像,进而可以保证基于图像采集器采集的图像,能够对无人驾驶设备进行有效的仿真测试。
还需说明的是,本说明书提供的仿真测试的方法除了可以应用于对无人驾驶设备进行仿真测试,还能够应用于其他场景,例如,应用于3d游戏中各种天气状况下人物视觉效果的测试。
以上为本说明书的一个或多个实施例提供的仿真测试的方法,基于同样的思路,本说明书还提供了相应的仿真测试的装置,如图8所示。
图8为本说明书提供的一种仿真测试的装置示意图,具体包括:
确定模块801,用于确定仿真环境中图像采集器在所述仿真环境中所处的位置;
创建模块802,用于根据所述位置,在所述仿真环境中创建环境粒子产生器;
控制模块803,用于控制所述图像采集器与所述环境粒子产生器在所述仿真环境中进行移动,并控制所述环境粒子产生器产生环境粒子,其中,所述图像采集器与所述环境粒子产生器在所述仿真环境中移动时相对位置保持不变;
获取模块804,用于获取所述图像采集器在所述环境粒子产生器产生所述环境粒子下所采集到的仿真环境图像;
测试模块805,用于根据所述仿真环境图像,进行仿真测试。
可选地,所述创建模块802具体用于,确定环境粒子产生器的覆盖范围的大小;根据所述覆盖范围的大小以及所述位置,在所述图像采集器上方创建环境粒子产生器。
可选地,所述控制模块803控制所述环境粒子产生器产生环境粒子之前,所述创建模块802还用于,根据所述覆盖范围的大小以及所述位置,确定所述环境粒子产生器所产生的环境粒子在所述仿真环境中的粒子影响区域。
可选地,所述控制模块803具体用于,确定所述图像采集器在所述仿真环境中的移动速度,作为第一速度;根据预设的环境粒子在所述仿真环境中的下落速度、所述仿真环境中预设的风力速度以及所述第一速度,确定所述环境粒子产生器产生的环境粒子在所述粒子影响区域内的移动速度,作为第二速度;根据所述第二速度,控制所述环境粒子产生器在所述粒子影响区域内产生环境粒子。
可选地,所述控制模块803具体用于,在所述环境粒子产生器所产生的环境粒子中,确定所述图像采集器与所述环境粒子产生器在所述仿真环境中进行移动时脱离所述粒子影响区域的各环境粒子;针对脱离所述粒子影响区域的每个环境粒子,确定该环境粒子脱离所述粒子影响区域时的位置,作为该环境粒子对应的脱离位置;根据该环境粒子对应的脱离位置,确定该环境粒子在所述粒子影响区域内对应的投放位置,作为该环境粒子对应的投放位置;控制所述环境粒子产生器在该环境粒子对应的投放位置产生该环境粒子。
可选地,所述控制模块803具体用于,确定所述粒子影响区域的中心位置;
根据所述中心位置,确定在所述粒子影响区域内与该环境粒子的脱离位置呈中心对称的位置,作为该环境粒子对应的投放位置。
可选地,所述装置还包括:
调整模块806,用于针对所述环境粒子产生器所产生的每个环境粒子,根据该环境粒子与所述图像采集器之间的距离,调整该环境粒子的粒子尺寸,其中,若该环境粒子与所述图像采集器之间的距离越远,该环境粒子的粒子尺寸越小。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图2提供的仿真测试的方法。
本说明书还提供了图9所示的电子设备的示意结构图。如图9所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图2所述的仿真测试的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。