车辆控制方法、装置及计算机可读存储介质
技术领域
本公开涉及自动驾驶技术领域,特别涉及一种车辆控制方法、装置及计算机可读存储介质。
背景技术
随着互联网技术的发展,自动驾驶技术逐渐成为人们关注的焦点。随着车厂与各科技企业在自动驾驶领域的不断探求,越来越多的自动驾驶技术问世。
传统的自动驾驶技术中具体的技术实践方式主要包括双目摄像头和激光扫描。采用双目摄像头可以进行物体识别,判断车辆前方是否有水平障碍物,并进一步判断水平障碍物与车头的距离。采用激光扫描技术,可以通过激光扫描建立三维模型来判断车辆前方是否有水平障碍物。
发明内容
发明人研究发现,传统的自动驾驶技术可能无法有效的检测出行人在车辆前方经过,因此不能准确的判断是否需要对车辆制动,导致车辆发生意外事故的风险较高,使得传统的自动驾驶技术的安全度和可靠性较差。
本公开解决的一个技术问题是,如何准确的判断是否需要对车辆制动,提高车辆自动驾驶的安全度和可靠性。
根据本公开实施例的一个方面,提供了一种车辆控制方法,包括:检测车辆前方的行车视频中人体的骨骼关键点;获取所述骨骼关键点在所述行车视频中的位置信息;根据所述位置信息判断是否需要对车辆制动。
在一些实施例中,所述位置信息包括同一人体的不同骨骼关键点在所述行车视频中位置重合的频率;所述根据所述位置信息判断是否需要对车辆制动包括:在同一人体的不同骨骼关键点在所述行车视频中位置重合的频率大于预设频率的情况下,判断需要对车辆制动。
在一些实施例中,所述位置信息包括同一人体的相同骨骼关键点在所述行车视频中的位置坐标;所述根据所述位置信息判断是否需要对车辆制动包括:在同一人体的相同骨骼关键点在所述行车视频中的位置坐标从所述行车视频的边缘向所述行车视频的中心移动的情况下,判断需要对车辆制动。
在一些实施例中,还包括:在根据所述位置信息判断需要对车辆制动的情况下,控制对车辆进行制动。
在一些实施例中,所述控制对车辆进行制动包括:通过摄像头确定所述骨骼关键点与车辆之间的最短物理距离;根据所述位置信息以及车辆的行驶速度,确定所述骨骼关键点与车辆之间的相对速度;根据所述最短物理距离以及所述相对速度,确定对车辆进行制动的程度,并控制对车辆进行相应程度的制动。
在一些实施例中,还包括:利用预先训练的卷积神经网络,对检测出所述骨骼关键点的行车视频进行逐帧处理,得到实时的制动策略;其中,所述卷积神经网络是采用检测出骨骼关键点的行车视频帧作为训练样本训练得到的,所述检测出骨骼关键点的行车视频帧标注有相应的制动策略;在实时得到的制动策略指示需要对车辆制动的情况下,控制对车辆进行制动。
在一些实施例中,还包括:对所述检测出骨骼关键点的行车视频帧标注制动策略;采用所述检测出骨骼关键点的行车视频帧作为训练样本,对卷积神经网络进行训练,使得训练后的卷积神经网络能够根据输入的检测出骨骼关键点的行车视频帧输出相应的制动策略。
在一些实施例中,制动策略包括制动程度。
根据本公开实施例的一个方面,提供了一种车辆控制装置,包括:控制器,用于执行前述的车辆控制方法。
在一些实施例中,还包括:摄像头,与所述控制器电连接,用于拍摄车辆前方的行车视频;其中,所述摄像头的摄像方向与车辆的行驶方向相同。
在一些实施例中,摄像头位于车辆的顶部,以使得所述行车视频中下边缘的实际位置与车辆前端的距离小于预设值。
在一些实施例中,还包括CAN总线接口,用于通过CAN总线连接至车辆的制动系统,以控制对车辆进行制动。
在一些实施例中,还包括服务器,所述服务器与所述控制器通过电信号连接;其中,所述控制器还用于:将检测出所述骨骼关键点的行车视频发送至服务器;所述服务器用于:利用预先训练的卷积神经网络,对检测出所述骨骼关键点的行车视频进行逐帧处理,得到实时的制动策略,并将实时的制动策略反馈至所述控制器;其中,所述卷积神经网络是采用检测出骨骼关键点的行车视频帧作为训练样本训练得到的,所述检测出骨骼关键点的行车视频帧标注有相应的制动策略。
在一些实施例中,还包括红外灯,用于发射红外光以辅助所述摄像头在夜晚进行拍摄。
在一些实施例中,还包括补光灯,用于为所述摄像头的拍摄光源补光。
在一些实施例中,还包括电源,用于为所述车辆控制装置供电。
在一些实施例中,还包括固定器,用于将所述车辆控制装置中的各个部件固定在车辆上。
根据本公开实施例的又一个方面,提供了一种车辆控制装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述的车辆控制方法。
根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现前述的车辆控制方法。
本公开利用骨骼关键点检测技术,能够根据骨骼关键点在行车视频中的位置信息检测出是否有行人在车辆前方经过,从而准确的判断是否需要对车辆制动,提高车辆自动驾驶的安全度和可靠性。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开一些实施例的车辆控制方法的流程示意图。
图2示出了本公开另一些实施例的车辆控制方法的流程示意图。
图3示出了本公开一些实施例的车辆控制装置的结构示意图。
图4示出了车辆控制装置在车辆上的安装示意图。
图5示出了固定器的安装示意图。
图6示出了本公开另一些实施例的车辆控制装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
首先结合图1描述本公开车辆控制方法的一些实施例。在这些实施例中,车辆能够利用骨骼关键点检测技术判断出行人的移动方向,从而检测出是否有行人在车辆前方经过。下面进行详细介绍。
图1示出了本公开一些实施例的车辆控制方法的流程示意图。如图1所示,本实施例包括步骤S102~步骤S106。
在步骤S102中,检测车辆前方的行车视频中人体的骨骼关键点。
在检测骨骼关键点时可以采用骨骼检测算法。骨骼检测算法是对人体骨骼点进行检测的方法,可以根据视频中人体的头、肩、手臂、躯体、腿部等骨骼关键点进行显示标记。从图像结构来看,骨骼检测算法还能够将骨骼关键点通过线条连接,当人产生动作时会以肢体的骨骼点为轴心产生行动轨迹变化。目前的骨骼检测算法可以对人体的全身和半身两种情况进行检测,并且不限于人体正面或背面的约束。
在步骤S104中,获取该骨骼关键点在行车视频中的位置信息。
例如,该位置信息具体可以为同一人体的不同骨骼关键点在行车视频中位置重合的频率,也可以为同一人体的相同骨骼关键点在行车视频中的位置坐标。
在步骤S106中,根据该位置信息判断是否需要对车辆制动。
利用骨骼关键点检测算法,可以依据展示的骨骼关键点判断出行人的移动方向。当行人与车辆同向或反向移动时,人体的全部骨骼关键点在行车视频中展现前后移动的特性;而当行人相对车辆横向移动时,人体的全部骨骼关键点在行车视频中展现交替移动的特性。根据骨骼关键点的移动规律,可以判断行人的移动方向,从而对行人的异常行为进行判定。
在一些实施例中,位置信息为同一人体的不同骨骼关键点在行车视频中位置重合的频率。那么,在同一人体的不同骨骼关键点在行车视频中位置重合的频率大于预设频率的情况下,判断需要对车辆制动。
该实施例是通过骨骼关键点的行动轨迹来判断是否需要对车辆制动。当行人与车辆成平行移动时,例如车辆在前行,行人在人行道上行走,不管二者是同向还是反向移动,行人的骨骼关键点是前后运动的,因此在行车视频中位置发生交叉重合的频率较低。当行人在车辆前方经过时,例如行人横过马路或者有横向通过马路的行为时,行人的移动方向与车辆的移动方向相垂直,此时行人的骨骼关键点是左右运动的,因此在行车视频中位置发生交叉重合的频率较高。根据实验数据得出,在同一人体的不同骨骼关键点在行车视频中位置重合的频率大于700毫秒的情况下,可以判断需要对车辆制动。
在一些实施例中,位置信息为同一人体的相同骨骼关键点在行车视频中的位置坐标。那么,在同一人体的相同骨骼关键点在行车视频中的位置坐标从行车视频的边缘向行车视频的中心移动的情况下,判断需要对车辆制动。
该实施例是通过骨骼关键点在视频结构中的位移位置来判断是否需要对车辆制动。根据同一人体的相同骨骼关键点在行车视频中的位置坐标变化情况,能够判断人体在车辆前方的移动方向。当行人与车辆成平行移动时,例如车辆在前行,行人在人行道上行走,不管二者是同向还是反向移动,由于车速大于人速,人体在行车视频中的位置是从视频中心进入视频边缘。如果以视频中心为坐标原点,同一人体的相同骨骼关键点在行车视频中的位置坐标会逐渐远离坐标原点,此时判断不需要对车辆制动。当行人在车辆前方经过时,例如行人横过马路或者有横向通过马路的行为时,行人的移动方向与车辆的移动方向相垂直,此时人体在行车视频中的位置是从视频边缘进入视频中心。如果以视频中心为坐标原点,同一人体的相同骨骼关键点在行车视频中的位置坐标会逐渐趋于零,此时判断需要对车辆制动。
以上介绍的两种判断机制可以同时运行,从而更加准确的识别出是否有行人在车辆前方经过,避免出现漏识别的情况。
在步骤S108中,在根据位置信息判断需要对车辆制动的情况下,控制对车辆进行制动。
在步骤S110中,在根据位置信息判断不需要对车辆制动的情况下,控制不对车辆进行制动。
控制对车辆进行制动时,可以首先通过摄像头确定骨骼关键点与车辆之间的最短物理距离。然后,根据位置信息以及车辆的行驶速度,确定骨骼关键点与车辆之间的相对速度。最终,根据该最短物理距离以及该相对速度,确定对车辆进行制动的程度,并控制对车辆进行相应程度的制动。
例如,当前的单目摄像头可以通过正交特征变换等手段获得空间判断能力,从而有效判断视频中的骨骼关键点与车辆之间的物理距离。通过CAN总线可以获得车辆的行驶速度,通过人体的骨骼关键点的运动频率可以确定行人的移动速度。利用车辆的行驶速度与行人的移动速度,可以计算出人车之间的相对速度。利用骨骼关键点与车辆之间的物理距离以及人车之间的相对速度,可以判断出人车之间经过多长时间相遇,而根据该相遇时间的长短可以确定不同程度的制动结果。
上述实施例利用骨骼关键点检测技术,能够根据骨骼关键点在行车视频中的位置信息判断出行人的移动方向,从而检测出是否有行人在车辆前方经过,进而准确的判断是否需要对车辆制动,提高车辆自动驾驶的安全度和可靠性。
下面结合图2描述本公开车辆控制方法的另一些实施例。在这些实施例中,车辆能够借助服务器侧的神经网络,对检测出骨骼关键点的行车视频进行逐帧处理,从而得到实时的制动策略。下面进行详细介绍。
图2示出了本公开另一些实施例的车辆控制方法的流程示意图。如图2所示,本实施例包括步骤S202~步骤S206。
在步骤S202中,对检测出骨骼关键点的行车视频帧标注制动策略。其中,制动策略可以包括制动程度。
例如,当用户进行制动操作时,可以通过CAN总线获取用户制动的程度数据。将用户制动的程度数据和检测出骨骼关键点的行车视频帧同时上传到服务器,每一组制动程度数据和行车视频帧都形成了一组标注数据,用于接下来的神经网络学习。
在步骤S204中,采用检测出骨骼关键点的行车视频帧作为训练样本,对卷积神经网络进行训练。
本领域技术人员应理解,训练后的卷积神经网络能够根据输入的检测出骨骼关键点的行车视频帧输出相应的制动策略。
在步骤S206中,利用预先训练的卷积神经网络,对检测出骨骼关键点的行车视频进行逐帧处理,得到实时的制动策略。
其中,卷积神经网络是采用检测出骨骼关键点的行车视频帧作为训练样本训练得到的,上述检测出骨骼关键点的行车视频帧标注有相应的制动策略。服务器断可以将实时得到的制动策略下发至车辆,以便车辆判断是否需要进行制动。
在步骤S208中,在实时得到的制动策略指示需要对车辆制动的情况下,控制对车辆进行制动。
本实施例中,服务器利用实时行车情况与驾驶员的反应进行机器学习。通过循环往复的机器学习,服务器能够了解驾驶员的驾驶习惯以及行人的行为习惯,因此可以总结出更多情况下的制动条件。在车辆在本地没有判断出有行人从车辆前方经过时,通过在服务器端增加判断维度,能够辅助提高利用骨骼检测技术检测是否有行人在车辆前方经过的准确性,从而更加准确的判断是否需要对车辆制动,进一步提高车辆自动驾驶的安全度和可靠性。
下面结合图3描述本公开车辆控制装置的一些实施例。
图3示出了本公开一些实施例的车辆控制装置的结构示意图。如图3所示,车辆控制装置30包括控制器302,用于执行前述的车辆控制方法。
控制器302具体可以为ARM主控板。ARM板能够在硬件端实现本地的计算处理功能,目前基于TX2的ARM主控板能够在本地同时识别行车视频中的9000个人体骨骼关键点。
在一些实施例中,车辆控制装置30还包括摄像头304,与控制器302电连接,用于拍摄车辆前方的行车视频。其中,摄像头304的摄像方向与车辆的行驶方向相同。
为使得摄像头304的可视范围能够保障控制器302作出准确判断,摄像头304的摄像方向与车辆的行驶方向相同。具体在安装摄像头304时,可以使摄像头304的摄像方向与车顶部的门体切割线平行。
在一些实施例中,摄像头304位于车辆的顶部,以使得行车视频中下边缘的实际位置与车辆前端的距离小于预设值。
根据车辆高度、轴距、摄像头的焦距,可以调整摄像头的前后位置,使得行车视频中下边缘的实际位置与车辆前端的距离小于预设值(视频中下边缘对应的实际位置刚刚超过车头即可)。由于摄像头304的作用是拍摄行车视频,因此其安装高度需要保证拍摄的视频中可以涵盖行人的头与脚,优选能够在仰角15度、俯角8度范围内进行调节。为便于计算视频中的物体到车头的距离,还需要确定摄像头304与车头的距离。确定了摄像头304的物理位置之后,还需要确定摄像头304的镜头中心位置,用于判断行人的移动方向。摄像头304安装完毕后,可以启动骨骼检测算法。
图4示出了车辆控制装置在车辆上的安装示意图。摄像头304的安装个数可以为一个或更多个,摄像头304的拍摄范围如图4中的虚线所示。
在一些实施例中,车辆控制装置30还包括CAN总线接口306,用于通过CAN总线连接至车辆的制动系统,以控制对车辆进行制动。
CAN总线是车辆控制系统的底层协议,可以控制车辆的大部分功能。通过CAN总线可以控制基础的加油和刹车,也可以直接使车辆点火或熄火。通过CAN总线连接至车辆的制动系统,能够及时将摄像头302的拍摄结果与车辆的制动系统进行关联,还能够获取对车辆进行制动的操作权限,从而在判断有行人从车辆前方经过时,可以及时对车辆进行不同程度的制动。
在一些实施例中,车辆控制装置30还包括服务器308,服务器308与控制器302通过电信号连接。
其中,控制器302还用于:将检测出骨骼关键点的行车视频发送至服务器;服务器308用于:利用预先训练的卷积神经网络,对检测出骨骼关键点的行车视频进行逐帧处理,得到实时的制动策略,并将实时的制动策略反馈至控制器302;其中,卷积神经网络是采用检测出骨骼关键点的行车视频帧作为训练样本训练得到的,检测出骨骼关键点的行车视频帧标注有相应的制动策略。
在一些实施例中,车辆控制装置30还包括红外灯310,用于发射红外光以辅助摄像头304在夜晚进行拍摄。
例如,红外灯310能够使摄像头304在夜晚保持50米距离的拍摄。
在一些实施例中,车辆控制装置30还包括补光灯312,用于为摄像头304的拍摄光源补光。
补光灯312能够在光线不充足的情况下摄像头304的镜头光源进行补光,使摄像头304的镜头在移动过程中产生的光变化差值减小。
在一些实施例中,车辆控制装置30还包括电源314,用于为车辆控制装置供电。
例如,电源314可以采用4pin外围电源接口,该接口可以连接包括车辆在内的多种设备进行供电。
在一些实施例中,车辆控制装置30还包括固定器316,用于将车辆控制装置30中的各个部件固定在车辆上。
由于车辆行驶过程中可能会产生的颠簸,固定器316可以采用螺母和固定胶,从而确保车辆控制装置30在颠簸的行驶情况下不产生安装角度的偏差,以保证正常的水平拍摄。同时,固定器316还可以避免车辆控制装置30与车辆摩擦,损坏车辆表面的油漆。图5示出了固定器的安装示意图。固定器316例如可以将车辆控制装置30的各个部件固定在车辆的顶部横梁50上。
车辆控制装置30的使用过程主要包括:(1)安装并校对配置参数;(2)连接车辆CAN总线实现数据通信;(3)配置检测行人从车辆前方经过的算法;(4)从服务器端实时接收制动策略;(5)在检测到行人从车辆前方经过时控制车辆制动。
上述实施例提供的车辆控制装置易于安装,不需要对车辆进行大幅改装即可投入使用。因此,该车辆控制装置能够降低自动驾驶时的异常检测成本,提高自动驾驶技术的应用范围。同时,上述实施例提供的车辆控制装置还能够利用用户在不同行驶情况下对车辆的制动控制,不断优化车辆的自动制动方式,提高了自动驾驶的安全度。
下面结合图6描述本公开车辆控制装置的另一些实施例。
图6示出了本公开另一些实施例的车辆控制装置的结构示意图。如图6所示,该实施例的车辆控制装置60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一些实施例中的车辆控制方法。
其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
车辆控制装置60还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630、640、650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
本公开还包括一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一些实施例中的车辆控制方法。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。