一种分心驾驶行为识别方法、装置及存储介质

    专利查询2024-12-06  69



    1.本发明涉及智能交通领域,特别涉及一种分心驾驶行为识别方法、装置及存储介质。


    背景技术:

    2.汽车的自动化是一个必然趋势,一些汽车制造商已经提供了部分自动驾驶功能。但由于当前技术的瓶颈以及现实场景、驾驶任务的复杂性,自动驾驶汽车在一段时间内将处于l3-l4阶段,需要驾驶人参与驾驶任务,在这个阶段人与车的控制权切换将成为常态。
    3.自动驾驶车辆发出接管请求时,驾驶人可能存在各种分心驾驶行为,会在不同程度上占用驾驶人的视觉资源、听觉资源、认知资源和动作资源,影响驾驶人的感知、判断、决策与操作过程,从而导致接管失控现象,增加交通事故风险。因此识别出驾驶人的分心驾驶行为,能够降低误接管的风险,进而提升行车安全性。
    4.现有分心识别算法,模型复杂不能很好实现嵌入式开发,而且部分算法缺乏时间维度的信息或者未能充分融合时空信息,致使特征相似的分心驾驶行为识别混淆。同时部分模型在训练时未考虑不同驾驶人的影响,使得更换驾驶人时识别精度骤降。


    技术实现要素:

    5.有鉴于此,本技术的主要目的在于对分心驾驶行为进行识别时,使用的分析特征既包括时间特征,又包括空间特征,从而实现准确识别出驾驶人的分析驾驶行为、降低误接管风险,进而提升行车安全性。
    6.基于上述目的,本发明提供一种分心驾驶行为识别方法,所述方法包括下述步骤:
    7.s100、获取人机共驾接管状态下驾驶人的分心驾驶时序图像数据;
    8.s200、利用训练好的第一模型或训练好的第二模型基于时序图像数据获取空间特征,并在空间特征的基础上获取时空特征;
    9.s300、将所述时空特征与空间特征进行融合加强,进而获得用于分心驾驶行为类别识别分心驾驶行为特征。
    10.优选地,在所述方法中,所述第一模型或者第二模型在训练时采用的数据集通过下述步骤获得:
    11.s101、获取含有不同驾驶人的多种驾驶行为的分心数据集;
    12.s102、对同一驾驶人的同一分心驾驶动作图像数据,获取上下文连续的若干张图像为一个分心驾驶动作序列;
    13.s103、获得每一个分析驾驶动作序列的种类,并对所属种类进行标签处理,进而获得第一模型或者第二模型的评估数据集,并将评估数据集分为训练集和测试集;
    14.所述训练集用于对第一模型或者第二模型进行训练,所述测试集用于对第一模型或者第二模型进行验证。
    15.优选地,在所述方法中,所述第二模型通过知识蒸馏获得第一模型的知识。
    16.优选地,在所述方法中,所述第二模型通过知识蒸馏获得第一模型的知识,包括下述步骤:
    17.s110、将训练集输入训练好的第一模型,将其输出升温t后进行分类处理,得到第一输出结果;所述t大于0;
    18.s111、将相同训练集输入第二模型,将其输出作为第二输出结果;
    19.s112、将第二模型输出结果升温t后进行分类处理,得到第三输出结果;
    20.s113、将第二输出结果与实际标签进行交叉熵计算,得到第一损失loss1,将第一输出结果与第三输出结果进行kl散度计算,得到第二损失loss2;
    21.s114、计算总损失函数为:
    22.loss

    =λloss1+(1-λ)loss2,0<λ<1
    23.s115、当总损失函数值满足阈值条件时,将所述第二模型用于分心驾驶行为类别识别。
    24.优选地,在所述方法中,所述第一模型为mobilenetv3和gru级联构成的网络结构;
    25.所述第二模型为ghostnet和gru级联构成的网络结构。
    26.优选地,在所述方法中,所述分心驾驶动作序列至少包括6张图像。
    27.优选地,在所述方法中,所述评估数据集还包括下述处理:通过高斯噪声对所述评估数据集进行处理,并对其中的训练集进行扩增处理。
    28.优选地,在所述方法中,所述方法还包括下述步骤:
    29.根据识别的分心驾驶种类,在需要驾驶人接管时,做出预警;
    30.所述预警包括声音提示的预警、声音和方向盘震动的双预警。
    31.基于上述方法,本发明还提出了一种分心驾驶行为识别装置,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行上述任一种方法的计算机程序。
    32.进一步地,本发明还提出了一种计算机可读存储介质,其特征在于:存储有能够被处理器加载并执行上述任一种方法的计算机程序。
    33.与现有技术相比,本发明方法具有下述有益效果:
    34.(1)通过从时序图像数据中获取时间特征和空间特征,并将两种特征进行融合,从而获得分心驾驶行为特征;通过所述分心驾驶行为特征能够实现准确识别出驾驶人的分析驾驶行为、降低误接管风险,从而提升行车安全性。
    35.(2)通过采用不同驾驶人的多种驾驶行为的分心数据集对模型进行训练和验证,能够提高模型的识别精度,而进一步进行高斯处理和扩增处理,能够增强模型的泛化能力。
    36.(3)通过采用知识蒸馏技术,将第一模型的知识迁移到第二模型,能够使第二模型具备参数精简且精度更高的特点,方便在资源受限的设备上使用,有助于实施嵌入式开发。
    37.(4)在第一模型和第二模型上采用的网络结构均为轻量型,在实施本发明的方法,在保持识别精度的同时,还可以进一步减少对硬件资源的需求,降低计算成本。
    附图说明
    38.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其
    他的附图。
    39.图1、本发明方法流程示意图;
    40.图2、采用知识蒸馏进行训练的示意图;
    41.图3、mobilenetv3-gru或ghostnet-gru级联网络的分心识别模型示意图。
    具体实施方式
    42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
    43.在一个实施例中,采用了一种识别出驾驶人的分心驾驶行为的方法,以降低误接管的风险,进而提升行车安全性。该方法包括下述步骤,如图1所示:
    44.s100、获取人机共驾接管状态下驾驶人的分心驾驶时序图像数据;
    45.s200、利用训练好的第一模型或训练好的第二模型基于时序图像数据获取空间特征,并在空间特征的基础上获取时空特征;
    46.s300、将所述时空特征与空间特征进行融合加强,进而获得用于分心驾驶行为类别识别分心驾驶行为特征。
    47.进一步地,根据识别的分心驾驶种类,在需要驾驶人接管时,做出预警;所述预警包括声音提示的预警、声音和方向盘震动的双预警。
    48.在应用上述方法前,需要对第一模型或第二模型进行训练。模型训练采用的图像数据源可选用2016年state farm公司发布的kaggle分心数据集。该分心数据集共包含10类驾驶行为,训练集中含有22424张有标签的分心行为图像,测试集中包含无标签的分心行为图像79728张,且训练集和测试集含有的驾驶人不相同。
    49.接下来,将state farm数据集进行时序转化。具体为,对数据集按照驾驶人分类,再对每个驾驶人的驾驶动作进行分类。在对每个驾驶人的驾驶动作分类时,截取上下文连续的若干张图像为一个分心驾驶动作序列,并对该分心驾驶动作序列所对应的分析驾驶行为所属类别进行标签化处理。当最后一个动作序列,不足以完整构成一个分心驾驶动作序列,丢弃不足以构成完整序列的剩余分心图像。所述若干张图像的数目至少为6张,比如可以为6张、8张、10张等等,具体数目根据实际需要确定。通过这样处理,共得到10类分心驾驶动作序列3617个,再将该数据集按照8:2划分训练集和测试集。所述训练集用于对第一模型或者第二模型进行训练,所述测试集用于对第一模型或者第二模型进行验证。
    50.考虑现实生活中驾驶人的改变,可能对模型精度产生影响,为评估模型对不同驾驶人的泛化能力,将同一驾驶仅放在训练集或测试集中,其中6位驾驶人的749个分心动作序列用于测试集,20位驾驶人的2868个分心动作序列用于训练集。
    51.为了进一步提高模型的泛化能力,通过高斯噪声对训练集中的图像进行处理,并将训练集扩增处理,可以是扩增1倍、2倍等等。当扩增1倍时,得到训练集分心驾驶动作序列5736个,测试集749个。
    52.训练好的第一模型和第二模型均可以用于分心驾驶行为类别识别,它们通过从时序图像数据中获取时间特征和空间特征,并将两种特征进行融合,从而获得分心驾驶行为
    特征;通过所述分心驾驶行为特征能够实现准确识别出驾驶人的分析驾驶行为、降低误接管风险,从而提升行车安全性。
    53.进一步地,通过采用知识蒸馏技术,将第一模型的知识迁移到第二模型,将第二模型用于分心驾驶行为类别识别,不仅使第二模型相对第一模型可以进行参数精简,而且可以具有精度更高的特点,能够方便在资源受限的设备上使用,有助于实施嵌入式开发。采用知识蒸馏技术进行训练时的网络结构图如图2所示,具体训练过程如下:
    54.s110、将训练集输入训练好的第一模型,将其输出升温t1后使用softmax函数处理,得到第一输出结果soft labels;
    55.s111、将相同训练集输入第二模型,将其输出直接用softmax函数处理,得到第二输出结果hard prediction;
    56.s112、将第二模型输出结果升温t1后使用softmax函数处理,得到第三输出结果soft predictions;
    57.s113、将第二输出结果hard prediction与实际标签hard labels进行交叉熵计算,得到第一损失loss1;
    58.将第一输出结果与第三输出结果进行kl散度计算,得到第二损失loss2;
    59.s114、计算总损失函数为:
    60.loss

    =λloss1+(1-λ)loss261.式中:λ∈(0,1);
    62.s115、当总损失函数满足阈值条件时,所述第二模型为识别分心驾驶种类的模型。
    63.在上述过程中,第一损失loss1代表第二模型也需要学习生成正确的标签,也就是说第二模型既要学习第一模型的泛化能力,也要针对hard target,对第一模型进行纠错调整。
    64.第一模型提供分类所需的暗知识指导,使得第二模型不仅可以学习到真实标签的硬知识还可以学习到正负例之间关系的软知识,硬知识与软知识的学习,在一定程度上能够使第二模型突破训练的瓶颈,达到好的精确度,为嵌入式分心驾驶识别提供算法支持。
    65.带有温度t的分类处理通过softmax函数实现,如下式所示:
    [0066][0067]
    其中:zk为全连接层第k个神经元的输出值,k=0,1,...,n-1,n分类的类别数,t1为蒸馏温度。
    [0068]
    第一损失loss1计算公式如下:
    [0069][0070]
    第二损失loss2计算公式如下:
    [0071][0072]
    上面两个损失计算公式中,n为分类种类数目,为的第i个位置的值,为,为y

    经过带有温度t1的softmax函数处理后的结果,y

    为第一模型的输出结果。为的第i个位置的值,yi为y经过softmax函数处理后第i个位置的值,为经过softmax函数处理
    后的第i个位置的值。为第二模型的输出结果。y为真实标签的独热编码。
    [0073]
    由图2可以看出,知识蒸馏技术应用在模型训练阶段,指导模型训练的不再是只有真实标签,还有由训练好的第一模型提供的带温度t1的softmax函数软化后的标签。使得第二模型能够超过只有真实标签监督下的精度。第一模型提供的软标签,在一定程度上,包含正负例相似关系的信息。通过这种方式能有效提高第二模型的精度。
    [0074]
    如果在第一模型和第二模型采用的网络结构均为轻量型,则在计算时可以降低对硬件资源的需求,从而降低硬件成本。但为了还能具有较高的识别准确度,优选第一模型采用mobilenetv3和gru级联构成的网络结构;第二模型采用ghostnet和gru级联构成的网络结构,如图3所示。
    [0075]
    下面结合图3示意的mobilenetv3和gru级联构成的网络结构对本方法进行进一步详述。
    [0076]
    mobilenetv3采用深度可分离卷积对分心驾驶时序图像数据进行空间特征提取,深度可分离卷积由深度卷积和点卷积构成。从下面的计算量分析可以看出,mobilenetv3相对传统卷积神经网络,具有更少的计算量,是一种轻量型网络。
    [0077]
    给定一个df×df
    ×
    m的特征图,生成一个df×df
    ×
    n的特征图,其中df为特征图的宽和高,m、n为特征图的通道数。
    [0078]
    (i)正常卷积核尺寸为dk×dk
    ×m×
    n,dk为卷积核的宽和高,则计算量为:
    [0079]
    2(dk×dk
    ×
    m)
    ×n×df
    ×df
    [0080]
    (ii)深度卷积尺寸为dk×dk
    ×
    m,则计算量为:
    [0081]
    2(m
    ×dk
    ×dk
    )
    ×df
    ×df
    [0082]
    (iii)点卷积尺寸为m
    ×1×1×
    n,计算量为:
    [0083]2×m×n×df
    ×df
    [0084]
    故可以得出深度可分离卷积计算量和传统卷积的计算量之比如下:
    [0085][0086]
    表1为mobilenetv3的网络结构,表中re代表relu激活函数,hs为hard-switch激活函数,sebneck为se-net中的bottleneck模块,步长代表深度可分离卷积的步长,nbn表示无批量标准化。
    [0087]
    表1
    [0088][0089][0090]
    从表1可以看出,bottleneck结构两端采用不同了激活函数,这使得第一模型具有提高分析驾驶行为识别模型的非线性拟合能力。
    [0091]
    mobilenetv3将提取的空间特征输出给gru。gru是循环神经网络的一种,能够挖掘数据中的时序信息以及语义信息,处理序列特性的数据信息。gru在空间特征的基础上进行时间特征挖掘,输出时空特征。gru可以保持长期记忆,但并不能完全整合所有序列帧的周期信息,特别是早期的图像帧。因此,需要将mobilenetv3提取的空间特征与gru提取的时空特征进行融合,以弥补gru丢失的信息损失。
    [0092]
    如图3所示,第一模型中mobilenetv3模块的数目等于分心驾驶动作序列的数量,每一个mobilenetv3模块提取分心驾驶动作序列中一个图像的空间特征,因此在将空间特征和gru提取的时空特征进行融合前,可以先采用下述线性运算将各空间特征进行融合:
    [0093]
    xs=f(x)
    [0094]
    其中x=(x0,...,x
    n-1
    )为线性融合前的n帧图像特征,x
    t
    为t时刻的图像空间特征,t=0,1,...,n-1,f为线性运算操作,xs为融合后的图像特征。
    [0095]
    将融合成一帧的空间特征xs与gru提取的时空特征xg进行融合,得到分心驾驶行为特征xf:
    [0096]
    xf=xs+xg[0097]
    综上,由mobilenetv3与gru级联构成的第一模型,能够将mobilenetv3的空间特征提取优势与gru的时序特征信息挖掘能力相结合。进一步通过采用特征线性融合策略,将前端深度空间特征与后端带有空间特征的时序特征进行融合增强,可以获得更为有效的分心驾驶行为特征,提高模型对分心驾驶行为类别识别的准确率。
    [0098]
    经验证,由mobilenetv3与gru级联构成的第一模型可以深度解析相似的分心驾驶行为特征,对识别相似度较高的分心行为实现良好的识别。分别采用mobilenetv3、mobilenet-rnn、mobilenet-lstm对相同分心驾驶行为类别进行识别,识别结果如表2所示:
    [0099]
    表2
    [0100]
    模型准确度mobilenetv383.24%mobilenetv3-rnn88.25%mobilenetv3-lstm90.39%mobilenetv3-gru90.92%
    [0101]
    由表2可以看出,由mobilenetv3与gru级联构成的第一模型的准确率相对较高。
    [0102]
    在第二模型中,采用ghostnet替换mobilenetv3,替换后模型参数下降0.2m个,进一步减少了计算参数,而flops下降78m次,也进一步提高了计算速度。ghostnet中的ghost模块能够通过线性变换将一特征图生成另一特征图,用更少的参数,生成与普通卷积层相同数量的特征图,且需要的算力资源比普通卷积层要低,集成到现有设计好的神经网络结构中,能够降低计算成本。
    [0103]
    通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明方法可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本公开而言更多情况下,软件程序实现是更佳的实施方式。
    [0104]
    尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。

    技术特征:
    1.一种分心驾驶行为识别方法,其特征在于,所述方法包括下述步骤:s100、获取人机共驾接管状态下驾驶人的分心驾驶时序图像数据;s200、利用训练好的第一模型或训练好的第二模型基于时序图像数据获取空间特征,并在空间特征的基础上获取时空特征;s300、将所述时空特征与空间特征进行融合加强,进而获得用于分心驾驶行为类别识别分心驾驶行为特征。2.根据权利要求1所述的方法,其特征在于,所述第一模型或者第二模型在训练时采用的数据集通过下述步骤获得:s101、获取含有不同驾驶人的多种驾驶行为的分心数据集;s102、对同一驾驶人的同一分心驾驶动作图像数据,获取上下文连续的若干张图像为一个分心驾驶动作序列;s103、获得每一个分析驾驶动作序列的种类,并对所属种类进行标签处理,进而获得第一模型或者第二模型的评估数据集,并将评估数据集分为训练集和测试集;所述训练集用于对第一模型或者第二模型进行训练,所述测试集用于对第一模型或者第二模型进行验证。3.根据权利要求1所述的方法,其特征在于:所述第二模型通过知识蒸馏获得第一模型的知识。4.根据权利要求3所述的方法,其特征在于,所述第二模型通过知识蒸馏获得第一模型的知识,包括下述步骤:s110、将训练集输入训练好的第一模型,将其输出升温t后进行分类处理,得到第一输出结果;所述t大于0;s111、将相同训练集输入第二模型,将其输出作为第二输出结果;s112、将第二模型输出结果升温t后进行分类处理,得到第三输出结果;s113、将第二输出结果与实际标签进行交叉熵计算,得到第一损失loss1,将第一输出结果与第三输出结果进行kl散度计算,得到第二损失loss2;s114、计算总损失函数为:loss

    =λloss1+(1-λ)loss2,0<λ<1s115、当总损失函数值满足阈值条件时,将所述第二模型用于分心驾驶行为类别识别。5.根据权利要求1所述的方法,其特征在于:所述第一模型为mobilenetv3和gru级联构成的网络结构;所述第二模型为ghostnet和gru级联构成的网络结构。6.根据权利要求2所述的方法,其特征在于,所述分心驾驶动作序列至少包括6张图像。7.根据权利要求2所述的方法,其特征在于,所述评估数据集还包括下述处理:通过高斯噪声对所述评估数据集进行处理,并对其中的训练集进行扩增处理。8.根据权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:根据识别的分心驾驶种类,在需要驾驶人接管时,做出预警;所述预警包括声音提示的预警、声音和方向盘震动的双预警。9.一种分心驾驶行为识别装置,其特征在于:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至8中任一种方法的计算机程序。
    10.一种计算机可读存储介质,其特征在于:存储有能够被处理器加载并执行如权利要求1至8中任一种方法的计算机程序。

    技术总结
    本发明涉及一种分心驾驶行为识别方法,所述方法包括下述步骤:获取人机共驾接管状态下驾驶人的分心驾驶时序图像数据;利用训练好的第一模型或训练好的第二模型首先获取时序图像数据的空间特征,在空间特征的基础上获取时空特征;将所述时空特征与空间特征进行融合加强,进而获得用于分心驾驶行为类别识别分心驾驶行为特征。所述方法能够实现准确识别驾驶人的分心驾驶行为、降低误接管风险,从而提升行车安全性。车安全性。车安全性。


    技术研发人员:金立生 姚航 华强 许新亮 郭柏苍 纪丙东 谢宪毅 王胤霖 雒国凤
    受保护的技术使用者:燕山大学
    技术研发日:2022.01.28
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-25223.html

    最新回复(0)