掌桥专利:专业的专利平台
掌桥专利
首页

自动驾驶车辆的监控方法及装置、存储介质、计算机设备

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及自动驾驶领域,具体地涉及一种自动驾驶车辆的监控方法及装置、存储介质、计算机设备。

背景技术

无人驾驶车辆依靠传感器感知路况和周围环境,摄像头是无人驾驶车辆重要的视觉传感器。无人驾驶车辆上的摄像头主要有感知摄像头和商用监控摄像头(也可称为作业摄像头)两种。其中,感知摄像头主要用于采集图像数据以参与无人驾驶算法;商用监控摄像头主要用于采集图像数据以记录监控车辆行驶状况和作业完成状况。

商用监控摄像头采集输出的图像通常还会用于远程监控,现有技术中,常用的远程监控技术方案主要包括以下两种:

1、获取商用监控摄像头的各帧原始图像,通过websocket协议(一种在单个TCP连接上进行全双工通信的协议)将各帧原始图像的数据以二进制的网络包传输至中间服务器,并在中间服务器封装成图片格式的文件(如jpg文件等)。执行远程监控的服务端以访问图像文件的方式从中间服务器获取各帧原始图像的文件,并将连续的多帧原始图像以类似于动图的形式在服务端侧播放。

2、获取商用监控摄像头输出的视频流(可以为RTSP格式),将视频流转码成实时传输协议(Real-time Transport Protocol,简称RTMP,也可以称为直播协议),并推送到中间服务器的视频处理中心。执行远程监控的服务端在向中间服务器请求后,从中间服务器上拉取RTMP流进行视频播放。

然而,上述两种远程监控技术方案有各自的缺点和不足。上述第1种解决方案没有对原始图像进行帧间编码,需要传输完整的原始图像,相同的传输帧率下带来更大的传输带宽消耗。如果宽带消耗大到一定程度会造成带宽堵塞,进而带来雪崩效应引起较大的延迟。而如果想要减少传输带宽的压力和传输的延迟,只能减少传输的图像的帧数,这会导致远程播放的帧率下降,对于服务端侧观看监控视频的人来说低播放帧率意味着视频卡顿,可能会带来监控的负面体验。

总而言之,以上两种现有的远程监控技术方案,远程监控的延迟往往较大,从而影响远程监控的效果。

发明内容

本发明解决的技术问题是如何有效减少无人驾驶车辆上商业监控摄像头的远程监控延迟。

为解决上述技术问题,本发明实施例提供一种自动驾驶车辆的监控方法,所述自动驾驶车辆设置有作业摄像头,所述作业摄像头用于输出编码图像,所述编码图像是采集的原始图像经过编码操作得到的,所述编码操作具有第一延迟,所述方法包括:获取所述作业摄像头采集的原始图像;对所述原始图像执行视频流编码操作,得到编码后的视频流,所述视频流编码操作具有第二延迟,所述第二延迟小于所述第一延迟;将所述视频流发送至服务端,以用于远程监控。

可选的,在所述视频流编码操作中,B帧编码被取消,和/或,单个画面组中的图像帧数量小于第一阈值。

可选的,在发送所述视频流时,用于发送所述视频流的缓存区的大小小于第二阈值,和/或,通过UDP协议发送所述视频流。

可选的,所述获取所述作业摄像头采集的原始图像之后,还包括:根据所述原始图像生成作业消息;发布所述作业消息,以使得一个或多个节点能够获取所述作业消息。

可选的,所述自动驾驶车辆配置有机器人操作系统,所述发布所述作业消息包括:将所述作业消息发布至所述机器人操作系统网络,以使得所述一个或多个节点通过订阅的方式从所述网络获取所述作业消息。

可选的,所述发布所述作业消息之后,还包括:通过本地监控节点获取所述作业消息,并基于所述作业消息生成作业图像流;通过所本地监控节点将所述作业图像流发送至播放设备播放,以使得所述自动驾驶车辆上的安全员实现本地监控。

可选的,所述自动驾驶车辆还设置有感知摄像头,所述感知摄像头用于采集感知图像,所述感知图像参与自动驾驶算法。

可选的,所述方法还包括:当所述自动驾驶车辆发生接管事件时,确定所述接管事件的发生时间;获取所述发生时间之前一段时间内的感知图像;获取所述发生时间之前一段时间内的原始图像;将所述接管事件、所述发生时间之前一段时间内的感知图像和原始图像发送至所述服务端。

本发明实施例还提供一种自动驾驶车辆的监控装置,所述自动驾驶车辆设置有作业摄像头,所述作业摄像头用于输出编码图像,所述编码图像是采集的原始图像经过编码操作得到的,所述编码操作具有第一延迟,所述装置包括:作业图像获取模块,用于获取所述作业摄像头采集的原始图像;编码模块,用于对所述原始图像执行视频流编码操作,得到编码后的视频流,所述视频流编码操作具有第二延迟,所述第二延迟小于所述第一延迟;发送模块,用于将所述视频流发送至服务端,以用于远程监控。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一项所述自动驾驶车辆的监控方法的步骤。

本发明实施例还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现任一项所述自动驾驶车辆的监控方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例提供一种自动驾驶车辆的监控方法,所述自动驾驶车辆设置有作业摄像头,所述作业摄像头用于输出编码图像,所述编码图像是采集的原始图像经过编码操作得到的,所述编码操作具有第一延迟,所述方法包括:获取所述作业摄像头采集的原始图像;对所述原始图像执行视频流编码操作,得到编码后的视频流,所述视频流编码操作具有第二延迟,所述第二延迟小于所述第一延迟;将所述视频流发送至服务端,以用于远程监控。较之现有技术,采用本实施例的方法,自动驾驶车辆获取作业摄像头未经内部编码的原始图像,并对原始图像进行外部编码后得到视频流,再将视频流推送至服务端。由此,在自动驾驶车辆向服务端发送作业摄像头采集的监控视频流时,能够有效减少远程监控的延迟。

进一步,车辆本地在获取原始图像之后对其进行帧间编码,并将编码后的数据封装为FLV流媒体再发送至服务端,压缩了原始图像。较之现有技术,本方案能够减小传输时的带宽消耗,并且不减少传输的图像帧数,使得服务端的工作人员有更好的监控体验。另外,帧间编码造成的延迟小于作业摄像头内部编码的延迟,能够有效减少远程监控场景的延迟。

进一步,将作业摄像头、感知摄像头以及各种感知设备采集到的原始图像、感知图像和感知信息这些数据,转化为统一的数据格式。从而能够基于同一套数据管理方式管理这些数据,便于数据分析。

进一步,在车辆本地监控场景下,自动驾驶车辆侧会播放作业摄像头采集的原始图像生成的作业图像流(如MJPEG图像流),在将原始图像转化为作业图像流时没有视频编码的计算消耗,并且本地监控场景下的原始图像的数据始终保留在车辆端本地,没有网络传输,无需考虑网络流量以及传输中对网络带宽的消耗,因而延迟非常低、且播放帧率高。

附图说明

图1为本发明实施例的一种自动驾驶车辆的监控方法的架构图;

图2为本发明实施例的一种自动驾驶车辆的监控方法的流程示意图;

图3为本发明实施例的一种自动驾驶车辆的监控方法的部分流程示意图;

图4为本发明实施例的一种自动驾驶车辆的监控方法的架构图;

图5是本发明实施例的一种自动驾驶车辆的监控装置的结构示意图。

具体实施方式

如背景技术所言,现有技术中在通过商用监控摄像头进行远程监控时,往往存在延迟较大的问题。本申请发明人注意到,上述问题的主要原因在于,商用监控摄像头一般在采集原始图像后,会经过摄像头内部编码之后以实时流协议(Real Time StreamingProtocol,简称RTSP)视频流的形式输出。然而,内部编码操作存在一定的延迟(该延迟通常为2秒(s)左右),可能导致对无人驾驶车辆进行监控时,由于延迟而影响监控效果。

另外,现阶段所有的无人驾驶车辆上一般会配备一位安全员,安全员需要通过本地观看摄像头(包括感知摄像头和作业摄像头)采集的视频、人为地规划自动驾驶车辆控制的预测轨迹等以了解车辆将来的行驶行为,安全员还可以结合车辆现场的环境判断是否有驾驶风险,以提早做好介入控制车辆的准备。

安全员在车辆端设备上观看摄像头采集的视频的场景,称之为车辆本地监控场景,该场景下传统的视频播放步骤包括:直接获取作业摄像头经过内部编码输出的RTSP视频流,并将该视频流(包括多帧图像)存储至车辆本地的磁盘中,本地的播放设备从磁盘读取存储的视频流进行播放。或者,将感知摄像头采集的图像存在至车辆本地的磁盘中,然后车辆本地从磁盘中获取存储的图像进行逐帧播放。

然而,发明人经过研究发现,现有的车辆本地监控场景中,需要向磁盘频繁地存储和读取视频流的各帧图像,会给磁盘的输入/输出(input/output,简称I/O)接口造成压力。另外,如果在同一帧图像写入的途中同时被读取,也会造成本地监控中的画面花屏、图像显示不完整等现象,影响安全员的本地监控体验。

为解决该问题,本发明实施例提供一种自动驾驶车辆的监控方法,所述自动驾驶车辆设置有作业摄像头,所述作业摄像头用于输出编码图像,所述编码图像是采集的原始图像经过编码操作得到的,所述编码操作具有第一延迟,所述方法包括:获取所述作业摄像头采集的原始图像;对所述原始图像执行视频流编码操作,得到编码后的视频流,所述视频流编码操作具有第二延迟,所述第二延迟小于所述第一延迟;将所述视频流发送至服务端,以用于远程监控。采用本实施例的方法,能够有效减少基于无人驾驶车辆上设置的商用监控摄像头进行监控的延迟,尤其在远程监控时能够减小由于延迟造成的影响。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。本发明涉及互联网技术领域,尤其涉及电子商务平台的大数据分析和应用。

在一个实施例中,请参见图1,图1为一种自动驾驶车辆10的监控方法的架构图,该自动驾驶车辆10上还设置有一个或多个作业摄像头101,所述作业摄像头101用于输出编码图像,所述编码图像是采集的原始图像经过编码操作得到的,所述编码操作具有第一延迟。

可选的,作业摄像头101可以安装于自动驾驶车辆10的外部,比如可以安装在自动驾驶车辆10的车顶、车头、车尾或者车身侧壁,用于采集自动驾驶车辆10所处的环境的图像。例如,作业摄像头101用于监控自动驾驶车辆10的行驶路线与马路边缘之间的相对位置,或者,用于监控自动驾驶车辆10的作业情况或记录监控车辆行驶状况。

可选的,所述作业情况根据自动驾驶车辆10被设置执行的作业确定。比如,自动驾驶车辆10被设置执行的作业为路面清扫,即自动驾驶车辆10为无人驾驶清扫车,所述作业可以指无人清扫车清洁路面的作业。此时,作业摄像头101可以设置于车顶或车尾,用于监控无人驾驶清扫车清洁后的路面。由于无人驾驶清扫车在执行路面清扫作业时通常需要紧贴马路边缘行驶,作业摄像头101可以设置于车顶或车尾或车身侧壁,用于监控无人驾驶清扫车的行驶路线与马路边缘之间的相对位置,以确定该车是否紧贴马路边缘行驶。

需要说明的是,自动驾驶车辆10被设置执行的作业包括但不限于路面清扫,当自动驾驶车辆10被设置执行其他作业时,作业摄像头101设置的位置以及监控的作业情况也随之变化,这里不再赘述。

可选的,作业摄像头101可以通过各种商用监控摄像头(简称监控摄像头)实现,一般而言,在常规的使用情况下,当前常见的监控摄像头在采集到的原始图像之后,需要对原始图像进行编码得到编码图像后输出。该编码可以称为内部编码,其引入了一定的时间延迟,记作第一延迟。对于即时性要求较高的监控场景,第一延迟可能导致无法满足监控需求。

在一个具体实施例中,一种常用的商用监控摄像头在采集到连续的多帧原始图像(例如,原始图像可以为真彩图像,即RGB图像)之后,对多帧原始图像进行内部编码以得到RTSP视频流并输出。RTSP视频流中包括多帧连续的编码后的图像(即编码图像),RTSP视频流能够满足用户观看监控画面的需求。其中,RTSP为传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,简称TCP/IP)协议体系中的应用层协议。

自动驾驶车辆10还可以设置有计算设备102,计算设备102用于执行本发明实施例的自动驾驶车辆的监控方法。该计算设备102可以设置于自动驾驶车辆10上,如整合于自动驾驶系统中。计算设备102也可以为与自动驾驶车辆10可通信连接的其他设备。

请参见图2,图2为一种自动驾驶车辆的监控方法的流程示意图,该方法可以由自动驾驶车辆上的计算设备执行。该方法可以包括以下步骤S201至步骤S203,各个步骤的详细介绍如下。

步骤S201,获取所述作业摄像头采集的原始图像。

可选的,作业摄像头可以采用已有的监控摄像头来实现,这种情况下,可以对监控摄像头进行二次开发,获取监控摄像头采集的原始图像,该原始图像未经过内部编码,相较于获取编码图像,获取原始图像能够避免第一延迟。进一步,利用监控摄像头提供的软件开发工具包(Software Development Kit,简称SDK)对其进行二次开发。或者,也可以定制专用的作业摄像头,该专用的摄像头可输出原始图像经内部编码后的编码图像,也可以通过适当的形式(例如定制的硬件或软件接口)获得未经内部编码的原始图像。

可选的,原始图像可以为监控摄像头内经过内部编码(例如,RTSP编码)前的图像。也即,在捕获监控摄像头图像的环节,使用内部编码前的原始图像数据,从而避免由于监控摄像头的内部编码带来的第一延迟。

步骤S202,对所述原始图像执行视频流编码操作,得到编码后的视频流,所述视频流编码操作具有第二延迟,所述第二延迟小于所述第一延迟。

在步骤S202中,由计算设备对获取的原始图像进行视频流编码操作,该编码可以称为外部编码,其引入了第二延迟,外部编码和内部编码的编码算法不同,第二延迟小于第一延迟。可选的,相较于内部编码,外部编码的压缩比例更低,所以第二延迟小于第一延迟。具体而言,外部编码是通过自动驾驶车辆中的计算设备(例如,图1中的计算设备102)执行的,一方面,可以通过对编码算法的优化来减小延迟;另一方面,自动驾驶车辆中的计算设备的算力往往优于作业摄像头的算力,因此也有利于减小编码延迟;此外,还可以对自动驾驶车辆中的计算设备进行硬件方面的优化,例如选用算力更强的设备,从而进一步减小编码延迟。

步骤S203,将所述视频流发送至服务端,以用于远程监控。

具体地,步骤S203中,计算设备将外部编码后的视频流发送至服务端,服务端侧的工作人员可以播放该编码后的视频流,对自动驾驶车辆的作业情况或车辆行驶情况进行监控。服务端对自动驾驶车辆的作业情况或车辆行驶情况进行监控可以称之为远程监控场景。可选的,当服务端的工作人员发现存在作业问题或者车辆行驶风险时,可以通过服务端远程控制自动驾驶车辆,比如对自动驾驶车辆进行紧急制动,或者改变自动驾驶车辆的行驶路线等等。

另外,服务端接收到计算设备发送的视频流之后,也可以通过对视频流中的各帧图像进行图像识别,以实现对自动驾驶车辆的作业情况或车辆行驶情况进行监控。

由上,自动驾驶车辆侧的计算设备获取作业摄像头未经内部编码的原始图像,并对原始图像进行外部编码后得到视频流,再将视频流推送至服务端。由此,在自动驾驶车辆向服务端发送作业摄像头采集的监控视频流时,能够有效减少延迟,减少的延迟为第一延迟与第二延迟之间的差值。

进一步,本实施例中,远程监控场景获取的原始图像未经过内部编码,也即未引入内部编码造成的延迟(即第一延迟),且外部编码造成的延迟(即第二延迟)小于监控摄像头内部编码的延迟(即第一延迟)。而前述常用的第2种解决方案中,引入了内部编码造成的延迟,由此,本实施例的方法能够有效减少远程监控场景的延迟。

需要说明的是,在远程监控场景下,计算设备如果直接将作业摄像头进行内部编码后的编码图像发送至服务端,存在两阶段的延迟:内部编码造成的延迟(即第一延迟)和计算设备和服务端之间数据传输造成到的延迟。

在一个实施例中,针对图2中步骤S202,在所述视频流编码(也即外部编码)操作中,为了尽量减小编码带来的延迟,可以采用以下方式中的一种或多种:取消双向预测内插编码帧(Bi-directional interpolated prediction frame,简称B帧)编码,将单个画面组(Group of Pictures,简称GOP)中的图像帧数量配置为小于第一阈值。

其中,单个GOP中包含的图像帧数量也可以称为GOP的大小(size)。每个GOP中包含多帧连续的图像,每一GOP的第一帧图像必须为内部帧(Intra-frame,简称I帧,也称关键帧Key-Frame),以保证GOP不需要参考其他图像,可以独立编码以及解码,其他帧可以为B帧或者预测帧(Predictive-frame,简称P帧)。

进一步而言,I帧画面完整保留,对I帧进行编码/解码时,只需要本帧图像数据就可以完成。P帧表示的是本帧跟之前的一个I帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面,也即P帧没有完整画面数据,只有与前一帧的画面差别的数据。B帧是当前的图像帧(简称当前帧)与当前帧的前一帧以及当前帧的后一帧的差别数据,要编码/解码B帧,不仅要取得当前帧的前一帧的缓存画面,还要解码当前帧的前一帧的画面,通过当前帧的前一帧和当前帧的前一帧的画面与本帧数据的叠加取得最终的画面。

本实施例中,在远程监控场景中,先将原始图像执行视频流编码操作再向服务端发送编码后的视频流。该编码操作中,将原始设定的单个GOP中的图像帧数量(也称GOPsize)减小,具体可以设置为小于第一阈值。减小GOP size能够减小视频流相邻I帧之间的图像帧数,在编码(或解码)时缩短相邻帧之间关联,以减小计算设备侧编码操作的延迟,并减小服务端进行对应的解码操作的延迟。最优选的情况下,第一阈值设置为1,也即编码后的视频流中的每帧都是I帧,由此各帧均可以独立编码、解码,能够最大程度上减小编码、解码过程中的延迟。然而,GOP size越小,视频流中I帧的比例越高,要传输的数据量越大,对传输带宽的要求也越高。可选的,第一阈值的取值可以基于当前计算设备向服务端进行数据传输时的传输带宽和远程监控场景下可接受的延迟来确定。

另外,在编码操作中,本实施例取消了B帧编码,而现有技术中,常用的编码操作会进行B帧编码,B帧编码的压缩率高,但是其编码、解码时需要引入至少三帧(即当前帧、前一帧和后一帧)编码的延迟,并且编码时资源占用较多。所以本实施例取消了B帧编码,能够有效减少编码、解码过程中的延迟和资源占用量。

在一个实施例中,针对图2中步骤S202,计算设备在发送所述视频流至服务端时,用于发送所述视频流的缓存区,也可以称为输出缓存(冲)区或者发送缓存(冲)区,其大小小于第二阈值。此外,计算设备可以通过用户数据包协议(User Datagram Protocol,简称UDP)协议发送所述视频流,以进一步减小延迟。

其中,计算设备在发送所述视频流至服务端,在发送缓冲区满了之后,才会向服务端输出,能够减小发送缓存区可使得服务端视频播放的缓冲时长减小,因而可以减小延迟,但此时需要牺牲一定的服务端播放的流畅性,以满足远程监控场景中对于监控实时性的要求。减小发送视频流的缓存区,能够减小每次数据拷贝的时间,从而能够缩短发送视频流的延迟。进一步,用于发送视频流的缓存区的大小设置为小于第二阈值。

另外,相较于TCP协议,UDP协议的传输速度更快,传输延迟更小。可选的,本发明实施例中可以基于常用的基于UDP协议开发的视频直播协议实现,例如,可以使用阿里云提供的低延迟直播解决方案使用的协议头ARTC等实现计算设备和服务端之间的视频流传输,并在服务端进行视频直播。

一般而言,在使用ARTC实现计算设备和服务端之间的视频流传输时,其发送缓存区是第三方(例如,阿里云)预设好的值,本发明实施例还可以对ARTC的推流端进行自主配置,减小了发送缓存区,从而进一步减小传输延迟。

在一个具体实施例中,在所述视频流编码操作中,B帧编码被取消且单个画面组中的图像帧数量小于第一阈值;在发送所述视频流时,用于发送所述视频流的缓存区的大小小于第二阈值,并且通过UDP协议发送所述视频流。由此,在视频编码、传输和解码的各个步骤中均将延迟降到最低,以在服务端实现低延迟的实时监控直播。

在一个具体实施例中,外部编码操作可以包括以下步骤:将各帧RBG图像(RGB图像为原始图像的一种常见格式)进行色域空间转换得到YUV颜色编码的图像。其中,“Y”表示明亮度(Luminance或Luma),即灰阶值,“U”和“V”表示色度(Chrominance或Chroma),用于描述影像的色彩及饱和度,用于指定像素的颜色。再将多帧连续的YUV颜色编码的图像转化为数字视频压缩格式后,封装成流媒体(FLash Video,简称FLV)格式的适配视频(也即外部编码后的视频流)。其中,数字视频压缩格式可以为H.264或H.265等格式。

本实施例中,将原始图像经过格式转换、帧间编码等操作,再将编码后的数据封装为FLV格式的视频流,而背景技术中所述的第1种解决方案中,对应的方案是将各帧原始图像的数据以二进制的网络包传输至中间服务器,再由服务端获取。由于本实施例中发送的FLV格式的视频流已经对原始图像进行了帧间编码,无需传输完整的原始图像,能够减小传输时的带宽消耗,并且不减少传输的图像帧数,能够使服务端的工作人员有更好的监控体验。

在一个实施例中,请再次参见图1,所述自动驾驶车辆10还可以设置有一个或多个感知摄像头103,所述感知摄像头103用于采集感知图像,所述感知图像参与自动驾驶算法,也即,自动驾驶算法基于感知图像进行自动驾驶相关的运算并产生用于自动驾驶的控制指令。

在自动驾驶车辆10上会配置有感知摄像头103,感知摄像头103采集后的原始图像可以被自动驾驶车辆10上的感知模块获取,感知模块基于感知摄像头103采集的原始图像以及自动驾驶车辆10上设置的一种或多种的感知设备104(该感知设备104可以包括重力传感器、超声波传感器、加速度计等)运行自动驾驶算法,实现车辆的自动驾驶。

在自动驾驶车辆10被用于实现其他作业(如清洁路面等)时,可以在自动驾驶车辆上安装一个或多个作业摄像头101,作业摄像头101采集得到的原始图像不参与自动驾驶算法,而是用于监控自动驾驶车辆10的作业情况或记录监控车辆行驶状况。

在一个实施例中,请再次参见图2,步骤S201所述获取所述作业摄像头采集的原始图像之后,所述方法还可以包括:根据所述原始图像生成作业消息;发布所述作业消息,以使得一个或多个节点能够获取所述作业消息。

可选的,作业消息中包括各帧原始图像及其时间,各帧图像的时间可以包括该帧图像的采集时间和/或计算设备接收到该帧图像的时间。

进一步,作业消息的数据格式包括数据头部(header)信息和数据体两个部分,其中数据头部信息用于承载各帧原始图像的时间,数据体用于承载原始图像。或者,作业消息的数据格式为携带时间标签的原始图像,时间标签包括各帧原始图像的时间,所述时间标签由计算设备为各帧原始图像标注。进一步,数据头部信息中还可以包括原始图像的数据量大小、原始图像的长/宽等信息。

可选的,感知摄像头采集感知图像之后,将其传输给计算设备,计算设备将感知图像转换成感知消息,感知消息的数据格式与作业消息的数据格式一致,感知消息的数据格式可以参照上述作业消息的数据格式的相关说明。例如,感知消息的数据格式包括数据头部信息和数据体两个部分,其中数据头部信息用于承载各帧感知图像的时间,数据体用于承载感知图像。

可选的,各种感知设备在各自采集到自动驾驶车辆的感知信息(比如车辆的加速度、重力等等)之后,也可以将采集到的感知信息转换为与感知消息的数据格式一致的数据消息。

计算设备将获取的各帧原始图像转化为作业消息的格式,以便于后续的数据管理。进一步,计算设备将作业摄像头、感知摄像头以及各种感知设备采集到的原始图像、感知图像和感知信息这些其他数据,转化为统一的数据格式(即作业消息、感知消息以及数据消息),由此,能够基于同一套数据管理方式管理这些数据,便于数据分析。

进一步,本实施例中,基于同一套数据管理方式管理采集到的原始图像、感知图像和感知信息等数据。而现有方案中,作业摄像头(如商用监控摄像头)一般具有限定的视频流编码输出格式(如RTSP格式),不便于参与其他类型数据的联合计算,也不便于与其他数据实现信息同步。因此,本实施例中的方案,能够令作业摄像头采集的数据(即原始数据)与其他数据一起进行联合计算,比如参与无人驾驶算法。也能够令作业摄像头采集的数据与其他数据实现信息同步。

可选的,计算设备发布作业消息、感知消息和数据消息中的一种或多种消息,以使得部署于计算设备内部的各个节点或者与计算设备接入统一网络的各个节点,能够获取发布的消息。

在一个具体实施例中,所述述自动驾驶车辆配置有机器人操作(Robot OperatingSystem,简称ROS)系统,上述发布所述作业消息的步骤可以包括:将所述作业消息发布至所述ROS网络,以使得所述一个或多个节点通过订阅的方式从所述网络获取所述作业消息。

具体地,ROS为编写机器人软件程序的一种具有高度灵活性的软件架构。计算设备可以通过发布话题方式在ROS网络中发布作业消息、感知消息和数据消息中的一种或多种消息,各个节点可以通过订阅话题的方式,获取ROS网络中发布的消息。

需要说明的是,现有的部分自动驾驶车辆上的感知设置头和感知设备采集的数据基于ROS生态实现数据管理,本发明实施例中,自动驾驶车辆被用于实现其他作业时,通过自动驾驶车辆上的计算设备实现对作业摄像头采集的原始图像也转化为ROS中的图像消息格式得到作业消息,并将作业消息也发布至ROS网络中,依托于ROS中消息的发布/订阅机制,有需要的节点可以通过话题订阅的方式得到作业消息。

进一步,各个节点获取到ROS中发布的消息之后,可以基于各自不同的分析需求,对获取的消息中的数据进行不同的数据处理以满足需求。

在一个具体实施例中,请再次参见图2,计算设备侧可以包括原始图像获取节点和远程监控节点,原始图像获取节点用于获取所述作业摄像头采集的原始图像,根据所述原始图像生成作业消息并发布指ROS网络中。远程监控节点订阅对应的话题以获取作业消息,并从获取的作业消息中获取原始图像(即步骤S201),并执行步骤S202和步骤S203。

进一步,计算机设备侧还可以包括感知图像获取节点和/或感知信息获取节点,感知图像获取节点用于获取感知摄像头采集的感知图像并将其转化为感知消息发布至ROS网络中,感知信息获取节点用于获取各个感知设备采集的感知信息并将其转化为数据消息发送至ROS网络中。

在一个实施例中,所述发布所述作业消息之后,还可以包括:通过本地监控节点获取所述作业消息,并基于所述作业消息生成作业图像流;通过所本地监控节点将所述作业图像流发送至播放设备播放,以使得所述自动驾驶车辆上的安全员实现本地监控。

其中,本地监控节点为用于实现自动驾驶车辆本地监控的节点,该节点可以通过ROS的话题订阅机制订阅对应的话题,获取ROS网络中的作业消息进而获取对应的原始图像。作业图像流为计算设备从作业消息中获取多帧原始图像,并基于获取的多帧原始图像生成的图像流(如下文中的MJPEG图像流)。所述作业图像流被播放设备播放时可以实现本地监控。

可选的,播放设备可以为任意可以播放作业图像流的设备,如显示屏、行车记录仪等。播放设备侧可以安装有用于播放图像流的应用程序,如网页、各种视频播放器等。

可选的,本地监控节点获取作业消息后,将作业消息转化为联合图像专家组(Joint Photographic Experts Group,简称JPEG)格式的各帧原始图像,然后封装进网页支持播放的运动JPEG(MotionJPEG,简称MJPEG)图像流,车上安全员可以使用浏览器打开部署在自动驾驶车辆上的网页读取到MJPEG图像流的画面并播放,以满足车辆本地监控场景的监控需求。其中,MJPEG图像流中的每一帧是一幅完整的JPEG图像,将多帧JPEG图像转化为MJPEG图像流时没有视频编码的计算消耗,并且本地监控场景下的原始图像的数据始终保留在车辆端本地,没有网络传输,无需考虑网络流量以及传输中对网络带宽的消耗,因而延迟非常低、且播放帧率高。

另外,本实施例中,本地监控节点从ROS网络中通过话题订阅机制获取作业消息并转化为作业图像(即JPEG图像),各帧作业图像直接从内存中获取后播放。无需如现有的车辆本地监控场景中,需要先存储至磁盘中再通过内存读取播放。因此,本实施例的方案能够有效减轻磁盘的输入/输出接口的压力,并解决画面花屏、图像显示不完整的问题,提高安全员的本地监控的体验。

可选的,本地监控场景下还可以播放感知摄像头采集的感知图像的图像流,本地监控节点获取感知图像并播放对应的图像流的描述可以参见上述关于作业图像流的生成和播放的相关描述,这里不再赘述。

在一个实施例中,请参见图3,所述自动驾驶车辆的监控方法还可以包括以下步骤:

步骤S301,当所述自动驾驶车辆发生接管事件时,确定所述接管事件的发生时间;

步骤S302,获取所述发生时间之前一段时间内的感知图像;

步骤S303,获取所述发生时间之前一段时间内的原始图像;

步骤S304,将所述接管事件、所述发生时间之前一段时间内的感知图像和原始图像发送至所述服务端。

其中,接管事件为自动驾驶车辆上发生人为操作的事件,安全员在判定发生行驶风险或者作业不规范等情况时,可以触发接管事件。可选的,接管事件可以为人为触发的紧急制动,或者人为触发的左转、右转、倒车等事件。

计算设备在检测到自动驾驶车辆上发生接管事件时记录该时间的发生时间。并收集该发生时间之前一段时间内的感知图像和原始图像,可以在获取一段时间内的感知图像的之前/之后/同时获取一段时间内的原始图像。

针对步骤S304,计算设备将获取的感知图像和原始图像以及对应的接管事件一起发送给服务端,以使得服务端能够结合接管事件发生之前自动驾驶车辆的作业情况或车辆行驶状况(可由原始图像分析得到)以及自动驾驶情况(可由感知图像分析得到)来判定发生接管事件的原因或者评判自动驾驶车辆上配置的自动驾驶算法是否需要改进。

进一步,在步骤S304中,计算设备在向服务端发送感知图像和/或原始图像时,可以对感知图像和/或原始图像进行视频流编码操作并发送编码后的视频流,具体描述可以参见远程监控场景中外部编码中的相关描述,这里不再赘述。

需要说明的是,向服务端发送接管事件对应的视频流时,对延迟的要求较低,因此,在同时需要向服务端发送远程监控的视频流时,接管事件对应的视频流的优先级低于远程监控的视频流。

可选的,在对接管事件对应的感知图像和/或原始图像进行视频流编码时,可以进行B帧编码,和/或,GOP size大于或等于外部编码的GOP size。由此,可以提高编码获得的视频流的质量,从而能获得更多视频、图像细节。

可选的,在发送接管事件对应的视频流时,用于发送该视频流的缓存区大于或等于远程监控场景中发送视频流的缓存区,和/或,通过TCP协议发送接管事件对应的视频流。

在一个实施例中,请参见图4,图4为本发明实施例的另一种自动驾驶车辆的架构图。作业摄像头101采集到原始图像和感知摄像头103采集到的感知图像均为JPEG图像,JPEG图像经过格式转换得到ROS图像消息(也即作业消息和感知消息),多帧图像对应的ROS图像消息构成ROS图像消息流。使用了ROS图像消息流面对各个节点进行ROS图像消息的统一发布,保证了各个获取ROS图像消息的节点在不同的所有使用场景下图像消息的一致性。ROS图像消息包括头部信息和数据体两部分,ROS图像消息中的头部信息携带时间字段,其能够使ROS中的图像消息以及其他消息(如数据消息等)实现时间上的同步。

ROS图像消息流可以由感知模块获取,并和其他感知设备采集感知信息一起参与无人驾驶算法。

ROS图像消息流可以由本地监控节点获取,经过格式转换生成MPEG图像流,在自动驾驶车辆本地进行播放,以实现本地监控。

ROS图像消息流还可以由远程监控节点获取,对ROS图像消息流中的原始图像进行编码得到视频流(如上述FLV流),并将视频流推流至内容分发网络(Content DeliveryNetwork,简称CDN)30上,在服务端20要进行视频播放(也即播流)时,服务端20从CDN 30获取视频流并播放,实现远程监控。可选的,可以包括一个或多个服务端20,各个服务端20均可以从CDN 30获取视频流并播放。

其中,CDN 30是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。由于CDN 30依托遍布全球的边缘节点就近获取资源,能够减少网络抖动风险,提升全链路稳定性和流畅性的同时也降低了延迟。并且,CDN 30还可以将视频流转码成不同的格式,以支持多种传输协议和视频播放协议。

另外,ROS图像消息流还可以由离线分析节点获取后存储,以供后续的数据分析。可选的,离线分析节点可以将获取的ROS图像消息流中的图像封装成视频格式(比如MP4等格式)存储。

可选的,离线分析节点还可以获取其他数据(比如上述的数据消息或者无人驾驶算法的运行日志、车辆定位、规划路径、车辆自身状态等数据),并与ROS图像消息流中的数据(如MP4等格式的视频)对应存储。进一步,离线分析节点可以将获取的这些数据打包成ROS文件包(即图中的ROS-BAG文件)存储。离线分析节点可以将ROS文件包写入磁盘,以在需要的时候可以调阅出来进行对应的数据分析。

可选的,在存储这些数据之前,可以基于这些数据各自的时间,将不同数据在时间轴上进行对齐,ROS图像消息的时间可以通过其头部信息获得。

请参见图5,本发明实施例还提供一种自动驾驶车辆的监控装置50,所述自动驾驶车辆设置有作业摄像头,所述作业摄像头用于输出编码图像,所述编码图像是采集的原始图像经过编码操作得到的,所述编码操作具有第一延迟,自动驾驶车辆的监控装置50包括:作业图像获取模块501,用于获取所述作业摄像头采集的原始图像;编码模块502,用于对所述原始图像执行视频流编码操作,得到编码后的视频流,所述视频流编码操作具有第二延迟,所述第二延迟小于所述第一延迟;发送模块503,用于将所述视频流发送至服务端,以用于远程监控。

可选的,在所述视频流编码操作中,B帧编码被取消,和/或,单个画面组中的图像帧数量小于第一阈值。

可选的,在发送所述视频流时,用于发送所述视频流的缓存区的大小小于第二阈值,和/或,通过UDP协议发送所述视频流。

在一个实施例中,所述获取所述作业摄像头采集的原始图像之后,自动驾驶车辆的监控装置50还可以包括:作业消息生成模块,用于根据所述原始图像生成作业消息;作业消息发布模块,用于发布所述作业消息,以使得一个或多个节点能够获取所述作业消息。

在一个实施例中,所述自动驾驶车辆配置有机器人操作系统,所述作业消息发布模块还可以用于将所述作业消息发布至所述机器人操作系统网络中,以使得所述一个或多个节点通过订阅的方式从所述网络获取所述作业消息。

在一个实施例中,所述发布所述作业消息之后,自动驾驶车辆的监控装置50还可以包括:作业图像流生成模块,用于通过本地监控节点获取所述作业消息,并基于所述作业消息生成作业图像流;本地播放模块,用于通过所本地监控节点将所述作业图像流发送至播放设备播放,以使得所述自动驾驶车辆上的安全员实现本地监控。

在一个实施例中,所述自动驾驶车辆还设置有感知摄像头,所述感知摄像头用于采集感知图像,所述感知图像参与自动驾驶算法。

在一个实施例中,自动驾驶车辆的监控装置50还可以包括:触发接管模块,用于当所述自动驾驶车辆发生接管事件时,确定所述接管事件的发生时间;感知图像获取模块,用于获取所述发生时间之前一段时间内的感知图像;原始图像获取模块,用于获取所述发生时间之前一段时间内的原始图像;接管数据发送模块,用于将所述接管事件、所述发生时间之前一段时间内的感知图像和原始图像发送至所述服务端。

关于自动驾驶车辆的监控装置50的工作原理、工作方式的更多内容,可以参照上述图1至图4中的对于自动驾驶车辆的监控方法的相关描述,这里不再赘述。

进一步地,本发明实施例还公开一种存储介质,其上存储有计算机程序,计算机程序被处理器运行时执行上述图1至图4中的自动驾驶车辆的监控方法的技术方案。

进一步地,本发明实施例还公开一种计算设备,包括存储器和处理器,存储器上存储有能够在处理器上运行的计算机程序,处理器运行计算机程序时执行上述图1至图4中的自动驾驶车辆的监控方法的技术方案。

具体地,在本发明实施例中,所述处理器可以为中央处理单元(centralprocessing unit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称DSP)、专用集成电路(application specificintegrated circuit,简称ASIC)、现成可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称ROM)、可编程只读存储器(programmable ROM,简称PROM)、可擦除可编程只读存储器(erasable PROM,简称EPROM)、电可擦除可编程只读存储器(electricallyEPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称RAM)可用,例如静态随机存取存储器(staticRAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,简称DR RAM)。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。

本申请实施例中出现的“多个”是指两个或两个以上。

本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。

本申请实施例中出现的“连接”是指直接连接或者间接连接等各种连接方式,以实现设备间的通信,本申请实施例对此不做任何限定。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

相关技术
  • 自动驾驶车辆的监控方法及装置、存储介质、计算机设备
  • 自动驾驶策略的训练方法、装置、自动驾驶方法、设备、车辆和计算机可读存储介质
技术分类

06120114691516