掌桥专利:专业的专利平台
掌桥专利
首页

一种驾驶员不规范行为检测方法

文献发布时间:2023-06-19 12:02:28


一种驾驶员不规范行为检测方法

技术领域

本发明涉及一种驾驶员不规范行为检测方法。

背景技术

交通事故常常是由很多主观因素导致的,所以,作为参与交通行为的主要对象——驾驶员,需要在其产生不规范的驾驶行为时,得到及时的提醒,以减少事故的发生。目前,常采用在驾驶室内安装监控摄像头的方式,对司机的驾驶行为进行监管,但人力无法做到24小时不间断监管和及时提醒,需要依靠人工智能算法的辅助。现有的,借助人工智能算法和机器视觉相结合解决方案主要有以下两种:

一种本地部署AI算法:将人工智能算法部署在AI摄像头上,在本地实时处理摄像头采集的图像,并通过语音设备播报告警。

另一种,远程部署AI算法:采用搭载通信传输功能普通摄像头,将其采集的图像传输到远程服务器上,经部署在服务器上的人工智能算法运算后,再将告警结果反馈给驾驶员。

这两种方式都对人工智能算法的效率和准确性有很高要求。一方面,算法效率决定了能否产生及时的告警,这对需要远程传输的设备更为重要。另一方面,准确性差的算法产生过多误检,进而导致频繁告警,也会影响司机正常驾驶,适得其反。另外,不同场景下,采集到的图片往往光照、角度、遮挡等不一,对驾驶员检测算法带来很多挑战。

现有的驾驶员行为检测算法,一般包含目标检测、人脸检测、人脸关键点检测、人体姿态识别、手部姿态识别等典型算法。除了算法本身的准确性和效率的限制,算法的选择和组合也是正确识别的关键。

发明内容

本发明提供的一种驾驶员不规范行为检测方法,针对在驾驶过程(包括驾驶私家车、货车、大中型客车、轨道交通工具等)中,司机接打电话、抽烟、困倦疲劳、分心等不规范驾驶行为的视觉检测方法,可灵活部署在终端设备或服务器上,同时检测多种不规范驾驶行为,并在曝光不足、人脸遮挡、角度不正等问题下,仍然保持一定的报警精度;以克服现有技术的缺陷。

本发明提供一种驾驶员不规范行为检测方法,包括以下检测步骤:

步骤A、初始化N个报警队列,并设定每个队列的长度,每个队列中的初始值均为0。

步骤B、获取当前驾驶位置的图片。

步骤C、判断当前驾驶位置的图片是否具有人脸目标。当判断具有人脸目标时,进入步骤D。

步骤D、每个报警队列对应一个设定的报警条件,分别判断当前驾驶位置的图片是否符合每一个设定的报警条件。

当任意一个当前驾驶位置的图片不符合设定的报警条件时,在该报警队列的一端插入0,并删除另一端第一个数字。返回步骤B。

当任意一个当前驾驶位置的图片符合设定的报警条件时,在该报警队列的一端插入1,并删除另一端第一个数字。然后对队列求和,再判断队列的和是否大于等于该队列报警阈值,当队列的和大于等于该队列报警阈值时,进行报警。返回步骤B。

当队列的和小于该队列报警阈值时,返回步骤B。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:步骤B包括以下步骤:

步骤B1、当前驾驶位置的图片通过OpenCV的VideoCapture模块判断驾驶室摄像头是否在开启状态。

当驾驶室摄像头处于开启状态,进入步骤B-2。当驾驶室摄像头处于关闭状态,则结束。

步骤B2、读取摄像头当前帧作为当前驾驶位置的图片。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:步骤C中,当判断不具有人脸目标时,进入步骤E。步骤E、在每个报警队列的一端插入0,并删除另一端第一个数字。然后返回步骤B。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:一个报警队列为分心报警队列Q4。对应的设定报警条件为:人脸上下偏转角度值超过上下角度阈值和/或人脸左右偏转角度值超过左右角度阈值。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:一个报警队列为疲劳报警队列Q3。对应的设定报警条件为:根据预设的人眼开合分类模型判断眼睛闭合。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:一个报警队列为抽烟报警队列Q2。对应的设定报警条件为:当前驾驶位置的图片中有香烟,且香烟框和嘴部框的交并比大于交并比阈值。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:嘴部框根据嘴部关键点坐标,做最小外接矩形,并以矩形中心点不变,将矩形框长宽均放大设定倍数获得。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:一个报警队列为打电话报警队列Q1。对应的设定报警条件为:当前驾驶位置的图片中有手机。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:步骤C中,当判断具有人脸目标时,还进入步骤F。

步骤F、具有人脸的当前驾驶位置的图片通过预设的68点位人脸关键点定位模型获取68个人脸关键点坐标。

进一步,本发明提供一种驾驶员不规范行为检测方法,还可以具有这样的特征:通过驾驶员不规范行为图片训练目标检测模型,判断当前驾驶位置的图片是否具有人脸目标或手机或香烟。

本发明提供一种驾驶员不规范行为检测方法及系统,针对在驾驶过程中不规范驾驶行为的视觉检测方法,可灵活部署在终端设备或服务器上,同时检测多种不规范驾驶行为,并在曝光不足、人脸遮挡、角度不正等问题下,仍然保持一定的报警精度。并且采用了三个深度学习模型:目标检测模型Retinanet检测图片中的香烟、手机和人脸、人脸关键点模型FAN(Face Alignment Network)回归人脸上的68个坐标点、眼部开合分类模型;将对人脸的检测合并到目标检测算法Retinanet中,节省了一个的人脸检测模型的资源占用;用一个轻量的人眼图片分类算法,判断眼部开闭,取代常用的计算人眼开合度的方法,增强了疲劳检测的普适性和鲁棒性;考虑香烟与驾驶员嘴部的交互,在不增加模型的前提下,通过嘴部关键点计算得到嘴部区域框,与目标检测得到的香烟框做交并比,只有当两者重合时,才确定驾驶员吸烟的不规范行为,以此减少大量误报。

附图说明

图1是实施例中的驾驶员不规范行为检测方法的流程图。

图2是实施例中的嘴部框与香烟框做交并比的机构示意图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步的描述。

实施例

本实施例中,驾驶员不规范行为检测方法,在检测步骤之前,用红外摄像头下拍摄的驾驶员不规范行为图片。通过驾驶员不规范行为图片训练Retinanet模型,用于检测人脸、香烟、手机目标物。通过驾驶员不规范行为图片训练68点位人脸关键点定位模型FAN。通过驾驶员不规范行为图片训练人眼开合分类模型。需要说明的是Retinanet模型、68点位人脸关键点定位模型、人眼开合分类模型这些模型均为现有技术。

驾驶员不规范行为检测方法,包括以下检测步骤:

步骤A、初始化4个报警队列,分别为打电话报警队列Q1、抽烟报警队列Q2、疲劳报警队列Q3、分心报警队列Q4。设定每个队列的长度均为10,每个队列中的初始值均为0。4个报警队列分别用于记录对打电话、抽烟、疲劳和分心四种不规范行为的检测。

本实施例中,四个队列的长度是相同的,实际应用中可以根据需要不同的队列设置不同的队列长度。当然可以根据需要设置更多的队列数,用于对应更对的不规范行为。

步骤B、获取当前驾驶位置的图片。

步骤B1、当前驾驶位置的图片通过OpenCV的VideoCapture模块判断驾驶室摄像头是否在开启状态。当驾驶室摄像头处于开启状态,进入步骤B-2。当驾驶室摄像头处于关闭状态,则结束。

步骤B2、读取摄像头当前帧作为当前驾驶位置的图片。

此处,也可以采用其他摄像设备获取驾驶位置的图片。当然若摄像设备处于关闭状态,当然就无法获取照片。

步骤C、通过驾驶员不规范行为图片训练Retinanet模型,判断当前驾驶位置的图片是否具有人脸目标。当判断具有人脸目标时,进入步骤D。

本实施例中,当判断不具有人脸目标时,进入步骤E。

步骤E、在每个报警队列的一端插入0,并删除另一端第一个数字。然后返回步骤B。

本实施例中,当判断具有人脸目标时,还进入步骤F。

步骤F、将Retinanet模型获取人脸框输入预设的68点位人脸关键点定位模型,获取68个人脸关键点坐标。

步骤D、每个报警队列对应一个设定的报警条件,分别判断当前驾驶位置的图片是否符合每一个设定的报警条件。

本实施例中,设定了四个报警队列,所以步骤D包括以下同步的进行的四个步骤,分别为步骤D1、D2、D3和D4。

步骤D1、本步骤对应的设定报警条件为:当前驾驶位置的图片中有手机。

本实施例中,通过驾驶员不规范行为图片训练Retinanet模型,判断当前驾驶位置的图片是否具有手机。

步骤D1包括以下步骤:

步骤D11、判断当前驾驶位置的图片是否具有手机,当前驾驶位置的图片不具有手机时,进入步骤D12。当判断当前驾驶位置的图片具有手机时,进入步骤D13。

步骤D12、在报警队列Q1的队尾插入0,并删除队列首位。返回步骤B。

步骤D13、在报警队列Q1的队尾插入1,并删除队列首位,进入步骤D14。

步骤D14、报警队列Q1求和,再判断队列的和是否大于等于该队列报警阈值5,当队列的和是否大于等于该队列报警阈值5时,进入步骤D15。当队列的和小于该队列报警阈值5时,返回步骤B。

步骤D15、进行打电话报警。返回步骤B。

步骤D2、本步骤对应的设定报警条件为:对应的设定报警条件为:当前驾驶位置的图片中有香烟,且香烟框和嘴部框的交并比大于交并比阈值。

本实施例中,通过驾驶员不规范行为图片训练Retinanet模型,判断当前驾驶位置的图片是否具有香烟。

步骤D2包括以下步骤:

步骤D21、通过驾驶员不规范行为图片训练Retinanet模型,判断当前驾驶位置的图片是否具有香烟,当前驾驶位置的图片不具有香烟时,进入步骤D22。当判断当前驾驶位置的图片具有香烟时,获取香烟框,进入步骤D23。

步骤D22、在Q2报警队列的队尾插入0,并删除队列首位。返回步骤B。

步骤D23、读取步骤F中的68点位人脸关键点坐标中的嘴部关键点坐标,做最小外接矩形,并以矩形中心点不变,将矩形框长宽均放大设定的1.2倍,作为嘴部框,进入步骤D24。

步骤D24、将嘴部框与香烟框做交并比IOU,并进入步骤D25。

步骤D25、判断交并比IOU是否大于交并比阈值0.005。当交并比IOU不大于0.005时,进入步骤D22。当交并比IOU大于0.005时,进入步骤D26。交并比IOU(A,B)=(A∩B)/(A∪B)。

步骤D26、在Q2报警队列的队尾插入1,并删除队列首位,进入步骤D14。

步骤D27、Q2队列求和,再判断队列的和是否大于等于该队列报警阈值5,当队列的和是否大于等于该队列报警阈值5时,进入步骤D28。当队列的和小于该队列报警阈值5时,返回步骤B。

步骤D28、进行打电话报警。返回步骤B。

步骤D3、本步骤对应的设定报警条件为:根据预设的人眼开合分类模型判断眼睛闭合。

步骤D3包括以下步骤:

步骤D31、读取步骤F中的68点位人脸关键点坐标中的眼部关键点坐标,做最小外接矩形,并以矩形中心点不变,将矩形框长宽均放大设定的1.2倍,作为眼部框,进入步骤D32。

步骤D32、眼部框输入预设的人眼开合分类模型中,判断眼睛是否闭合。当人眼开合分类模型判断眼睛没有闭合,进入步骤D33。当人眼开合分类模型判断眼睛闭合,进入步骤D34。

步骤D33、在Q3报警队列的队尾插入0,并删除队列首位。返回步骤B。

步骤D34、在Q3报警队列的队尾插入1,并删除队列首位,进入步骤D35。

步骤D35、Q3队列求和,再判断队列的和是否大于等于该队列报警阈值5,当队列的和是否大于等于该队列报警阈值5时,进入步骤D36。当队列的和小于该队列报警阈值5时,返回步骤B。

步骤D36、进行打疲劳报警。返回步骤B。

步骤D4、本步骤对应的设定报警条件为:人脸上下偏转角度值pitch超过上下角度阈值和/或人脸左右偏转角度值超过左右角度阈值。

步骤D4包括以下步骤:

步骤D41、读取步骤F中的68点位人脸关键点坐标中的选取人脸上眉毛、眼睛、鼻子、嘴巴和下巴的轮廓关键点坐标,共14个。进入步骤D42。

步骤D42、将上述步骤获取的14个轮廓关键点坐标输入OpenCV三维重建模型,获得人脸上下偏转角度值pitch和左右偏转角度值yaw。

步骤D43、同时判断人脸上下偏转角度值pitch超过上下角度阈值,人脸左右偏转角度值超过左右角度阈值(此阈值根据摄像头摆放位置确定)。当上下偏转角度值pitch和左右偏转角度值yaw都没有超过相应阈值,进入步骤D44。当上下偏转角度值pitch或左右偏转角度值yaw中任意一个超过相应阈值,进入步骤D45。

步骤D44、在Q4报警队列的队尾插入0,并删除队列首位。返回步骤B。

步骤D45、在Q4报警队列的队尾插入1,并删除队列首位,进入步骤D46。

步骤D46、Q3队列求和,再判断队列的和是否大于等于该队列报警阈值5,当队列的和是否大于等于该队列报警阈值5时,进入步骤D47。当队列的和小于该队列报警阈值5时,返回步骤B。

步骤D47、进行打分心报警。返回步骤B。

需要说明的是,驾驶员不规范行为检测方法整个过程在0.05-0.1秒内完成,当然由于处理器的不同,时间不尽相同。一般人眨眼一次一般0.15秒到0.2秒。若速度过快,可能一次正常眨眼的就会达到4-5次的报警条件。所以,可以设定步骤B中获取当前驾驶位置的图片的间隔,优选为0.15秒到0.2秒。

本实施例中,四个队列报警阈值均设定为5,实际应用中每个队列报警阈值可以设置不同的值。

本实施例中,68个人脸关键点坐标在步骤F获取,这个步骤可以在进入步骤D2、步骤D3、步骤D4后分别进行。本实施例中为了节省运算将其合并。另外,若报警队列中没有需要人脸关键点坐标的话,则不需要进行这个步骤。

本实施中,当前驾驶位置的图片符合设定的报警条件时,在该报警队列的队尾插入1,并删除队列首位。当然可以采用在队首插入1,删除队尾的方式。在不符合报警条件时同样采取这样的方式,实现相同的技术效果。

变形列

上述实施例中,步骤C中,当判断不具有人脸目标时,不判定为驾驶员不规范行为,所以在每个报警队列的队尾插入0,并删除队列首位。然后返回步骤B。

但在有些特殊驾驶作业要求时,当驾驶位置拍摄不到驾驶人员脸部时,也判定为驾驶员不规范行为时,则可以再增加一个报警队列Q5。

当判断不具有人脸目标时,进入步骤E。

步骤E、在报警队列Q5的队尾插入1,并删除队列首位。然后对队列求和,再判断队列的和是否大于等于该队列报警阈值,当队列的和是否大于等于该队列报警阈值时,进行报警。返回步骤B。

当队列的和是小于等于该队列报警阈值时,返回步骤B。

以上所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

相关技术
  • 一种驾驶员不规范行为检测方法
  • 一种基于卷积神经网络的驾驶员疲劳检测方法及装置
技术分类

06120113147913