本发明涉及车辆检测领域,尤其涉及一种车辆检测方法、装置以及计算机可读存储介质。
背景技术:
汽车辅助驾驶系统(adas)或者自动驾驶系统是未来的发展的趋势且在最近几年得到了迅猛的发展。快速、高准确率的检测前方的车辆具有非常重要的意义,直接关系到辅助驾驶系统能否有效的运行。车载辅助驾驶系统系统是安装在运行车辆的嵌入式系统,由于其cpu的计算速度满,系统耗电量高,内存不足等因素,能提供的计算资源非常有限。
传统的检测方法运行速度快,资源消耗小,但是检测车辆的准确率不高;另一种基于深度学习的车辆检测方法检测准确率高,但运行成本高,计算资源耗费大,且检测速度慢,检测效果并不理想。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本发明的主要目的在于提供一种车辆检测方法、装置以及计算机可读存储介质,旨在解决辅助驾驶系统检测车辆时难以兼顾高准确率和高效率的问题。
为了达到上述目的,本发明提供一种车辆检测方法,所述车辆检测方法包括以下步骤:
获取视频帧中当前路况对应的图像帧;
获取所述图像帧中出现车辆的目标区域;
将所述目标区域输入至深度学习模型进行车辆位置计算,得到车辆位置信息。
优选地,所述获取所述图像帧中出现车辆的目标区域的步骤包括:
判断所述图像帧在历史图像帧中是否有相似帧;
在判定所述图像帧在历史图像帧中有相似帧时,获取所述相似帧中出现车辆的历史区域以及区域偏移量;
根据所述历史区域以及所述区域偏移量得到所述目标区域。
优选地,所述获取所述图像帧中出现车辆的目标区域的步骤之后,所述判断所述图像帧在历史图像帧中是否有相似帧的步骤,还包括:
在判定所述图像帧在所述视频帧中没有相似帧时,获取所述图像帧中的路况信息;
根据所述路况信息获取对应的检测窗口;
根据所述检测窗口对所述图像帧进行车辆检测;
在所述检测窗口检测到车辆时,将所述车辆出现的区域作为所述目标区域。
优选地,所述根据所述检测窗口对所述图像帧进行车辆检测的步骤包括:
获取起始检测位置、预设滑动方向以及预设滑动距离;
控制所述检测窗口在所述起始检测位置以预设滑动方向及预设滑动距离进行滑动;
在所述检测窗口每次滑动后提取所述检测窗口中的图像的图像特征;
根据所述图像特征确定所述检测窗口中是否存在车辆。
优选地,所述图像特征包括局部对比度特征以及梯度方向直方图特征。
优选地,所述路况信息不同所述检测窗口的尺寸不同。
优选地,所述路况信息不同所述预设滑动距离不同。
优选地,所述将所述目标区域输入至深度学习模型进行车辆位置计算,得到车辆位置信息的步骤包括:
在获取到多个所述目标区域时,合并多个所述目标区域得到合并区域;
将所述合并区域输入至所述深度学习模型进行车辆位置计算,得到所述车辆位置信息。
此外,为实现上述目的,本发明还提供一种车辆检测装置,所述车辆检测装置包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的车辆检测程序,所述车辆检测程序被所述处理器执行时实现如上所述的车辆检测方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有车辆检测程序,所述车辆检测程序被处理器执行时实现如上所述的车辆检测方法的步骤。
本发明提供的车辆检测方法、装置以及计算机可读存储介质,首先,获取视频帧中当前路况对应的图像帧,然后,获取所述图像帧中出现车辆的目标区域,最后,将所述目标区域输入至深度学习模型进行车辆位置计算,得到车辆位置信息。因本发明能够通过车辆跟踪技术识别出图像帧中出现车辆的最小目标区域,再将所述最小目标区域输入到深度学习模型计算得到当前路况下的车辆位置信息,从而解决了辅助驾驶系统检测车辆时难以兼顾高准确率和高效率的问题。
附图说明
附图说明用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例方案涉及的车辆检测装置的硬件结构示意图;
图2为本发明车辆检测方法第一实施例的流程示意图;
图3为本发明车辆检测方法第二实施例的流程示意图;
图4为本发明车辆检测方法第三实施例的流程示意图;
图5为本发明车辆检测方法第四实施例的流程示意图;
图6为本发明车辆检测方法第五实施例的流程示意图;
图7为本发明车辆检测方法检测到的目标区域图;
图8为本发明车辆检测方法合并区域图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取视频帧中当前路况对应的图像帧;获取所述图像帧中出现车辆的目标区域;将所述目标区域输入至深度学习模型进行车辆位置计算,得到车辆位置信息。
由于车载辅助驾驶系统系统是安装在运行车辆的嵌入式系统,其cpu的计算速度满,系统耗电量高,内存不足等因素,能提供的计算资源非常有限。传统的检测方法运行速度快,资源消耗小,但是检测车辆的准确率不高;另一种基于深度学习的车辆检测方法检测准确率高,但运行成本高,计算资源耗费大,且检测速度慢,检测效果并不理想。
本发明提供一种解决方案,首先,获取视频帧中当前路况对应的图像帧;然后,获取所述图像帧中出现车辆的目标区域;最后,将所述目标区域输入至深度学习模型进行车辆位置计算,得到车辆位置信息。因本发明能够通过车辆跟踪技术识别出图像帧中出现车辆的最小目标区域,再将所述最小目标区域输入到深度学习模型计算得到当前路况下的车辆位置信息,从而解决了辅助驾驶系统检测车辆时难以兼顾高准确率和高效率的问题。
如图1所示,图1是本发明实施例方案涉及装置的硬件结构示意图。
参照图1,该装置可以包括:处理器1001,例如cpu,存储器1002,通信总线1003,网络接口1004。其中,通信总线1003用于实现该装置中各组成部件之间的连接通信。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1002可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1002可选的还可以是独立于前述处理器1001的存储装置。如图1所示,作为一种计算机存储介质的存储器1002中可以包括操作系统、网络通信模块以及车辆检测程序。
可选地,所述装置还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在智能终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,智能终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的装置所涉及的硬件中,网络接口1004可以用于获取当前路段的实时路况和天气信息;而处理器1001可以用于调用存储器1002中存储的车辆检测程序,并执行以下操作:
获取视频帧中当前路况对应的图像帧;
获取所述图像帧中出现车辆的目标区域;
将所述目标区域输入至深度学习模型进行车辆位置计算,得到车辆位置信息。
进一步地,处理器1001可以用于调用存储器1002中存储的车辆检测程序,还执行以下操作:
判断所述图像帧在历史图像帧中是否有相似帧;
在判定所述图像帧在历史图像帧中有相似帧时,获取所述相似帧中出现车辆的历史区域以及区域偏移量;
根据所述历史区域以及所述区域偏移量得到所述目标区域。
进一步地,处理器1001可以用于调用存储器1002中存储的车辆检测程序,还执行以下操作:
在判定所述图像帧在所述视频帧中没有相似帧时,获取所述图像帧中的路况信息;
根据所述路况信息获取对应的检测窗口;
根据所述检测窗口对所述图像帧进行车辆检测;
在所述检测窗口检测到车辆时,将所述车辆出现的区域作为所述目标区域。
进一步地,处理器1001可以用于调用存储器1002中存储的车辆检测程序,还执行以下操作:
获取起始检测位置、预设滑动方向以及预设滑动距离;
控制所述检测窗口在所述起始检测位置以预设滑动方向及预设滑动距离进行滑动;
在所述检测窗口每次滑动后提取所述检测窗口中的图像的图像特征;
根据所述图像特征确定所述检测窗口中是否存在车辆。
进一步地,处理器1001可以用于调用存储器1002中存储的车辆检测程序,还执行以下操作:
在获取到多个所述目标区域时,合并多个所述目标区域得到合并区域;
将所述合并区域输入至所述深度学习模型进行车辆位置计算,得到所述车辆位置信息。
参照图2,图2为本发明车辆检测方法的第一实施例,所述车辆检测方法包括:
步骤s10、获取视频帧中当前路况对应的图像帧;
本发明提供的车辆检测方法主要用于让辅助驾驶系统兼顾高准确率和高效率。本发明提供的车辆检测方法涉及的终端包括但不限于手机、平板电脑和电脑等,所述终端上预先加载有相关的应用系统。
本发明提供的技术方案,车辆行驶途中,控制前置摄像头获取当前路况对应的视频帧,然后获取视频帧中当前路况对应的图像帧。可以理解的是,所述视频帧中包括多个历史图像帧以及当前图像帧,所述图像帧为视频帧的最后一帧,当所述图像帧在所述视频帧中有相似的历史图像帧时,则判定当前路况未发生较大的变化,根据历史图像帧中出现车辆的历史区域以及区域偏移量获取车辆位置信息;当所述图像帧在所述视频帧中没有相似的历史图像帧时,则判定当前路况发生了明显的变化,通过车辆跟踪技术获取所述图像帧中的roi区域,并将所述roi区域输入至深度学习框架计算车辆位置信息。
步骤s20、获取所述图像帧中出现车辆的目标区域;
本实施例提供的技术方案中,在获取视频帧中当前路况对应的图像帧后,判断所述图像帧在历史图像帧中是否有相似帧;即对历史图像帧的每一帧进行匹配,计算当前图像帧与历史图像帧之间的相似度,在判定所述图像帧在历史图像帧中有相似帧时,找出历史结果中最相似的几帧,采用光流法进行运动估计,获取所述相似帧中出现车辆的历史区域以及区域偏移量,根据所述历史区域以及所述区域偏移量得到所述目标区域。在判定所述图像帧在所述视频帧中没有相似帧时,表明前方车况或路况发生了明显的变化。获取所述图像帧中的路况信息,利用深度学习检测当前帧中的车辆。为了加速深度学习的检测速度,首先利用多尺寸的检测窗口在所述图像帧中滑动。在所述检测窗口每次滑动后提取所述检测窗口中的图像的图像特征,将所述图像特征输入至支持向量机(svm)模型获取车辆出现的目标区域。
需要说明的是,路况信息不同所述调整窗口的尺寸不同,路况信息不同所述预设滑动距离不同;图像特征包括局部对比度特征以及梯度方向直方图特征。
步骤s30、将所述目标区域输入至深度学习模型进行车辆位置计算,得到车辆位置信息。
本实施例提供的技术方案中,在获取到所述图像帧中出现车辆的目标区域后,将所述目标区域连同所述图像帧一起输入至深度学习模型进行车辆位置计算,得到车辆位置信息。本发明不限定使用的深度学习模型,但本专利使用mxnet深度学习模型计算图像帧中车辆出现的位置信息。可以理解的是,如图7所示所述图像帧中可能出现多个目标区域,也可能只出现一个目标区域,在出现多个目标区域时,如图8所示,将多个所述目标区域合并为一个大的合并区域,并改变合并区域的边框的显示颜色,所述mxnet深度学习模型通过所述显示颜色识别出roi区域并进行车辆位置计算。
需要说明的是,mxnet深度学习模型只对roi区域内的图像进行计算,图像帧中roi区域外的图像将不参与计算,因此大大减少了深度学习模型计算车辆位置的时间以及消耗的资源。
本发明根据上述方案,车辆行驶途中,控制前置摄像头获取前路况对应的视频帧,然后获取视频帧中当前路况对应的图像帧,并判断所述图像帧在历史图像帧中是否有相似帧;对历史图像帧的每一帧进行匹配,计算相似度,在判定所述图像帧在历史图像帧中有相似帧时,找出历史结果中最相似的几帧,采用光流法进行运动估计,获取所述相似帧中出现车辆的历史区域以及区域偏移量,根据所述历史区域以及所述区域偏移量得到所述目标区域。在判定所述图像帧在所述视频帧中没有相似帧时,表明前方车况或路况发生了明显的变化。获取所述图像帧中的路况信息,利用深度学习检测当前帧中的车辆。为了加速深度学习的检测速度,首先利用多尺寸的检测窗口在所述图像帧中滑动。检测当前帧的可能包含有车辆的区域。其中,所述路况信息不同所述检测窗口的尺寸不同且所述路况信息不同所述预设滑动距离不同。在所述检测窗口每次滑动后提取所述检测窗口中的图像的图像特征,将所述图像特征输入至支持向量机(svm)模型预测每一个窗口内是否包含有车辆。其中,所述图像特征包括局部对比度特征以及梯度方向直方图特征然后是合并预测出来的区域,形成一个大的区域,即roi区域(感兴趣区域)。最后将所述roi区域输入至所述深度学习模型进行车辆位置计算,得到所述车辆位置信息。本发明通过车辆跟踪技术识别出图像帧中出现车辆的最小目标区域,再将所述最小目标区域输入到深度学习模型计算得到当前路况下的车辆位置信息,从而使辅助驾驶系统检测车辆时兼顾高准确率和高效率,提升了用户体验。
进一步的,参照图3,图3为本发明车辆检测方法的第二实施例,在上述图2所示的实施例基础上,所述步骤s20,包括:
步骤s21、判断所述图像帧在历史图像帧中是否有相似帧;
步骤s22、在判定所述图像帧在历史图像帧中有相似帧时,获取所述相似帧中出现车辆的历史区域以及区域偏移量;
步骤s23、根据所述历史区域以及所述区域偏移量得到所述目标区域。
本实施例提供的技术方案中,在获取视频帧中当前路况对应的图像帧后,判断所述图像帧在历史图像帧中是否有相似帧;即对历史图像帧的每一帧进行匹配,计算当前图像帧与历史图像帧之间的相似度,在判定所述图像帧在历史图像帧中有相似帧时,找出历史结果中最相似的几帧,采用光流法进行运动估计,获取所述相似帧中出现车辆的历史区域以及区域偏移量,根据所述历史区域以及所述区域偏移量得到所述目标区域。
进一步地,在根据所述历史区域以及所述区域偏移量得到所述目标区域时,为了获得当前车辆位置的更精确的位置信息,还可对多个历史图像帧进行加权计算,计算公式如下:
其中,bk是第k个车辆的外接矩形框,wi,δi和hbi分别是第i个历史图像帧的权重,区域偏移量和对应车辆的外接矩形。
在所述图像帧有相似的历史图像帧时,通过历史图像帧得到车辆的位置信息而不通过深度学习模型进行车辆位置计算,从而高效地获取到当前路况的图像帧的车辆位置信息。
进一步的,参照图4,图4为本发明车辆检测方法的第三实施例,在上述图3所示的实施例基础上,所述步骤s23之前后,还包括:
步骤s24、在判定所述图像帧在所述视频帧中没有相似帧时,获取所述图像帧中的路况信息;
步骤s25、根据所述路况信息获取对应的检测窗口;
步骤s26、根据所述检测窗口对所述图像帧进行车辆检测;
步骤s27、在所述检测窗口检测到车辆时,将所述车辆出现的区域作为所述目标区域。
本实施例提供的技术方案中,在获取视频帧中当前路况对应的图像帧后,判断所述图像帧在历史图像帧中是否有相似帧;即对历史图像帧的每一帧进行匹配,计算当前图像帧与历史图像帧之间的相似度。在判定所述图像帧在所述视频帧中没有相似帧时,表明前方车况或路况发生了明显的变化。获取所述图像帧中的路况信息,利用深度学习检测当前帧中的车辆。为了加速深度学习的检测速度,首先利用多尺寸的检测窗口在所述图像帧中滑动。在所述检测窗口每次滑动后提取所述检测窗口中的图像的lbp(局部对比度)和hog(梯度方向直方图特征)特征,将所述lbp和hog特征输入至支持向量机(svm)模型,从而判断当前检测窗口所处的位置是否存在车辆。
通过车辆跟踪技术获取roi区域,从而减少深度学习模型的计算量,提高了获取图像帧车辆位置信息的效率。
进一步的,参照图5,图5为本发明车辆检测方法的第四实施例,在上述图4所示的实施例基础上,所述步骤s26,包括:
步骤s261、获取起始检测位置、预设滑动方向以及预设滑动距离;
步骤s262、控制所述检测窗口在所述起始检测位置以预设滑动方向及预设滑动距离进行滑动;
步骤s263、在所述检测窗口每次滑动后提取所述检测窗口中的图像的图像特征;
步骤s264、根据所述图像特征确定所述检测窗口中是否存在车辆。
本实施例提供的技术方案中,为了加速深度学习的检测速度,首先利用多尺寸的检测窗口在所述图像帧中滑动,终端获取滑动的起始检测位置、预设滑动方向以及预设滑动距离,然后控制所述检测窗口在所述起始检测位置以预设滑动方向及预设滑动距离进行滑动,在所述检测窗口每次滑动后提取所述检测窗口中的图像的图像特征,根据所述图像特征确定所述检测窗口中是否存在车辆。
需要说明的是,终端可以根据路况信息动态调整检测窗口的尺寸大小和调整滑动距离,例如,在所述路况信息为高速路时,图像帧中的车辆一般只占据图像很小的位置,因此将检测窗口的尺寸缩小。终端记录检测窗口未检测到车辆的次数,在次数达到预设数量时动态加大检测窗口滑动的距离,所述预设数量为管理人员设置,可以是3次或3次以上。
终端通过滑动的方式对图像帧进行完整的检测,从而提高了车辆检测的准确率。
进一步的,参照图6,图6为本发明车辆检测方法的第五实施例,在上述图2所示的实施例基础上,所述步骤s30,包括:
步骤s31、在获取到多个所述目标区域时,合并多个所述目标区域得到合并区域;
步骤s32、将所述合并区域输入至所述深度学习模型进行车辆位置计算,得到所述车辆位置信息。
本实施例提供的技术方案中,在获取到所述图像帧中出现车辆的目标区域后,将所述目标区域连同所述图像帧一起输入至深度学习模型进行车辆位置计算,得到车辆位置信息。如图7所示所述图像帧中可能出现多个目标区域,也可能只出现一个目标区域,在出现多个目标区域时,如图8所示,将多个所述目标区域合并为一个大的合并区域,并改变合并区域的边框的显示颜色,所述mxnet深度学习模型通过所述显示颜色识别出roi区域并进行车辆位置计算。
将多个目标区域合并为一个合并区域,从而避免在有多个目标区域时深度学习框架遗漏计算目标区域。
为实现上述目的,本发明还提供一种车辆检测装置,所述车辆检测装置包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的车辆检测程序,所述车辆检测程序被所述处理器执行时实现如上所述的车辆检测方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有车辆检测程序,所述车辆检测程序被处理器执行时实现如上所述的车辆检测方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是电视机,手机,计算机,装置,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。