车辆运行状态确定方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种车辆运行状态确定方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,车辆的各种辅助驾驶技术和无人驾驶技术进入了高速发展时期,如车道保持技术、自动泊车技术、自动驾驶技术和刹车辅助技术等,能够在确保车辆驾驶安全的前提下,便利人们的驾驶出行。在车辆行驶过程中,对车道两侧其他车辆的检测、跟踪及预警是保障行车安全的关键技术之一,通过实时地确定两侧车辆的运行状态,可以有效的避免车辆的侧向碰撞问题。
然而,目前的车辆运行状态确定方法,如基于先验知识,利用车底部阴影、车尾灯等先验知识来检测车辆,无法准确地确定侧向车辆的运行状态。
发明内容
基于此,有必要针对上述技术问题,提供一种能够准确确定车辆运行状态的车辆运行状态确定方法、装置、计算机设备和存储介质。
一种车辆运行状态确定方法,所述方法包括:
获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域;
从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度;
确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场;
根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
在其中一个实施例中,从车辆前侧图像中确定感兴趣区域包括:
按照预设的感兴趣区域标定信息,从车辆前侧图像中确定感兴趣区域;
从感兴趣区域中确定侧向车辆车轮的当前车轮位置包括:
通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框;
根据车轮检测框和车轮检测框对应的检测框标定信息,确定侧向车辆车轮的当前车轮位置。
在其中一个实施例中,根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度包括:
获取侧向车辆车轮的历史车轮位置;
确定当前车轮位置与历史车轮位置之间车轮位移变化量,以及车轮位移变化量对应的车辆运行时间;
根据车轮位移变化量和车辆运行时间,得到车轮运行速度。
在其中一个实施例中,确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场包括:
按照预设的光流算法,得到感兴趣区域中各光流特征点的特征点光流;
根据特征点光流将各光流特征点进行聚类,当聚类结果满足预设的聚类重合率条件时,根据聚类结果得到包括侧向车辆车轮对应侧向车辆的车辆光流检测框;
确定各光流特征点中,处于车辆光流检测框中的车辆特征点;
将车辆特征点对应的特征点光流进行聚合,得到侧向车辆的车辆光流速度场。
在其中一个实施例中,在通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框之后,还包括:
获取在车辆前侧图像前一帧的在前前侧图像,并从在前前侧图像中确定在前车轮检测框;根据车轮检测框与在前车轮检测框的比较结果,通过预设的车轮检测框状态机,确定车轮检测框对应的车轮检测框状态;当车轮检测框状态不满足预设的车轮检测输出条件时,返回获取车辆前侧图像的步骤;
和/或,
在根据聚类结果得到包括侧向车辆车轮对应侧向车辆的车辆光流检测框之后,还包括:
获取在车辆前侧图像前一帧的在前前侧图像,并从在前前侧图像中确定在前车辆光流检测框;根据车辆光流检测框与在前车辆光流检测框的比较结果,通过预设的车辆光流检测框状态机,确定车辆光流检测框对应的车辆光流检测框状态;当车辆光流检测框状态不满足预设的车辆光流检测输出条件时,返回获取车辆前侧图像的步骤。
在其中一个实施例中,根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态包括:
确定车轮运行速度的速度变化率和车辆光流速度场的速度场变化率;
根据速度变化率和速度场变化率,确定插值系数;
按照插值系数,对车轮运行速度进行插值更新,得到侧向车辆的车辆运行速度,车辆运行状态包括车辆运行速度。
在其中一个实施例中,在通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框之后,还包括:
跟踪侧向车辆车轮,得到跟踪车轮框;
当跟踪车轮框满足预设的检测跳转条件时,返回通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框的步骤;否则,将跟踪车轮框作为车轮检测框。
在其中一个实施例中,在得到侧向车辆的车辆运行状态之后,还包括:
获取本车运行状态,并根据本车运行状态确定本车运行轨迹;
根据车辆运行状态确定侧向车辆的侧向运行轨迹;
当本车运行轨迹与侧向运行轨迹相交、且满足预设的预警触发条件时,发出安全预警消息。
一种车辆运行状态确定装置,所述装置包括:
感兴趣区域确定模块,用于获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域;
车轮速度确定模块,用于从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度;
光流速度场确定模块,用于确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场;
车辆运行状态模块,用于根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域;
从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度;
确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场;
根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域;
从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度;
确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场;
根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
上述车辆运行状态确定方法、装置、计算机设备和存储介质,从车辆前侧图像中确定感兴趣区域,一方面从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并结合侧向车辆车轮的历史车轮位置得到车轮运行速度,另一方面确定感兴趣区域中侧向车辆车轮对应侧向车辆的车辆光流速度场,再结合车轮运行速度和车辆光流速度场得到侧向车辆的车辆运行状态。在车辆运行状态确定的处理过程中,通过车辆前侧图像中侧向车辆的车轮确定车轮运行速度,确保了车轮运行速度的准确性,再结合车辆光流速度场确定侧向车辆的车辆运行状态,实现了准确确定车辆运行状态。
附图说明
图1为一个实施例中车辆运行状态方法的应用环境图;
图2为一个实施例中车辆运行状态方法的流程示意图;
图3为一个实施例中车辆前侧图像的部分截图;
图4为一个实施例中消除闪现误判的流程示意图;
图5为一个实施例中有限状态机模型示意图;
图6为一个实施例中闪现误判的示意图;
图7为一个实施例中车辆运行状态装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的车辆运行状态确定方法,可以应用于如图1所示的应用环境中。其中,本车和侧向车辆分别在不同车道内行驶,本车通过车辆前端设置的拍摄装置(图未示)采集车辆前侧图像,再通过终端(图未示)接收车辆前侧图像,并从车辆前侧图像中确定感兴趣区域,一方面从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并结合侧向车辆车轮的历史车轮位置得到车轮运行速度,另一方面确定感兴趣区域中侧向车辆车轮对应侧向车辆的车辆光流速度场,再结合车轮运行速度和车辆光流速度场得到侧向车辆的车辆运行状态。其中,拍摄装置不限于为各种相机、摄像机,终端不限于为各种车载终端。
在一个实施例中,如图2所示,提供了一种车辆运行状态确定方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤S201:获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域。
其中,车辆前侧图像可以为设置在车辆前端的摄像头实时拍摄得到的车辆周围的图像,或为摄像头录制的视频图像。感兴趣区域为车辆前侧图像中,进行图像局部特征处理,以检测对应目标的检测范围区域。具体地,感兴趣区域在车辆前侧图像中,可以体现为一梯形区域,其对应于在现实三维空间中车辆前方宽为15米,长为10米的矩形区域。从感兴趣区域中可以确定检测侧向车辆车轮的车轮检测框和检测侧向车辆的车辆光流速度场的车辆光流检测框。
本实施例中,在确定本车的侧向车辆的车辆运行状态时,获取本车上设置的拍摄装置拍摄的车辆前侧图像,并从车辆前侧图像中确定感兴趣区域,基于该感兴趣区域可以对各种运动目标进行检测。
步骤S203:从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度。
侧向车轮为本车两侧的侧向车辆的车轮。一般地,在车辆行驶过程中,对于本车而言,侧向车辆在大多数场景下只会被设置在车辆前端的摄像头拍摄到部分画面,即在车辆侧向图像中只显示出一部分。
如附图3所示,为一具体应用中,获取的车辆前侧图像的部分截图,图中仅包括右侧车辆的部分。此时,若按照传统的车辆检测算法对侧向车辆进行检测,则需要将表现为斜置于车辆侧向图像中的侧向车辆图像进行旋转,在能够完整显示出侧向车辆时进行车辆检测处理。而本实施例中,可以在车辆前侧图像只捕捉到侧向车辆的车轮时,就可以及时监测到侧向车辆,并进行车轮检测处理。在车轮检测中,相比于车辆整体,车轮目标更小,贴近地面,相对于大目标通常能获得更好的检测区域,可以提高检测效率。而且可以方便的利用标定信息,利用车轮检测框底部来定位车辆比利用车辆检测框定位车辆会更准确。
本实施例中,从感兴趣区域中识别出侧向车辆车轮,并进一步确定侧向车辆车轮的当前车轮位置,再根据当前车轮位置和侧向车辆车轮的历史车轮位置,可以得到车轮运行速度。
步骤S205:确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场。
其中,光流是时变图像中模式运动速度,即空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。车辆光流为侧向车辆的各车辆特征点的模式运动速度,车辆光流速度场由各车辆特征点的特征点光流聚合处理得到,用于反映侧向车辆的车辆运动状态。本实施例中,感兴趣区域还用于检测侧向车辆的车辆光流速度场,侧向车辆与检测的侧向车辆车轮对应,即侧向车辆车轮属于该侧向车辆。
具体地,可以获取车辆前侧图像相邻前一帧图像,根据两帧图像中感兴趣区域内的光流特征点,通过光流算法,如LK(Lucas-Kanade,卢卡斯-卡纳德)算法计算得到侧向车辆的车辆光流,并对车辆光流中各车辆特征点的特征点光流进行聚合处理得到车辆光流速度场。
步骤S207:根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
从车辆前侧图像中的感兴趣区域,分别得到侧向车辆的侧向车辆车轮对应的车轮运行速度,以及侧向车辆的车辆光流速度场后,结合该车轮运行速度和车辆光流速度场确定侧向车辆的车辆运行状态。具体地,可以通过车辆光流速度场对车轮运行速度进行调整更新,如通过插值法由车辆光流速度场更新车轮运行速度,并根据更新后的车轮运行速度确定侧向车辆的车辆运行状态。
此外,根据侧向车辆的车辆运行状态,结合本车的运行状态,可以对侧向车辆进行预警,如二者轨迹交叉,则在一定范围阈值内时,可以通过预警消息进行预警,以避免侧向车辆碰撞,确保车辆运行安全。
上述车辆运行状态确定方法中,从车辆前侧图像中确定感兴趣区域,一方面从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并结合侧向车辆车轮的历史车轮位置得到车轮运行速度,另一方面确定感兴趣区域中侧向车辆车轮对应侧向车辆的车辆光流速度场,再结合车轮运行速度和车辆光流速度场得到侧向车辆的车辆运行状态。在车辆运行状态确定的处理过程中,通过车辆前侧图像中侧向车辆的车轮确定车轮运行速度,确保了车轮运行速度的准确性,再结合车辆光流速度场确定侧向车辆的车辆运行状态,实现了准确确定车辆运行状态。
在其中一个实施例中,从车辆前侧图像中确定感兴趣区域包括:按照预设的感兴趣区域标定信息,从车辆前侧图像中确定感兴趣区域。
从感兴趣区域中可以确定车轮检测框,车轮检测框用于指示检测得到的侧向车辆车轮,从而可以确定侧向车辆车轮的车轮运行速度。本实施例中,获取预设的感兴趣区域标定信息,感兴趣区域标定信息为现实三维空间中确定的三维感兴趣区域与车辆前侧图像中感兴趣区域之间的映射对应关系,其可以根据车辆前侧图像中各坐标位置到现实三维坐标之间的转换信息确定。一般地,对于侧向车辆,可能出现于本车前方一定范围内,为了提高数据处理效率,可以通过划定本车左右车道中的感兴趣区域进行目标检测。具体地,感兴趣区域可以为现实世界中本车前方一定范围的区域,如前方15米宽、10米长的矩形区域,按照感兴趣区域标定信息,可以根据现实世界中三维感兴趣区域确定车辆前侧图像中的对应的感兴趣区域范围,如对于现实世界的矩形感兴趣区域,其在车辆前侧图像中表现为一个梯形区域。
进一步地,从感兴趣区域中确定侧向车辆车轮的当前车轮位置包括:通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框;根据车轮检测框和车轮检测框对应的检测框标定信息,确定侧向车辆车轮的当前车轮位置。
从车辆前侧图像确定感兴趣区域后,从该感兴趣区域中确定包括侧向车轮的车轮检测框,车轮检测框用于指示检测跟踪得到的侧向车辆车轮。对于首次出现的侧向车辆车轮进行检测,并对其进行跟踪,以实现对侧向车辆车轮的有效检测。具体地,通过预设的分类器算法,从感兴趣区域中确定车轮检测框。其中,分类器算法可以包括基于LBP(LocalBinary Patterns,局部二值模式)的Cascade分类器和基于HOG(Histogram of OrientedGradient,方向梯度直方图)的SVM(Support Vector Machine,支持向量机)分类器。具体应用时,在感兴趣区域中,通过预训练的基于LBP的Cascade分类器确定候选车轮检测框,再从候选车轮检测框中,通过预训练的基于HOG的SVM分类器过滤误检目标,得到车轮检测框。
从感兴趣区域中确定包括侧向车辆车轮的车轮检测框后,从该车轮检测框中确定侧向车辆车轮的当前车轮位置。具体地,车轮检测框中包括检测到的侧向车辆车轮,根据该车轮检测框在车辆前侧图像中的位置,结合车轮检测框对应的检测框标定信息,可以确定车轮检测框在现实三维世界中的对应位置,从而确定侧向车辆车轮的当前车轮位置。根据该当前车轮位置,结合侧向车辆车轮的历史车轮位置,可以计算得到在侧向车辆车轮位置变化时间内,侧向车辆车轮的车轮运行速度。
在其中一个实施例中,根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度包括:获取侧向车辆车轮的历史车轮位置;确定当前车轮位置与历史车轮位置之间车轮位移变化量,以及车轮位移变化量对应的车辆运行时间;根据车轮位移变化量和车辆运行时间,得到车轮运行速度。
确定侧向车辆车轮的当前车轮位置后,可以跟根据侧向车辆车轮的历史车轮位置计算得到在侧向车辆车轮位置变化时间内,侧向车辆车轮的车轮运行速度。本实施例中,获取侧向车辆车轮的历史车轮位置,历史车轮位置可以为车辆前侧图像在前帧图像中的侧向车轮位置。确定当前车轮位置与历史车轮位置之间车轮位移变化量,以及车轮位移变化量对应的车辆运行时间,车轮位移变化量可以根据当前车轮位置和历史车轮位置对应的坐标计算得到,车辆运行时间可以根据车辆前侧图像与在前帧图像的帧数差及各帧对应时间得到。根据得到的车轮位移变化量和车辆运行时间,可以计算得到车轮运行速度。其中,车轮运行速度可以包括侧向车辆车轮在三维空间内,与本车行驶方向平行和垂直方向的速度。
在具体实现时,可以存储各帧车辆前侧图像,以及该车辆前侧图像中各检测目标,如各侧向车辆车轮的目标信息,如车轮位置。对于新一帧车辆前侧图像检测到的侧向车辆车轮,要将已经存在的各侧向车辆车轮在当前帧的车辆前侧图像中对应的位置更新进去,对于不存在的目标,要向其中添加新的侧向车辆车轮。对于每一个新一帧车辆前侧图像的车轮检测框,首先确定有没有保存该车轮检测框中的侧向车辆车轮在前几帧的数据,将当前的车轮检测框与保存的每一个车轮检测框求重叠率,若某个侧向车辆车轮的车轮检测框与该车轮检测框重叠率大于一定阈值,则将该侧向车辆车轮在新一帧的目标信息更新进去;若没有,说明这是一个新的目标,保存该侧向车辆车轮的目标信息。通过存储各帧车辆前侧图像中侧向车辆车轮的目标信息,并实时进行更新,可以确保历史车轮位置的准确性,从而提高计算得到的车轮运行速度的准确性。
例如,车辆前侧图像为第N帧,根据车轮检测框在车辆前侧图像中的位置,结合车轮检测框对应的检测框标定信息,确定当前车轮位置,当前车轮位置为侧向车辆车轮在现实世界的三维空间中的位置。获取第N-1或第N-2帧的在前帧图像,确定第N-1帧或第N-2帧中车轮位置,并确定第N-1帧或第N-2帧在前帧图像的获取时间。根据前后帧的车轮位置,可以确定在前后帧的车辆运行时间内,侧向车辆车轮的运行位移。进一步,根据车辆运行时间和车轮位移变化量可以计算得到车轮运行速度。
在其中一个实施例中,确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场包括:按照预设的光流算法,得到感兴趣区域中各光流特征点的特征点光流;根据特征点光流将各光流特征点进行聚类,当聚类结果满足预设的聚类重合率条件时,根据聚类结果得到包括侧向车辆车轮对应侧向车辆的车辆光流检测框;确定各光流特征点中,处于车辆光流检测框中的车辆特征点;将车辆特征点对应的特征点光流进行聚合,得到侧向车辆的车辆光流速度场。
从感谢趣区域中还可以确定车辆光流检测框,再根据车辆光流检测框确定车辆光流,并根据车辆光流得到车辆光流速度场。其中,车辆光流为侧向车辆的各车辆特征点的模式运动速度,车辆光流速度场由各车辆特征点的特征点光流聚合处理得到,用于反映侧向车辆的车辆运动状态。具体地,按照预设的光流算法,得到感兴趣区域中各光流特征点的特征点光流。其中,光流算法可以根据实际需求进行选取,如可以LK算法。通过光流算法可以计算得到感兴趣区域中各光流特征点的特征点光流。其中,光流特征点为用于光流计算的像素点特征,具体可以为SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)特征点。
在计算特征点光流时,先从感兴趣区域中确定各光流特征点的当前光流特征,如从车辆前侧图像的感兴趣区域中提取各光流特征点,并确定各光流特征点对应的当前光流特征,光流特征为光流特征点用于计算光流的特征点参数,如可以为光流特征点的坐标。光流需要基于前后帧中对应的光流特征点进行计算,在具体应用时,在从感兴趣区域中确定各光流特征点的当前光流特征之前,判断车辆前侧图像是否有对应前一帧的在前帧图像,若是则进行光流特征点提取并确定光流特征点的当前光流特征;若否,则保存该车辆前侧图像,作为下一帧车辆前侧图像的在前帧图像。
当车辆前侧图像存在在前帧图像时,获取在前帧图像中各光流特征点的历史光流特征。具体地,可以获取相邻前一帧的在前帧图像,并从在前帧图像中获取各光流特征点的历史光流特征;也可以直接从预设的用于存储各帧车辆前侧图像中光流特征点的光流特征的存储器中查询得到。根据得到的当前光流特征和历史光流特征,得到各光流特征点的特征点光流。具体地,特征点光流可以通过LK算法计算得到。得到感兴趣区域中各光流特征点的特征点光流后,根据该特征点光流确定车辆光流检测框,并根据该车辆光流检测框中各车辆特征点对应的特征点光流,确定侧向车辆的车辆光流速度场。例如,可以根据特征点光流对各光流特征点进行聚类,根据聚类结果确定对应的车辆光流检测框,并通过将车辆光流检测框中包括的各光流特征点的特征点光流进行聚合处理,得到侧向车辆的车辆光流速度场。
在一个具体的应用中,确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流时,通过查询是否存在在前帧图像,判断获取的车辆侧向图像是否为第一帧图像,若是,则保存该车辆前侧图像,并获取下一帧车辆前侧图像;若否,则对图像进行灰度化处理,通过灰度化处理后的灰度图像进行车辆光流计算。具体地,提取车辆前侧图像和相邻前一帧的在前帧图像,提取二者前后帧图像的SIFT特征点,进一步提取亚像素级特征点,通过LK金字塔光流法,计算各SIFT特征点的特征点光流,特征点光流包括SIFT特征点的运动方向和运动速度。基于特征点光流,对各SIFT特征点进行筛选,过滤出异常数据和非感兴趣数据,具体可以将运动方向不满足一定运动方向角度范围的特征点作为非感兴趣数据和异常数据滤除,保留感兴趣数据。通过对各SIFT特征点光流进行过滤,可以过滤掉过大或过小的光流,过大光流一般是由于SIFT特征点错误匹配造成的,其光流一般是错误的结果。对于筛选过滤后的SIFT特征点进行聚类,根据聚类结果确定对应的车辆光流检测框,并通过车辆光流检测框中包括的各SIFT特征点的特征点光流,确定侧向车辆的车辆光流速度场。
进一步地,在得到特征点光流,确定侧向车辆的车辆光流速度场时,可以先对各光流特征点进行聚类,根据聚类结果确定对应的车辆光流检测框,并建立车辆光流检测框与车轮检测框的对应关系,再通过车辆光流检测框中包括的各特征点的特征点光流,确定侧向车辆的车辆光流,最后根据车辆光流中各特征点的特征点光流进行聚合处理得到侧向车辆的车辆光流速度场。
本实施例中,根据特征点光流将各光流特征点进行聚类,得到聚类结果。特征点聚类可以基于Kmeans聚类算法进行处理,而考虑到车辆行驶过程中,某侧可能会有多辆侧向车辆,即有多个检测目标,而且检测目标数目不定,在对特征点聚类时,可以通过Kmax-means聚类算法。当聚类结果满足预设的聚类重合率条件时,根据聚类结果得到包括侧向车辆车轮对应侧向车辆的车辆光流检测框。当聚类结果满足聚类重合率条件,如各类别之间的最大重合率小于预设的重合率阈值时,停止聚类,输出聚类结果,并将各聚类类别确定为对应的车辆光流检测框。具体地,可以根据各聚类类别确定对应最大外接矩形,将该最大外接矩形作为对应的车辆光流检测框。此外,对于各聚类类别确定车辆光流检测框,还可以NMS(Non-Maximum Suppression,非极大值抑制)处理,以得到合适的车辆光流检测框。聚类结果的数目,反映了车辆前侧图像中,检测到的车辆光流检测框数目,即为侧向车辆的数目。
在得到车辆光流检测框后,建立该车辆光流检测框与车轮检测框之间的对应关系,以确保车辆光流检测框和车轮检测框指向相同的侧向车辆。具体地,可以通过车辆光流检测框和车轮检测框之间的位置范围关系,确定二者对应关系;而对于车辆光流检测框不包括车轮检测框的情况,可以根据车辆前侧图像中,车辆光流检测框和车轮检测框的相对位置、相对距离确定二者之间的对应关系。
具体地,通过Kmax-means聚类算法进行特征点聚类时,指定聚类类别的最大数量为Kmax,即聚类后检测目标的数量,再按照特征点光流将特征点聚类成Kmax类,并确定各类别之间包围矩形的重合率,若重合率超过预定的重合率阈值,则继续将Kmax类聚类成Kmax-1类,直至各类别之间的重合率不超过重合率阈值,或类别数量为1。具体实现时,若各光流特征点集合为D,最大簇数,即最大聚类类别数量为Kmax,重合率阈值为Toverlap。将聚类类别设为Kmax,通过Kmeans聚类算法进行聚类,得到簇集合C,计算簇集合中各类别的最大重合比例Maxoverlap,最大重合比例可以通过算式(1)得到,
其中,Si、Sj为簇集合C中各类别元素。将最大重合比例Maxoverlap与重合率阈值Toverlap进行比较,当Maxoverlap<Toverlap时,将聚类结果输出,否则重新进行聚类,聚类成Kmax-1类,直至满足聚类结果输出条件。
得到包括侧向车辆的车辆光流检测框后,根据车辆光流检测框中的车辆特征点,可以确定侧向车辆的运动状态。其中,运动状态指刚体,即各侧向车辆在三维空间的速度场,该速度场能表达刚体在三维空间的运动方向和相对运动速度,速度大小的具体量较难获得,这里获得的是一个相对比值。
确定车辆光流检测框后,确定各光流特征点中,处于车辆光流检测框中的车辆特征点。根据车辆光流检测框中的各车辆特征点可以得到侧向车辆的车辆车流,根据该车辆光流可以进一步确定侧向车辆的车辆光流速度场,其中,车辆光流可以根据车辆光流检测框内车辆特征点对应的特征点光流得到,而车辆光流速度场可以将车辆特征点对应的特征点光流进行聚合后得到。
在一个实施例中,如图4所示,在通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框之后,还包括消除闪现误判的步骤,具体包括:
步骤S401:获取在车辆前侧图像前一帧的在前前侧图像,并从在前前侧图像中确定在前车轮检测框。
在图像检测处理中,往往在某一图像帧中会出现临时闪现的误判。其中,闪现是指仅出现在某一图像帧中,不会在连续的图像帧中出现。误判的种类有两种:False Positive和False Negative;False Positive是指被误判为正样本的负样本,False Negative是指被误判为负样本的正样本。为了消除闪现误判,可以通过维护一个有限状态机对检测区域进行状态转移管控,从而实现消除闪现误判。
具体地,获取在车辆前侧图像前一帧的在前前侧图像,在前前侧图像为与车辆前侧图像相邻的在前一帧图像,从该在前前侧图像中确定在前车轮检测框,在前车轮检测框与车辆前侧图像中的车轮检测框对应。
步骤S403:根据车轮检测框与在前车轮检测框的比较结果,通过预设的车轮检测框状态机,确定车轮检测框对应的车轮检测框状态。
得到在前车轮检测框后,将车轮检测框与在前车轮检测进行比较,根据比较结果判断车轮检测框与在前车轮检测框是否为检测到的相同目标,具体是否为相同的侧向车辆车轮。在实现时,可以计算车轮检测框和在前车轮检测框之间的重叠区域比例,如可以通过IOU(Intersection-over-Union,交并比)确定两帧检测框之间的重叠区域比例,从而判断两帧检测框是否检测到相同目标,如当重叠区域比例大于一预设重叠阈值时,如0.8时,判定该两帧检测框检测的是相同目标。
根据比较结果结合预设的车轮检测框状态机,确定车轮检测框对应的车轮检测框状态。例如,当比较结果满足预设的相同目标条件,即判定车轮检测框与在前车轮检测框检测到相同的目标时,通过预设的车轮检测框状态机可以确定车轮检测框对应的车轮检测框状态为“显示”,即车轮检测框的结果可信,可以进行后续的当前车轮位置确定的处理。具体应用中,车轮检测框状态机可以为有限状态机,以对车轮检测框对应的车轮检测框状态进行管理。
步骤S405:当车轮检测框状态不满足预设的车轮检测输出条件时,返回获取车辆前侧图像的步骤。
确定车轮检测框的车轮检测框状态后,将其车轮检测框状态与预设的车轮检测输出条件进行比较,在不满足车轮检测输出条件时,返回获取车辆前侧图像的步骤,即不对该车轮检测框进行车轮运行速度确定的处理。若满足车轮检测输出条件,则对该车轮检测框进行车轮运行速度确定的处理,即执行根据车轮检测框和车轮检测框对应的检测框标定信息,确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度的处理步骤。其中,车轮检测输出条件可以为车轮检测框状态是否满足检测框输出状态,例如,可以设为是否处于待移除状态和显示状态。
进一步地,除了对车轮检测框进行状态机管理外,也可以对车辆光流检测框进行对应的状态机管理,以消除车辆光流检测框检测处理时的闪现误判。具体地,在根据聚类结果得到包括侧向车辆车轮对应侧向车辆的车辆光流检测框之后,还包括:获取在车辆前侧图像前一帧的在前前侧图像,并从在前前侧图像中确定在前车辆光流检测框;根据车辆光流检测框与在前车辆光流检测框的比较结果,通过预设的车辆光流检测框状态机,确定车辆光流检测框对应的车辆光流检测框状态;当车辆光流检测框状态不满足预设的车辆光流检测输出条件时,返回获取车辆前侧图像的步骤。
对车辆光流检测框的状态机管理与车轮检测框状态机管理类似,在得到车辆光流检测框之后,获取在车辆前侧图像前一帧的在前前侧图像,并从在前前侧图像中确定在前车辆光流检测框,在前车辆光流检测框与车辆光流检测框对应。将车辆光流检测框和在前车辆光流检测框进行比较,根据比较结果结合预设的车辆光流检测框状态机,确定车辆光流检测框对应的车辆光流检测框状态。再将车辆光流检测框状态与预设的车辆光流检测输出条件进行比较,当不满足车辆光流检测输出条件时,返回获取车辆前侧图像的步骤,以进行下一帧车辆前侧图像的处理。
本实施例中,通过维护有限状态机对车轮检测框和/或车辆光流检测框进行状态转移管控,可以消除闪现误判,确保车辆运行状态确定的准确性。
具体地,如图5所示,为一个具体应用中,有限状态机模型示意图,车轮检测框和车辆光流检测框均可以通过该有限状态机模型进行状态维护,以消除闪现误判。其中,检测框状态包括初始化状态、移除状态、显示状态和待移除状态。其中,当检测框,即车轮检测框或车辆光流检测框中的目标,如车轮检测狂中的侧向车辆车轮或车辆光流检测框中的侧向车辆为首次出现,即第一次检测到时,将其对应检测框状态设为初始化状态,且对该检测框进行状态维护。当下一帧车辆前侧图像仍然检测到该检测框的目标时,将其对应检测框状态设为显示状态;反之,若未出现,则将检测框状态转移设为移除状态、对于移除状态的检测狂,可以不进行状态机管理。在本实施例中,仅对检测框状态处于待移除状态和显示状态的目标对应的检测框进行后续检测处理,即进行后续车轮运行速度或车辆光流速度场确定的处理;对于初始化状态和移除状态的目标对应的检测框,仅保留检测框信息,不进行后续车轮运行速度或车辆光流速度场确定的处理。
如图6所示,为一个具体实施例中闪现误判的示意图。其中,假设图(a)第一帧车辆前侧图像中,检测框对应的检测框状态为显示状态,检测框可以为车轮检测框或车辆光流检测框;在图(b)第二帧中,没有检测到该检测框(False Negative),此时,该检测框的检测框状态转移为待移除状态,且仍对检测框进行车轮运行速度或车辆光流速度场确定的处理;当图(c)第三帧中车辆前侧图像中,该检测框重新被检测器检测到,此时检测框的检测框状态又转移为显示状态;因此通过状态机维护能够消除部分False Negative。图(d)第四帧中,检测器检测到一个错误的目标(False Positive),而这个目标不在状态机中,则将该目标置为初始化状态;在图(e)第五帧中没有出现该目标,将它移除;因此通过状态机维护能够消除部分False Positive。
在其中一个实施例中,根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态包括:确定车轮运行速度的速度变化率和车辆光流速度场的速度场变化率;根据速度变化率和速度场变化率,确定插值系数;按照插值系数,对车轮运行速度进行插值更新,得到侧向车辆的车辆运行速度,车辆运行状态包括车辆运行速度。
结合从车辆前侧图像中得到的车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。考虑到车轮检测框的跳动,即车轮检测框可能在某一帧与车辆前侧图像上实际车轮贴合不好,如车轮检测框底部未贴合车轮底部,导致车轮当前位置产生误差,从而影响了车轮运行速度的准确性。本实施例中通过侧向车辆的车辆光流速度场对车轮运行速度进行调整更新,并根据更新后的车轮运行速度确定侧向车辆的车辆运行状态。
具体地,采用插值法,通过侧向车辆的车辆光流速度场更新车轮运行速度。进一步地,得到车辆光流速度场后,获取车辆光流速度场的速度场变化率,根据车轮运行速度的速度变化率和车辆光流速度场的速度场变化率确定插值系数。具体地,插值系数α可以由算式(2)得到,
其中,为车轮运行速度的变化率,为车辆光流速度场的速度场变化率,为和之间的标准化欧式距离。其中,和分别由算式(3)和(4)得到,
其中,fn、fn-1为车辆光流速度场,vn、vn-1为车轮运行速度。
可以理解,当车轮运行速度和车辆光流速度场的变化趋势相似时,取值较小,插值系数的值较大,当前速度可信度较高,反之当前速度可信度较低。插值系数的取值范围介于0到0.8之间。
得到插值系数后,对车轮运行速度进行插值更新,得到侧向车辆的车辆运行速度,车辆运行状态包括车辆运行速度。车辆运行速度可以包括在三维空间中与本车轴线平行与垂直方向的速度。车辆运行速度可以由算式(5)得到,
v'n=αvn+(1-α)vn-1 (5)
其中,v'n为插值更新后的车辆运行速度。
本实施例中,根据车轮运行速度的速度变化率和车辆光流速度场的速度场变化率确定插值系数,采用插值法,通过侧向车辆的车辆光流速度场更新车轮运行速度,可以减小车轮检测框跳动带来的影响,减小误差,提高车辆运行状态的准确性。
在一个实施例中,在通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框之后,还包括:跟踪侧向车辆车轮,得到跟踪车轮框;当跟踪车轮框满足预设的检测跳转条件时,返回通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框的步骤;否则,将跟踪车轮框作为车轮检测框。
对于按照预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框,通过预设的***对车轮检测框中的侧向车轮进行跟踪,得到对应的跟踪车轮框,并根据跟踪车轮框和预设的检测跳转条件确定车轮检测框。
具体地,在确定包括侧向车辆车轮的车轮检测框后,通过预设的***,如可以为核相关滤波器对该侧向车辆车轮进行跟踪。在具体应用时,可以根据需要对核相关滤波器进行改进,如增加遮挡判断的改进后的核相关滤波器对侧向车辆车轮进行跟踪,得到跟踪车轮框。将跟踪车轮框与预设的检测跳转条件进行比较,其中,检测跳转条件可以包括但不限于包括检测跳转周期、跟踪目标消失、目标跟踪出错等。当跟踪车轮框满足预设的检测跳转条件时,则表明需要重新检测目标,即需要重新检测侧向车辆车轮,此时返回通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框的步骤,从车辆前侧图像中确定包括侧向车辆车轮的车轮检测框。若当跟踪车轮框不满足预设的检测跳转条件时,表明不需要重新进行目标检测,当前目标跟踪正常,可以直接将跟踪车轮框作为车轮检测框进行后续处理。
此外,对于多个目标跟踪,即存在多个侧向车辆车轮时,可以为各个目标分别设置对应的***进行跟踪,并生成跟踪队列进行跟踪管理。对于跟踪队列中的各跟踪目标,可以设置在线监督器对正在跟踪的目标进行监督,当在线监督器判断目标跟踪出错时,会给***进行惩罚计分,当惩罚计分达到阈值,如当分类器连续两次将一个跟踪目标判为Negative时,则将该目标从***剔除,并将该***从跟踪队列中剔除。其中,在线监督器可以为预训练的目标分类器,用于对跟踪车轮区域进行分类,当分类结果不为侧向车辆车轮时,判断当前目标跟踪出错,即满足预设的检测跳转条件,需要重新检测侧向车辆车轮。进一步地,对于通过有限状态机管理的侧向车辆车轮,可以仅跟踪区域状态为待移除状态和显示状态的侧向车辆车轮,以确保目标跟踪的准确性。
在其中一个实施例中,在得到侧向车辆的车辆运行状态之后,还包括:获取本车运行状态,并根据本车运行状态确定本车运行轨迹;根据车辆运行状态确定侧向车辆的侧向运行轨迹;当本车运行轨迹与侧向运行轨迹相交、且满足预设的预警触发条件时,发出安全预警消息。
根据车轮运行速度和车辆光流,得到侧向车辆的车辆运行状态后,可以结合本车运行状态,对本车的侧向车辆进行轨迹预测,以实现提前预警,避免侧向碰撞事故。其中,车辆运行状态可以包括与本车行驶方向平行和垂直方向的速度。对于不同侧不同车道的侧向车辆,可以采取不同的决策,例如对于相邻车道的侧向车辆和相隔车道的侧向车辆,采取不同的安全预警策略,偏向于保护本车安全。
具体地,得到侧向车辆的车辆运行状态之后,获取本车运行状态,获取本车运行状态包括本车在三维空间中的本车运行速度,并根据本车运行状态确定本车运行轨迹。根据本车运行状态可以分析得到一定时间内的行驶轨迹。另一方面,根据车辆运行状态确定侧向车辆的侧向运行轨迹。将本车运行轨迹与侧向运行轨迹进行比较,若本车运行轨迹与侧向运行轨迹相交,则表明以当前运行状态保持行驶,本车与侧向车辆将会发生侧向碰撞。此时,检测是否满足预设的预警触发条件,预警触发条件可以为距离交叉点的距离在一定范围内,或距离交叉点的行驶时间在一定范围内。若满足预警触发条件,则触发预警,发出安全预警消息,以及时对本车的运行状态进行调整,避免侧向碰撞发生,提高车辆行驶的安全性。在具体应用中,可以对与本车运行轨迹具有交叉点的所有侧向车辆进行监控,在本车驶过交叉点前的任一时刻,将处于交叉点一定距离阈值范围内的侧向车辆作为需要预警的目标,即可发出预警。
应该理解的是,虽然图2、4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种车辆运行状态确定装置,包括:感兴趣区域确定模块701、车轮速度确定模块703、光流速度场确定模块705和车辆运行状态模块707,其中:
感兴趣区域确定模块701,用于获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域;
车轮速度确定模块703,用于从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度;
光流速度场确定模块705,用于确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场;
车辆运行状态模块707,用于根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
在其中一个实施例中,感兴趣区域确定模块701包括感兴趣区域单元,用于按照预设的感兴趣区域标定信息,从车辆前侧图像中确定感兴趣区域;车轮速度确定模块703包括车轮检测框单元和当前车轮位置单元,其中:车轮检测框单元,用于通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框;当前车轮位置单元,根据车轮检测框和车轮检测框对应的检测框标定信息,确定侧向车辆车轮的当前车轮位置。
在其中一个实施例中,车轮速度确定模块703包括历史车轮位置单元、变化量确定单元和车轮速度确定单元,其中:历史车轮位置单元,用于获取侧向车辆车轮的历史车轮位置;变化量确定单元,用于确定当前车轮位置与历史车轮位置之间车轮位移变化量,以及车轮位移变化量对应的车辆运行时间;车轮速度确定单元,用于根据车轮位移变化量和车辆运行时间,得到车轮运行速度。
在其中一个实施例中,光流速度场确定模块705包括特征点光流单元、车辆光流检测框单元、车辆特征点单元和光流速度场单元,其中:特征点光流单元,用于按照预设的光流算法,得到感兴趣区域中各光流特征点的特征点光流;车辆光流检测框单元,用于根据特征点光流将各光流特征点进行聚类,当聚类结果满足预设的聚类重合率条件时,根据聚类结果得到包括侧向车辆车轮对应侧向车辆的车辆光流检测框;车辆特征点单元,用于确定各光流特征点中,处于车辆光流检测框中的车辆特征点;光流速度场单元,用于将车辆特征点对应的特征点光流进行聚合,得到侧向车辆的车辆光流速度场。
在其中一个实施例中,还包括在前车轮检测框模块、车轮检测框比较模块和车轮检测框跳转模块,其中:在前车轮检测框模块,用于获取在车辆前侧图像前一帧的在前前侧图像,并从在前前侧图像中确定在前车轮检测框;车轮检测框比较模块,用于根据车轮检测框与在前车轮检测框的比较结果,通过预设的车轮检测框状态机,确定车轮检测框对应的车轮检测框状态;车轮检测框跳转模块,用于当车轮检测框状态不满足预设的车轮检测输出条件时,返回获取车辆前侧图像的步骤。
在其中一个实施例中,还包括光流检测框模块、光流检测框比较模块和光流检测框跳转模块,其中:光流检测框模块,用于获取在车辆前侧图像前一帧的在前前侧图像,并从在前前侧图像中确定在前车辆光流检测框;光流检测框比较模块,用于根据车辆光流检测框与在前车辆光流检测框的比较结果,通过预设的车辆光流检测框状态机,确定车辆光流检测框对应的车辆光流检测框状态;光流检测框跳转模块,用于当车辆光流检测框状态不满足预设的车辆光流检测输出条件时,返回获取车辆前侧图像的步骤。
在其中一个实施例中,车辆运行状态模块707包括变化率确定单元、插值系数单元和车轮速度更新单元,其中:变化率确定单元,用于确定车轮运行速度的速度变化率和车辆光流速度场的速度场变化率;插值系数单元,用于根据速度变化率和速度场变化率,确定插值系数;车轮速度更新单元,用于按照插值系数,对车轮运行速度进行插值更新,得到侧向车辆的车辆运行速度,车辆运行状态包括车辆运行速度。
在其中一个实施例中,还包括车轮跟踪模块和跟踪框处理模块,其中:车轮跟踪模块,用于跟踪侧向车辆车轮,得到跟踪车轮框;跟踪框处理模块,用于当跟踪车轮框满足预设的检测跳转条件时,返回通过预设的分类器算法,从感兴趣区域中确定包括侧向车辆车轮的车轮检测框的步骤;否则,将跟踪车轮框作为车轮检测框。
在其中一个实施例中,还包括本车轨迹模块、侧向轨迹模块和预警模块,其中:本车轨迹模块,用于获取本车运行状态,并根据本车运行状态确定本车运行轨迹;侧向轨迹模块,用于根据车辆运行状态确定侧向车辆的侧向运行轨迹;预警模块,用于当本车运行轨迹与侧向运行轨迹相交、且满足预设的预警触发条件时,发出安全预警消息。
关于车辆运行状态确定装置的具体限定可以参见上文中对于车辆运行状态确定方法的限定,在此不再赘述。上述车辆运行状态确定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种车辆运行状态确定方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域;
从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度;
确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场;
根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取车辆前侧图像,并从车辆前侧图像中确定感兴趣区域;
从感兴趣区域中确定侧向车辆车轮的当前车轮位置,并根据当前车轮位置和侧向车辆车轮的历史车轮位置,得到车轮运行速度;
确定感兴趣区域中,侧向车辆车轮对应侧向车辆的车辆光流速度场;
根据车轮运行速度和车辆光流速度场,得到侧向车辆的车辆运行状态。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。