一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自动驾驶仿真测试图像处理方法及装置与流程

2022-11-16 08:27:28 来源:中国专利 TAG:


1.本技术属于仿真测试技术领域,尤其涉及一种自动驾驶仿真测试图像处理方法及装置。


背景技术:

2.在自动驾驶系统的仿真测试中,一般是仿真测试平台对模拟器和自动驾驶系统进行控制,在模拟器中渲染出虚拟的仿真场景,自动驾驶系统通过通信接口与模拟器连接并控制模拟器中的测试车辆模型,进而采用仿真的方式测试自动驾驶系统对模型车辆的驾驶性能。
3.为了便于测试人员对测试过程的监测和对仿真测试过程的回顾,一般会在模拟器中布置用于对测试过程进行图像采集的图像传感器模型。在测试过程中,图像传感器模型对模拟器中的仿真场景进行图像采集,图像传感器模型将采集到的图像源源不断地传输至仿真测试平台的执行引擎,执行引擎将收到的图像发送至图像处理模块,图像处理模块对图像进行图像化处理之后传输到显示终端,显示终端对源源不断的图像进行视频显示。
4.在自动驾驶仿真测试时,一般会在模拟器的多个不同的位置分别布置图像传感器模型,即采用不同的机位对模拟器仿真环境的不同位点进行测试过程图像的采集;另外由于图像采集需求的不同,不同机位的图像传感器模型的类型会有所不同。图像传感器模型在模拟器中的机位不同和类型的不同会导致图像传输频率可能存在差异,即不同图像传感器模型在同一时刻传输到显示终端的图像的实际采集时间可能会有所不同,从而导致不同机位的测试过程图像不能同步显示。而测试过程图像不能同步显示,将会导致测试人员无法准确判断当前测试进度和测试情况。


技术实现要素:

5.本技术实施例提供了一种自动驾驶仿真测试图像处理方法及装置,可以解决自动仿真测试中,不同机位的测试过程图像不能同步显示的技术问题。
6.第一方面,本技术实施例提供了一种自动驾驶仿真测试图像处理方法,所述方法包括:
7.获取多个摄像机模型中每个所述摄像机模型在同一个时间段采集的自动驾驶系统控制的目标车辆模型在仿真环境中的多个图像,不同所述摄像机模型用于从不同点位采集图像;
8.根据每个所述摄像机模型采集的多个图像,确定每个所述摄像机模型关联的图像缓存队列,一个所述图像缓存队列包括按照时间先后顺序依次存储在所述图像缓存队列中由对应的所述摄像机模型采集的多个图像,每个所述图像带有时间戳,所述图像缓存队列为先进先出队列;
9.每间隔预设时间,同步多个所述图像缓存队列位于队头位置的所述图像的时间戳;
10.向每个所述摄像机模型对应的机位显示端发送各自关联的所述图像缓存队列中存储的至少一张图像,所述至少一张图像包括时间戳同步后位于所述图像缓存队列的队头位置的所述图像。
11.上述实施例中,通过将多个摄像机模型在同一个时间段采集的自动驾驶系统控制的目标车辆模型在仿真环境中的多个图像存入对应的图像缓存队列,并同步多个图像缓存队列中位于队头位置的图像的时间戳,这样可以使得多个图像缓存队列传输给对应机位显示端的图像的时间是同步的,避免了不同摄像机模型采集的图像之间存在时间差,之后向对应的机位显示端发送所关联的图像缓存队列中存储的至少一张图像可以保证不同摄像机模型采集的图像在对应机位显示端同步显示,从而实现了不同机位的视频图像的播放是同步的,即同一时刻,不同机位的视频图像显示的是同一时刻的仿真测试内容。
12.在第一方面的一种可能的实现方式中,所述时间戳根据自动驾驶仿真测试平台接收对应图像的时间来确定。
13.在第一方面的一种可能的实现方式中,所述同步多个所述图像缓存队列位于队头位置的所述图像的时间戳,包括:
14.从各个所述图像缓存队列位于队头位置的所述图像所对应的时间戳中确定出最大时间戳;
15.根据所述最大时间戳,更新各个其他图像缓存队列中位于队头位置的所述图像,以使各个所述其他图像缓存队列中位于队头位置的所述图像的时间戳与所述最大时间戳之间的时间偏差程度小于或等于预设阈值,所述其他图像缓存队列为多个所述图像缓存队列中除了所述最大时间戳对应的所述图像缓存队列以外的队列。
16.在第一方面的一种可能的实现方式中,所述根据所述最大时间戳,更新各个其他图像缓存队列中位于队头位置的所述图像,以使各个所述其他图像缓存队列中位于队头位置的所述图像的时间戳与所述最大时间戳之间的时间偏差程度小于或等于预设阈值,包括:
17.确定各个所述其他图像缓存队列位于队头位置的所述图像所对应的时间戳与所述最大时间戳之间的所述时间偏差程度;
18.对于所述其他图像缓存队列中时间偏差程度大于预设阈值的第一图像缓存队列,调整所述第一图像缓存队列位于队头位置的图像的时间戳,以使得调整后的所述第一图像缓存队列位于队头位置的图像的时间戳与所述最大时间戳之间的时间偏差程度小于或等于所述预设阈值。
19.在第一方面的一种可能的实现方式中,所述向每个所述摄像机模型对应的机位显示端发送各自关联的所述图像缓存队列中存储的至少一张图像,包括:
20.确定各个所述图像缓存队列对应的所述机位显示端的显示帧率;
21.根据各个所述图像缓存队列对应的所述机位显示端的显示帧率,向对应的机位显示端发送每个所述图像缓存队列中存储的至少一张图像。
22.上述实施例中,在将图像缓存队列中的图像发送至对应的机位显示端之前,首先确定各个机位显示端的显示帧率,图像缓存队列根据显示帧率来调整机位显示端发送图像的速度,使得图像缓存队列发送图像的速度与显示帧率相配合,从而实现机位显示端的稳定显示。
23.在第一方面的一种可能的实现方式中,所述确定各个所述图像缓存队列对应的所述机位显示端的显示帧率,包括:
24.获取各个所述图像缓存队列中存储的所述图像的数量;
25.根据各个所述图像缓存队列中存储的所述图像的数量,确定对应各个所述机位显示端的显示帧率。
26.在第一方面的一种可能的实现方式中,所述图像缓存队列中存储的所述图像的数量越多对应的所述机位显示端的显示帧率越大。
27.第二方面,本技术实施例提供了一种自动驾驶仿真测试图像处理装置,所述装置包括:
28.获取单元,用于获取多个摄像机模型中每个所述摄像机模型在同一个时间段采集的自动驾驶系统控制的目标车辆模型在仿真环境中的多个图像,不同所述摄像机模型用于从不同点位采集图像;
29.队列确定单元,用于根据每个所述摄像机模型采集的多个图像,确定每个所述摄像机模型关联的图像缓存队列,一个所述图像缓存队列包括按照时间先后顺序依次存储在所述图像缓存队列中由对应的所述摄像机模型采集的多个图像,每个所述图像带有时间戳,所述图像缓存队列为先进先出队列;
30.同步单元,每间隔预设时间,用于同步多个所述图像缓存队列位于队头位置的所述图像的时间戳;
31.发送单元,用于向每个所述摄像机模型对应的机位显示端发送各自关联的所述图像缓存队列中存储的至少一张图像,所述至少一张图像包括时间戳同步后位于所述图像缓存队列的队头位置的所述图像。
32.第三方面,本技术实施例提供了一种仿真测试平台,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如以上第一方面中任一实施方式中所述方法的步骤。
33.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如以上第一方面中任一实施方式中所述方法的步骤。
34.第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行以上第一方面中任一实施方式中所述方法的步骤。
35.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
36.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本技术一实施例提供的自动驾驶仿真测试系统的结构示意图;
38.图2是本技术一实施例提供的自动驾驶仿真测试图像处理方法的流程图;
39.图3是本技术一实施例提供的以ego车辆的几何中心为原点建立的三维直角坐标系示意图;
40.图4是本技术一实施例提供的对多个其他图像缓存队列进行时间同步的流程示意图;
41.图5是本技术一实施例提供的自动驾驶仿真测试图像处理装置的结构框图;
42.图6是本技术一实施例提供的终端设备的内部结构示意图。
具体实施方式
43.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
44.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
45.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
46.如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0047]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0048]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0049]
本技术提供一种自动驾驶仿真测试图像处理方法,通过将多个摄像机模型在同一个时间段采集的自动驾驶系统控制的目标车辆模型在仿真环境中的多个图像,存入对应的图像缓存队列,并同步多个图像缓存队列中位于队头位置的图像的时间戳;并向对应的机位显示端发送每个图像缓存队列中存储的至少一张图像。这样可以使得多个图像缓存队列传输给对应机位显示端的图像的时间是同步的,避免了不同摄像机模型采集的图像之间存在时间差,之后向对应的机位显示端发送所关联的图像缓存队列中存储的至少一张图像可以保证不同摄像机模型采集的图像在对应机位显示端同步显示,从而实现了不同机位的视频图像的播放是同步的,即同一时刻,不同机位的视频图像显示的是同一时刻的仿真测试内容。
[0050]
下面结合具体实施例,对本技术提供的自动驾驶仿真测试图像处理方法进行示例
性的说明。
[0051]
参见图1,为本技术提供的一种自动驾驶仿真测试系统,包括仿真测试平台110、自动驾驶系统120、模拟器130和显示终端140,仿真测试平台110包括执行引擎111和图像处理模块112,其中执行引擎111用于对仿真测试过程进行总体控制。在本实施例中执行引擎111将模拟器130中的摄像机模型采集的图像传输给图像处理模块112,图像处理模块112对图像进行处理后发送至显示终端140,显示终端140对接收到的图像进行视频显示,测试人员通过对显示终端140输出的视频对仿真测试的进程的监控。
[0052]
在本技术实施例中,显示终端140能够同时显示模拟器130中的多个位点的摄像机模型所采集的图像。其中显示终端140可以为多个终端的集合,也可以为在同一个终端上的多个显示界面。
[0053]
基于如图1所示的自动驾驶仿真测试系统,如图2所示,为本技术提供的一种自动驾驶仿真测试图像处理方法的一个实施例的流程图。该方法的执行主体为图1中的仿真测试平台110中的图像处理模块112。参见图2,该方法可以包括:
[0054]
步骤s201、获取多个摄像机模型中每个摄像机模型在同一个时间段采集的自动驾驶系统控制的目标车辆模型在仿真环境中的多个图像,不同摄像机模型用于从不同点位采集图像。
[0055]
实施例中,摄像机模型也可以称为图像传感器模型,是模拟器130自带的功能模块,用于对模拟器130的特定位点进行仿真测试图像的采集。不同的摄像机模型用于对不同位点进行图像的采集。
[0056]
可选的,仿真测试平台110可以向多个摄像机模型发送图像采集指令,以触发每个摄像机模型采集图像并将采集到的图像进行上报,或者多个摄像机模型也可以主动将采集到的图像上报给仿真测试平台110。
[0057]
一般来说,根据自动驾驶仿真测试的需要进行摄像机模型的设置,针对不同的仿真测试需求,摄像机模型的设置会有所不同。具体来说,在仿真测试过程中测试人员可以根据需要增加或减少摄像机模型的个数;也可以根据不同的拍摄需求选择不同种类的摄像机模型,例如摄像机模型的类型可以为彩色摄像机、灰度摄像机、深度摄像机等;还可以根据监测需要来设置摄像机模型在仿真场景中的具体位置。
[0058]
实施例中,摄像机模型在仿真场景中的具体位置可以称为摄像机模型的机位。摄像机模型的机位可以包括运动机位和固定机位。运动机位的摄像机模型会可以跟随测试车辆模型(ego车辆)的运动而运动,在仿真测试过程中运动机位的摄像机模型用于持续对ego车辆的周围仿真环境进行图像采集。固定机位的摄像机模型用于对其所在的仿真环境的固定位点进行图像采集,固定机位的摄像机模型不会跟随ego车辆移动,固定机位的摄像机模型主要关注的是仿真环境中需要着重观测的具体点位的ego车辆的仿真测试情况,例如可能是在十字路口的正上方设置方向朝下的机位,或者设置在弯道的入弯处、环岛的正上方等处的机位。
[0059]
为了使得本技术实施例中的运动机位的概念更加容易理解,下面结合附图对摄像机模型设置在不同的运动机位的情况进行示例性的说明。
[0060]
实施例中,运动机位的摄像机模型会跟随ego车辆的运动而运动,因此运动机位的坐标以摄像机模型与ego车辆的相对坐标来确定,如图3所示,以ego车辆的几何中心为原点
建立三维直角坐标系。该几何中心点到ego车辆最前端和ego车辆最后端的距离相等,到ego车辆最左端和ego车辆最右端的距离相等,到ego车辆最上端和ego车辆最下端的距离相等。令ego车辆的长宽高分别为l、w和h,ego车辆就是模拟器中原有的模型,因此这些车辆信息都通过模拟器来获取。
[0061]
如图3所示,其中xv表示x轴所在的方向(ego车辆的行驶方向),yv表示y轴所在的方向(ego车辆的右侧方向),zv表示z轴所在的方向(ego车辆上侧的方向)。其中roll表示围绕着x轴作如图箭头所示方向的旋转角度(单位是角度,如果roll等于360,就表示绕x轴旋转了一圈,从视图的角度来说等于没有变化),pitch和yaw与roll的定义相似,分别表示围绕y轴和z轴旋转。
[0062]
对于一个运动机位的摄像机来说,其在三维空间中的位置及朝向可以采用x,y,z,roll,pitch和yaw六个值来表示。实施例中,运动机位可以包括前景视图机位、车景视图机位、后视视图机位、左视视图机位、右视视图机位等。下面以x,y,z,roll,pitch和yaw分别对上述几个机位进行说明。
[0063]
(1)前景视图机位
[0064]
该机位对应的摄像机模型位于车辆车前盖上方位置,其中x=l/2.1,y=0,z=h/2.3,roll=0,pitch=20,yaw=0,其中pitch=20相当于把摄像头微微往下倾斜了20度,目的是更好地关注ego车辆前方区域,这一区域是测试时一般需要重点关注的区域。
[0065]
(2)车景视图机位
[0066]
该机位对应的摄像机模型位于车辆后方位置,其中x=-l/1.9,y=0,z=h/1.9,roll=0,pitch=20,yaw=0。镜头朝向车辆前方,能从后往前照到整辆车。
[0067]
(3)后视视图机位
[0068]
该机位对应的摄像机模型位于车辆前盖上,其中x=-l/2.1,y=0,z=h/2,roll=0,pitch=20,yaw=180,其中yaw=180相当于把摄像头的镜头朝向了车辆行驶方向的反方向,从而照到车辆后方。该机位能看到车辆后方的视图,当需要关注车辆后方测试情况的时候在该机位设置摄像机模型。
[0069]
(4)左视视图机位
[0070]
该机位对应的摄像机模型位于车辆的左侧,其中x=0,y=1.5*w,z=h/2,roll=0,pitch=0,yaw=-90。该机位能够从车辆左侧拍摄车辆。
[0071]
(5)右视视图机位
[0072]
该机位对应的摄像机模型位于车辆的右侧,其中x=0,y=-1.5*w,z=h/2,roll=0,pitch=0,yaw=90。该机位能够从车辆右侧拍摄车辆。
[0073]
实施例中,每个摄像机模型均会持续对对应的机位进行仿真图像的采集,并将采集到的图像发送至执行引擎,执行引擎将图像发送至图像处理模块。
[0074]
步骤s202、根据每个摄像机模型采集的多个图像,确定每个摄像机模型关联的图像缓存队列,一个图像缓存队列包括按照时间先后顺序依次存储在图像缓存队列中由对应的摄像机模型采集的多个图像,每个图像带有时间戳,图像缓存队列为先进先出队列。
[0075]
实施例中,每个摄像机模型对应一个图像缓存队列,图像处理模块接收到图像的时间的先后顺序将图像存入对应的图像缓存队列中。其中,图像缓存队列为先进先出队列,最先进入队列中的图像会被最先从队列中取出。比如,图像1、图像2和图像3均为同一个摄
像机模型a采集到的图像,且图像1的时间戳所对应的时间早于图像2的时间戳所对应的时间,图像2的时间戳所对应的时间早于图像3的时间戳所对应的时间,则在摄像机模型a对应的图像缓存队列中,图像1处于第一位置(即队头位置),假设以从左至右的方向,则图像缓存队列a中最左边的第一个位置可以看作是队头,而最右边的位置可以看作是该图像缓存队列的末尾位置,相应的图像2和图像3的位置在该图像缓存队列中位于第一位置之后。其中图像1会最先被取出,然后图像2和图像3会依次被取出。
[0076]
实施例中,每个摄像机模型实际上即为模拟器中的一个要素,模拟器中的每个要素有自己独一无二的标签,当仿真测试平台的图像处理模块接收到图像时,图像处理模块可以根据模拟器中摄像机模型的运行情况来判断该图像属于哪个摄像机模型,从而将其存入对应的图像缓存队列中。或者每个摄像机模型发送采集到的图像时会同时发送采集该图像的摄像机模型的标识,以便图像处理模块确定所接收到的图像来自哪个摄像机模型。
[0077]
其中,每个图像均带有时间戳,该时间戳可以为图像采集时间的时间戳,也可以为执行引擎接收到图像的时间的时间戳,或者也可以是图像处理模块接收到图像的时间的时间戳。
[0078]
如果以模拟器中图像的采集时间作为时间戳,那么就需要模拟器向仿真测试平台提供的图像数据中包括图像采集时间。但是由于针对不同的仿真测试过程,仿真测试平台可能会对接不同的模拟器,而不同的模拟器提供的图像数据会有所不同,因此无法保证所有的模拟器都一定会提供图像采集瞬间的时间戳。
[0079]
在一个实施例中,为了使得仿真测试平台对图像的时间戳能够进行有效的控制,根据仿真测试平台接收图像的时间来确定对应图像的时间戳。具体来说,可以是图像处理模块根据其本身接收到对应图像的时间来确定该图像的时间戳,或者还可以是执行引擎根据其本身接收到对应图像的时间来确定对应图像的时间戳,并把该图像和对应的时间戳发送至图像处理模块。
[0080]
实施例中,仿真测试平台会自动记录图像处理模块接收图像的时间(包括执行引擎接收图像的时间和图像处理模块接收图像的时间),因此利用接收图像的时间来确定时间戳可以提高时间戳的可控性。另外由于从摄像机模型采集图像到图像处理模块接收到图像之间的时间是非常短暂的,并且对于同一个模拟器来说,这个时间是一样的,因此不会对同步性产生影响。故而本技术实施例中选择以仿真测试平台接收图像的时间来确定对应图像的时间戳。
[0081]
可选的,图像缓存队列中的图像实际上为图像与对应时间戳组成的图像-时间戳元组,其中摄像机模型不断地将采集的图像发送至仿真测试平台的执行引擎,执行引擎将图像发送至图像处理模块,图像处理模块在接收到图像后就将该图像结合仿真测试平台的当前系统时间构造图像-时间戳元组并存入对应的图像缓存队列。
[0082]
可以理解的是,多个摄像机模型可能会同时发送采集到的图像至执行引擎,此时图像处理模块同时接收多个图像并将多个图像分别与当前系统时间的时间戳构成多个图像-时间戳元组,并将各个图像-时间戳元组存入对应的图像缓存队列。
[0083]
步骤s203、每间隔预设时间,同步多个图像缓存队列位于队头位置的图像的时间戳。
[0084]
实施例中,图像缓存队列位于队头位置的图像为当前状态下最先进入到该图像缓
存队列中的图像,也可以称之为队头图像。当一个队头图像从图像缓存队列中取出后,图像缓存队列中的下一个图像将成为该图像缓存队列新的队头图像。比如,图像1、图像2位于同一个图像缓存队列中,图像1开始处于队头的位置,图像2在队列中的位置依次位于图像1之后,那么当图像1被发送之后,图像2将位于队头位置。
[0085]
其中,同步多个图像缓存队列位于队头位置的图像的时间戳,使得同步后的各个图像缓存队列的队头图像的时间戳是同步,队头图像为所属图像缓存队列中最先发送至对应机位显示端的图像,因此使得各个图像缓存队列后续发送至机位显示端的图像时间上时同步的。
[0086]
实施例中,同步多个图像缓存队列位于队头位置的图像的时间戳是周期性地进行的,因此不会对图像缓存队列中的每个图像进行同步操作。在保证不同机位显示端图像显示同步的基础上,避免针对每个图像进行同步操作所带来较大的数据处理量,进而避免过多的增加仿真测试平台的运算压力。
[0087]
在一个实施例中,同步多个图像缓存队列位于队头位置的图像的时间戳具体过程包括:首先获取各个图像缓存队列的队头图像所对应的时间戳,并从中确定出最大时间戳;然后根据最大时间戳,更新其他图像缓存队列的队头图像,从而使得各个其他图像缓存队列的队头图像的时间戳与最大时间戳对齐,其中各个图像缓存队列中除了最大时间戳对应的图像缓存队列以外均为其他图像缓存队列。其中时间戳与最大时间戳对齐可以是时间戳与最大时间戳完全相同,也可以是时间戳与最大时间戳的时间偏差程度小于等于预设阈值。其中队头图像为对应图像缓存队列位于队头位置的图像。
[0088]
可以理解的是,图像对应的时间戳越大说明该图像进入所属的图像队列的时间越晚,进而图像的采集时间越晚。因此最大时间戳对应的队头图像为多个图像缓存队列的队头图像中最新采集到的图像;在更新各个其他图像缓存队列位于队头位置的图像时,将其他图像缓存队列的队头图像进行更新,使得各个其他图像缓存队列的队头图像的采集时间与最大时间戳对应的队头图像的采集时间相似度较高,从而保证发送至不同机位显示端的图像的时间上的同步性。
[0089]
可选的,使得最大时间戳与队头图像的采集时间的时间偏差程度小于等于预设阈值的方法,具体包括:首先确定各个其他图像缓存队列位于队头位置的图像所对应的时间戳与最大时间戳之间的时间偏差程度;对于其他图像缓存队列中时间偏差程度大于预设阈值的第一图像缓存队列,调整第一图像缓存队列位于队头位置的图像的时间戳,以使得调整后的第一图像缓存队列位于队头位置的图像的时间戳与最大时间戳之间的时间偏差程度小于或等于预设阈值。其中第一图像缓存队列可能是其他图像缓存队列中的任意一个队列。
[0090]
示例性的,将各个其他图像缓存队列的队头图像所对应的时间戳与最大时间戳进行比较,获得各个其他图像缓存队列所对应的时间偏差程度。
[0091]
示例性的,通过替换第一图像缓存队列位于队头位置的图像来调整第一图像缓存队列位于队头位置的图像的时间戳。具体来说包括:将当前时刻该第一图像缓存队列的队头图像删除,并根据该第一图像缓存队列的下一个队头图像的时间戳和最大时间戳之间的时间偏差程度,重复进行队头图像的删除和新的队头图像的时间偏差程度的获取,直到第一图像缓存队列的队头图像的时间戳与最大时间戳的时间偏差程度小于等于预设阈值。
[0092]
实施例中,时间偏差程度用于表征两个时间戳之间的差异,例如可以为比值或差值等。例如,时间偏差程度可以以最大时间戳与对应队头图像的时间戳的差值来表示,也可以以最大时间戳与对应队头图像的时间戳的比值来表示。
[0093]
示例性的,当时间偏差程度为差值时,其中预设阈值为同步容错时间差,同步容错时间差即为不同机位显示端可接受的同步时间差。具体来说,当不同的机位显示终端接收到的图像的时间戳差值在小于等于同步容错时间差的情况下,就可以认为不同机位显示终端是同步显示的。
[0094]
可以理解的是,当时间偏差程度为比值时,其中预设阈值为接近1的数值,预设阈值越接近1那么不同机位显示端可接受的同步时间差越小。
[0095]
下面以时间偏差程度为差值的情况,对同步多个图像缓存队列位于队头位置的图像的时间戳过程进行说明。
[0096]
图4所示,为本技术一实施例中的同步多个图像缓存队列位于队头位置的图像的时间戳的流程示意图。在该实施例中,δ表示表示不同图像队列的同步容错时间差,即允许不同图像队列的队头图像的时间戳有δ的差距,δ是正数。其中s表示对所有图像队列进行周期性检查的时间周期大小,s是正数。如图4所示,时间同步过程具体包括:
[0097]
s401、等待s时长。
[0098]
s402、获取当前所有图像缓存队列的队头图像的时间戳的最大值t-max。
[0099]
s403、将所有时间戳小于t-max的其他图像缓存队列放入一个序列l,对序列l进行遍历;其中q为序列l中的一个图像缓存队列,其对应的队头图像的时间戳为t。
[0100]
s404、判断t-max与t的差值是否大于δ。
[0101]
s405、若判断为是,则丢弃图像缓存队列q的队头图像,令t等于图像缓存队列q的下一个队头图像的时间戳,并跳转至s404。
[0102]
s406、若判断为否,则判断图像缓存队列q是否为序列l的最后一个图像缓存队列。
[0103]
s407、若判断为否,则令序列l的下一个图像缓存队列为q,并跳转至s404。
[0104]
s408、若判断为是,则结束流程。
[0105]
在一个实施例中,δ单位为毫秒,在应用过程中默认取值为1000毫秒;s单位为毫秒,在应用过程中默认取值为3000毫秒。
[0106]
实施例中,δ的取值为1000毫秒,即在进行时间同步时,当最大时间戳与其他图像缓存队列的时间戳与的差值大于1000毫秒时,才需要进行同步性操作,即删除对应的队头图像;如果不同的机位显示端的图像之间在同步性上存在1000毫秒以内差异,人眼是不容易识别到的,因此当时间戳与最大时间戳的差值小于1000毫秒,可以认为该时间戳所对应的图像与最大时间戳所对应的图像是同步的。
[0107]
其中,在进行时间同步过程中,通过设置容错时间差δ可以防止图像缓存队列中的图像被丢弃的数量太多而影响帧率,从而使得本技术实施例中的自动驾驶仿真测试图像处理方法在保证图像传输同步性的同时保证帧率稳定。
[0108]
步骤s204、向每个摄像机模型对应的机位显示端发送各自关联的图像缓存队列中存储的至少一张图像,至少一张图像包括时间戳同步后位于图像缓存队列的队头位置的图像。
[0109]
实施例中,摄像机模型与机位显示端一一对应,即一个机位显示端仅仅用于显示
对应的摄像机模型所采集的图像,因此本技术实施例中会存在多个机位显示端。其中,多个机位显示端可以为一个显示终端上的多个显示界面,多个机位显示端也可以为在同一个显示界面上分多块来显示。可选的,还也可以是每个机位显示端对应一个显示终端。
[0110]
其中,图像缓存队列中的图像依次被发送至对应的机位显示端,由于图像缓存队列为先进先出队列,因此位于图像缓存队列的队头位置的图像最先被发送至对应的机位显示端。
[0111]
可以理解的是,由于时间同步是周期性进行的,因此不会对图像缓存队列每个队头图像进行时间戳同步,因此图像处理模块发送至机位显示端的图像中,有的图像是时间戳同步处理过的,但是有的图像是在未经过时间戳同步处理直接发送至对应的机位显示端的。
[0112]
在一个实施例中,在将图像缓存队列中的图像发送至对应的机位显示端之前,图像处理模块还会对图像进行图形学的处理,例如:对其进行大小、颜色等必要的图形学调整,图形学调整主要依照具体的仿真测试要求而定,在此不做赘述。
[0113]
在一个实施例中,向机位显示端发送对应的图像缓存队列中存储的至少一张图像,具体来说包括:确定各个所述图像缓存队列对应的所述机位显示端的显示帧率;根据每个图像缓存队列对应机位显示端的显示帧率,向对应的机位显示端发送每个图像缓存队列中存储的至少一张图像。实施例中,图像处理模块在向对应的机位显示端发送图像之前,需要确定每个图像缓存队列对应的机位显示端的显示帧率。图像处理模块再根据显示帧率来确定向对应的机位显示端发送图像的速度。
[0114]
可选的,机位显示端的显示帧率可以根据历史经验来确定,例如可以改根据各个摄像机模型的在历史测试过程中的图像传输速率来确定。
[0115]
可选的,本技术一实施例还提供一种机位显示端的显示帧率的确定方法,具体包括以下步骤:首先获取各个图像缓存队列中存储的图像的数量;然后根据各个图像元组中存储的图像的数量来确定各个机位显示端的显示帧率。
[0116]
实施例中,将各个图像缓存队列中图像的数量与对应机位显示端的显示帧率关联,可以减缓摄像机模型的图像采集和发送频率对机位显示端的视频显示的影响,机位显示端均可以按照对应的帧率来对图像的进行视频显示,从而解决机位显示端的画面帧率不稳定的技术问题,提升用户体验。
[0117]
可选的,显示帧率与图像缓存队列的图像数量的关系具体来说为:图像缓存队列对应的图像的数量越大,那么图像缓存队列对应的机位显示端的显示帧率越大。
[0118]
实施例中,显示帧率可以理解为视频每秒钟显示的图片的数量,单位为fps(帧每秒),例如,帧率为5fps,说明每秒显示5张图片。即显示帧率越大,说明对应的机位显示端在单位时间内显示的图像张数越大。
[0119]
其中,缓存队列图像数量越大,就意味着对应的摄像机模型采集图像和向外发送图像的速度越快,因此图像处理模块可以加快图像发送速度,使得对应的机位显示端向外界提供更加流畅的画面。当缓存队列图像数量相对较小时,说明摄像机模型采集图像和向外发送图像的速度较慢,因此图像处理模块减慢图像发送的速度,虽然降低了对应的机位显示端的图像显示速度,但是提高了图像显示的稳定性和流畅性。
[0120]
在一个实施例中,将显示帧率转换为向机位显示端相邻图像之间的发送等待时
长,发送等待时长为帧率的倒数。例如,如果确定图像缓存队列对应的机位显示端的显示帧率为15fps,相应的该机位显示端的发送等待时长为1/15秒,即该机位显示端每间隔1/15秒向对应的机位显示端发送一张将该图像缓存队列中图像。
[0121]
可选的,显示帧率可以与图像缓存队列的图像数量成正比,也可以根据需要进行具体的数值设置。
[0122]
在一个实施例中,图像缓存队列中存储的图像的数量为m,当0<m≤10时,确定显示帧率为5fps,发送等待时长为0.2秒;当10<m≤100时,确定显示帧率为10fps,发送等待时长为0.1秒;100<m时,确定显示帧率为15fps,发送等待时长为1/15秒。
[0123]
可选的,确定的各个机位显示端的显示帧率的倒数均小于预设阈值,即各个发送等待时长均小于同步容错时间差δ。例如,δ的取值为1000毫秒,而最大的发送等待时长为0.2秒,因此发送等待时长远小于同步容错时间差δ。即不同机位显示端同一时刻的图像的时间差较大,因此针对不同图像缓存队列的发送等待时长(相当于不同机位显示端的帧率)的调整相对来说属于很小的调整,因此不会影响不同机位显示端之间图像显示的同步性。
[0124]
本技术实施例中,通过设置与多个图像传感器模型对应的多个图像缓存队列,同步多个图像缓存队列的位于队头位置的图像的时间戳,从而使得多个图像缓存队列传输给对应机位显示端的图像在时间上是同步的,进而保证了摄像机模型采集的图像在对应机位显示端同步显示。
[0125]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0126]
对应于上文实施例的自动驾驶仿真测试图像处理方法,图5示出了本技术实施例提供的自动驾驶仿真测试图像处理装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。参照图5,该自动驾驶仿真测试图像处理装置500包括:获取单元501、队列确定单元502、同步单元503和发送单元504:
[0127]
获取单元501,用于获取多个摄像机模型中每个摄像机模型在同一个时间段采集的自动驾驶系统控制的目标车辆模型在仿真环境中的多个图像,不同摄像机模型用于从不同点位采集图像;
[0128]
队列确定单元502,用于根据每个摄像机模型采集的多个图像,确定每个摄像机模型关联的图像缓存队列,一个图像缓存队列包括按照时间先后顺序依次存储在图像缓存队列中由对应的摄像机模型采集的多个图像,每个图像带有时间戳,图像缓存队列为先进先出队列;
[0129]
同步单元503,每间隔预设时间,用于同步多个图像缓存队列位于队头位置的图像的时间戳;
[0130]
发送单元504,用于向每个摄像机模型对应的机位显示端发送各自关联的图像缓存队列中存储的至少一张图像,至少一张图像包括时间戳同步后位于图像缓存队列的队头位置的图像。
[0131]
可选的,队列确定单元502,还用于根据自动驾驶仿真测试平台接收对应图像的时间来确定该图像的时间戳。
[0132]
可选的,同步单元503用于根据同步多个图像缓存队列位于队头位置的图像的时
间戳,包括:
[0133]
从各个图像缓存队列位于队头位置的图像所对应的时间戳中确定出最大时间戳;
[0134]
根据最大时间戳,更新各个其他图像缓存队列中位于队头位置的图像,以使各个其他图像缓存队列中位于队头位置的图像的时间戳与最大时间戳与最大时间戳之间的时间偏差程度小于或等于预设阈值,其他图像缓存队列为多个图像缓存队列中除了最大时间戳对应的图像缓存队列以外的图像缓存队列。
[0135]
可选的,同步单元503,用于根据最大时间戳,更新各个其他图像缓存队列中位于队头位置的图像的时间戳与最大时间戳之间的时间偏差程度小于等于预设阈值,包括:
[0136]
确定各个所述其他图像缓存队列位于队头位置的所述图像所对应的时间戳与所述最大时间戳之间的所述时间偏差程度;
[0137]
对于所述其他图像缓存队列中时间偏差程度大于预设阈值的第一图像缓存队列,调整所述第一图像缓存队列位于队头位置的图像的时间戳,以使得调整后的所述第一图像缓存队列位于队头位置的图像的时间戳与所述最大时间戳之间的时间偏差程度小于或等于所述预设阈值。
[0138]
可选的,发送单元504,用于向每个摄像机模型对应的机位显示端发送各自关联的图像缓存队列中存储的至少一张图像,包括:
[0139]
确定各个图像缓存队列对应的机位显示端的显示帧率;
[0140]
根据各个图像缓存队列对应的机位显示端的显示帧率,向对应的机位显示端发送每个图像缓存队列中存储的至少一张图像。
[0141]
可选的,发送单元504,用于确定各个图像缓存队列对应的机位显示端的显示帧率,包括:
[0142]
获取各个图像缓存队列中存储的图像的数量;
[0143]
根据各个图像缓存队列中存储的图像的数量,确定对应各个机位显示端的显示帧率。
[0144]
可选的,图像缓存队列中存储的图像的数量越多对应的机位显示端的显示帧率越大。
[0145]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0146]
基于同一发明构思,本技术一实施例还提供了一种仿真测试平台,该仿真测试平台可以为一种终端设备。如图6所示,该实施例的终端设备600包括:处理器601、存储器602以及存储在存储器602中并可在处理器601上运行的计算机程序604。计算机程序604可被处理器601运行,生成指令603,处理器601可根据指令603实现上述各个收货地址确认方法实施例中的步骤。或者,处理器601执行计算机程序604时实现上述各装置实施例中各模块/单元的功能,例如图5所示的获取单元501至发送单元504的功能。
[0147]
示例性的,计算机程序604可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器602中,并由处理器601执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序604在终端设备600中的执行过程。
[0148]
本领域技术人员可以理解,图6仅仅是终端设备600的示例,并不构成对终端设备600的限定,终端设备600可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备600还可以包括输入输出设备、网络接入设备、总线等。
[0149]
处理器601可以是中央处理单元(central processing unit,cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0150]
存储器602可以是终端设备600的内部存储单元,例如终端设备600的硬盘或内存。存储器602也可以是终端设备600的外部存储设备,例如终端设备600上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器602还可以既包括终端设备600的内部存储单元也包括外部存储设备。存储器602用于存储计算机程序以及终端设备600所需的其它程序和数据。存储器602还可以用于暂时地存储已经输出或者将要输出的数据。
[0151]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0152]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
[0153]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行时可实现上述各个方法实施例中的步骤。
[0154]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0155]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0156]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置
或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0157]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0158]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0159]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/服务器的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0160]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献