一种疲劳驾驶检测方法、装置和电子设备与流程

文档序号:17374091发布日期:2019-04-12 23:06阅读:213来源:国知局
一种疲劳驾驶检测方法、装置和电子设备与流程

本发明涉及机动车行车安全技术领域,具体涉及一种疲劳驾驶检测方法、装置和电子设备。



背景技术:

随着机器学习和计算机视觉技术在人类行为检测方面的发展和应用,现在算法可以通过二维相机捕获驾驶员的图像,进而分析司机的异常状态,并进行报警。而基于二维图像的检测算法进行状态判断时,需要先得到一定数量的人脸特征点,然后通过姿态识别算法进行姿态运算,参与运算的特征点数越多,则运算得到的角度越准确,同时也增加了处理器的负担。



技术实现要素:

本发明提供了一种疲劳驾驶检测方法、装置和电子设备,采用深度相机代替传统的二维相机,深度相机不仅可以获得红外二维图像,同时可以获得深度图像,硬件设计简单,成本低,深度和二维图像信息同时获取,双线程并行运算,处理速度快。

根据本申请的一个方面,提供了一种疲劳驾驶检测方法,包括:

获取深度相机对驾驶员拍摄的一帧红外图像和深度图像;

并行对红外图像和深度图像进行运算,根据对红外图像的运算结果和/或根据对深度图像的运算结果确定驾驶员当前是否处在疲劳驾驶状态。

根据本申请的另一个方面,提供了一种疲劳驾驶检测装置,包括:

图像获取单元,用于获取深度相机对驾驶员拍摄的一帧红外图像和深度图像;

并行检测单元,用于并行对红外图像和深度图像进行运算,根据对红外图像的运算结果和/或根据对深度图像的运算结果确定驾驶员当前是否处在疲劳驾驶状态。

根据本申请的又一个方面,提供了一种电子设备,电子设备包括:存储器和处理器,所述存储器和所述处理器之间通过内部总线通讯连接,所述存储器存储有能够被所述处理器执行的程序指令,所述程序指令被所述处理器执行时能够实现本申请一个方面所述的方法。

本发明实施例的疲劳检测方案,获取深度相机对驾驶员拍摄的一帧红外图像和深度图像,并行对红外图像和深度图像进行运算,根据运算结果确定驾驶员当前是否处在疲劳驾驶状态,由此通过一个深度相机生成红外和深度两种图像,硬件设计简单,成本低。深度和二维图像信息同时获取,双线程并行运算,处理速度快。更重要的是,基于深度相机的深度图像进行姿态计算不需要前期训练模型,大大降低了开发周期。而且,深度图像受外界干扰小,也保证了行为检测的精度和鲁棒性。

附图说明

图1是本发明一个实施例的疲劳驾驶检测方法的流程图;

图2是本发明一个实施例的疲劳驾驶检测装置的框图;

图3是本发明一个实施例的电子设备的结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的设计构思在于:针对现有技术中基于二维图像进行人脸识别和疲劳行为特征确定以完成疲劳驾驶检测中存在的需要采集大量的样本进行模型训练,遮挡和光线等因素对图像质量的影响进而影响检测准确性,以及增加处理器负担等技术问题,提出一种疲劳驾驶检测方案,通过使用深度相机替换二维平面相机,并利用深度相机同时获取深度图像和红外图像,基于深度图像和红外图像并行运算,设计算法通过点云获得人头姿态,进而判断司机的低头和左顾、右盼等头部状态。由于人脸点云的数量在10000个,远大于特征点的有限数量(100个以下),所以在精度和鲁棒性上更强。并且,去掉姿态计算过程中的模型训练过程,降低了产品设计复杂度,解决了遮挡和光线问题导致的误检率上升的问题。

图1是本发明一个实施例的疲劳驾驶检测方法的流程图,参见图1,本实施例的疲劳驾驶检测方法包括下列步骤:

步骤s101,获取深度相机对驾驶员拍摄的一帧红外图像和深度图像;

步骤s102,并行对红外图像和深度图像进行运算,根据对红外图像的运算结果和/或根据对深度图像的运算结果确定驾驶员当前是否处在疲劳驾驶状态。

由图1所示可知,本实施例的疲劳驾驶检测方法获取深度相机同时拍摄得到的红外图像和深度图像,然后对深度图像和红外图像并行运算,根据对红外图像的运算结果和/或根据对深度图像的运算结果,根据红外图像的运算结果确定驾驶员是否处于疲劳驾驶状态,或者,根据深度图像的运算结果确定驾驶员是否处于疲劳驾驶状态,又或者,根据对红外图像的运算结果和根据对深度图像的运算结果确定驾驶员是否处于疲劳驾驶状态。本发明实施例利用深度相机替换传统的二维相机,摒弃了二维相机检测方案中的模型训练步骤,简化了设计周期,并不需要采集大量的样本,减轻了处理器的负担,另外,对深度图像和红外图像并行运算进行状态识别,也提高了处理效率,保证了精度。

以下结合实际应用场景对本发明实施例的疲劳驾驶状态的检测方法进行说明。

本发明实施例的疲劳驾驶状态的检测基于深度图像,也就是说,在进行算法识别之前,需要使用深度相机对驾驶车辆的驾驶员进行拍摄。一个实施例中,深度相机采用tof(timeofflight,飞行时间)相机,本实施例的方法获取tof相机拍摄得到640*480像素的30fps的红外二维图像和640*480像素的30fps的深度图像。这里的30fps是指每秒30帧,也就是每秒拍摄30个画面。

在获取到红外图像和深度图像之后,开启第一线程,对红外图像进行运算以及开启第二线程,对深度图像进行运算。

这里先对红外图像的处理进行说明,一个实施例中,开启第一线程,对红外图像进行运算包括:

开启第一线程,用于执行下列操作:使用级联分类器在红外图像全图中查找人脸区域,并在人脸区域中定位眼睛和嘴巴,提取眼睛区域和嘴巴区域内的图像特征值,将特征值组成的特征向量输入到所述级联分类器中,得到级联分类器输出的驾驶员当前是否存在闭眼或打哈欠行为的分类结果,若分类结果为存在闭眼或打哈欠行为,则确定驾驶员当前是否处在疲劳驾驶状态。

具体的,开辟二维图像(二维红外图像)处理线程,用于:

1.使用adaboost级联分类器在全图查找人脸框(或称人脸区域)。

2.在人脸框内通过adaboost级联分类器确定眼睛区域和嘴巴区域。

3.提取眼睛区域和嘴巴区域内的图像特征值。

4.将特征值组成的特征向量输入到adaboost级联分类器,判断当前是否存在闭眼或打哈欠的情况。

如果分类结果为存在闭眼的行为或者存在打哈欠的行为则确定驾驶员当前处于疲劳驾驶,本实施例中进一步的根据该检测结果进行报警提醒,以提醒驾驶员停车休息或谨慎驾驶。

接着对深度图像的处理过程进行说明。

本实施例中,开启第二线程,对深度图像进行运算,根据运算结果确定驾驶员当前是否处在疲劳驾驶状态,例如,开启第二线程,用于执行下列操作:根据红外图像中查找出的人脸区域确定深度图像上的人脸区域,在人脸区域中定位出脸部,计算脸部的每个点的坐标得到当前帧的人脸点云,根据基准点云以及所述当前帧的人脸点云,确定当前帧的人脸点云指示的头部姿态相对于基准点云指示的头部姿态的差值,当差值(比如姿态角的差值为5度)大于第一阈值(姿态角3度)时确定驾驶员当前是否处在疲劳驾驶状态。由于人脸点云的数量远大于特征点的有限数量,所以本实施例的基于深度图像的头部姿态识别和疲劳驾驶状态检测在精度和鲁棒性上更强。

需要说明的是,红外图像和深度图像均由同一个cmo图像传感器产生,所以两图像的像素表现的图像点是同一个。这样就可以通过前述二维红外图像人脸框划定的相同区域来确定深度图像上人脸所在的区域。另,由于司机驾驶车辆时头部周围10cm左右的范围内一般不会存在其他物体,所以人脸框范围内深度值较小区域认为为人脸部分,如此确定出了驾驶员的人脸部分。

这里,将人脸部分的每个点的坐标计算出来以得到人脸点云,计算过程需要使用相机内参,计算公式如下:

x=[(u–cx)*d]/fx

y=[(v–cy)*d]/fy

z=d

其中,x、y、z即像素点的三维坐标值,u、v为640*480图像坐标值,cx、cy为相机内参的光轴中心坐标,通过查阅相机内部参数可以得到,fx、fy为相机内参的焦距,焦距以像素为单位,d为深度值。

在生成点云后进行头部姿态差计算过程中,首先初始化基准点云,初始化基准点云具体包括记录驾驶员模拟正常驾驶目视前方的姿态的人脸点云作为基准点云,基准点云指示头部姿态为0的位置。也就是说,初始化时需要驾驶员模拟正常驾驶目视前方的姿态,深度相机记录此时的人脸点云(即海量的点数据)图作为基准点云,这时记录的头部姿态是人头姿态为0的位置。

记录完成基准点云后,新一帧点云形成,本实施例中对当前帧的人脸点云上的点与上一个基准点云上的点做相关性对应,确定点之间的对应关系。比如将新点云和上一个基准点云进行相关性对应,相关性达到预定标准的两个点可视为同一个点。相关性对应包括:步骤511,查找当前帧的人脸点云上的点与基准点云的每个点中的最近邻的点,这里进行最近邻查找,即,查找新点云(即当前帧的人脸点云)与基准点云中每个点的最近邻,例如采用kd-tree(k-demensiontree)算法实现。kd-tree用于快速而准确地找到查询点的近邻,k近邻查询是给定查询点及正整数k,从数据集中找到距离查询点最近的k个数据,当k=1时,就是最近邻查询。

但是实际情况下,不可能实现每个点都是对应点,所以要进行相关性剔除。即,执行步骤512,对当前帧的人脸点云上的点及其对应的最近邻的点进行相关性剔除。剔除原则有二,分别是两个点的欧式距离太大以及两个点的法向量夹角太大。

具体实现时,通过计算当前帧的人脸点云上的点及其对应的最近邻的点之间的欧氏距离,如果欧氏距离大于第三阈值,则将当前帧的人脸点云上的点及其对应的最近邻的点剔除;或,计算当前帧的人脸点云上的点及其对应的最近邻的点之间的法向量夹角,如果欧氏距离大于第四阈值,则将当前帧的人脸点云上的点及其对应的最近邻的点剔除。以此实现相关性剔除。

在进行相关性剔除之后,根据已知的新点云和基准点云中点的对应关系,确定两个点云的旋转平移关系。这里包括步骤51,对当前帧的人脸点云上的点与基准点云上的点做相关性对应,确定点之间的对应关系;步骤52,根据当前帧的人脸点云上的点与基准点云中的点的对应关系,计算指示两个点云的旋转平移关系的旋转矩阵r和平移向量t;步骤53,使用r、t旋转平移当前帧的人脸点云,计算旋转后的人脸点云和基准点云的所有对应点的欧式距离的和,如果欧式距离的和小于第二阈值,则认为r、t为最优旋转矩阵和最优平移向量;如果和大于或等于第二阈值,则将旋转平移后的当前帧的人脸点云作为新点云返回执行步骤51至步骤53,直至欧式距离的和小于第二阈值。

一个实施例中,采用icp(iteratedclosestpoints,迭代最近点icp)算法计算两个点云的旋转平移关系,icp算法的目的是为了算出一个最优的旋转矩阵r和平移向量t使得变换后的目标点云能与基准点云之间达到最精确的匹配。基准点云为{pi},新点云为{p’},构建目标函数e(r,t),将问题转换为求目标函数最优解问题

这里通过svd(singularvaluedecomposition,奇异值分解)算法最终求得r和t。

需要说明的是,如何计算旋转矩阵r和平移向量t是现有技术,因此可以参见现有技术中有关的说明,这里不再赘述。

在计算得到旋转矩阵r和平移向量t之后,使用r、t旋转平移新点云,计算旋转后的点云和基准点云的所有对应点的欧式距离的和,如果欧式距离的和小于第二阈值,则认为r、t为最优旋转矩阵和最优平移向量;如果和大于或等于第二阈值,则将旋转平移后的当前帧的人脸点云作为新点云返回执行步骤51至步骤53,直至欧式距离的和小于第二阈值,也就是说,若旋转后的点云和基准点云的所有对应点的欧式距离的和足够小,则认为r、t为最优旋转、平移量;若旋转后的点云和基准点云的所有对应点的欧式距离的和依旧较大,将旋转平移后的点云作为新点云继续进行步骤51,直至旋转后的点云和基准点云的所有对应点的欧式距离的和足够小。

需要说明的是,如果新点云产生,本实施例中将新点云对应的帧的上一帧点云作为基准点云进行前述最优r、t估计,否则两个点云的旋转平移量r、t相差较大,前述循环的步骤会出现无法收敛的情况。

在旋转后的点云和基准点云的所有对应点的欧式距离的和足够小时,对应的旋转矩阵r即为当前的头部姿态相对于上一基准点云的旋转关系,累计可得头部相对基准位置的姿态。

比如,计算出的第一帧的点云相对于初始化的基准点云的最优旋转矩阵为r1,根据r1与头部姿态为0的位置的差别可以确定第一帧相对于初始化时驾驶员的头部的姿态,比如向左倾斜3度,或者向下倾斜5度。同理,根据第二帧的点云相对于第一帧的点云(此时第一帧的点云为基准点云)的最优旋转矩阵r2,可以确定第一帧相对于第二帧时驾驶员的头部的姿态变化,进而判断当前驾驶员的头部是否左顾右盼、是否低头等行为,以此类推,可以得到每一帧相对于前一帧的头部姿态的变化。另外,也可以得到每一帧相对于初始化时头部姿态的变化,接上例,已知第二帧的点云相对于第一帧的点云(此时第一帧的点云为基准点云)的最优旋转矩阵r2,以及第一帧的点云相对于初始化的基准点云的最优旋转矩阵为r1,那么累计r1和r2即可得第三帧的点云相对于初始化的基准点云指示的头部姿态为0的位置的变化。根据每一帧的点云相对于基准点云的姿态差,可以确定驾驶员当前的头部姿态,将这些头部姿态和指示疲劳驾驶状态的姿态(如典型姿态,低头)比较,如果一致则确定出驾驶员处于疲劳驾驶状态,从而完成检测。

由上述可知,本实施例的疲劳驾驶通过一个深度模组产生红外和深度两种图像,硬件设计简单,成本低,而且深度和二维图像信息同时获取,双线程并行运算,处理速度快。另外,姿态计算不需要前期训练模型,缩短了开发周期。通过大量的点云来计算头部姿态,提高了低头和左顾右盼等头部姿态检测的精度和鲁棒性。

图2是本发明一个实施例的疲劳驾驶检测装置的框图,参见图2,本实施例的疲劳驾驶检测装置200包括:

图像获取单元201,用于获取深度相机对驾驶员拍摄的一帧红外图像和深度图像;

并行检测单元202,用于并行对红外图像和深度图像进行运算,根据对红外图像的运算结果和/或根据对深度图像的运算结果确定驾驶员当前是否处在疲劳驾驶状态。

在本发明的一个实施例中,并行检测单元202具体用于开启第一线程,对红外图像进行运算以及开启第二线程,对深度图像进行运算。

在本发明的一个实施例中,并行检测单元202具体用于开启第一线程,用于执行下列操作:使用级联分类器在红外图像全图中查找人脸区域,并在人脸区域中定位眼睛和嘴巴,提取眼睛区域和嘴巴区域内的图像特征值,将特征值组成的特征向量输入到所述级联分类器中,得到级联分类器输出的驾驶员当前是否存在闭眼或打哈欠行为的分类结果,若分类结果为存在闭眼或打哈欠行为,则确定驾驶员当前是否处在疲劳驾驶状态。

在本发明的一个实施例中,并行检测单元202具体用于开启第二线程,用于执行下列操作:根据红外图像中查找出的人脸区域确定深度图像上的人脸区域,在人脸区域中定位出脸部,计算脸部的每个点的坐标得到当前帧的人脸点云,根据基准点云以及所述当前帧的人脸点云,确定当前帧的人脸点云指示的头部姿态相对于基准点云指示的头部姿态的差值,当差值大于第一阈值时确定驾驶员当前是否处在疲劳驾驶状态。

在本发明的一个实施例中,并行检测单元202具体用于执行步骤51,对当前帧的人脸点云上的点与基准点云上的点做相关性对应,确定点之间的对应关系;步骤52,根据当前帧的人脸点云上的点与基准点云中的点的对应关系,计算指示两个点云的旋转平移关系的旋转矩阵r和平移向量t;步骤53,使用r、t旋转平移当前帧的人脸点云,计算旋转后的人脸点云和基准点云的所有对应点的欧式距离的和,如果欧式距离的和小于第二阈值,则认为r、t为最优旋转矩阵和最优平移向量;如果和大于或等于第二阈值,则将旋转平移后的当前帧的人脸点云作为新点云返回执行步骤51至步骤53,直至欧式距离的和小于第二阈值。

在本发明的一个实施例中,在本发明的一个实施例中,并行检测单元202具体用于查找当前帧的人脸点云上的点与基准点云的每个点中的最近邻的点;对当前帧的人脸点云上的点及其对应的最近邻的点进行相关性剔除。

在本发明的一个实施例中,并行检测单元202具体用于计算当前帧的人脸点云上的点及其对应的最近邻的点之间的欧氏距离,如果欧氏距离大于第三阈值,则将当前帧的人脸点云上的点及其对应的最近邻的点剔除;或,计算当前帧的人脸点云上的点及其对应的最近邻的点之间的法向量夹角,如果欧氏距离大于第四阈值,则将当前帧的人脸点云上的点及其对应的最近邻的点剔除。

在本发明的一个实施例中,装置还包括:更新单元用于当新的人脸点云生成后,将上一帧的人脸点云作为基准点云,并执行步骤51至步骤53估计最优旋转矩阵r和最优平移向量t;

初始化单元用于初始化基准点云,具体包括记录驾驶员模拟正常驾驶目视前方的姿态的人脸点云作为基准点云,基准点云指示头部姿态为0的位置。

关于图2所示装置中的各单元所执行的各功能的举例解释说明,与前述方法实施例中的举例解释说明一致,这里不再一一赘述。

图3是本发明一个实施例的电子设备的结构示意图。如图3所示,该电子设备包括存储器301和处理器302,存储器301和处理器302之间通过内部总线303通讯连接,存储器301存储有能够被处理器302执行的程序指令,程序指令被处理器302执行时能够实现上述的疲劳驾驶检测方法。

此外,上述的存储器301中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明的另一个实施例提供一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令使所述计算机执行上述的方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的装置。

需要说明的是术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。

更确切地说,正如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1