本公开涉及车联网汽车安全检测技术领域,尤其涉及一种车载can总线的异常检测方法及装置。
背景技术:
随着车联网的迅速发展,车辆内部配备有大量的电子控制单元,这些电子控制单元通过总线的方式进行数据通信,从而实现车辆内部网络系统各个组成单元之间的协作运行。can(controllerareanetwork,控制器局域网)总线是目前应用最为广泛的车载通信总线。但是,can总线在提升了汽车与外界的信息交互能力的同时,也带来了信息安全的风险,can总线非常容易遭到黑客的攻击,因此,目前提出了多种针对can总线的入侵检测方法。传统的基于规则的入侵检测系统往往存在着攻击特征库少的劣势,所以发挥的功能有限。但是基于机器学习的入侵检测系统能够对未知的风险进行防御,在安全方面发挥着奇效。目前常采用lstm(长短期记忆网络)对某个can信号进行异常检测,或使用ocsvm(一类支持向量机)对某个can帧的帧间隔进行异常检测,但是每个检测引擎只能针对唯一的can信号进行异常检测,导致需要设置多个检测引擎从而造成系统资源的消耗的问题发生。
技术实现要素:
针对现有技术中存在的上述技术问题,本公开提供了一种车载can总线的异常检测方法及装置,其能够同时检测同类检测样本中的多个can信号,解决现有技术中只能检测单一can信号的技术问题,能够增加检测范围,减少模型的产出,降低资源消耗。
本公开实施例提供了一种车载can总线的异常检测方法,所述方法包括:
提取can总线数据集中的can信号的信号值序列;
基于所述信号值序列的变化趋势,解析信号值序列之间的相关性;
将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本;
将所述同类检测样本输入到训练好的检测模型中进行检测,得到所述can信号的发生概率;
判断所述发生概率是否小于第一预设阈值,若是,则发出警报信息。
在一些实施例中,训练所述检测模型所采用的方法包括:
获取can总线数据集,提取can总线数据集中的can信号的信号值序列;
对至少两个所述can信号的信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
判断所述相关系数是否在第二预设阈值内,若是,则将至少两个所述can信号划分为同类训练样本;
将所述同类训练样本输入到检测模型中进行训练,生成用于检测车载can总线异常的检测模型。
在一些实施例中,所述将所述同类检测样本输入到训练好的检测模型中进行检测,具体包括:
对所述同类检测样本中的各can信号的信号值序列进行预处理;
在单个预处理后的can信号的信号值序列中依次提取预设数量的子序列;
将各所述can信号对应的所述子序列组成子序列组输入到训练好的检测模型中进行检测。
在一些实施例中,所述基于所述信号值序列的变化趋势,解析信号值序列之间的相关性,包括:
对至少两个所述信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
所述将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本,包括:
判断所述相关系数是否在第三预设阈值内,若是,则将至少两个所述can信号划分为同类检测样本。
在一些实施例中,所述同类检测样本至少包括车速信息集和发动机转速信息集。
本公开实施例还提供了一种车载can总线的异常检测装置,所述装置包括:
提取模块,其配置为提取can总线数据集中的can信号的信号值序列;
解析模块,其配置为基于所述信号值序列的变化趋势,解析信号值序列之间的相关性;
样本划分模块,其配置为将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本;
检测模块,其配置为将所述同类检测样本输入到训练好的检测模型中进行检测,得到所述can信号的发生概率;
判断模块,其配置为判断所述发生概率是否小于第一预设阈值,若是,则发出警报信息。
在一些实施例中,所述检测模型的构建方式,包括:
获取can总线数据集,提取can总线数据集中的can信号的信号值序列;
对至少两个所述can信号的信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
判断所述相关系数是否在第二预设阈值内,若是,则将至少两个所述can信号划分为同类训练样本;
将所述同类训练样本输入到检测模型中进行训练,生成用于检测车载can总线异常的检测模型。
在一些实施例中,所述检测模块还配置为:
对所述同类检测样本中的各can信号的信号值序列进行预处理;
在单个预处理后的can信号的信号值序列中依次提取预设数量的子序列;
将各所述can信号对应的所述子序列组成子序列组输入到训练好的检测模型中进行检测。
在一些实施例中,所述解析模块还配置为:对至少两个所述信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
所述样本划分模块还配置为:判断所述相关系数是否在第三预设阈值内,若是,则将至少两个所述can信号划分为同类检测样本。
在一些实施例中,所述同类检测样本至少包括车速信息集和发动机转速信息集。
与现有技术相比,本公开实施例的有益效果在于:本公开通过将具有相关性的can信号划分为同类检测样本,继而将同类检测样本输入到训练好的检测模型中进行检测,通过对检测模型的检测结果也就是can信号的发生概率进行判断,实现针对can信号进行异常数据的检测,检测车载网络中数据是否被入侵。本公开提出的异常检测方法能够同时对同类检测样本中的多个can信号进行异常检测,解决现有技术中只能检测单一can信号的技术问题,既能够增加检测范围,还能够增加检测结果的准确性,同时能够减少检测模型的产出,从而降低系统资源的消耗。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的部件。具有字母后缀或不同字母后缀的相同附图标记可以表示相似部件的不同实例。附图大体上通过举例而不是限制的方式示出各种实施例,并且与说明书以及权利要求书一起用于对所公开的实施例进行说明。在适当的时候,在所有附图中使用相同的附图标记指代同一或相似的部分。这样的实施例是例证性的,而并非旨在作为本装置或方法的穷尽或排他实施例。
图1为本公开实施例的车载can总线的异常检测方法的流程图;
图2为本公开实施例的训练检测模型所采用的方法的流程图;
图3为本公开实施例的车载can总线的异常检测方法的另一流程图;
图4为本公开实施例检测模型得到发生概率的示意图;
图5为本公开实施例车载can总线的异常检测装置的结构示意图。
图中的附图标记所表示的构件:
100-车载can总线的异常检测装置;1-提取模块;2-解析模块;3-样本划分模块;4-检测模块;5-判断模块。
具体实施方式
为使本领域技术人员更好的理解本公开的技术方案,下面结合附图和具体实施方式对本公开作详细说明。下面结合附图和具体实施例对本公开的实施例作进一步详细描述,但不作为对本公开的限定。
本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的部分。“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其他要素的可能。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在本公开中,当描述到特定器件位于第一器件和第二器件之间时,在该特定器件与第一器件或第二器件之间可以存在居间器件,也可以不存在居间器件。当描述到特定器件连接其它器件时,该特定器件可以与所述其它器件直接连接而不具有居间器件,也可以不与所述其它器件直接连接而具有居间器件。
本公开使用的所有术语(包括技术术语或者科学术语)与本公开所属领域的普通技术人员理解的含义相同,除非另外特别定义。还应当理解,在诸如通用字典中定义的术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
图1为根据本公开实施例的车载can总线的异常检测方法的流程图,如图1所示,本公开实施例提供了一种车载can总线的异常检测方法,上述异常检测方法包括步骤s101至步骤s105。
步骤s101:提取can总线数据集中的can信号的信号值序列。
步骤s102:基于所述信号值序列的变化趋势,解析信号值序列之间的相关性。
步骤s103:将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本。
步骤s104:将所述同类检测样本输入到训练好的检测模型中进行检测,得到所述can信号的发生概率。
步骤s105:判断所述发生概率是否小于第一预设阈值,若是,则发出警报信息。
具体地,首先可以通过can嗅探工具抓取can总线数据,以组合成can总线数据集,该can总线数据集可包括用于表征车辆在行驶过程中实时状态的多个技术参数,例如,can总线数据集包括车辆的车速信息、加速度信息、发动机转速信息、发动机温度信息、油门踏板的踩踏程度信息以及发动机负载信息。
具体地,can信号在一段连续的时间段内具有一定的变化趋势,can信号的变化趋势至少可以通过本公开各实施例中相应的信号处理方式,以各实施例中得到的can信号的信号值序列的变化趋势得以呈现、定性表征或者定量表征。具体到本实施例中,可以基于can信号的信号值序列的变化趋势,能够解析出can信号的信号值序列之间的相关性,下述以车速信息和发动机转速信息为例进行具体说明。
在本公开的一些实施例中,结合自动车的运行工况,可以将车辆的车速与发动机的转速建立一定关联关系,例如正相关关系。例如,当车辆的车速提高时发动机的转速也是增大的,当车辆的车速减小时发动机的转速也减小,也就是,车速信息和发动机转速信息的变化趋势是相似的,即本实施例中认为车速信息和发动机转速信息是成正相关关系,但并非排除两者其他的关联关系。可以理解的是,除正相关关系外,具有负相关关系的can信号之间也具有符合本公开所关注的can信号之间的关联关系。针对正相关关系和负相关关系的情况,可以分别作为正例或者负例提供给本实施例的检测模型进行相应的正例样本学习和负例样本学习。将具有相关性的车速信息和发动机转速信息划分为同类检测样本,再将同类检测样本输入到训练好的检测模型中进行检测,如果can信号发生的概率低于第一预设阈值,则表明can信号发生的概率极低,can信号中可能包含异常事件即发生概率很小的事件,则发出警报信息以警告用户车辆存在异常情况。例如,当车辆在一段时间内连续的车速为10km/h、12km/h和200km/h,其中,车速由12km/h直接变为200km/h属于发生概率极低的情况,因此,车速信息中存在异常情况,需要发出警报信息。据此,本实施例中的检测模型即能够学习并且具备了这一知识。
通过将同类检测样本中的多个can信号同时输入到检测模型中有效地增加了检测效率,且对同类检测样本中包含的多个can信号进行同时检测,当其中一个can信号出现异常时,则其他与其相关的can信号也应存在异常,能够复查检测结果从而保证检测结果的准确性。结合上述,当车速信息中存在异常情况时,在正常情况下发送机转速信息也会存在异常情况,通过结合车速信息的检测结果和发送机转速信息的检测结果能够进一步确保检测模型的检测准确性。
本公开通过将具有相关性的can信号划分为同类检测样本,继而将同类检测样本输入到训练好的检测模型中进行检测,通过对检测模型的检测结果也就是can信号的发生概率进行判断,实现针对can信号进行异常数据的检测,检测车载网络中数据是否被入侵。本公开提出的异常检测方法能够同时对同类检测样本中的多个can信号进行异常检测,解决现有技术中只能检测单一can信号的技术问题,既能够增加检测范围,还能够增加检测结果的准确性,同时能够减少检测模型的产出,从而降低系统资源的消耗。
在一些实施例中,步骤s101:提取can总线数据集中的can信号的信号值序列,可具体包括:抓取can总线数据集,并解析出can总线数据集中的dbc(databasecan,can数据库)文件,存储can总线数据集中包含的canid数据,以及canid数据中所包含的can信号以及can信号对应的配置参数,如can信号在can帧中起始比特以及所占比特数量,基于can信号以及can信号对应的配置参数从can总线数据集中解析出不同的can信号对应的信号值序列。
在一些实施例中,如图2所示,训练所述检测模型所采用的方法包括步骤s201至步骤s204。
步骤s201:获取can总线数据集,提取can总线数据集中的can信号的信号值序列。
步骤s202:对至少两个所述can信号的信号值序列进行相关性计算,得到所述信号值序列之间的相关系数。
步骤s203:判断所述相关系数是否在第二预设阈值内,若是,则将至少两个所述can信号划分为同类训练样本。
步骤s204:将所述同类训练样本输入到检测模型中进行训练,生成用于检测车载can总线异常的检测模型。
具体地,上述检测模型可为hmm模型(hiddenmarkovmodel,隐马尔可夫模型),hmm模型可以从观察参数中确定隐含参数,然后通过隐含参数来进一步分析,检测模块4还可采用其他能够对同类检测样本进行异常检测得到can信号的发生概率的学习模型,并结合相应的模型结构实现本公开的发明构思,本申请对此不做具体限定。
具体地,上述can总线数据集可为数据库中预先存储的有关车辆在行驶过程中的多个技术参数,can嗅探工具从中抓取can总线数据集,解析出can总线数据对应的dbc文件,存储can总线数据集中包含的canid数据,以及canid数据中所包含的can信号以及can信号对应的配置参数,如can信号在can帧中起始比特以及所占比特数量,基于can信号以及can信号对应的配置参数从can总线数据集中解析出不同的can信号对应的信号值序列。
具体地,上述相关系数可基于can信号的变化趋势得到,具体可采用如下计算公式得出相关系数,
其中,x、y分别是要分析的两个不同的信号值序列,ρxy是求得的两个信号值序列的相关系数。相关系数ρxy接近1则表明信号值序列x和信号值序列y同增同减,即信号值序列x和信号值序列y具有正相关性;ρxy接近-1则表明信号值序列x和信号值序列y一增一减,即信号值序列x和信号值序列y具有负相关性;ρxy接近0则表明信号值序列x和信号值序列y不具有相关性。
具体地,上述第二预设阈值可由设计人员根据经验设定,也可根据检测模型多次检测后的检测结果得到,举例说明,当设定信号值序列x和信号值序列y的相关系数大于正相关阈值0.7或小于负相关阈值-0.7时,将信号值序列x和信号值序列y各自所属的can信号归类为具有相关性的can信号,也就是同类训练样本。
具体地,相关性计算可针对两个can信号进行计算,也可针对多个can信号进行计算,当相关性计算针对两个can信号进行计算时,经计算判断出信号值序列x和信号值序列y相关,信号值序列x和信号值序列z相关,则可以验证信号值序列z和信号值序列y之间是否相关,当判断信号值序列x、信号值序列y以及信号值序列z可归为同类训练样本后,可将同类训练样本作为一个检测事件进行检测,从而增加同类训练样本的样本量,以保证检测结果的准确性,且能够有效减少检测引擎的数量,节省系统资源和能耗。
在一些实施例中,如图3所示,步骤s104:所述将所述同类检测样本输入到训练好的检测模型中进行检测,具体包括步骤s301至步骤s303。
步骤s301:对所述同类检测样本中的各can信号的信号值序列进行预处理。
步骤s302:在单个预处理后的can信号的信号值序列中依次提取预设数量的子序列。
步骤s303:将各所述can信号对应的所述子序列组成子序列组输入到训练好的检测模型中进行检测。
具体地,以hmm模型为例进行说明,hmm模型能够根据隐藏状态,计算出隐藏状态之间的转移概率和隐藏状态与事件的发射概率,并根据转移概率和发射概率计算得到观测事件的发生概率,如图4所示,隐藏状态2发生的概率是p1,信号值1发生的概率是p2,信号值2发生的概率是p1*p4,信号值n发生的概率是p1*p3*p5…*pn*pn 1(其中,n为奇数),当发生概率低于预设的阈值,则表明事件发生概率极低,事件中可能包含异常事件,可见,当提取的信号值序列中的子序列越多时,会根据更多的转移概率和发射概率求得can信号的发生概率,使得求得的can信号的发生概率逐渐降低,因此本发明在提取的单个can信号的信号值序列中依次提取预设数量的子序列,该预设数量可由多次实验得出,优选地,该预设数量为5个,即同类检测样本中的多个can信号均各自提取5个子序列组成子序列组输入到检测模型中进行检测。
采用上述方式,避免了在单个can信号的信号值序列中提取过多的子序列导致的发生概率降低从而影响判断结果的情况发生。同理,在训练检测模型的过程中也应提取预设数量的子序列进行训练,以保证训练好的检测模型的准确性。
在一些实施例中,步骤s102:所述基于所述信号值序列的变化趋势,解析信号值序列之间的相关性,包括:
对至少两个所述信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
步骤s103:所述将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本,包括:
判断所述相关系数是否在第三预设阈值内,若是,则将至少两个所述can信号划分为同类检测样本。
具体地,针对同类检测样本进行相关性计算时,可采用如下计算公式得出相关系数,
其中,x、y分别是要分析的两个不同的信号值序列,ρxy是求得的两个信号值序列的相关系数。相关系数ρxy接近1则表明信号值序列x和信号值序列y同增同减,即信号值序列x和信号值序列y具有正相关性;ρxy接近-1则表明信号值序列x和信号值序列y一增一减,即信号值序列x和信号值序列y具有负相关性;ρxy接近0则表明信号值序列x和信号值序列y不具有相关性。
具体地,上述第三预设阈值与训练所述检测模型时采用的第二预设阈值可为相同阈值,二者也可不相同,第三预设阈值可在训练检测模型后基于检测结果设定。
在一些实施例中,所述同类检测样本至少包括车速信息集和发动机转速信息集。
具体地,获取到车辆行驶时一段时间内对应的车速信息集和发送机转速信息集,可通过绘制二者的变化曲线观察二者的变化趋势,或基于相关性计算公式得到二者的相关系数,得到车速信息集和发送机转速信息集具有相关性,将车速信息集和发送机转速信息集作为同类检测样本输入到训练好的检测模型中进行检测,并记录下检测模型输出的发生概率的最小值,判断发生概率的最小值是否小于第一预设阈值,当小于第一预设阈值时则认为存在异常事件,需要发出警报信息提醒用户。
具体地,上述警报信息可包括声音、图像等信息发出提醒,也可将发生概率与第一预设阈值的差值分为多个等级,按等级发出对应的警报信息,以提醒用户当下车辆存在的异常情况,使用户根据不同等级能够做出相适应的判断。
本公开实施例还提供了一种车载can总线的异常检测装置100,如图5所示,所述异常检测装置包括:
提取模块1,其配置为提取can总线数据集中的can信号的信号值序列;
解析模块2,其配置为基于所述信号值序列的变化趋势,解析信号值序列之间的相关性;
样本划分模块3,其配置为将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本;
检测模块4,其配置为将所述同类检测样本输入到训练好的检测模型中进行检测,得到所述can信号的发生概率;
判断模块5,其配置为判断所述发生概率是否小于第一预设阈值,若是,则发出警报信息。
具体地,首先可以通过can嗅探工具抓取can总线数据,以组合成can总线数据集,该can总线数据集可包括用于表征车辆在行驶过程中实时状态的多个技术参数,例如,can总线数据集包括车辆的车速信息、加速度信息、发动机转速信息、发动机温度信息、油门踏板的踩踏程度信息以及发动机负载信息。
具体地,can信号在一段连续的时间段内具有一定的变化趋势,can信号的变化趋势至少可以通过本公开各实施例中相应的信号处理方式,以各实施例中得到的can信号的信号值序列的变化趋势得以呈现、定性表征或者定量表征。具体到本实施例中,可以基于can信号的信号值序列的变化趋势,能够解析出can信号的信号值序列之间的相关性,下述以车速信息和发动机转速信息为例进行具体说明。
在本公开的一些实施例中,结合自动车的运行工况,可以将车辆的车速与发动机的转速建立一定关联关系,例如正相关关系。例如,当车辆的车速提高时发动机的转速也是增大的,当车辆的车速减小时发动机的转速也减小,也就是,车速信息和发动机转速信息的变化趋势是相似的,即本实施例中认为车速信息和发动机转速信息是成正相关关系,但并非排除两者其他的关联关系。可以理解的是,除正相关关系外,具有负相关关系的can信号之间也具有符合本公开所关注的can信号之间的关联关系。针对正相关关系和负相关关系的情况,可以分别作为正例或者负例提供给本实施例的检测模型进行相应的正例样本学习和负例样本学习。将具有相关性的车速信息和发动机转速信息划分为同类检测样本,再将同类检测样本输入到训练好的检测模型中进行检测,如果can信号发生的概率低于第一预设阈值,则表明can信号发生的概率极低,can信号中可能包含异常事件即发生概率很小的事件,则发出警报信息以警告用户车辆存在异常情况。例如,当车辆在一段时间内连续的车速为10km/h、12km/h和200km/h,其中,车速由12km/h直接变为200km/h属于发生概率极低的情况,因此,车速信息中存在异常情况,需要发出警报信息。据此,本实施例中的检测模型即能够学习并且具备了这一知识。
通过将同类检测样本中的多个can信号同时输入到检测模型中有效地增加了检测效率,且对同类检测样本中包含的多个can信号进行同时检测,当其中一个can信号出现异常时,则其他与其相关的can信号也应存在异常,能够复查检测结果从而保证检测结果的准确性。结合上述,当车速信息中存在异常情况时,在正常情况下发送机转速信息也会存在异常情况,通过结合车速信息的检测结果和发送机转速信息的检测结果能够进一步确保检测模型的检测准确性。
本公开通过将具有相关性的can信号划分为同类检测样本,继而将同类检测样本输入到训练好的检测模型中进行检测,通过对检测模型的检测结果也就是can信号的发生概率进行判断,实现针对can信号进行异常数据的检测,检测车载网络中数据是否被入侵。本公开提出的异常检测方法能够同时对同类检测样本中的多个can信号进行异常检测,解决现有技术中只能检测单一can信号的技术问题,既能够增加检测范围,还能够增加检测结果的准确性,同时能够减少检测模型的产出,从而降低系统资源的消耗。
在一些实施例中,所述检测模型的构建方式,包括:
获取can总线数据集,提取can总线数据集中的can信号的信号值序列;
对至少两个所述can信号的信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
判断所述相关系数是否在第二预设阈值内,若是,则将至少两个所述can信号划分为同类训练样本;
将所述同类训练样本输入到检测模型中进行训练,生成用于检测车载can总线异常的检测模型。
具体地,上述检测模型可为hmm模型(hiddenmarkovmodel,隐马尔可夫模型),hmm模型可以从观察参数中确定隐含参数,然后通过隐含参数来进一步分析,检测模块4还可为其他能够对同类检测样本进行异常检测得到can信号的发生概率的学习模型,本申请对此不做具体限定。
具体地,上述can总线数据集可为数据库中预先存储的有关车辆在行驶过程中的多个技术参数,can嗅探工具从中抓取can总线数据集,解析出can总线数据对应的dbc文件,存储can总线数据集中包含的canid数据,以及canid数据中所包含的can信号以及can信号对应的配置参数,如can信号在can帧中起始比特以及所占比特数量,基于can信号以及can信号对应的配置参数从can总线数据集中解析出不同的can信号对应的信号值序列。
具体地,上述相关系数可基于can信号的变化趋势得到,具体可采用如下计算公式得出相关系数,
其中,x、y分别是要分析的两个不同的信号值序列,ρxy是求得的两个信号值序列的相关系数。相关系数ρxy接近1则表明信号值序列x和信号值序列y同增同减,即信号值序列x和信号值序列y具有正相关性;ρxy接近-1则表明信号值序列x和信号值序列y一增一减,即信号值序列x和信号值序列y具有负相关性;ρxy接近0则表明信号值序列x和信号值序列y不具有相关性。
具体地,上述第二预设阈值可由设计人员根据经验设定,也可根据检测模型多次检测后的检测结果得到,举例说明,当设定信号值序列x和信号值序列y的相关系数大于正相关阈值0.7或小于负相关阈值-0.7时,将信号值序列x和信号值序列y各自所属的can信号归类为具有相关性的can信号,也就是同类训练样本。
具体地,相关性计算可针对两个can信号进行计算,也可针对多个can信号进行计算,当相关性计算针对两个can信号进行计算时,经计算判断出信号值序列x和信号值序列y相关,信号值序列x和信号值序列z相关,则可以验证信号值序列z和信号值序列y之间是否相关,当判断信号值序列x、信号值序列y以及信号值序列z可归为同类训练样本后,可将同类训练样本作为一个检测事件进行检测,从而增加同类训练样本的样本量,以保证检测结果的准确性,且能够有效减少检测引擎的数量,节省系统资源和能耗。
在一些实施例中,所述检测模块4还配置为:
对所述同类检测样本中的各can信号的信号值序列进行预处理;
在单个预处理后的can信号的信号值序列中依次提取预设数量的子序列;
将各所述can信号对应的所述子序列组成子序列组输入到训练好的检测模型中进行检测。
具体地,以hmm模型为例进行说明,hmm模型能够根据隐藏状态,计算出隐藏状态之间的转移概率和隐藏状态与事件的发射概率,并根据转移概率和发射概率计算得到观测事件的发生概率,如图4所示,隐藏状态2发生的概率是p1,信号值1发生的概率是p2,信号值2发生的概率是p1*p4,信号值n发生的概率是p1*p3*p5…*pn*pn 1(其中,n为奇数),当发生概率低于预设的阈值,则表明事件发生概率极低,事件中可能包含异常事件,可见,当提取的信号值序列中的子序列越多时,会根据更多的转移概率和发射概率求得can信号的发生概率,使得求得的can信号的发生概率逐渐降低,因此本发明在提取的单个can信号的信号值序列中依次提取预设数量的子序列,该预设数量可由多次实验得出,优选地,该预设数量为5个,即同类检测样本中的多个can信号均各自提取5个子序列组成子序列组输入到检测模型中进行检测。
采用上述方式,避免了在单个can信号的信号值序列中提取过多的子序列导致的发生概率降低从而影响判断结果的情况发生。同理,在训练检测模型的过程中也应提取预设数量的子序列进行训练,以保证训练好的检测模型的准确性。
在一些实施例中,所述解析模块2还配置为:对至少两个所述信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
所述样本划分模块3还配置为:判断所述相关系数是否在第三预设阈值内,若是,则将至少两个所述can信号划分为同类检测样本。
具体地,针对同类检测样本进行相关性计算时,可采用如下计算公式得出相关系数,
其中,x、y分别是要分析的两个不同的信号值序列,ρxy是求得的两个信号值序列的相关系数。相关系数ρxy接近1则表明信号值序列x和信号值序列y同增同减,即信号值序列x和信号值序列y具有正相关性;ρxy接近-1则表明信号值序列x和信号值序列y一增一减,即信号值序列x和信号值序列y具有负相关性;ρxy接近0则表明信号值序列x和信号值序列y不具有相关性。
具体地,上述第三预设阈值与训练所述检测模型时采用的第二预设阈值可为相同阈值,二者也可不相同,第三预设阈值可在训练检测模型后基于检测结果设定。
在一些实施例中,所述同类检测样本至少包括车速信息集和发动机转速信息集。
具体地,获取到车辆行驶时一段时间内对应的车速信息集和发送机转速信息集,可通过绘制二者的变化曲线观察二者的变化趋势,或基于相关性计算公式得到二者的相关系数,得到车速信息集和发送机转速信息集具有相关性,将车速信息集和发送机转速信息集作为同类检测样本输入到训练好的检测模型中进行检测,并记录下检测模型输出的发生概率的最小值,判断发生概率的最小值是否小于第一预设阈值,当小于第一预设阈值时则认为存在异常事件,需要发出警报信息提醒用户。
具体地,上述警报信息可包括声音、图像等信息发出提醒,也可将发生概率与第一预设阈值的差值分为多个等级,按等级发出对应的警报信息,以提醒用户当下车辆存在的异常情况,使用户根据不同等级能够做出相适应的判断。
在一些实施例中,车载can总线的异常检测装置100还可以包括用于发出警报信息的警报装置,警报装置可以包括连续发出蜂鸣声的蜂鸣器、设置了语音播报威胁的喇叭、设置了指示灯闪烁的仪表盘中的一种或者几种。
应当注意的是,在本公开的系统的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本公开不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本公开实施例的系统中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。另外,本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本公开的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所指示。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本公开。这不应解释为一种不要求保护的公开的特征对于任一权利要求是必要的意图。相反,本公开的主题可以少于特定的公开的实施例的全部特征。从而,以下权利要求书作为示例或实施例在此并入具体实施方式中,其中每个权利要求独立地作为单独的实施例,并且考虑这些实施例可以以各种组合或排列彼此组合。本公开的范围应参照所附权利要求以及这些权利要求赋权的等同形式的全部范围来确定。
以上实施例仅为本公开的示例性实施例,不用于限制本公开,本公开的保护范围由权利要求书限定。本领域技术人员可以在本公开的实质和保护范围内,对本公开做出各种修改或等同替换,这种修改或等同替换也应视为落在本公开的保护范围内。
1.一种车载can总线的异常检测方法,其特征在于,所述方法包括:
提取can总线数据集中的can信号的信号值序列;
基于所述信号值序列的变化趋势,解析信号值序列之间的相关性;
将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本;
将所述同类检测样本输入到训练好的检测模型中进行检测,得到所述can信号的发生概率;
判断所述发生概率是否小于第一预设阈值,若是,则发出警报信息。
2.根据权利要求1所述的异常检测方法,其特征在于,训练所述检测模型所采用的方法包括:
获取can总线数据集,提取can总线数据集中的can信号的信号值序列;
对至少两个所述can信号的信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
判断所述相关系数是否在第二预设阈值内,若是,则将至少两个所述can信号划分为同类训练样本;
将所述同类训练样本输入到检测模型中进行训练,生成用于检测车载can总线异常的检测模型。
3.根据权利要求1所述的异常检测方法,其特征在于,所述将所述同类检测样本输入到训练好的检测模型中进行检测,具体包括:
对所述同类检测样本中的各can信号的信号值序列进行预处理;
在单个预处理后的can信号的信号值序列中依次提取预设数量的子序列;
将各所述can信号对应的所述子序列组成子序列组输入到训练好的检测模型中进行检测。
4.根据权利要求1所述的异常检测方法,其特征在于,所述基于所述信号值序列的变化趋势,解析信号值序列之间的相关性,包括:
对至少两个所述信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
所述将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本,包括:
判断所述相关系数是否在第三预设阈值内,若是,则将至少两个所述can信号划分为同类检测样本。
5.根据权利要求1所述的异常检测方法,其特征在于,所述同类检测样本至少包括车速信息集和发动机转速信息集。
6.一种车载can总线的异常检测装置,其特征在于,所述装置包括:
提取模块,其配置为提取can总线数据集中的can信号的信号值序列;
解析模块,其配置为基于所述信号值序列的变化趋势,解析信号值序列之间的相关性;
样本划分模块,其配置为将具有预定的相关性的信号值序列所属的所述can信号划分为同类检测样本;
检测模块,其配置为将所述同类检测样本输入到训练好的检测模型中进行检测,得到所述can信号的发生概率;
判断模块,其配置为判断所述发生概率是否小于第一预设阈值,若是,则发出警报信息。
7.根据权利要求6所述的异常检测装置,其特征在于,所述检测模型的构建方式,包括:
获取can总线数据集,提取can总线数据集中的can信号的信号值序列;
对至少两个所述can信号的信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
判断所述相关系数是否在第二预设阈值内,若是,则将至少两个所述can信号划分为同类训练样本;
将所述同类训练样本输入到检测模型中进行训练,生成用于检测车载can总线异常的检测模型。
8.根据权利要求6所述的异常检测装置,其特征在于,所述检测模块还配置为:
对所述同类检测样本中的各can信号的信号值序列进行预处理;
在单个预处理后的can信号的信号值序列中依次提取预设数量的子序列;
将各所述can信号对应的所述子序列组成子序列组输入到训练好的检测模型中进行检测。
9.根据权利要求6所述的异常检测装置,其特征在于,所述解析模块还配置为:对至少两个所述信号值序列进行相关性计算,得到所述信号值序列之间的相关系数;
所述样本划分模块还配置为:判断所述相关系数是否在第三预设阈值内,若是,则将至少两个所述can信号划分为同类检测样本。
10.根据权利要求6所述的异常检测装置,其特征在于,所述同类检测样本至少包括车速信息集和发动机转速信息集。
技术总结