本发明涉及计算机视觉技术,尤其是一种前向碰撞控制方法和装置、电子设备、程序和介质。
背景技术
前向碰撞预警系统能预测到行车危险并在碰撞危险发生前一段时间(例如2-3秒)向驾驶员发出报警,以预防交通事故发生,被称为“永不疲倦的第三只眼”。对汽车交通事故的一项分析结果表明,在所发生的交通事故中,有80%左右的交通事故是由于驾驶员反应不及时、处置不当所造成。其中,有65%左右的事故属汽车追尾碰撞造成,其余则属于侧面碰撞、擦挂所致。据daimlerbenz的一项调查结果显示,提前0.5秒发出报警能防止60%左右的追尾事故,提前1.5秒发出报警能防止90%左右的追尾事故。
因此,在汽车上安装汽车碰撞预警系统,是减少交通事故行之有效的技术措施。
技术实现要素:
本发明实施例提供一种前向碰撞控制方案。
根据本发明实施例的一个方面,提供的一种前向碰撞控制方法,包括:
基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象;
预测当前行驶对象和所述疑似碰撞对象之间的碰撞时间;
根据所述碰撞时间对所述当前行驶对象进行前向碰撞控制,所述前向碰撞控制包括前向碰撞预警和/或驾驶控制。
可选地,在本发明上述各方法实施例中,所述当前行驶对象包括:车辆或机器人;
所述疑似碰撞对象包括以下任意一项或多项:人,车辆,非机动车辆,机器人,障碍物。
可选地,在本发明上述各方法实施例中,所述基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象,包括:
获取所述道路上车道线的检测结果;
根据所述车道线的检测结果确定所述道路上的至少部分目标对象为疑似碰撞对象。
可选地,在本发明上述各方法实施例中,所述获取所述道路上车道线的检测结果,包括:
基于神经网络检测所述道路上的车道线,得到所述车道线的检测结果;或者,
从高级驾驶辅助系统获取所述车道线的检测结果。
可选地,在本发明上述各方法实施例中,根据所述车道线的检测结果确定所述道路上的至少部分目标对象为疑似碰撞对象,包括:
若所述车道线的检测结果为检测到的车道线信息,根据所述车道线信息选取所述当前行驶对象所在车道内的至少部分目标对象为疑似碰撞对象。
可选地,在本发明上述各方法实施例中,根据所述车道线的检测结果确定所述道路上的至少部分目标对象为疑似碰撞对象,包括:
若所述车道线的检测结果为未检测到车道线,选取与所述当前行驶对象之间的距离在预设范围内的目标对象为疑似碰撞对象。
可选地,在本发明上述各方法实施例中,所述预测当前行驶对象和所述疑似碰撞对象之间的碰撞时间,包括:
分别基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息;
基于各疑似碰撞对象的运动信息,计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。
可选地,在本发明上述各方法实施例中,根据所述碰撞时间对所述当前行驶对象进行前向碰撞预警,包括:
将当前行驶对象和所述疑似碰撞对象之间的碰撞时间与至少一预定阈值进行比较;
在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞控制。
可选地,在本发明上述各方法实施例中,在所述预设条件包括多个时,多个预设条件分别对应的前向碰撞控制的程度逐级递增。
可选地,在本发明上述各方法实施例中,所述在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞预警,包括:
若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第二预设阈值、且大于第一预设阈值,进行碰撞预警;其中,第一预设阈值小于第二预设阈值。
可选地,在本发明上述各方法实施例中,所述若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第二预设阈值、且大于第一预设阈值,进行碰撞预警,包括:
针对碰撞时间小于或等于第二预设阈值、且大于第一预设阈值的第一疑似碰撞对象,基于所述第一疑似碰撞对象的运动信息预测所述第一疑似碰撞对象是否有远离碰撞区域的趋势;
若所述第一疑似碰撞对象没有远离碰撞区域的趋势,进行碰撞预警。
可选地,在本发明上述各方法实施例中,所述若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第二预设阈值、且大于第一预设阈值,进行碰撞预警,还包括:
若所述第一疑似碰撞对象有远离碰撞区域的趋势,不进行碰撞预警。
可选地,在本发明上述各方法实施例中,所述在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞预警,还包括:
若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于所述第一预设阈值,进行碰撞预警和/或驾驶控制,所述驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
可选地,在本发明上述各方法实施例中,所述若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于所述第一预设阈值,进行碰撞预警,包括:针对碰撞时间小于或等于所述第一预设阈值的第二疑似碰撞对象,基于所述第二疑似碰撞对象的运动信息预测所述第二疑似碰撞对象是否有远离碰撞区域的趋势;
若所述第二疑似碰撞对象没有远离碰撞区域的趋势,进行碰撞预警和/或驾驶控制,所述驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
可选地,在本发明上述各方法实施例中,所述若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于所述第一预设阈值,进行碰撞预警,还包括:
若所述第二疑似碰撞对象有远离碰撞区域的趋势,不进行碰撞预警和/或驾驶控制,所述驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
可选地,在本发明上述各方法实施例中,还包括:
利用神经网络检测当前帧图像中的目标对象,获得所述当前帧图像中目标对象的检测框;
基于前n帧图像中目标对象的检测框,预测目标对象在所述当前帧图像中的物体框;其中,所述前n帧图像包括位于所述当前帧图像之前、按照图像采集顺序排列的n帧图像,n为大于0的整数;
根据目标对象的检测框和物体框,确定目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各方法实施例中,所述利用神经网络检测当前帧图像中的目标对象,获得所述当前帧图像中目标对象的检测框,包括:
神经网络提取所述当前帧图像的特征;
神经网络基于提取的特征确定目标对象的检测框。
可选地,在本发明上述各方法实施例中,所述神经网络包括多个分别位于不同网络深度的特征层;
利用所述神经网络提取所述当前帧图像的特征,包括:
对输入所述神经网络的当前帧图像,依次通过所述神经网络的各特征层进行特征提取,并将网络深度为i的第一特征层输出的第一特征和网络深度为j的第二特征层输出的第二特征进行特征融合,得到融合特征作为网络深度为j+1的第三特征层的输入特征或者作为所述神经网络输出的所述当前帧图像的特征,其中,1≤i<j。
可选地,在本发明上述各方法实施例中,所述神经网络基于提取的特征确定目标对象的检测框,包括:
所述神经网络基于提取的特征确定包含目标对象的候选框;
所述神经网络分别基于各候选框的特征对各候选框进行分类,得到各候选框分别属于各类目标对象的概率分值;
分别以各候选框的概率分值中,数值最大的概率分值对应的种类作为该候选框中目标对象的种类;
分别选取重叠率大于预设阈值、且目标对象的种类相同的候选框作为一组候选框,从一组候选框中选取作为目标对象的种类的概率分值中的最大值对应的候选框,作为目标对象的检测框。
可选地,在本发明上述各方法实施例中,所述利用神经网络检测当前帧图像中的目标对象,包括:
若当前帧图像是所在帧序列中的第一帧图像,利用神经网络检测当前帧图像中的目标对象;所述帧序列包括:按照图像采集顺序排列的m帧图像;其中,m为大于1的整数;和/或,
若当前帧图像不是所在帧序列中的第一帧图像,基于所述帧序列中第一帧图像中的检测框信息,回归所述当前帧图像中目标对象的检测框。
可选地,在本发明上述各方法实施例中,所述基于所述帧序列中第一帧图像中的检测框信息,回归所述当前帧图像中目标对象的检测框,包括:
基于所述第一帧图像中的检测框信息,以所述第一帧图像中的检测框信息确定的检测框的中心点为中心点,在所述当前帧图像中截取长度和/或宽度对应大于所述确定的检测框的长度和/或宽度的区域图像;
利用所述神经网络检测所述区域图像中的目标对象,获得目标对象在所述区域图像中的检测框;
根据所述目标对象在所述区域图像中的检测框、以及所述区域图像在所述当前帧图像中的位置,确定目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各方法实施例中,所述基于所述前n帧图像中目标对象的检测框,预测目标对象在所述当前帧图像中的物体框,包括:分别针对所述前n帧图像中的各同一目标对象:
根据同一目标对象在所述前n帧图像中的检测框的大小和位置,拟合所述前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度;
根据所述前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度,预测同一目标对象在所述当前帧图像中的物体框的大小和位置。
可选地,在本发明上述各方法实施例中,所述根据目标对象的检测框和物体框,确定目标对象在所述当前帧图像中的检测框信息,包括:
针对各目标对象中,检测框和物体框的重叠率等于或大于预设阈值的第一目标对象,获取所述第一目标对象的检测框和物体框分别在大小和位置上的平均值,作为所述第一目标对象在所述当前帧图像中的检测框信息;所述检测框信息包括:检测框的大小和位置。
可选地,在本发明上述各方法实施例中,所述根据目标对象的检测框和物体框,确定目标对象在所述当前帧图像中的检测框信息,还包括:
针对各目标对象中,检测框和物体框的重叠率小于所述预设阈值的第二目标对象,以预测的所述第二目标对象的物体框的大小和位置,作为所述第二目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各方法实施例中,所述根据目标对象的检测框和物体框,确定目标对象在所述当前帧图像中的检测框信息,还包括:
针对各目标对象中,物体框在所述当前帧图像中不存在对应检测框的第三目标对象,以预测的所述第三目标对象的物体框的大小和位置,作为所述第三目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各方法实施例中,所述疑似碰撞对象为人或者机器人时,所述分别基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息,包括:
利用神经网络,基于所述当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在所述当前帧图像中的预测行为信息,所述预测行为信息包括:运动方向、运动状态和动作分类信息;
分别基于各人或者机器人的所述预测行为信息、以及各人或者机器人在所述前n帧图像和所述当前帧图像中的检测框信息,确定各人或者机器人的运动信息。
可选地,在本发明上述各方法实施例中,基于所述当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在所述当前帧图像中的预测行为信息,包括:
基于所述当前帧图像中的检测框信息,对相应人或者机器人进行关键点检测,基于关键点检测结果获取相应人或者机器人的头部方向和身体方向,基于相应人或者机器人的头部方向和身体方向获取相应人或者机器人的运动方向;基于所述关键点检测结果对相应人或者机器人的动作进行分类,得到相应人的动作分类信息;基于所述关键点检测结果对相应人或者机器人的运动状态进行分类,得到相应人或者机器人的运动状态信息。
根据本发明实施例的另一个方面,提供的一种前向碰撞控制装置,包括:
第一检测模块,用于基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象;
第一预测模块,用于预测当前行驶对象和所述疑似碰撞对象之间的碰撞时间;
控制模块,用于根据所述碰撞时间对所述当前行驶对象进行前向碰撞控制,所述前向碰撞控制包括前向碰撞预警和/或驾驶控制。
可选地,在本发明上述各装置实施例中,所述当前行驶对象包括:车辆或机器人;
所述疑似碰撞对象包括以下任意一项或多项:人,车辆,非机动车辆,机器人,障碍物。
可选地,在本发明上述各装置实施例中,所述第一检测模块包括:
获取单元,用于获取所述道路上车道线的检测结果;
确定单元,用于根据所述车道线的检测结果确定所述道路上的至少部分目标对象为疑似碰撞对象。
可选地,在本发明上述各装置实施例中,所述获取单元用于:基于神经网络检测所述道路上的车道线,得到所述车道线的检测结果;或者,从高级驾驶辅助系统获取所述车道线的检测结果。
可选地,在本发明上述各装置实施例中,所述确定单元,用于若所述车道线的检测结果为检测到的车道线信息,根据所述车道线信息选取所述当前行驶对象所在车道内的至少部分目标对象为疑似碰撞对象。
可选地,在本发明上述各装置实施例中,所述确定单元,用于若所述车道线的检测结果为未检测到车道线,选取与所述当前行驶对象之间的距离在预设范围内的目标对象为疑似碰撞对象。
可选地,在本发明上述各装置实施例中,所述第一预测模块包括:
预测单元,用于分别基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息;
计算单元,用于基于各疑似碰撞对象的运动信息,计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。
可选地,在本发明上述各装置实施例中,所述控制模块包括:
比较单元,用于将当前行驶对象和所述疑似碰撞对象之间的碰撞时间与至少一预定阈值进行比较;
控制单元,在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞控制。
可选地,在本发明上述各装置实施例中,在所述预设条件包括多个时,多个预设条件分别对应的前向碰撞控制的程度逐级递增。
可选地,在本发明上述各装置实施例中,所述控制单元包括:预警单元和/或驾驶控制单元;
所述预警单元,用于根据所述碰撞时间对所述当前行驶对象进行前向碰撞预警;
所述驾驶控制单元,用于根据所述碰撞时间对所述当前行驶对象进行驾驶控制。
可选地,在本发明上述各装置实施例中,所述预警单元用于若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第二预设阈值、且大于第一预设阈值,进行碰撞预警;其中,第一预设阈值小于第二预设阈值。
可选地,在本发明上述各装置实施例中,所述预警单元,具体用于针对碰撞时间小于或等于第二预设阈值、且大于第一预设阈值的第一疑似碰撞对象,基于所述第一疑似碰撞对象的运动信息预测所述第一疑似碰撞对象是否有远离碰撞区域的趋势;
若所述第一疑似碰撞对象没有远离碰撞区域的趋势,进行碰撞预警。
可选地,在本发明上述各装置实施例中,所述预警单元还用于:
若所述第一疑似碰撞对象有远离碰撞区域的趋势,不进行碰撞预警。
可选地,在本发明上述各装置实施例中,所述预警单元还用于若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于所述第一预设阈值,进行碰撞预警和/或驾驶控制,所述驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
可选地,在本发明上述各装置实施例中,所述预警单元具体用于针对碰撞时间小于或等于所述第一预设阈值的第二疑似碰撞对象,基于所述第二疑似碰撞对象的运动信息预测所述第二疑似碰撞对象是否有远离碰撞区域的趋势;
若所述第二疑似碰撞对象没有远离碰撞区域的趋势,进行碰撞预警和/或驾驶控制,所述驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
可选地,在本发明上述各装置实施例中,所述预警单元还用于若所述第二疑似碰撞对象有远离碰撞区域的趋势,不进行碰撞预警和/或驾驶控制,所述驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
可选地,在本发明上述各装置实施例中,还包括:
第二检测模块,用于利用神经网络检测当前帧图像中的目标对象,获得所述当前帧图像中目标对象的检测框;
第二预测模块,用于基于前n帧图像中目标对象的检测框,预测目标对象在所述当前帧图像中的物体框;其中,所述前n帧图像包括位于所述当前帧图像之前、按照图像采集顺序排列的n帧图像,n为大于0的整数;
确定模块,用于根据目标对象的检测框和物体框,确定目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各装置实施例中,所述第二检测模块包括:
特征提取单元,用于利用神经网络提取所述当前帧图像的特征;
确定单元,用于基于提取的特征确定目标对象的检测框。
可选地,在本发明上述各装置实施例中,所述神经网络包括多个分别位于不同网络深度的特征层;
所述特征提取单元用于:对输入所述神经网络的当前帧图像,依次通过所述神经网络的各特征层进行特征提取,并将网络深度为i的第一特征层输出的第一特征和网络深度为j的第二特征层输出的第二特征进行特征融合,得到融合特征作为网络深度为j+1的第三特征层的输入特征或者作为所述神经网络输出的所述当前帧图像的特征,其中,1≤i<j。
可选地,在本发明上述各装置实施例中,所述确定单元具体用于:
利用神经网络基于提取的特征确定包含目标对象的候选框;
利用所述神经网络分别基于各候选框的特征对各候选框进行分类,得到各候选框分别属于各类目标对象的概率分值;
分别以各候选框的概率分值中,数值最大的概率分值对应的种类作为该候选框中目标对象的种类;
分别选取重叠率大于预设阈值、且目标对象的种类相同的候选框作为一组候选框,从一组候选框中选取作为目标对象的种类的概率分值中的最大值对应的候选框,作为目标对象的检测框。
可选地,在本发明上述各装置实施例中,所述第二检测模块包括:
检测单元,用于若当前帧图像是所在帧序列中的第一帧图像,利用神经网络检测当前帧图像中的目标对象;所述帧序列包括:按照图像采集顺序排列的m帧图像;其中,m为大于1的整数;和/或,
回归单元,用于若当前帧图像不是所在帧序列中的第一帧图像,基于所述帧序列中第一帧图像中的检测框信息,回归所述当前帧图像中目标对象的检测框。
可选地,在本发明上述各装置实施例中,所述回归单元具体用于:
基于所述第一帧图像中的检测框信息,以所述第一帧图像中的检测框信息确定的检测框的中心点为中心点,在所述当前帧图像中截取长度和/或宽度对应大于所述确定的检测框的长度和/或宽度的区域图像;
利用所述神经网络检测所述区域图像中的目标对象,获得目标对象在所述区域图像中的检测框;
根据所述目标对象在所述区域图像中的检测框、以及所述区域图像在所述当前帧图像中的位置,确定目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各装置实施例中,所述第二预测模块具体用于:分别针对所述前n帧图像中的各同一目标对象:
根据同一目标对象在所述前n帧图像中的检测框的大小和位置,拟合所述前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度;
根据所述前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度,预测同一目标对象在所述当前帧图像中的物体框的大小和位置。
可选地,在本发明上述各装置实施例中,所述确定模块具体用于:
针对各目标对象中,检测框和物体框的重叠率等于或大于预设阈值的第一目标对象,获取所述第一目标对象的检测框和物体框分别在大小和位置上的平均值,作为所述第一目标对象在所述当前帧图像中的检测框信息;所述检测框信息包括:检测框的大小和位置。
可选地,在本发明上述各装置实施例中,所述确定模块具体用于:针对各目标对象中,检测框和物体框的重叠率小于所述预设阈值的第二目标对象,以预测的所述第二目标对象的物体框的大小和位置,作为所述第二目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各装置实施例中,所述确定模块具体用于:针对各目标对象中,物体框在所述当前帧图像中不存在对应检测框的第三目标对象,以预测的所述第三目标对象的物体框的大小和位置,作为所述第三目标对象在所述当前帧图像中的检测框信息。
可选地,在本发明上述各装置实施例中,所述疑似碰撞对象为人或者机器人时,所述预测单元具体用于:
利用神经网络,基于所述当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在所述当前帧图像中的预测行为信息,所述预测行为信息包括:运动方向、运动状态和动作分类信息;
分别基于各人或者机器人的所述预测行为信息、以及各人或者机器人在所述前n帧图像和所述当前帧图像中的检测框信息,确定各人或者机器人的运动信息。
可选地,在本发明上述各装置实施例中,所述预测单元基于所述当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在所述当前帧图像中的预测行为信息时,具体用于:
基于所述当前帧图像中的检测框信息,对相应人或者机器人进行关键点检测,基于关键点检测结果获取相应人或者机器人的头部方向和身体方向,基于相应人或者机器人的头部方向和身体方向获取相应人或者机器人的运动方向;基于所述关键点检测结果对相应人或者机器人的动作进行分类,得到相应人的动作分类信息;基于所述关键点检测结果对相应人或者机器人的运动状态进行分类,得到相应人或者机器人的运动状态信息。
根据本发明实施例的又一个方面,提供的一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述本发明上述任一实施例所述的前向碰撞控制方法。
根据本发明实施例的再一个方面,提供的一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本发明上述任一实施例所述的前向碰撞控制方法。
根据本发明实施例的再一个方面,提供的一种计算机程序,包括计算机指令,当所述计算机指令在设备的处理器中运行时,实现本发明上述任一实施例所述的前向碰撞控制方法。
基于本发明上述实施例提供的前向碰撞预警方法和装置、电子设备、程序和介质,基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象,利用深度学习方式检测疑似碰撞对象(例如,车辆、行人、非机动车、机器人、障碍物等),提升了检测结果的准确性和精确度;预测当前行驶对象和疑似碰撞对象之间的碰撞时间,根据碰撞时间对当前行驶对象进行前向碰撞控制,包括前向碰撞预警和/或驾驶控制,从而实现了对当前行驶对象的前向碰撞预警和/或驾驶控制,提高了前向碰撞预警和驾驶控制的精确性,有利于减少公路交通事故。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明前向碰撞控制方法一个实施例的流程图。
图2为本发明前向碰撞控制方法另一个实施例的流程图。
图3为本发明前向碰撞控制方法又一个实施例的流程图。
图4为本发明前向碰撞控制装置一个实施例的结构示意图。
图5为本发明前向碰撞控制装置另一个实施例的结构示意图。
图6为本发明前向碰撞控制装置又一个实施例的结构示意图。
图7为本发明电子设备一个应用实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
在实现本发明的过程中,发明人通过研究发现,目前的前向碰撞预警系统仍然依据传统视觉技术进行障碍物检测,这样处理在源头上造成识别率和目标匹配率低,导致系统前向碰撞预警的性能、效果不佳。
图1为本发明前向碰撞控制方法一个实施例的流程图。如图1所示,该实施例的前向碰撞控制方法包括:
102,基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象。
在本发明各实施例的一些实施方式中,当前行驶对象的种类例如可以包括但不限于:车辆,机器人,等等。疑似碰撞对象的种类例如包括但不限于以下任意一项或多项:人,车辆,非机动车辆,机器人,障碍物,等等。其中的车辆例如可以是汽车、电动车、玩具车等任意的行驶对象。
在本发明各实施例的一些实施方式中,神经网络可以基于rfcn、ssd、rcnn、fastrcnn、fasterrcnn、sppnet、dpm、overfeat、yolo等架构方式,对帧图像中的目标对象进行检测,从而获得疑似碰撞对象。
104,预测当前行驶对象和疑似碰撞对象之间的碰撞时间。
106,根据当前行驶对象和疑似碰撞对象之间的碰撞时间对当前行驶对象进行前向碰撞控制,其中的前向碰撞控制,例如可以包括但不限于:前向碰撞预警和/或驾驶控制。
本发明实施例中,例如可以通过但不限于听觉形式、视觉形式等进行前向碰撞预警。其中,在听觉形式下,例如可以通过蜂鸣器发出声音等方式进行前向碰撞预警;在视觉形式下,例如可以通过指示灯闪烁等方式进行前向碰撞预警。
本发明实施例中的驾驶控制,指的是用于改变当前行驶对象的运动状态和/或运动方向的控制动作,例如可以包括:对当前行驶对象进行加速、制动减速、改变行驶方向等可以改变当前行驶对象的运动方向和/或运动状态的控制动作。例如,在一个实际应用场景中,如果当前车辆原来的运动方向是保持在所在车道内直行,如果基于碰撞时间当前车辆将会与前方的疑似碰撞对象发生碰撞,则可以通过驾驶控制改变当前车辆的行驶方向,使当前车辆变道、以避免碰撞;如果在此过程中前方的疑似碰撞对象加速远离了,则可以通过驾驶控制改变当前车辆的行驶方向使当前车辆保持原来的运动方向、保持在所在车道内直行。
基于本发明上述实施例提供的前向碰撞控制方法,基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象,利用深度学习方式检测疑似碰撞对象(例如,车辆、行人、非机动车、机器人、障碍物等),提升了检测结果的准确性和精确度;预测当前行驶对象和疑似碰撞对象之间的碰撞时间,根据碰撞时间对当前行驶对象进行前向碰撞控制,包括前向碰撞预警和/或驾驶控制,从而实现了对当前行驶对象的前向碰撞预警和/或驾驶控制,提高了前向碰撞预警和驾驶控制的精确性,有利于减少公路交通事故。
在本发明各实施例的一些实施方式中,操作102中,基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象,可以包括:
获取道路上车道线的检测结果。在其中一些可选示例中,例如可以通过如下方式获取道路上车道线的检测结果:基于神经网络检测帧图像中道路上的车道线,即:也将车道线作为一个目标对象进行检测,得到车道线的检测结果;或者,直接从高级驾驶辅助系统(adas)获取车道线的检测结果,利用adas中的车道线检测结果;
根据车道线的检测结果确定道路上的至少部分目标对象为疑似碰撞对象。
在其中一些可选示例中,若车道线的检测结果为检测到的车道线信息,该信息例如可以是帧图像中属于车道线的像素点标签或者像素点位置,根据该车道线信息选取当前行驶对象所在车道内的至少部分目标对象为疑似碰撞对象。否则,若车道线的检测结果为未检测到车道线,可以选取与当前行驶对象之间的距离在预设范围(例如,5米)内的目标对象为疑似碰撞对象。
图2为本发明前向碰撞控制方法另一个实施例的流程图。如图2所示,该实施例的前向碰撞控制方法包括:
202,获取道路上车道线的检测结果。
204,根据车道线的检测结果确定道路上的至少部分目标对象为疑似碰撞对象。
在本发明各实施例的一些实施方式中,当前行驶对象的种类例如可以包括但不限于:车辆,机器人,等等。疑似碰撞对象的种类例如包括但不限于以下任意一项或多项:人,车辆,非机动车辆,机器人,障碍物,等等。其中的车辆例如可以是汽车、电动车、玩具车等任意的行驶对象。
206,分别基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息,该运动信息包括:位置、运动速度和运动加速度。
208,基于各疑似碰撞对象的运动信息,计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。
在一些实施方式中,可以将当前帧图像中各疑似碰撞对象的检测框信息和运动信息由相机坐标系变换到世界坐标系中,然后计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。例如,在检测到车道线时,可以将当前行驶对象所在车道内的目标对象确定为疑似碰撞对象,将各疑似碰撞对象检测框信息和运动信息由相机坐标系变换到世界坐标系中,然后来计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。在未检测到车道线时,可以将当前帧图像中各目标对象的检测框信息和运动信息由相机坐标系变换到世界坐标系中,然后筛选距离当前形式对象预设范围(例如,5米)内的目标对象作为疑似碰撞对象,计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。
210,将当前行驶对象和疑似碰撞对象之间的碰撞时间与至少一预定阈值进行比较。
212,在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞控制,其中的前向碰撞控制例如可以包括但不限于:前向碰撞预警和/或驾驶控制。
本发明上述实施例,同时基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息,基于各疑似碰撞对象的运动信息,计算当前行驶对象与各疑似碰撞对象之间的碰撞时间,提高了碰撞时间的准确性和精确度,有助于进一步提高碰撞控制的精确性。
利用第一神经网络检测当前帧图像中的目标对象,获得当前帧图像中目标对象的检测框;基于前n帧图像中目标对象的检测框,预测目标对象在当前帧图像中的物体框;其中,前n帧图像包括位于当前帧图像之前、按照图像采集顺序排列的n帧图像;根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息;基于检测框信息进行碰撞预警。本发明实施例利用深度学习方式进行目标对象(例如,车辆、行人、非机动车)的检测,提升了检测结果的准确性和精确度;并使用深度学习方式实现了目标对象的动态检测和跟踪匹配,使得目标对象的检测结果更加准确、稳定、并且可以避免漏检,进一步提高了检测结果的准确性,从而,有利于减少公路交通事故。
在其中一些实施方式中,在预设条件包括多个时,多个预设条件分别对应的前向碰撞控制的程度可以逐级递增。本实施例中,多个预设条件分别对应的前向碰撞控制的程度逐级递增,可以根据当前行驶对象和疑似碰撞对象之间的碰撞时间的不同,采取相应的前向碰撞控制手段对当前行驶对象进行前向碰撞预警和/或驾驶控制,实现更好地前向碰撞控制目的。
在其中一些实施方式中,在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞预警,可以包括:若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第二预设阈值、且大于第一预设阈值,进行碰撞预警;其中,第一预设阈值和第二预设阈值的取值分别大于0,且第一预设阈值小于第二预设阈值,例如,第一预设阈值和第二预设阈值的取值分别为3秒、5秒。
例如,针对碰撞时间小于或等于第二预设阈值、且大于第一预设阈值的第一疑似碰撞对象,基于第一疑似碰撞对象的运动信息预测第一疑似碰撞对象是否有远离碰撞区域的趋势;若第一疑似碰撞对象没有远离碰撞区域的趋势,通过碰撞警告进行碰撞预警。其中,碰撞警告例如可以是碰撞提醒,例如,提醒前方x米有行人、障碍物等。若第一疑似碰撞对象有远离碰撞区域的趋势,不进行碰撞预警。
在另一些实施方式中,在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞预警,可以包括:若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第一预设阈值,进行碰撞预警和/或驾驶控制,其中的驾驶控制例如可以包括但不限于以下任意一项或多项:制动减速、改变行驶方向。
例如,针对碰撞时间小于或等于第一预设阈值的第二疑似碰撞对象,基于第二疑似碰撞对象的运动信息预测第二疑似碰撞对象是否有远离碰撞区域的趋势;若第二疑似碰撞对象没有远离碰撞区域的趋势,通过碰撞警报进行碰撞预警、和/或进行驾驶控制,其中的驾驶控制例如可以包括但不限于以下任意一项或多项:制动减速、改变行驶方向。其中,碰撞警报例如可以是以声、光、电等方式进行碰撞报警。若第二疑似碰撞对象有远离碰撞区域的趋势,则不进行碰撞预警和/或驾驶控制,驾驶控制包括但不限于以下任意一项或多项:制动减速、改变行驶方向。
在上述实施方式中,从满足碰撞时间小于或等于第二预设阈值、且大于第一预设阈值这一预设条件、到满足碰撞时间小于或等于第一预设阈值这一预设条件,分别对应的前向碰撞控制的程度逐级递增,在满足碰撞时间小于或等于第二预设阈值、且大于第一预设阈值这一预设条件时进行碰撞提醒;在满足碰撞时间小于或等于第一预设阈值这一预设条件时,进行碰撞警报和/或进行驾驶控制,以避免前向碰撞。
另外,在本发明上述各前向碰撞控制方法中,还可以包括确定目标对象在当前帧图像中的检测框信息的操作,其中的目标对象包括上述各实施例中的疑似碰撞对象。例如,可以通过如下方式确定目标对象在当前帧图像中的检测框信息:利用神经网络检测当前帧图像中的目标对象,获得当前帧图像中目标对象的检测框;基于前n帧图像中目标对象的检测框,预测目标对象在当前帧图像中的物体框,其中,前n帧图像包括位于当前帧图像之前、按照图像采集顺序排列的n帧图像,n为大于0的整数;根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息。
在实际应用中,可能由于采集的帧图像的不清晰等质量问题、目标对象的运动等问题,导致神经网络检测当前帧图像中的目标对象时,如果仅仅考虑当前帧图像的检测结果,可能出现同一目标对象的检测框在不同帧图像上会有一定程度的晃动和缺失。为了解决上述问题,本实施例中,使用目标跟踪算法,对连续帧图像中的目标对象进行跟踪,确定目标对象在当前帧图像中的检测框信息时,基于前n帧图像中目标对象的检测框,预测目标对象在当前帧图像中的物体框,根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息,实现了对目的对象的动态检测,使得对当前帧图像中目标对象的检测结果(即:检测框信息)更稳定、更准确,从而提升碰撞预警的准确性。
图3为本发明前向碰撞控制方法又一个实施例的流程图。如图3所示,该实施例的前向碰撞控制方法包括:
302,利用神经网络检测当前帧图像中的目标对象,获得当前帧图像中目标对象的检测框。
304,基于前n帧图像中目标对象的检测框,预测目标对象在当前帧图像中的物体框。
其中,前n帧图像包括位于当前帧图像之前、按照图像采集顺序排列的n帧图像,n为大于0的整数。
306,根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息。
308,获取道路上车道线的检测结果。
310,根据车道线的检测结果和目标对象在当前帧图像中的检测框信息,确定道路上的至少部分目标对象为疑似碰撞对象。
若车道线的检测结果为检测到的车道线信息,根据该车道线信息和各目标对象在当前帧图像中的检测框信息,选取当前行驶对象所在车道内的目标对象为疑似碰撞对象。否则,若车道线的检测结果为未检测到车道线,根据各目标对象在当前帧图像中的检测框信息,选取与当前行驶对象之间的距离在预设范围内的目标对象为疑似碰撞对象。
312,分别基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息。
314,基于各疑似碰撞对象的运动信息,计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。
316,将当前行驶对象和疑似碰撞对象之间的碰撞时间与至少一预定阈值进行比较。
318,在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞控制,其中的前向碰撞控制例如可以包括但不限于:前向碰撞预警和/或驾驶控制。
基于本发明上述实施例,利用深度学习方式进行目标对象(例如,车辆、行人、非机动车)的检测,提升了检测结果的准确性和精确度;并使用深度学习方式实现了目标对象的动态检测和跟踪匹配,使得目标对象的检测结果更加准确、稳定、并且可以避免漏检,进一步提高了检测结果的准确性,从而提高了碰撞控制的精确性,有利于减少公路交通事故。
其中,在本发明各实施例的一个可选示例中,利用神经网络检测当前帧图像中的目标对象,获得当前帧图像中目标对象的检测框,可以包括:神经网络提取当前帧图像的特征;神经网络基于提取的特征确定目标对象的检测框。
在辅助驾驶领域中,目标对象(例如,目标物体)的检测是利用深度学习网络对目标对象的外貌特征建模,通过所建立的深度学习模型(也可以称为:特征提取单元)对自然场景中可能出现该目标对象的场景进行判别。在本实施例的一些可选示例中,首先利用神经网络中的深度学习模型提取当前帧图像的特征,然后通过候选区域提取器根据提取的特征计算出当前帧图像中可能包含目标对象的候选框,再利用目标对象分类器对每个候选框打分,并将得分最高的候选框作为该目标对象的检测框输出。本实施例利用深度学习网络来检测目的对象(例如,车辆、行人、非机动车、障碍物等),提升了目的对象的检测精度、从而提高了检测结果的准确性。
在一些可选示例中,神经网络可以包括多个分别位于不同网络深度的特征层。则利用神经网络提取当前帧图像的特征,可以包括:
对输入神经网络的当前帧图像,依次通过神经网络的各特征层进行特征提取,并将网络深度为i的第一特征层输出的第一特征和网络深度为j的第二特征层输出的第二特征进行特征融合,得到融合特征作为网络深度为j+1的第三特征层的输入特征或者作为神经网络输出的当前帧图像的特征,其中,1≤i<j。
为了使第一神经网络对光照、遮挡、目标对象的远近大小、路况、形变等有较强的鲁棒性,本实施例中提出了多尺寸跨层连接的网络结构。深度学习模型(即:神经网络中的特征提取单元)包括多个分别位于不同网络深度的特征层,在沿网络深度方向,除了沿网络深度方向的第一特征层外,其他任何一特征层的输入都是上一特征层的输出,故而随着网络深度的加深,各特征层提取的信息的抽象程度不一样。网络深度较欠的特征层抽取的特征一般较为具体细节,例如物体的边缘、颜色、亮度等,而网络深度较深的特征层抽取的特征一般更为抽象,例如物体的形变、属性(例如,车辆的车型、大小等)等。通过本实施例的跨层连接的网络结构,将不同网络深度的特征层输出的特征进行特征融合得到融合特征,再进行下一次特征提取或者输出,通过特征融合方式使得神经网络最终提取的特征能综合不同程度的信息,使得神经网络能有效处理自然场景中的各种情况。
在一些可选示例中,神经网络基于提取的特征确定目标对象的检测框,包括:
神经网络基于提取的特征确定包含目标对象的候选框;
神经网络分别基于各候选框的特征对各候选框进行分类,得到各候选框分别属于各类目标对象的概率分值;
分别以各候选框的概率分值中,数值最大的概率分值对应的种类作为该候选框中目标对象的种类,其中,目标对象的种类例如可以包括但不限于:车辆、行人、非机动车辆、建筑物、等等;
分别选取重叠率大于预设阈值、且目标对象的种类(数值最大的概率分值对应的种类)相同的候选框作为一组候选框,从一组候选框中选取作为目标对象的种类的概率分值中的最大值对应的候选框(即:该候选框被判定为相应目标对象的种类的概率最大),作为目标对象的检测框,并且抑制该组候选框中的其他候选框。
基于本实施例,确定包含目标对象的候选框后,可能存在候选框之间存在包含或者多个候选框之间交叉的情况,分别基于各候选框的特征对候选框进行分类,得到各候选框分别属于各类目标对象的概率分值,选取重叠率大于预设阈值、且目标对象的种类相同的候选框作为一组候选框,从一组候选框中选取作为目标对象的种类的概率分值中的最大值对应的候选框作为目标对象的检测框,并抑制其他候选框,通过非极大值抑制(nonmaximumsuppression,nms)的方式消除冗余的候选框,找到最佳的目标对象检测框的位置。
在本发明各实施例的一些实施方式中,利用神经网络检测当前帧图像中的目标对象,包括:
若当前帧图像是所在帧序列中的第一帧图像,利用神经网络检测当前帧图像中的目标对象,其中的帧序列包括:按照图像采集顺序排列的m帧图像;其中,m为大于1的整数;和/或,
若当前帧图像不是所在帧序列中的第一帧图像,基于帧序列中第一帧图像中的检测框信息,回归当前帧图像中目标对象的检测框。
在一些可选示例中,基于帧序列中第一帧图像中的检测框信息,回归当前帧图像中目标对象的检测框,包括:
基于第一帧图像中的检测框信息,以第一帧图像中的检测框信息确定的检测框的中心点为中心点,在当前帧图像中截取长度和/或宽度对应大于确定的检测框的长度和/或宽度的区域图像,例如在当前帧图像中截取长度和/或宽度分别为上述确定的检测框的长度和/或宽度的2倍的区域图像;
利用神经网络检测区域图像中的目标对象,获得目标对象在区域图像中的检测框;
根据目标对象在区域图像中的检测框、以及区域图像在当前帧图像中的位置,确定目标对象在当前帧图像中的检测框信息。
在上述实施例中,需要对视频中的帧图像进行目标对象检测时,可以预先将视频分为多个帧序列,或者临时划分出一个帧序列。例如,可以分别划分出第1-5帧图像、第6-9帧图像作为一个帧序列,针对包括第1-5帧图像的帧序列,可以仅对第1帧图像进行目标对象的检测,基于第1帧图像中目的对象的检测框信息回归第2-5帧图像中同一目标对象的检测框;针对包括第6-9帧图像的帧序列,可以仅对第6帧图像进行目标对象的检测,基于第6帧图像中目的对象的检测框信息回归第7-9帧图像中同一目标对象的检测框;等等。
基于上述实施例,以帧序列中第一帧图像中的检测框信息回归该帧序列中后续帧图像中同一目标对象的检测框,由于区域图像小于原帧图像,相对于在整张帧图像范围内进行检测,缩小了目标的检测范围,节省了检测时间,可以更快地检测出该帧序列中后续帧图像中同一目标对象的检测框,提升检测效果和检测结果的准确性。
在一些可选示例中,基于前n帧图像中目标对象的检测框,预测目标对象在当前帧图像中的物体框,包括:分别针对前n帧图像中的各同一目标对象:
根据同一目标对象在前n帧图像中的检测框的大小和位置,拟合前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度;
根据前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度,预测同一目标对象在当前帧图像中的物体框的大小和位置。
本发明实施例中,例如可以采用单目标跟踪算法和/或多目标跟踪算法,对上述前n帧图像中的目标对象进行目标跟踪,得到各目标对象分别在上述前n帧图像中的检测框。同时采用单目标跟踪算法和多目标跟踪算法对上述前n帧图像中的目标对象进行目标跟踪时,使得得到的目标跟踪结果更稳定。
在实际应用中,可能由于采集的帧图像的不清晰等质量问题、目标对象的运动等问题,导致神经网络检测当前帧图像中的目标对象时,如果仅仅考虑当前帧图像的检测结果,可能出现同一目标对象的检测框在不同帧图像上会有一定程度的晃动和缺失。为了解决上述问题,本实施例中,使用目标跟踪算法,对连续帧图像中的目标对象进行跟踪,确定目标对象在当前帧图像中的检测框信息时,利用神经网络检测到的当前帧图像中目标对象的检测框的大小和位置、同时结合前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度预测得到的当前帧图像中的物体框的大小和位置,来确定目标对象在当前帧图像中的检测框信息,实现了对目的对象的动态检测,使得对当前帧图像中目标对象的检测结果(即:检测框信息)更稳定、更准确,从而提升碰撞预警的准确性。
在其中一些实施方式中,根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息,可以包括:
针对各目标对象中,检测框和物体框的重叠率等于或大于预设阈值的第一目标对象,获取该第一目标对象的检测框和物体框分别在大小和位置上的平均值,作为该第一目标对象在当前帧图像中的检测框信息,该检测框信息包括:检测框的大小和位置。
通过本实施例,实现了对多个帧图像中同一目标对象的检测框的平滑,即对同一目标对象实现了其2维检测框进行位置和大小两个方面的平滑,使得目标对象的检测结果更稳定。
在进一步实施方式中,根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息,还可以包括:
针对各目标对象中,检测框和物体框的重叠率小于预设阈值的第二目标对象,以预测的该第二目标对象的物体框的大小和位置,作为该第二目标对象在当前帧图像中的检测框信息。
在进一步实施方式中,根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息,还可以包括:
针对各目标对象中,物体框在当前帧图像中不存在对应检测框的第三目标对象,即:该第三目标对象在前n帧图像中存在检测框、在当前帧图像中未被检测到的目标对象,以预测的该第三目标对象的物体框的大小和位置,作为该第三目标对象在当前帧图像中的检测框信息。
2维检测框的中心点体现了位置信息,2维检测框的长宽体现了目标对象的大小变化,本发明上述实施例,通过拟合历史帧图像中同一目标对象的2维检测框长宽变化的速度和加速度,预测当前帧图像中该目标对象的检测框应有的大小;通过拟合历史帧图像中同一目标对象的2维检测框位置变化的速度和加速度,预测当前帧图像中该目标对象的检测框应有的位置。如果直接检测到的当前帧图像中同一目标对象的检测框和基于历史帧图像预测得到的物体框基本吻合(重叠率达到预设阈值),则以二者的平均值作为最终的检测框信息,使得检测结果更稳定;如果直接检测到的当前帧图像中同一目标对象的检测框和基于历史帧图像预测得到的物体框的重叠率小于预设阈值,以基于历史帧图像预测得到的物体框作为最终的检测框信息,使得检测结果更稳定;如果在当前帧图像上未检测到同一目标对象,以基于历史帧图像预测得到的物体框作为该目的对象在当前帧图像中的检测框信息,避免了对目标对象的漏检。本实施例基于同一视频中帧图像在时序上的连续性,综合利用第一神经网络检测到的当前帧图像中目标对象的检测框的大小和位置、结合前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度预测得到的当前帧图像中的物体框的大小和位置,来确定目标对象在当前帧图像中的检测框信息,实现了对多个帧图像中同一目标对象的检测框的平滑和插框,实现了对目的对象的动态检测,使得对当前帧图像中目标对象的检测结果更稳定、更准确,从而提升碰撞预警的准确性。
在本发明各上述实施例的一些实施方式中,疑似碰撞对象为人或者机器人时,分别基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息,可以包括:
利用神经网络,基于当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在当前帧图像中的预测行为信息,该预测行为信息包括:运动方向、运动状态和动作分类信息;
分别基于各人或者机器人的预测行为信息、以及各人或者机器人在前n帧图像和当前帧图像中的检测框信息,确定各人或者机器人的运动信息。
在其中一些可选示例中,基于当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在当前帧图像中的预测行为信息,包括:
基于当前帧图像中的检测框信息,对相应人或者机器人进行关键点检测,基于关键点检测结果获取相应人或者机器人的头部方向和身体方向,基于相应人或者机器人的头部方向和身体方向获取相应人或者机器人的运动方向;基于关键点检测结果对相应人或者机器人的动作进行分类,得到相应人的动作分类信息;基于关键点检测结果对相应人或者机器人的运动状态进行分类,得到相应人或者机器人的运动状态信息。
在其中一些可选示例中,上述神经网络例如可以采用沙漏(hourglass)型网络结构,对人或者机器人进行关键点检测,基于检测得到的关键点可以确定人或者机器人的头部方向和身体方向,从而分析人或者机器人运动方向。
在其中一些可选示例中,上述神经网络中可以利用googlenet网络,基于检测得到的关键点对人或机器人的动作进行分类,得出人或机器人的动作分类信息,例如可以包括:有无打电话,有无玩手机,有无打雨伞,等。
在其中一些可选示例中,神经网络中可以利用googlenet网络,基于检测得到的关键点对人或机器人的运动状态进行分类,得出人或机器人的运动状态信息,例如可以包括:行走,奔跑,站停,等。
基于上述实施例,可以预测人或机器人在当前帧图像中的预测行为信息,例如,运动方向、动作分类、运动状态等,以便基于人或机器人的预测行为信息及其在前n帧图像和当前帧图像中的检测框信息,确定各人或机器人的运动信息,包括:位置,运动速度,运动加速度,用于后续的前向碰撞预警和/或驾驶控制。利用基于深度学习架构的神经网络对各目标对象进行行为预测,使得行为预测结果更准确。
本发明实施例提供的任一种前向碰撞控制方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本发明实施例提供的任一种前向碰撞控制方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本发明实施例提及的任一种前向碰撞控制方法。下文不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明前向碰撞控制装置一个实施例的结构示意图。该实施例的前向碰撞控制装置可用于实现本发明上述各前向碰撞控制方法实施例。如图4所示,该实施例的前向碰撞控制装置包括:第一检测模块,第一预测模块和控制模块。其中:
第一检测模块,用于基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象。
在本发明各实施例的一些实施方式中,当前行驶对象的种类例如可以包括但不限于:车辆,机器人,等等。疑似碰撞对象的种类例如包括但不限于以下任意一项或多项:人,车辆,非机动车辆,机器人,障碍物,等等。其中的车辆例如可以是汽车、电动车、玩具车等任意的行驶对象。
在本发明各实施例的一些实施方式中,神经网络可以基于rfcn、ssd、rcnn、fastrcnn、fasterrcnn、sppnet、dpm、overfeat、yolo等架构方式,对帧图像中的目标对象进行检测,从而获得疑似碰撞对象。
第一预测模块,用于预测当前行驶对象和疑似碰撞对象之间的碰撞时间。
控制模块,用于根据碰撞时间对当前行驶对象进行前向碰撞控制,包括前向碰撞预警和/或驾驶控制。
本发明实施例中,例如可以通过但不限于听觉形式、视觉形式等进行前向碰撞预警。其中,在听觉形式下,例如可以通过蜂鸣器发出声音等方式进行前向碰撞预警;在视觉形式下,例如可以通过指示灯闪烁等方式进行前向碰撞预警。
本发明实施例中的驾驶控制,指的是用于改变当前行驶对象的运动状态和/或运动方向的控制动作,例如可以包括:对当前行驶对象进行加速、制动减速、改变行驶方向等可以改变当前行驶对象的运动方向和/或运动状态的控制动作。例如,在一个实际应用场景中,如果当前车辆原来的运动方向是保持在所在车道内直行,如果基于碰撞时间当前车辆将会与前方的疑似碰撞对象发生碰撞,则可以通过驾驶控制改变当前车辆的行驶方向,使当前车辆变道、以避免碰撞;如果在此过程中前方的疑似碰撞对象加速远离了,则可以通过驾驶控制改变当前车辆的行驶方向使当前车辆保持原来的运动方向、保持在所在车道内直行。
基于本发明上述实施例提供的前向碰撞控制装置,基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象,利用深度学习方式检测疑似碰撞对象(例如,车辆、行人、非机动车、机器人、障碍物等),提升了检测结果的准确性和精确度;预测当前行驶对象和疑似碰撞对象之间的碰撞时间,根据碰撞时间对当前行驶对象进行前向碰撞控制,包括前向碰撞预警和/或驾驶控制,从而实现了对当前行驶对象的前向碰撞预警和/或驾驶控制,提高了前向碰撞预警和驾驶控制的精确性,有利于减少公路交通事故。
在其中一些实施方式中,第一检测模块包括:获取单元,用于获取道路上车道线的检测结果;确定单元,用于根据车道线的检测结果确定道路上的至少部分目标对象为疑似碰撞对象。
在其中一些可选示例中,获取单元用于:基于神经网络检测道路上的车道线,得到车道线的检测结果;或者,从高级驾驶辅助系统获取车道线的检测结果。
在其中一些可选示例中,确定单元,用于若车道线的检测结果为检测到的车道线信息,根据车道线信息选取当前行驶对象所在车道内的至少部分目标对象为疑似碰撞对象。
或者,在另一些可选示例中,确定单元,用于若车道线的检测结果为未检测到车道线,选取与当前行驶对象之间的距离在预设范围内的目标对象为疑似碰撞对象。
在其中一些实施方式中,第一预测模块包括:预测单元,用于分别基于各疑似碰撞对象在前n帧图像和当前帧图像中的检测框信息,预测各疑似碰撞对象的运动信息,该运动信息包括:位置、运动速度和运动加速度;计算单元,用于基于各疑似碰撞对象的运动信息,计算当前行驶对象与各疑似碰撞对象之间的碰撞时间。
在其中一些实施方式中,控制模块包括:比较单元,用于将当前行驶对象和疑似碰撞对象之间的碰撞时间与至少一预定阈值进行比较;控制单元,在比较结果满足一个或多个预设条件时,进行所满足的预设条件相应的前向碰撞控制。
其中,在预设条件包括多个时,该多个预设条件分别对应的前向碰撞控制的程度可以逐级递增。
图5为本发明前向碰撞控制装置另一个实施例的结构示意图。如图5所示,在一些实施例中,控制单元可以包括:预警单元和/或驾驶控制单元。其中,预警单元,用于根据碰撞时间对当前行驶对象进行前向碰撞预警;驾驶控制单元,用于根据碰撞时间对当前行驶对象进行驾驶控制。
在其中一些实施方式中,预警单元用于若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第二预设阈值、且大于第一预设阈值,进行碰撞预警;其中,第一预设阈值小于第二预设阈值。
在其中一些可选示例中,预警单元,具体用于针对碰撞时间小于或等于第二预设阈值、且大于第一预设阈值的第一疑似碰撞对象,基于第一疑似碰撞对象的运动信息预测第一疑似碰撞对象是否有远离碰撞区域的趋势;若第一疑似碰撞对象没有远离碰撞区域的趋势,进行碰撞预警。或者,预警单元还用于:若第一疑似碰撞对象有远离碰撞区域的趋势,不进行碰撞预警。
在其中一些实施方式中,预警单元还用于若有疑似碰撞对象与当前行驶对象之间的碰撞时间小于或等于第一预设阈值,进行碰撞预警和/或驾驶控制,驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
在其中一些可选示例中,预警单元具体用于针对碰撞时间小于或等于第一预设阈值的第二疑似碰撞对象,基于第二疑似碰撞对象的运动信息预测第二疑似碰撞对象是否有远离碰撞区域的趋势;若第二疑似碰撞对象没有远离碰撞区域的趋势,进行碰撞预警和/或驾驶控制,驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。或者,预警单元还用于:若第二疑似碰撞对象有远离碰撞区域的趋势,不进行碰撞预警和/或驾驶控制,驾驶控制包括以下任意一项或多项:制动减速、改变行驶方向。
图6为本发明前向碰撞控制装置又一个实施例的结构示意图。如图6所示,与本发明上述各实施例的前向碰撞控制装置相比,该实施例的前向碰撞控制装置还包括:第二检测模块,第二预测模块和确定模块。其中:
第二检测模块,用于利用神经网络检测当前帧图像中的目标对象,获得当前帧图像中目标对象的检测框。
第二预测模块,用于基于前n帧图像中目标对象的检测框,预测目标对象在当前帧图像中的物体框。其中,前n帧图像包括位于当前帧图像之前、按照图像采集顺序排列的n帧图像,n为大于0的整数;
确定模块,用于根据目标对象的检测框和物体框,确定目标对象在当前帧图像中的检测框信息。
在其中一些实施方式中,第二检测模块包括:特征提取单元,用于利用神经网络提取当前帧图像的特征;确定单元,用于基于提取的特征确定目标对象的检测框。
其中,神经网络可以包括多个分别位于不同网络深度的特征层。在其中一些可选示例中,特征提取单元用于:对输入神经网络的当前帧图像,依次通过神经网络的各特征层进行特征提取,并将网络深度为i的第一特征层输出的第一特征和网络深度为j的第二特征层输出的第二特征进行特征融合,得到融合特征作为网络深度为j+1的第三特征层的输入特征或者作为神经网络输出的当前帧图像的特征,其中,1≤i<j。
在一些可选示例中,确定单元具体用于:利用神经网络基于提取的特征确定包含目标对象的候选框;利用神经网络分别基于各候选框的特征对各候选框进行分类,得到各候选框分别属于各类目标对象的概率分值;分别以各候选框的概率分值中,数值最大的概率分值对应的种类作为该候选框中目标对象的种类;分别选取重叠率大于预设阈值、且目标对象的种类相同的候选框作为一组候选框,从一组候选框中选取作为目标对象的种类的概率分值中的最大值对应的候选框,作为目标对象的检测框。
在一些实施方式中,第二检测模块可以包括:检测单元,用于若当前帧图像是所在帧序列中的第一帧图像,利用神经网络检测当前帧图像中的目标对象;帧序列包括:按照图像采集顺序排列的m帧图像;其中,m为大于1的整数;和/或,回归单元,用于若当前帧图像不是所在帧序列中的第一帧图像,基于帧序列中第一帧图像中的检测框信息,回归当前帧图像中目标对象的检测框。
在一些可选示例中,回归单元具体用于:基于第一帧图像中的检测框信息,以第一帧图像中的检测框信息确定的检测框的中心点为中心点,在当前帧图像中截取长度和/或宽度对应大于确定的检测框的长度和/或宽度的区域图像;利用神经网络检测区域图像中的目标对象,获得目标对象在区域图像中的检测框;根据目标对象在区域图像中的检测框、以及区域图像在当前帧图像中的位置,确定目标对象在当前帧图像中的检测框信息。
在一些实施方式中,第二预测模块具体用于:分别针对前n帧图像中的各同一目标对象:根据同一目标对象在前n帧图像中的检测框的大小和位置,拟合前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度;根据前n帧图像中同一目标对象的检测框的大小和位置变化的速度和加速度,预测同一目标对象在当前帧图像中的物体框的大小和位置。
在一些可选示例中,确定模块具体用于:针对各目标对象中,检测框和物体框的重叠率等于或大于预设阈值的第一目标对象,获取第一目标对象的检测框和物体框分别在大小和位置上的平均值,作为第一目标对象在当前帧图像中的检测框信息;检测框信息包括:检测框的大小和位置。
在一些可选示例中,确定模块具体用于:针对各目标对象中,检测框和物体框的重叠率小于预设阈值的第二目标对象,以预测的第二目标对象的物体框的大小和位置,作为第二目标对象在当前帧图像中的检测框信息。
在一些可选示例中,确定模块具体用于:针对各目标对象中,物体框在当前帧图像中不存在对应检测框的第三目标对象,以预测的第三目标对象的物体框的大小和位置,作为第三目标对象在当前帧图像中的检测框信息。
在一些可选示例中,疑似碰撞对象为人或者机器人时,预测单元具体用于:利用神经网络,基于当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在当前帧图像中的预测行为信息,预测行为信息包括:运动方向、运动状态和动作分类信息;分别基于各人或者机器人的预测行为信息、以及各人或者机器人在前n帧图像和当前帧图像中的检测框信息,确定各人或者机器人的运动信息。
在一些可选示例中,预测单元基于当前帧图像中的检测框信息对各人或者机器人进行行为预测,得到各人或者机器人在当前帧图像中的预测行为信息时,具体用于:
基于当前帧图像中的检测框信息,对相应人或者机器人进行关键点检测,基于关键点检测结果获取相应人或者机器人的头部方向和身体方向,基于相应人或者机器人的头部方向和身体方向获取相应人或者机器人的运动方向;基于关键点检测结果对相应人或者机器人的动作进行分类,得到相应人的动作分类信息;基于关键点检测结果对相应人或者机器人的运动状态进行分类,得到相应人或者机器人的运动状态信息。
本发明实施例还提供了一种电子设备,包括本发明上述任一实施例的前向碰撞控制装置。
本发明实施例还提供了另一种电子设备,包括:存储器,用于存储可执行指令;以及处理器,用于与存储器通信以执行可执行指令从而完成本发明上述任一实施例的前向碰撞控制方法的操作。
图7为本发明电子设备一个应用实施例的结构示意图。下面参考图7,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备的结构示意图。如图7所示,该电子设备包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(cpu),和/或一个或多个图像处理器(gpu)等,处理器可以根据存储在只读存储器(rom)中的可执行指令或者从存储部分加载到随机访问存储器(ram)中的可执行指令而执行各种适当的动作和处理。通信部可包括但不限于网卡,所述网卡可包括但不限于ib(infiniband)网卡,处理器可与只读存储器和/或随机访问存储器中通信以执行可执行指令,通过总线与通信部相连、并经通信部与其他目标设备通信,从而完成本申请实施例提供的任一前向碰撞控制方法对应的操作,例如,基于神经网络检测当前行驶对象所在道路前向的疑似碰撞对象;预测当前行驶对象和所述疑似碰撞对象之间的碰撞时间;根据所述碰撞时间对所述当前行驶对象进行前向碰撞控制,所述前向碰撞控制包括前向碰撞预警和/或驾驶控制。
此外,在ram中,还可存储有装置操作所需的各种程序和数据。cpu、rom以及ram通过总线彼此相连。在有ram的情况下,rom为可选模块。ram存储可执行指令,或在运行时向rom中写入可执行指令,可执行指令使处理器执行本发明上述任一前向碰撞控制方法对应的操作。输入/输出(i/o)接口也连接至总线。通信部可以集成设置,也可以设置为具有多个子模块(例如多个ib网卡),并在总线链接上。
以下部件连接至i/o接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至i/o接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
需要说明的,如图7所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图7的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如gpu和cpu可分离设置或者可将gpu集成在cpu上,通信部可分离设置,也可集成设置在cpu或gpu上,等等。这些可替换的实施方式均落入本发明公开的保护范围。
另外,本发明实施例还提供了一种计算机存储介质,用于存储计算机可读取的指令,该指令被执行时实现本发明上述任一实施例的前向碰撞控制方法的操作。
另外,本发明实施例还提供了一种计算机程序,包括计算机可读取的指令,当该计算机可读取的指令在设备中运行时,该设备中的处理器执行用于实现本发明上述任一实施例的前向碰撞控制方法中的步骤的可执行指令。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。