✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、疲劳驾驶检测简介

0 引 言
随着汽车数量的急剧增加,交通安全成了一个重要的问题. 其中,疲劳驾驶是造成交通安全事故的主要因素之一.此外,高速公路网络日趋发达,汽车性能不断提高,驾驶人员在一个舒适的驾驶条件和环境中,更容易产生疲劳. 因此,研究一种实时有效的驾驶人员疲劳状态实时监测及预警技术具有重要的现实意义.
1 疲劳驾驶检测方法
目前,关于疲劳驾驶的检测方法主要有 3 类: 基于驾驶人员生理参数的检测,基于驾驶人员行为特征的检测以及基于车辆行为特征的检测.

  1. 基于驾驶人员生理参数的检测方法,主要是利用医疗器械,采集驾驶人员的生理特征信息,再据此进行疲劳判断. 由于人的生理特征能够直接反应其疲劳状态,所以该方法具有极高的准确率. 然而,该方法在应用中需要采用接触式检测装置,且设备成本较高,不利于实际应用.
  2. 基于驾驶人员行为特征的检测方法,主要是利用图像处理和模式识别技术,通过检测人体在疲劳状态时的反应特征,从而进行疲劳判断. 由于人的面部表情特征,能够很直接地表现其疲劳状态,因此该方法具有较高的准确率,且因其是一种非接触式检测技术,所以其实用性较高. 然而,图像处理的手段与方法会使其计算量较大,运算时间较长或设备
    成本较高.
  3. 基于车辆行为特征的检测方法,主要借助车载传感器,采集当前车辆的运行特征信息,并据此分析驾驶人员的疲劳状态. 由于驾驶人员疲劳时,其控制力下降,导致车辆的运行特征与清醒时不一致,因而有一定的准确率. 因为该方法是根据车辆自身数据进行检测,此可大幅度降低检测设备的成本. 同 时,该方法也是采用非接触式检测方式,有一定实用性. 但该方法容易受到路况等外界因素影响,其检测的准确率不高.
    综上所述,基于驾驶人员行为特征的检测方法具有更好的实用性. 据此,本研究也采用该方法,并以驾驶人员的眼睛作为研究对象,设计了一种改进的检测方法,在减少图像处理计算量的情况下,能够有较高的准确性.

2 眼睛定位及跟踪
本研究中的眼睛定位主要分为 2 个步骤: 眼睛粗定位与眼睛精确定位. 眼睛粗定位,是为了将图像中包含眼睛的人脸部分,从复杂的背景中提取出来;眼睛精确定位,将图像中的眼睛提取出来.目前,对于眼睛定位的方法有很多,比如,模版匹配,利用人的肤色等. 然而,这些方法的计算量都比较大,且受干扰的因素多. 为此,本研究先利用积分投影进行眼睛粗定位,再通过差分投影和形态学方法进行眼睛精确定位. 这样做可以大量简化计算
的复杂度,并提高定位准确度. 此外,由于每一帧图像采集的间隔时间小,所以相邻两帧人眼的位置变化不大,可采用人眼跟踪的办法估计人眼位置,进一步减少计算量.
2.1 眼睛粗定位
假设 I( x,y) 表示图像中某点的灰度值,则其垂直与水平投影函数为,
在这里插入图片描述
由于图像的灰度信息是一些离散量,因此,垂直与水平投影函数可以转换为,
在这里插入图片描述
对应于人的头发( 即 X 坐标为 0 的位置) ,最高峰和次高峰分别对应于人的鼻子和额头. 经过垂直投影和水平投影后可以得到一个矩形区域如图 2 所示.
在这里插入图片描述
图 2 局部人脸图
显然,人眼一定会在该矩形区域中. 由此,完成眼精粗定位. 通过具体实验发现,利用图像投影计算求得局部人脸区域,具有鲁棒性好和速度快的优点.
2.2 眼睛精确定位
由于眼睛周围灰度值的变化比较显著,因此本研究利用差分投影进一步缩小眼睛的范围. 此外,在眼睛周围,瞳孔的灰度值最小,可根据最小灰度值取一个合理的阈值,将局部图像二值化,再采用形态学方法,得到眼睛的连通区域,从而实现眼睛的精确定位.
假设 I( x,y) 表示图像中某点的灰度值,则差分垂直与水平投影函数为
在这里插入图片描述
假设 I( x,y) 表示经过差分投影后的眼睛图像中某点的灰度值,则其阈值为,
Th = minI( x,y) + T ( 7)
根据式( 5) 与式( 6) ,可以在如图 2 所示的局部人脸图中计算得到局部的差分投影,再根据四邻域寻找变化最大的位置,从而得到如图 3 所示的精确眼睛定位图. 根据式( 7) 进行二值化,再利用形态学原理求得眼睛的连通区域后可以得到如图 4 所示的二值化眼睛图.
在这里插入图片描述
2.3 眼睛跟踪
显然,如果每一帧图像都经过上述步骤进行定位的话,其计算量将会十分巨大. 由于每一帧图像的采集间隔时间小,眼睛的位置变化不会很大,因而,根据这一特点采用眼睛跟踪定位的方法,会大幅度减少不必要的计算,提高计算效率.
3 眼睛状态识别
如图 5 所示,随着眼睛的闭合,检测到的眼睛宽度与眼睛高度之比随之在增加.根据检测到的眼睛二值图中的眼睛宽高比,可以判断出当前眼睛的状态. 然后,采用 PERCLOS 方法作为驾驶员的疲劳程度指标. PERCLOS 的原理是,通过检测一定时间内眼睛闭合时间所占的比例,来判断驾驶员的疲劳程度.

⛄二、部分源代码

%%
% 基于人眼的疲劳检测
% 实践报告要求:
% 1、使用手机相机拍摄人脸部分;
% 2、利用算法把双眼部分取出来;
% 3、做相关特征提取;
% 4、制定睡意疲劳检测的规则;
% 5、验证规则的正确性。
%完 成 人:唐门
%完成时间:2021.5
clc;clear all;
%% 读取图像
Img=‘test.jpg’; % 输入图像的路径
Origin=imread(Img);

%% 人脸部分提取
Face_area = FaceRecogition(Origin);
figure(‘name’,‘人脸识别图’);imshow(Face_area);

%% 人眼部分提出
Gray=rgb2gray(Face_area);
BW=im2bw(Gray,60/255);
figure(‘name’,‘二值图’);imshow(BW);
Eye_area=EyeRecogition(BW);
figure(‘name’,‘眼部图’);imshow(Eye_area);

%% 睁眼开度计算
OpenPercentage = OpenRecogition(Eye_area);

end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 陈诗礼.雷霖.赵永鑫.基于行为特征的疲劳驾驶检测技术研究[J].成都大学学报(自然科学版). 2014,33(01)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐