自动驾驶算法融合结果与多路视频同步回放方法及其装置
文献发布时间:2023-06-28 06:30:04
技术领域
本申请涉及人工智能领域,尤其涉及自动驾驶、智能交通及信息流等技术,特别的涉及一种自动驾驶算法融合结果与多路视频同步回放方法及其装置,可应用于智慧交通场景。
背景技术
随着车辆工业技术的发展,越来越多的企业开始研发无人车(也叫自动驾驶车辆)。通过在车辆上设置自动驾驶系统。自动驾驶系统通过摄像头、激光雷达等传感器识别道路目标,实现路径规划等,以达到自动驾驶的目的。其中,自动驾驶算法需要不断地进行完善,对自动驾驶进行完善依赖无人车的自动驾驶算法融合结果与多路视频数据。
但是,目前尚缺乏用于能够对车辆自动驾驶算法融合结果与多路视频进行回溯的有效技术手段。
发明内容
本申请提供了一种自动驾驶算法融合结果与多路视频同步回放方法、装置、系统、电子设备以及存储介质。
根据本申请的第一方面,提供了一种自动驾驶算法融合结果与多路视频同步回放方法,应用于服务器,所述方法包括:
接收客户端通过网页浏览器访问指定统一资源定位符URL方式触发的播放指令;其中,所述播放指令中携带所述指定URL,所述指定URL包括播放起始时间和播放结束时间;
根据所述播放起始时间和所述播放结束时间,获取对应的目标二进制文件和多路目标视频流文件;其中,所述目标二进制文件内容包括算法融合数据,所述多路目标视频流文件内容包括多路感知传感器数据;
对所述目标二进制文件进行解析,以得到待播放算法融合数据;
将所述待播放算法融合数据和所述多路目标视频流文件发送给客户端;其中,所述待播放算法融合数据和所述多路目标视频流文件用于在所述客户端进行按时间同步播放。
根据本申请的第二方面,提供了一种自动驾驶算法融合结果与多路视频同步回放方法,应用于客户端,所述方法包括:
响应于通过网页浏览器访问指定统一资源定位符URL方式触发的播放事件,向服务器发送播放指令;其中,所述播放指令中携带所述指定URL,所述指定URL包括播放起始时间和播放结束时间;所述播放指令用于指示所述服务器根据所述播放起始时间和所述播放结束时间,下载对应的目标二进制文件和多路目标视频流文件;
响应于接收到所述服务器发送的下载完成通知,向所述服务器发送数据请求;其中,所述数据请求用于指示所述服务器从所述目标二进制文件中读取出时间长度为读取指定时间的算法融合数据作为待播放算法融合数据;
接收所述服务器发送的所述待播放算法融合数据和所述多路目标视频流文件;
将所述待播放算法融合数据和所述多路目标视频流文件进行按时间同步播放。
根据本申请的第三方面,提供了一种服务器,包括:
控制模块,用于接收客户端通过网页浏览器访问指定统一资源定位符URL方式触发的播放指令;其中,所述播放指令中携带所述指定URL,所述指定URL包括播放起始时间和播放结束时间;
所述控制模块,还用于根据所述播放起始时间和所述播放结束时间,获取对应的目标二进制文件和多路目标视频流文件;其中,所述目标二进制文件内容包括算法融合数据,所述多路目标视频流文件内容包括多路感知传感器数据;
数据解析模块,用于对所述目标二进制文件进行解析,以得到待播放算法融合数据;
所述数据解析模块,还用于将所述待播放算法融合数据和所述多路目标视频流文件发送给客户端;其中,所述待播放算法融合数据和所述多路目标视频流文件用于在所述客户端进行按时间同步播放。
根据本申请的第四方面,提供了一种客户端,包括:
数据可视化模块,用于响应于通过网页浏览器访问指定统一资源定位符URL方式触发的播放事件,向服务器发送播放指令;其中,所述播放指令中携带所述指定URL,所述指定URL包括播放起始时间和播放结束时间;所述播放指令用于指示所述服务器根据所述播放起始时间和所述播放结束时间,下载对应的目标二进制文件和多路目标视频流文件;
所述数据可视化模块,还用于响应于接收到所述服务器发送的下载完成通知,向所述服务器发送数据请求;其中,所述数据请求用于指示所述服务器从所述目标二进制文件中读取出时间长度为读取指定时间的算法融合数据作为待播放算法融合数据;
所述数据可视化模块,还用于接收所述服务器发送的所述待播放算法融合数据和所述多路目标视频流文件,并将所述待播放算法融合数据和所述多路目标视频流文件进行按时间同步播放。
根据本申请的第五方面,提供了一种自动驾驶算法融合结果与多路视频同步回放系统,包括:如上述第三方面所述的服务器;以及如上述第四方面所述的客户端。
根据本申请的第六方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的方法,或者能够执行上述第二方面所述的方法。
根据本申请的第七方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述第一方面所述的方法,或者使所述计算机执行上述第二方面所述的方法。
根据本申请的第八方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现上述第一方面所述方法的步骤,或者实现上述第二方面所述方法的步骤。
根据本申请的技术,可以解决自动驾驶算法融合结果与多路视频数据同步回放的问题,从而能够对车辆自动驾驶算法融合结果与多路视频进行回溯。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例提供的一种自动驾驶算法融合结果与多路视频同步回放方法的流程图;
图2是本申请实施例提供的自动驾驶算法融合数据的预处理方法的流程图;
图3为本申请实施例提供的二进制record文件格式的示例图;
图4为本申请实施例提供的多路感知传感器数据的预处理方法流程图;
图5为本申请实施例提供的另一种自动驾驶算法融合结果与多路视频同步回放方法的流程图;
图6为本申请实施例提供的一种服务器的结构框图;
图7为本申请实施例提供的另一种服务器的结构框图;
图8为本申请实施例提供的一种客户端的结构框图;
图9为本申请实施例提供的自动驾驶算法融合结果与多路视频同步回放系统的交互示意图;
图10为本申请实施例提供的展示界面的示例图;
图11是用来实现本申请实施例的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
随着车辆工业技术的发展,越来越多的企业开始研发无人车(也叫自动驾驶车辆)。通过在车辆上设置自动驾驶系统。自动驾驶系统通过摄像头、激光雷达等传感器识别道路目标,实现路径规划等,以达到自动驾驶的目的。其中,自动驾驶算法需要不断地进行完善,对自动驾驶进行完善依赖无人车的自动驾驶算法融合结果与多路视频数据。
但是,目前尚缺乏用于能够对车辆自动驾驶算法融合结果与多路视频进行回溯的有效技术手段。
为此,本申请提供了一种自动驾驶算法融合结果与多路视频同步回放方法、装置、系统、电子设备以及存储介质。本申请可以解决自动驾驶算法融合结果与多路视频数据同步回放的问题,从而能够对车辆自动驾驶算法融合结果与多路视频进行回溯。
首先,需要说明的是,本申请的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
下面参考附图描述本申请实施例的自动驾驶算法融合结果与多路视频同步回放方法、装置、系统、电子设备以及存储介质。
图1为本申请实施例提供的一种自动驾驶算法融合结果与多路视频同步回放方法的流程图。需要说明的是,该方法可应用于服务器。如图1所示,该方法可包括但不限于如下步骤。
在步骤101中,接收客户端通过网页浏览器访问指定URL(Uniform ResourceLocator,统一资源定位符)方式触发的播放指令。
在一种实现方式中,客户端包括数据可视化模块,通过该数据可视化模块为用户提供可视化界面。例如,当用户在网页浏览器中打开指定网页,该网页上可以包括播放控件。当用户点击该播放控件时,客户端通过网页浏览器访问指定URL方式向服务器发送播放指令。
其中,在本申请的实施例中,该播放指令中可以携带该指定URL,该指定URL可以包括但不限于播放起始时间和播放结束时间等。例如,在自动驾驶算法需要不断地进行完善,对自动驾驶进行完善依赖大量的无人车的落盘数据,该落盘数据包括如下数据中的至少两种:高精地图数据、算法融合数据、摄像头视频数据、激光雷达点云数据、CANBus(ControLLer Area Net-work Bus,控制器局域网总线)数据等。可以对大量的落盘数据进行分批处理,每批落盘数据具有对应的数据批次号,每批落盘数据可以包括上述各种类型的数据。在这种场景下,本申请实施例进行同步回放时,客户端通过网页浏览器访问指定URL方式触发播放流程时,该URL中还可包括数据批次号,以便可以根据该数据批次号、播放起始时间和播放结束时间,找到对应的二进制文件和多路视频流文件。
在步骤102中,根据播放起始时间和播放结束时间,获取对应的目标二进制文件和多路目标视频流文件。
其中,在本申请的实施例中,该目标二进制文件内容可以包括算法融合数据。在一种实现方式中,该算法融合数据可以包括但不限于以下信息中的至少一种:自车信息(如位置信息和/或驾驶状态信息,如速度等),路径规划信息,决策相关信息,感知相关信息,预测相关信息等。
其中,在本申请的实施例中,该多路目标视频流文件内容可以包括多路感知传感器数据。在一种实现方式中,该感知传感器数据可以包括但不限于以下数据中的至少一种:摄像头的视频数据,激光雷达的点云数据等。
在一种可能的实现方式中,可以先对原始数据(如无人车的落盘数据)进行预处理。举例而言,针对原始数据中的自动驾驶算法融合数据通过预处理保存为统一的二进制序列化格式,如protobuf(一种轻便高效的结构化数据存储格式,常用于结构化数据的序列化)二进制序列化格式,以得到与动驾驶算法融合数据对应的二进制文件。例如,该二进制文件可以为record二进制文件,该record二进制文件格式支持按时间范围对保存的数据进行检索。在本申请的实施例中,可以根据播放起始时间和播放结束时间,从预先处理得到的二进制文件中获取对应的目标二进制文件。
在一种实现方式中,还可以对原始数据中的图像数据进行预处理。例如,将图像数据转换为视频流,如HLS(HTTP Live Streaming,基于HTTP的流媒体网络传输协议)视频流,视频可以采用H.264编码,转换后得到视频流文件,比如该视频流文件可以为.ts格式文件。由于车辆上每种类型的感知传感器通常具有多个,每个感知传感器具有一路感知传感器数据。本申请实施例可以对每路感知传感器数据分别进行视频流转换,以得到每路感知传感器的视频流。为了进行区分,可以将视频流文件的开始时间、结束时间、以及对应的感知传感器标识等信息保存到数据库中。在本申请的实施例中,可以根据播放起始时间和播放结束时间,从预先处理得到的视频流文件中获取到对应的多路目标视频流文件。
在步骤103中,对目标二进制文件进行解析,以得到待播放算法融合数据。
在一种实现方式中,可以读取目标二进制文件,从该目标二进制文件中解析出待播放算法融合数据。其中,在本申请的实施例中,该待播放算法融合数据可以包括以下数据中的至少一种:感知相关数据、决策相关数据、自车状态数据(如位置和/或速度等)。
在本公开的一些实施例中,可以接收客户端发送的数据请求;其中,该数据请求中可以包括读取指定时间。从目标二进制文件中读取出时间长度为该读取指定时间的算法融合数据,作为待播放算法融合数据。作为一种示例,该读取指定时间可以为30秒。
举例而言,服务器在获得目标二进制文件和多路目标视频流文件之后,可以向客户端发送下载完成通知。客户端接收到该下载完成通知后,可以向服务器发起WebSocket连接,并向服务器请求从开始时间起30秒的数据。服务器接到该请求后,开始读取该指定时间段的二进制文件,以得到对应的待播放算法融合数据。
在步骤104中,将待播放算法融合数据和多路目标视频流文件发送给客户端;其中,待播放算法融合数据和多路目标视频流文件用于在客户端进行按时间同步播放。
可选的,在得到待播放算法融合数据之后,服务器可以通过WebSocket连接将待播放算法融合数据,并通过http协议将多路目标视频流文件发送给客户端。客户端将待播放算法融合数据和多路目标视频流文件通过网页浏览器在指定界面上进行播放。在播放过程中,对待播放算法融合数据和多路目标视频流文件进行按时间同步。
通过实施本申请实施例,可以解决自动驾驶算法融合结果与多路视频数据同步回放的问题,从而能够对车辆自动驾驶算法融合结果与多路视频进行回溯。另外,本申请基于Web(网页),用户可直接在浏览器打开,不需要下载大量数据。此外,本申请可以支持自动驾驶算法融合结果与多路视频数据等的同步播放,尽可能降低带宽要求,在普通办公网络环境也可以正常播放多路视频。
在本申请的一些实施例中,可以对无人车的落盘数据(即原始数据)进行预处理,以得到与自动驾驶算法融合数据对应的二进制文件。可选的,如图2所示,该自动驾驶算法融合数据的预处理方法可包括以下步骤:
在步骤201中,获取自动驾驶算法输出的算法融合数据。
其中,在本申请的实施例中,该算法融合数据可以包括但不限于以下信息中的至少一种:自车信息(如位置信息和/或驾驶状态信息,如速度等),路径规划信息,决策相关信息,感知相关信息,预测相关信息等。
在步骤202中,将算法融合数据转换成二进制序列化格式,并将二进制序列化格式的算法融合数据以预设频率保存在一个结构体内,并将算法融合数据中各种类型数据按时间对齐,以及将算法融合数据中同一时间的数据打包为一个数组保存,得到与算法融合数据对应的二进制文件;其中,二进制文件支持按时间范围对保存的数据进行检索。
在一种可能的实现方式中,将算法融合数据通过预处理保存为统一的二进制序列化格式,如protobuf二进制序列化格式,该二进制序列化格式内容包括:自车信息、路径规划信息、预测相关信息、决策相关信息、感知相关信息等。所有信息统一以一定频率(如每秒10帧的频率)保存在一个结构体内,算法融合数据中各种类型数据需要按时间对齐。同一自然秒的信息打包为一个数组保存。转换后,一定时长(如每一分钟)的数据保存为一个二进制record文件。record文件格式支持按时间范围对保存的数据进行检索。
需要说明的是,还可以将原始数据中的图表数据与算法融合数据一起进行预处理,使得转换后的二进制文件中的内容还可包括图表信息。这样,在客户端请求播放时,也可以将图表信息与算法融合数据和多路视频一同进行同步回放。
举例而言,如图3所示,为二进制record文件格式的示例图。其中,该二进制record文件中包含多个数组,一个数组对应一个自然秒的数据,即同一自然秒的信息打包为一个数组保存。一个数组可理解为一个结构体,每个结构体包括10帧,每帧数据包括多种类型数据,如每帧数据可包括自车信息、感知相关信息、预测相关信息、决策相关信息和路径规划信息。
由此可见,本申请可以通过利用二进制文件支持按时间范围对保存的数据进行检索的特性,可以随时对指定时间进行播放,以支持跳转播放等功能,另外也可以避免下载大量数据。
在本申请的一些实施例中,可以对无人车的落盘数据(即原始数据)进行预处理,以得到与多路感知传感器数据对应的多路视频流文件。可选的,如图4所示,该多路感知传感器数据的预处理方法可包括以下步骤:
在步骤401中,获取车辆的多路感知传感器数据。
其中,在本申请的实施例中,该感知传感器数据可以包括但不限于以下数据中的至少一种:摄像头的视频数据,激光雷达的点云数据等。为了方便理解,本申请以多路感知传感器数据为多路摄像头的视频数据为例进行描述,可以理解,其他类型的感知传感器数据的处理方式与多路摄像头的视频数据的处理方式类似,可以参见针对多路摄像头的视频数据的处理方式,在此不再赘述。
在步骤402中,将每路感知传感器数据分别转换为视频流,得到每路感知传感器数据的视频流文件。
举例而言,可以将每路感知传感器数据(如图像数据)转换为视频流,如HLS视频流,视频可以采用H.264编码,转换后得到视频流文件,比如该视频流文件可以为.ts格式文件。
在步骤403中,将每个视频流文件与每个视频流文件的起止时间、对应感知传感器标识进行绑定,以得到每个视频流文件与每个视频流文件的起止时间、对应感知传感器标识之间的映射关系。
在步骤404中,将每个视频流文件和映射关系进行存储。
可选的,由于车辆上每种类型的感知传感器通常具有多个,每个感知传感器具有一路感知传感器数据。本申请实施例可以对每路感知传感器数据分别进行视频流转换,以得到每路感知传感器的视频流。为了进行区分,可以将视频流文件的开始时间、结束时间、以及对应的感知传感器标识等信息保存到数据库中,将视频流文件上传到对象存储中。
本申请实施例还提出了另一种自动驾驶算法融合结果与多路视频同步回放方法。图5为本申请实施例提供的另一种自动驾驶算法融合结果与多路视频同步回放方法的流程图。需要说明的是,该方法可应用于客户端。如图5所示,该方法可以包括但不限于以下步骤。
在步骤501中,响应于通过网页浏览器访问指定URL方式触发的播放事件,向服务器发送播放指令。
在一种实现方式中,客户端包括数据可视化模块,通过该数据可视化模块为用户提供可视化界面。例如,当用户在网页浏览器中打开指定网页,该网页上可以包括播放控件。当用户点击该播放控件时,客户端通过网页浏览器访问指定URL方式向服务器发送播放指令。
其中,在本申请的实施例中,该播放指令中携带指定URL,该指定可以URL包括播放起始时间和播放结束时间。该播放指令可以用于指示服务器根据播放起始时间和播放结束时间,下载对应的目标二进制文件和多路目标视频流文件。
例如,在自动驾驶算法需要不断地进行完善,对自动驾驶进行完善依赖大量的无人车的落盘数据,该落盘数据包括如下数据中的至少两种:高精地图数据、算法融合数据、摄像头视频数据、激光雷达点云数据、CANBus数据等。可以对大量的落盘数据进行分批处理,每批落盘数据具有对应的数据批次号,每批落盘数据可以包括上述各种类型的数据。在这种场景下,本申请实施例进行同步回放时,客户端通过网页浏览器访问指定URL方式触发播放流程时,该URL中还可包括数据批次号,以便可以根据该数据批次号、播放起始时间和播放结束时间,找到对应的二进制文件和多路视频流文件。
在步骤502中,响应于接收到服务器发送的下载完成通知,并向服务器发送数据请求。
其中,在本申请的实施例中,该数据请求可以用于指示服务器从目标二进制文件中读取出时间长度为读取指定时间的算法融合数据作为待播放算法融合数据。作为一种示例,该读取指定时间可以为30秒。
可选的,客户端接收到该下载完成通知后,可以向服务器发起WebSocket连接,并向服务器请求从开始时间起30秒的数据。服务器接到该请求后,开始读取该指定时间段的二进制文件,以得到对应的待播放算法融合数据。
在步骤503中,接收服务器发送的待播放算法融合数据和多路目标视频流文件。
可选的,客户可以接收服务器通过WebSocket连接发送的待播放算法融合数据,并通过http协议发送多路目标视频流文件,并将待播放算法融合数据和多路目标视频流文件存入本地缓存内。
在步骤504中,将待播放算法融合数据和多路目标视频流文件进行按时间同步播放。
在一种可能的实现方式中,客户端可以按照时间同步的方式,基于WebGL(WebGraphics Library,3D绘图协议)在网页浏览器中对待播放算法融合数据进行逐帧展示,并将多路目标视频流文件进行视频播放。其中,在本申请的实施例中,该多路目标视频流文件可以是预先通过服务器按照各路感知传感器的标识分类组织成.m3u8格式的播放列表,这样,客户端可以在对待播放算法融合数据逐帧进行展示的同时,开始按照获取到的.m3u8格式的播放列表进行视频播放。其中,本申请支持用户可以随时选择显示或隐藏各个视频。
为了进一步提升体验,可以支持跳转播放的功能。可选的,在本申请的一些实施例中,可以响应于对用于播放算法融合数据的展示界面上进度条的点击跳转操作,根据点击跳转操作,获取与点击跳转操作对应的待播放算法融合数据。将与点击跳转操作对应的待播放算法融合数据在展示界面上进行逐帧展示。
在一种实现方式中,客户端可以为用户提供展示界面,在该展示界面上可以播放算法融合数据。该展示界面上还具有播放进度条。在用户在进度条上点击跳转时,客户端可以响应于该点击跳转操作,根据该点击跳转操作确定对应的待播放位置,根据该待播放位置向服务器请求对应的待播放算法融合数据。在收到服务器返回的该待播放算法融合数据后,可以将该待播放算法融合数据在展示界面上进行逐帧展示,以实现跳转播放的功能。
通过实施本申请实施例,可以解决自动驾驶算法融合结果与多路视频数据同步回放的问题,从而能够对车辆自动驾驶算法融合结果与多路视频进行回溯。另外,本申请基于Web(网页),用户可直接在浏览器打开,不需要下载大量数据。此外,本申请可以支持自动驾驶算法融合结果与多路视频数据等的同步播放,尽可能降低带宽要求,在普通办公网络环境也可以正常播放多路视频。
为了实现上述实施例,本申请提出了一种自动驾驶算法融合结果与多路视频同步回放系统。其中,该系统可以包括服务器和客户端。下面将分别对服务器和客户端的结构和功能进行描述。
图6为本申请实施例提供的一种服务器的结构框图。如图6所示,该服务器可以包括:控制模块601和数据解析模块602。
其中,控制模块601用于接收客户端通过网页浏览器访问指定统一资源定位符URL方式触发的播放指令;其中,播放指令中携带指定URL,指定URL包括播放起始时间和播放结束时间。
控制模块601还用于根据播放起始时间和播放结束时间,获取对应的目标二进制文件和多路目标视频流文件;其中,目标二进制文件内容包括算法融合数据,多路目标视频流文件内容包括多路感知传感器数据。
数据解析模块602用于对目标二进制文件进行解析,以得到待播放算法融合数据。在一种可能的实现方式中,数据解析模块602具体用于:接收客户端发送的数据请求;其中,数据请求中包括读取指定时间;从目标二进制文件中读取出时间长度为读取指定时间的算法融合数据,作为待播放算法融合数据。
数据解析模块602还用于将待播放算法融合数据和多路目标视频流文件发送给客户端;其中,待播放算法融合数据和多路目标视频流文件用于在客户端进行按时间同步播放。
在本申请的一些实施例中,如图7所示,该服务器还可包括数据预处理模块703。其中,数据预处理模块703用于获取自动驾驶算法输出的算法融合数据。数据预处理模块703还用于将算法融合数据转换成二进制序列化格式,并将二进制序列化格式的算法融合数据以预设频率保存在一个结构体内,并将算法融合数据中各种类型数据按时间对齐,以及将算法融合数据中同一时间的数据打包为一个数组保存,得到与算法融合数据对应的二进制文件;其中,二进制文件支持按时间范围对保存的数据进行检索。
其中,在本申请的实施例中,控制模块701具体用于:根据播放起始时间和播放结束时间,从二进制文件中获取对应的目标二进制文件。
在本申请的一些实施例中,数据预处理模块703还用于:获取车辆的多路感知传感器数据,并将每路感知传感器数据分别转换为视频流,得到每路感知传感器数据的视频流文件;将每个视频流文件与每个视频流文件的起止时间、对应感知传感器标识进行绑定,以得到每个视频流文件与每个视频流文件的起止时间、对应感知传感器标识之间的映射关系;将每个视频流文件和映射关系进行存储。
其中,在本申请的实施例中,控制模块701具体用于:根据播放起始时间和播放结束时间,从已存储的视频流文件和映射关系,获取对应的多路目标视频流文件。其中,图7中701-702和图6中601-602具有相同功能和结构。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8为本申请实施例提供的一种客户端的结构框图。如图8所示,该客户端可以包括:数据可视化模块801。
其中,数据可视化模块801用于响应于通过网页浏览器访问指定统一资源定位符URL方式触发的播放事件,向服务器发送播放指令;其中,播放指令中携带指定URL,指定URL包括播放起始时间和播放结束时间;播放指令用于指示服务器根据播放起始时间和播放结束时间,下载对应的目标二进制文件和多路目标视频流文件。
数据可视化模块801还用于响应于接收到服务器发送的下载完成通知,向服务器发送数据请求;其中,数据请求用于指示服务器从目标二进制文件中读取出时间长度为读取指定时间的算法融合数据作为待播放算法融合数据。
数据可视化模块801还用于接收服务器发送的待播放算法融合数据和多路目标视频流文件,并将待播放算法融合数据和多路目标视频流文件进行按时间同步播放。
在一种实现方式中,数据可视化模块801具体用于:按照时间同步的方式,基于WebGL在网页浏览器中对待播放算法融合数据进行逐帧展示,并将多路目标视频流文件进行视频播放。
在一种可能的实现方式中,数据可视化模块801还用于:响应于对用于播放算法融合数据的展示界面上进度条的点击跳转操作,根据点击跳转操作,获取与点击跳转操作对应的待播放算法融合数据;将与点击跳转操作对应的待播放算法融合数据在展示界面上进行逐帧展示。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
为了方便本领域技术人员更加清楚地了解本申请,下面将结合图9和图10进行描述。
如图9所示,本申请实施例的自动驾驶算法融合结果与多路视频同步回放系统可包括服务器和客户端。其中,服务器可包括控制模块911和数据解析模块912。客户端可包括数据可视化模块921。用户可以通过网页浏览器播放指定数据。流程如下:
1)用户通过网页浏览器访问指定URL方式触发播放流程,该指定URL可包含落盘数据批次号、播放起始时间、播放结束时间;
2)控制模块911接收到用户的播放指令后,按照用户发送的数据批次号、播放起始时间、播放结束时间,在数据库中查找对应的二进制文件(如.record文件)及视频流文件(如.ts文件);如果找到.ts文件,则将找到的.ts文件按感知传感器标识分类组织成.m3u8格式的播放列表,返回给数据可视化模块921。
3)控制模块911开始从对象存储下载指定数据批次、起止时间的.record文件,下载完成后通知数据可视化模块921。
4)数据可视化模块921接到下载完成通知,向数据解析模块912发起WebSocket连接。
5)数据可视化模块921向控制模块911请求从开始时间起30秒的数据,控制模块911接到请求后,将该请求转发至数据解析模块912。数据解析模块912接到该请求后,开始读取指定时间段的record数据,并通过WebSocket推送给数据可视化模块921。
6)数据可视化模块921接收到通过WebSocket推送的数据后,存入本地缓存内,并通过WebGL在浏览器中对算法融合数据逐帧进行展示。同时开始按照获取到的m3u8的播放列表进行视频播放,用户可以随时选择显示或隐藏各个视频。在播放过程中需要对算法融合数据及所有当时可见的视频进行按时间同步。
7)第一次请求的30秒数据播放即将完成时,数据可视化模块921可以再向控制模块911请求后续30秒的数据,数据解析模块912继续通过WebSocket向数据可视化模块921推送后续30秒的数据。
8)如果用户在进度条点击跳转,数据可视化模块921首先检查跳转后的位置在本地缓存中是否已经存在,如存在则直接从本地缓存开始播放。如不存在,则数据可视化模块921向控制模块911请求跳转后起点开始30秒的数据。控制模块911接到请求后,将请求转发至数据解析模块912;数据解析模块912接到请求后,开始读取指定时间段的record数据,并通过WebSocket推送给数据可视化模块921。
在本申请的实施例中,还需要对多路视频进行同步。多路视频同步流程可如下:
1)数据可视化模块921在开始播放时,向控制模块911请求获取要播放批次数据的视频列表。控制模块911将各个感知传感器的视频串流自动组织为m3u8格式的播放列表,返回给数据可视化模块921。
2)数据可视化模块921在网页上按照m3u8格式的播放列表加载各个感知传感器的视频串流,并按开始时间进行对齐。数据可视化模块921自动随时从云端对象存储下载各感知传感器视频,如从当前播放位置开始到当前播放位置后1分钟内的视频数据,并缓存至本地内存中。
3)数据可视化模块921获取到数据解析模块912通过WebSocket推送的算法融合数据后,先自动暂停播放,等待各感知传感器视频均下载缓存完成至少5秒的视频数据,再开始播放。
4)数据可视化模块921实时监听各感知传感器视频的播放状态,当有视频出现由于网络问题导致的缓存不足时,自动暂停播放,等待各感知传感器的视频从当前播放位置开始到当前播放后5秒内的视频数据全部下载缓存完成后再开始播放。
5)数据可视化模块921实时监听各感知传感器视频与算法融合数据的播放时间。以第一路视频为基准,当算法融合数据的当前播放时间与第一路视频的播放时间差异超过1秒时,强制将算法融合数据的当前播放时间跳转至第一路视频的当前播放时间位置,实现同步。当第一路视频的播放时间与其它感知传感器视频的播放时间差异超过1秒时,强制将其它感知传感器的视频播放位置跳转至第一路视频的播放位置,跳转后如需要加载则自动暂停播放,等待各感知传感器视频从当前播放位置开始到当前播放后5秒内的视频数据全部下载缓存完成后再开始播放。
可选的,还可以将无人车的落盘数据中的高精地图数据进行预处理,这样,在进行同步回放时,还可以将预处理后的高精地图数据加载到同步回放界面上。例如,算法融合数据中包括自车信息(如位置信息),在同步回放界面上,可以根据该位置信息加载对应的高精地图数据到同步回放界面上。
例如,如图10所示,左侧为算法融合数据展示,右侧为多个摄像头的视频展示。下侧为播放进度条,用户可进行暂停、继续等操作,或在进度条任意进行跳转操作。用户也可以在右上方的视频选择栏1001选择显示或隐藏某一个视频。播放进程中如视频与算法融合结果由于网络卡顿等原因出现不同步,会自动进行同步处理。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图11所示,是根据本申请实施例的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图11所示,该电子设备包括:一个或多个处理器1101、存储器1102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器1101为例。
存储器1102即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的自动驾驶算法融合结果与多路视频同步回放方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的自动驾驶算法融合结果与多路视频同步回放方法。
存储器1102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的自动驾驶算法融合结果与多路视频同步回放方法对应的程序指令/模块。处理器1101通过运行存储在存储器1102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的自动驾驶算法融合结果与多路视频同步回放方法。
存储器1102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1102可选包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
电子设备还可以包括:输入装置1103和输出装置1104。处理器1101、存储器1102、输入装置1103和输出装置1104可以通过总线或者其他方式连接,图11中以通过总线连接为例。
输入装置1103可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1104可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
- 一种多路音频、视频、雷达混合同步回放的方法及装置
- 一种多路视频同步回放方法及装置