本发明涉及交通事故检测领域,特别涉及一种交通事故检测方法、存储介质及设备。
背景技术:
近年来,随着居民机动车保有量大幅增长,城市交通环境日趋复杂,交通事故的发生率居高不下。交通事故不但会造成交通拥堵、个人和公共财产损失,甚至危及到生命安全,给人们带来严重的生理和心理创伤。随着视频监控技术的发展与应用,目前很多城市安装了越来越多的道路监控摄像头,对道路交通状态和参数进行监控,以加大对城市交通的监管力度,及时处置交通事故。
传统的交通监控事故排查方式是人工监测,即通过人员全天时值守、观看监控视频并从中发现事故或异常的方式,由于交通事故的发生具有随机性和不可预测性,该方式不仅需要耗费大量的人力,还受到人眼分辨能力、疲劳程度等人工不可控因素影响,可能导致稳定性不高,无法满足大规模交通监控网络应用对效率和成本的需求。
因此,现有技术还有待于改进和发展。
技术实现要素:
本发明要解决的技术问题在于,针对现有技术的不足,提供一种交通事故检测方法、存储介质及设备,旨在解决传统的交通监控事故排查方式稳定性差以及无法满足大规模交通监控网络应用对效率和成本的需求的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种交通事故检测方法,其中,包括步骤:
对筛选的交通数据进行预处理,构建交通事故数据集;
将所述交通事故数据集中的每个原始视频样本视为一个包,对每个包进行空时域分割,得到与每个包对应的若干实例;
根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型;
根据所述训练后事故检测模型对测试视频进行端到端的交通事故检测。
所述的交通事故检测方法,其中,所述对筛选的交通数据进行预处理,构建交通事故数据集的步骤包括:
获取ucfcrimes交通数据和cadp交通数据;
从所述ucfcrimes交通数据中将所有交通场景下的正常视频筛选出来,构成基础正样本集;
从所述ucfcrimes交通数据中将所有交通场景下的事故视频筛选出来,与cadp交通数据合并,构成基础负样本集;
对所述基础正样本集和基础负样本集进行数据清洗,得到相应的正样本集和负样本集,按照预定比例对所述正样本集和负样本集进行划分得到训练集和测试集。
所述的交通事故检测方法,其中,所述按照预定比例对所述正样本集和负样本集进行划分得到训练集和测试集之后还包括:
对训练集中的正样本集中的长时长正常视频进行裁剪,在训练集中得到相等数量的正常视频与事故视频,所述训练集中的正常视频包括正常视频级标签,所述训练集中的事故视频包括事故视频级标签;
对测试集中的正样本集中的长时长正常视频进行裁剪,在测试集中得到数量比为3-10:1的正常视频与事故视频,所述测试集中的正常视频包括正常视频级标签,所述测试集中的事故视频包括事故视频级标签以及事故发生的起始帧和结束帧。
所述的交通事故检测方法,其中,将所述交通事故数据集中的原始视频样本进行空时域分割,得到若干实例的步骤包括:
将所述交通事故数据集中的每段视频看作一个包,正常视频为负包,记为bn,事故视频为正包,记为ba;
将每个包在时域上均匀分割为若干个时间连续但不重叠的视频片段,数量记为nt;
将时域上分割得到的每个视频片段在空域上进一步分割或采样,得到若干实例,数量记为ns。
所述的交通事故检测方法,其中,根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型的步骤包括:
采用3d特征提取器对包内的每个实例进行多模态特征提取操作,捕捉视频中与事故发生过程相关的时序信息、运动特征;
将交通事故检测视作一个回归问题来设计事故检测模型,所述事故检测模型为由若干全连接层构成的深度神经网络;
基于对交通事故的短时性和连续性假设,通过将多实例学习与排序思想相结合来构造事故检测模型的损失函数,表达式如下:
式中,
将损失函数进一步简化为:l=l(ba,bn) ||w||2,其中,l(ba,bn)为损失函数中前三项之和,与输入样本数据直接相关;
训练时,每一次迭代过程都选取一定批量的样本,假设样本数量为nbs,其中,正常视频和事故视频样本各占一半,分别从训练集中的正样本集和负样本集中随机抽取,根据损失函数的定义,一对正常视频和事故视频组合可计算得到一个损失值,则批量样本训练时的损失值可以表示为:
所述的交通事故检测方法,其中,所述根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型的步骤还包括:
在事故检测模型训练过程中,将li(ba,bn)(i=1,2,k,nbs/2)按降序排列,假设困难样本比例为ph,选取前
将筛选出的损失值记为ls,i(ba,bn),i=1,2,k,
所述的交通事故检测方法,其中,所述根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型的步骤还包括:
采用深度学习优化器算法对事故检测模型进行迭代训练,直至损失函数收敛;
采用c3d预训练模型直接在rgb图像序列上提取第一特征;
采用i3d的kinetics预训练模型直接在rgb图像序列上提取第二特征;;
根据原始图像计算得到的,采用i3d的imagenet预训练模型在光流图像上提取第三特征;
将所述第一特征、第二特征以及第三特征分别对事故检测模型进行训练,得到相应的三个训练后事故检测模型。
所述的交通事故检测方法,其中,所述根据所述训练后事故检测模型对测试视频进行端到端的交通事故检测的步骤包括:
将测试集中的每一段测试视频划分为若干实例,记为ii,j,其中,i=1,2,knt,表示实例的时域序号,j=1,2,kns,表示实例的空域序号;
对于每个实例,计算图像帧的光流图,然后提取多模态特征信息,包括:利用c3d模型在rgb图像序列上提取特征,记为
将三类特征分别输入相应的训练后事故检测模型,预测异常得分,依次记为:
对于每类特征,将同一时段在空间上分割和增强所得若干实例的预测得分进行融合,方法为:
得到输入视频在时域上的得分向量如下:
对si3d_flow进行min-max归一化处理,公式为:
在每个时间段,通过软投票的方式将多模特征的得分融合起来,公式为:
一种存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明所述交通事故检测方法中的步骤。
一种交通事故检测设备,其中,包括处理器,适于实现各指令;以及存储介质,适于存储多条指令,所述指令适于由处理器加载并执行本发明所述交通事故检测方法中的步骤。
有益效果:与现有技术相比,本发明提出的交通事故检测方法具有以下优点:基于现有成规模、成体系、应用广的交通数据集,对数据进行筛选、清洗、重新组合处理,构造一个新的交通事故数据集,排除场景转换、非监控画面等数据干扰因素,有利于算法学习到真正的事故特征信息;采用多实例学习的方法来建立事故检测模型,对原始视频在时间和空间两个维度上进行视频分割,并进行数据增强,得到若干实例,从而能够获得粒度更细、更准确的特征用于学习;训练中加入在线困难样本学习机制,侧重于对检测和识别难度更大的样本进行学习,提高算法对正常视频和事故视频的辨识能力;采用多个3d特征提取器分别提取rgb图像域和光流域的多模态视觉特征信息,然后将多模型、多模态特征预测得分融合起来,能够有效地提升交通事故检测性能,提高交通事故检测率,降低误报率;当发生交通事故时,本发明提供的交通事故检测方法能从交通监控视频中自动、快速且准确地检测出来,从而在事故发生后及时发出报警信号,启动事故响应预案,更好地开展救援和疏通工作,减小人民生命财产损失。
附图说明
图1为本发明一种交通事故检测方法较佳实施例的流程图。
图2为本发明对每个包进行空时域分割的示意图。
图3为本发明根据所述训练后事故检测模型对测试视频进行端到端的交通事故检测的流程图。
图4为本发明一种交通事故检测设备的原理图。
具体实施方式
本发明提供一种交通事故检测方法、存储介质及设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
传统的交通监控事故排查方式是人工监测,即通过人员全天时值守、观看监控视频并从中发现事故或异常的方式,由于交通事故的发生具有随机性和不可预测性,该方式不仅需要耗费大量的人力,还受到人眼分辨能力、疲劳程度等人工不可控因素影响,可能导致稳定性不高,无法满足大规模交通监控网络应用对效率和成本的需求。
因此,当发生交通事故时,如何从交通监控视频中自动、快速且准确地检测出来,从而在事故发生后及时发出报警信号,启动事故响应预案,更好地开展救援和疏通工作,减小人民生命财产损失,是交通监控领域亟待解决的一个关键问题。随着计算机视觉技术和人工智能技术的发展,逐步诞生了智能交通系统,将智能视频分析技术、历史数据等应用于事故检测模型建立和参数拟合,为交通事故检测提供了一种智能化解决方案。一种方法是:采用有监督学习的手段,包括非端到端和端到端两种处理方法。非端到端方法是将背景减除、检测、跟踪等一系列步骤串联起来,提取手工设计的特征并根据事先定义的规则集来检测事故,该方法需要使用目标边框标注信息来监督目标检测网络的训练,当场景改变后,也存在规则或判决条件失效的问题;端到端方法通常建立深度学习模型来提取更精细的语义特征,最终回归得到异常分数,该方法使用的数据一般是时长几秒钟的短视频,或者对视频中的事故发生时段有精确的标签信息(例如,帧级),以完成模型训练,使其具备事故识别和定位能力,该方法往往需要大量的训练数据,耗费大量的人力来进行视频的标注、裁剪等数据预处理工作,目前尚没有可用于交通事故检测的大规模数据集。
另一种方法是:利用无监督学习的手段,基于自编码器的重构方法。该方法利用编码器对图像帧进行特征表示,然后利用解码器对图像帧进行重建,并计算重建误差,当重建误差大于阈值时判定为异常。此类方法一般是对正常行为模式进行建模,训练集中只有正常视频,无需标注,但是对视频画面的变化较为敏感,当测试视频存在光照突变、前景大目标快速移动等情况时,有可能导致较大的重构误差,另外由于训练集中很难涵盖所有的正常行为,一些非典型正常行为也有可能被误判为异常事故。
事实上,原始交通事故视频中往往会存在交通正常的时段,使得该视频片段天然成为弱标签数据,即已知其粗粒度的标签信息,为了对这些数据加以充分挖掘和利用,弱监督学习是一种十分有效的方式。
基于此,本发明提供了一种交通事故检测方法,如图1所示,其包括步骤:
s10、对筛选的交通数据进行预处理,构建交通事故数据集;
s20、将所述交通事故数据集中的每个原始视频样本视为一个包,对每个包进行空时域分割,得到与每个包对应的若干实例;
s30、根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型;
s40、根据所述训练后事故检测模型对测试视频进行端到端的交通事故检测。
本实施例提供的是一种基于弱监督学习的交通事故检测方法,在对交通事故的特点和范畴进行深入分析和刻画的基础上,结合数据现状,针对性地设计事故检测模型,该方法适用于跨场景应用,能够提高交通事故检测率。具体来讲,本实施例基于现有成规模、成体系、应用广的交通数据集,对数据进行筛选、清洗、重新组合处理,构造一个新的交通事故数据集,排除场景转换、非监控画面等数据干扰因素,有利于算法学习到真正的事故特征信息;对原始视频在时间和空间两个维度上进行视频分割,并进行数据增强,得到若干实例,从而能够获得粒度更细、更准确的特征用于学习;采用多实例学习的方法来建立事故检测模型,并加入在线困难样本学习机制,侧重于对检测和识别难度更大的样本进行学习,提高算法对正常视频和事故视频的辨识能力;采用多个3d特征提取器分别提取rgb图像域和光流域的多模态视觉特征信息,然后将多模型、多模态特征预测得分融合起来,能够有效地提升交通事故检测性能,即提高交通事故检测率,降低误报率。
在一些实施方式中,对交通事故进行范围界定和特征分析,筛选和处理视频数据,构建交通事故数据集。具体来讲,由于目前学术界尚没有公开的、权威的交通事故数据集用于交通事故检测领域的研究,因此,本实施例首先需要构建一个针对交通事故检测的数据集。本实施例所指的交通事故是指瞬间发生的、剧烈的、具有较强视觉显著性的一类特殊交通异常事件,相对容易通过事故主体的运动特性或外观变化等表观特征进行判定,例如车辆的急停、行驶方向骤变、车身变形等等,交通事故具有场景解耦性。现实世界中的交通视频或监控视频通常来源于部署在不同地点的摄像头,在场景、角度、光照等画面因素上存在很大差异,由于交通事故的偶发性和低频性,要获取同一个场景下的正常视频和事故视频是较为困难的,同时,考虑到交通事故的特征显著性和场景解耦性特点,使得算法学习到与场景无关的深层语义信息成为可能,从而保证一定的跨场景泛化能力,因此,本实施例使用不同域的视频来构造交通事故数据集。
在本实施例中,交通事故数据集用于对基于深度学习理论建立的事故检测模型进行训练,为了保证模型能够学到真正有价值的事故特征信息,增强模型的场景适应性,应尽可能确保数据集的质量和完备性,因此,所述交通事故数据集的构建准则包括:一是数据集中的样本量要足够大,二是样本所覆盖的场景、光照条件、事故类型要足够丰富,三是样本质量要足够高,包括视频清晰度、事故区域占画面比例等,尽量去除可能对事故特征学习造成影响的一些干扰因素。
基于上述准则,本实施例综合利用目前已公开、规模大且应用较多的ucfcrimes交通数据和cadp交通数据对交通事故数据集进行构建。其中,ucfcrimes交通数据是一个包含1900段视频、场景丰富的异常行为检测数据集,包括监控视频和交通视频,共有13类异常事件,交通事故是其中一类;cadp交通数据是一个交通事故数据集,包含1416个多场景下的各类交通事故视频。
在一些实施方式中,从ucfcrimes交通数据中将所有交通场景下的正常视频筛选出来,构成基础正样本集;从ucfcrimes交通数据中将所有交通场景下的事故视频筛选出来,与cadp交通数据合并,构成基础负样本集。本实施例中,由于ucfcrimes交通数据中的视频许多都存在镜头移动、切换、缩放、快进、非监控画面等数据质量问题,因此,对上一步中得到的基础正样本集和基础负样本集进行数据清洗,删除视频中存在场景转换、缩放、非监控画面以及画面质量有问题的部分,得到清洗后的正样本集和负样本集,然后,按照预定比例将清洗后的正样本集和负样本集进行划分,得到训练集和测试集,基于所述训练集和测试集构建交通事故数据集。
在一些具体的实施方式中,将时长较长的正常视频裁剪为若干段短视频,例如,时长1分钟,保留视频级标签,作为最终使用的样本。本实施例中,构建的交通事故数据集中训练集的正常视频数量和事故视频数量基本相等,各有1500段。测试集的正常视频数量和事故视频数量的比例约为5:1,分别为500段和100段,既避免了大量的精细标注工作,也在一定程度上反映真实世界中交通正常情况远多于事故的事实。训练集中的视频数据,每段视频只有一个正常或异常的视频级标签,即所述训练集中的正常视频包括正常视频级标签,所述训练集中的事故视频包括事故视频级标签;而测试集除了包含视频级标签以外,每段视频还标注了交通事故发生的起始帧和结束帧,用于测试时进行帧级的性能评估,也就是说,所述测试集中的正常视频包括正常视频级标签,所述测试集中的事故视频包括事故视频级标签以及事故发生的起始帧和结束帧。
在一些实施方式中,将所述交通事故数据集中的原始视频样本进行空时域分割,得到若干实例。具体来讲,如图2所示,将交通事故数据集中的每段视频看作一个包,正常视频为负包,记为bn,包含交通事故的事故视频为正包,记为ba;将每个包在时域上均匀分割为若干个时间连续但不重叠的视频片段(也称为实例),数量记为nt;将时域上分割得到的每个视频片段在空域上进一步分割或采样,得到若干实例,具体方法是,分别以视频画面的四角为基点和以视频画面中心为中心,切割出五个尺寸大小为w×h(宽*高)的视频片段,视频片段之间可以存在区域交叠,然后进行数据增强,对上述五个实例实施镜像操作,以抵消画面分布不均衡的影响。
将时域上分割出的每个视频片段经空域分割和数据增强后,最终得到10个新实例,将空域实例数量记为ns,需要说明的是,基于本发明的空时域分割思想,也可以根据情况采用其他空间分割方式或数据增强方法,相应得到不同数量的实例。将原始视频进行空时域分割后,将正包得到的实例记为
在一些实施方式中,建立基于多实例学习的事故检测回归模型,结合排序思想以及交通事故的短时性和连续型假设设计损失函数。具体来讲,采用3d特征提取器对包内的每个实例进行多模态特征提取操作,以更好地捕捉视频中与事故发生过程相关的时序信息、运动特征等,特征提取器包括但不限于c3d、inceptioni3d、resneti3d等,本发明以c3d和inceptioni3d网络为例,提取的特征向量作为事故检测模型的输入数据;将交通事故检测视作一个回归问题来设计事故检测模型,是由若干全连接层构成的深度神经网络,本实施例采用的网络结构具体为:输入层-全连接层1-dropout1-全连接层2-dropout2-全连接层3,全连接层1的激活函数为relu,全连接层3的激活函数为sigmoid,3个全连接层的神经元个数依次为512、32、1,全连接层3的输出即为网络的输出结果,表示实例的异常得分,取值范围为0~1,得分越高,则发生事故的可能性越大,输入层神经元个数与上一步中提取的特征向量维度相等,对于c3d特征,输入层节点数量为4096,对于i3d特征,输入层节点数量为1024。
在一些实施方式中,基于对交通事故的短时性和连续性假设,通过将多实例学习与排序思想相结合来构造事故检测模型的损失函数,表达式如下:
式中,
l=l(ba,bn) ||w||2
式中,l(ba,bn)为损失函数中前三项之和,与输入样本数据直接相关;训练时,每一次迭代过程都选取一定批量的样本,假设样本数量为nbs,其中,正常视频和事故视频样本各占一半,分别从训练集中的正样本集和负样本集中随机抽取,根据损失函数的定义,一对正常视频和事故视频组合可计算得到一个损失值,则批量样本训练时的损失值可以表示为:
在一些实施方式中,在模型训练过程中,加入在线困难样本学习机制,侧重对识别难度大的样本进行学习,提高算法对正常和事故的辨别能力。具体来讲,将li(ba,bn)(i=1,2,k,nbs/2)按降序排列,假设困难样本比例为ph,选取前
将筛选出的损失值记为ls,i(ba,bn),i=1,2,k,
在一些实施方式中,分别利用在实例的rgb图像域和光流域上使用多种3d特征提取器提取的多模态特征,对事故检测模型进行训练,得到多个事故检测模型。具体来讲,在原始视频样本空时域分割得到的视频片段(实例)上提取多模态特征向量,用于事故检测模型训练;事故检测模型训练时的深度学习优化器算法可采用随机梯度下降法、动量优化法、adam算法、adadelta算法等等,本发明以adadelta算法为例,利用反向传播算法对事故检测模型进行迭代训练,直至损失函数收敛。事故检测模型使用的训练数据为在原始视频样本空时域分割得到的视频片段(实例)上提取的多模态特征向量,本发明使用了三种特征数据,一是采用c3d预训练模型直接在rgb图像序列上提取的特征,二是采用i3d的kinetics预训练模型直接在rgb图像序列上提取的特征,三是在根据原始图像计算得到的光流图像上,采用i3d的imagenet预训练模型提取的特征,利用三种特征数据分别训练,得到三个事故检测模型。
在一些实施方式中,如图3所示,所述对测试视频进行端到端的交通事故检测的步骤包括:将测试视频划分为若干实例,提取所有实例的多模态特征信息;对于每种模态的特征,根据相应的事故检测模型预测异常得分,将同一时段上空间分割和数据增强所得所有实例的异常得分进行融合,并对一段视频的所有时段的光流预测得分归一化;对于每一时间段,采用平均法将多模态特征预测得分融合起来,得到最终得分,再与预先设定的阈值对比,判断是否发生了交通事故。
具体来讲,以一段视频作为测试输入,按照上文所述的空时域分割及数据增强方法将测试视频划分为若干实例,记为ii,j,其中,i=1,2,knt,表示实例的时域序号,j=1,2,kns,表示实例的空域序号;
对于每个实例,计算图像帧的光流图,然后提取多模态特征信息,包括:利用c3d模型在rgb图像序列上提取特征,记为
将上一步得到的三类特征分别输入相应训练好的事故检测模型,预测异常得分,依次记为:
对于每类特征,将同一时段在空间上分割和增强所得若干实例的预测得分进行融合,方法为:
得到输入视频在时域上的得分向量如下:
为了避免i3d光流特征预测分数分布过于集中及其分数基线与rgb特征不一致的问题,对si3d_flow进行min-max归一化处理,公式为:
在每个时间段(时域分割的一个实例),通过软投票的方式将多模特征的得分融合起来,公式为:
其中,
本实施例将一段视频看作一个包,事故视频为正包,正常视频为负包,每个包按照时间和空间两个维度划分为若干实例(视频片段);对于每个实例,利用c3d网络和i3d网络分别提取rgb图像的特征信息,利用i3d网络提取光流图像的特征信息,将三类特征信息分别输入多层感知机形式的事故检测网络得到异常分数;然后,对于每类特征,将同一时段在空间上分割所得的若干实例得分进行平均,得到此时段内的异常得分,多个时段(对应于时域上的多个实例)的异常得分构成一个向量,再对i3d光流特征异常得分向量进行最大最小归一化;最终,在每个时段,通过软投票的方式将三类特征的得分融合起来,当异常得分超过阈值时,可认为该段时间内发生了交通事故。由于特征所代表的信息以及维度不同,训练时,将c3drgb特征、i3drgb特征和i3d光流特征分别用于训练三个独立的事故检测网络,得到三个事故检测模型;采用多实例学习的方式对事故检测模型进行训练,监督信息是视频级标签,即视频中是否发生事故,另外,加入困难样本在线学习机制,以尽可能提高对交通事故的分辨能力。
在一些实施方式中,还提供一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明所述交通事故检测方法中的步骤。
在一些实施方式中,还提供一种交通事故检测设备,如图4所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(communicationsinterface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
综上所述,本发明对数据进行筛选、清洗、重新组合等,构造一个新的交通事故数据集,排除场景转换、非监控画面等数据干扰因素,有利于算法学习到真正的事故特征信息;采用多实例学习的方法来建立事故检测模型,对原始视频在时间和空间两个维度上进行视频分割,并进行数据增强,得到若干实例,从而能够获得粒度更细、更准确的特征用于学习;本发明训练中加入在线困难样本学习机制,侧重于对检测和识别难度更大的样本进行学习,提高算法对正常视频和事故视频的辨识能力;采用多个3d特征提取器(例如c3d、inceptioni3d)分别提取rgb图像域和光流域的多模态视觉特征信息,然后将多模型、多模态特征预测得分融合起来,能够有效地提升算法性能,即提高事故检测率,降低误报率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种交通事故检测方法,其特征在于,包括步骤:
对筛选的交通数据进行预处理,构建交通事故数据集;
将所述交通事故数据集中的每个原始视频样本视为一个包,对每个包进行空时域分割,得到与每个包对应的若干实例;
根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型;
根据所述训练后事故检测模型对测试视频进行端到端的交通事故检测。
2.根据权利要求1所述的交通事故检测方法,其特征在于,所述对筛选的交通数据进行预处理,构建交通事故数据集的步骤包括:
获取ucfcrimes交通数据和cadp交通数据;
从所述ucfcrimes交通数据中将所有交通场景下的正常视频筛选出来,构成基础正样本集;
从所述ucfcrimes交通数据中将所有交通场景下的事故视频筛选出来,与cadp交通数据合并,构成基础负样本集;
对所述基础正样本集和基础负样本集进行数据清洗,得到相应的正样本集和负样本集,按照预定比例对所述正样本集和负样本集进行划分得到训练集和测试集。
3.根据权利要求2所述的交通事故检测方法,其特征在于,所述按照预定比例对所述正样本集和负样本集进行划分得到训练集和测试集之后还包括:
对训练集中的正样本集中的长时长正常视频进行裁剪,在训练集中得到相等数量的正常视频与事故视频,所述训练集中的正常视频包括正常视频级标签,所述训练集中的事故视频包括事故视频级标签;
对测试集中的正样本集中的长时长正常视频进行裁剪,在测试集中得到数量比为3-10:1的正常视频与事故视频,所述测试集中的正常视频包括正常视频级标签,所述测试集中的事故视频包括事故视频级标签以及事故发生的起始帧和结束帧。
4.根据权利要求1所述的交通事故检测方法,其特征在于,将所述交通事故数据集中的原始视频样本进行空时域分割,得到若干实例的步骤包括:
将所述交通事故数据集中的每段视频看作一个包,正常视频为负包,记为bn,事故视频为正包,记为ba;
将每个包在时域上均匀分割为若干个时间连续但不重叠的视频片段,数量记为nt;
将时域上分割得到的每个视频片段在空域上进一步分割或采样,得到若干实例,数量记为ns。
5.根据权利要求4所述的交通事故检测方法,其特征在于,根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型的步骤包括:
采用3d特征提取器对包内的每个实例进行多模态特征提取操作,捕捉视频中与事故发生过程相关的时序信息、运动特征;
将交通事故检测视作一个回归问题来设计事故检测模型,所述事故检测模型为由若干全连接层构成的深度神经网络;
基于对交通事故的短时性和连续性假设,通过将多实例学习与排序思想相结合来构造事故检测模型的损失函数,表达式如下:
式中,
将损失函数进一步简化为:l=l(ba,bn) ||w||2,其中,l(ba,bn)为损失函数中前三项之和,与输入样本数据直接相关;
训练时,每一次迭代过程都选取一定批量的样本,假设样本数量为nbs,其中,正常视频和事故视频样本各占一半,分别从训练集中的正样本集和负样本集中随机抽取,根据损失函数的定义,一对正常视频和事故视频组合可计算得到一个损失值,则批量样本训练时的损失值可以表示为:
6.根据权利要求5所述的交通事故检测方法,其特征在于,所述根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型的步骤还包括:
在事故检测模型训练过程中,将li(ba,bn)(i=1,2,k,nbs/2)按降序排列,假设困难样本比例为ph,选取前
将筛选出的损失值记为ls,i(ba,bn),i=1,2,k,
7.根据权利要求6所述的交通事故检测方法,其特征在于,所述根据所述交通事故数据集的弱标签属性构建事故检测模型,并基于所述每个包对应的若干实例对所述事故检测模型进行训练,得到训练后事故检测模型的步骤还包括:
采用深度学习优化器算法对事故检测模型进行迭代训练,直至损失函数收敛;
采用c3d预训练模型直接在rgb图像序列上提取第一特征;
采用i3d的kinetics预训练模型直接在rgb图像序列上提取第二特征;
根据原始图像计算得到的,采用i3d的imagenet预训练模型在光流图像上提取第三特征;
将所述第一特征、第二特征以及第三特征分别对事故检测模型进行训练,得到相应的三个训练后事故检测模型。
8.根据权利要求7所述的交通事故检测方法,其特征在于,所述根据所述训练后事故检测模型对测试视频进行端到端的交通事故检测的步骤包括:
将测试集中的每一段测试视频划分为若干实例,记为ii,j,其中,i=1,2,knt,表示实例的时域序号,j=1,2,kns,表示实例的空域序号;
对于每个实例,计算图像帧的光流图,然后提取多模态特征信息,包括:利用c3d模型在rgb图像序列上提取特征,记为
将三类特征分别输入相应的训练后事故检测模型,预测异常得分,依次记为:
对于每类特征,将同一时段在空间上分割和增强所得若干实例的预测得分进行融合,方法为:
得到输入视频在时域上的得分向量如下:
对si3d_flow进行min-max归一化处理,公式为:
在每个时间段,通过软投票的方式将多模特征的得分融合起来,公式为:
9.一种存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任意一项所述交通事故检测方法中的步骤。
10.一种交通事故检测设备,其特征在于,包括处理器,适于实现各指令;以及存储介质,适于存储多条指令,所述指令适于由处理器加载并执行权利要求1-8任意一项所述交通事故检测方法中的步骤。
技术总结