疲劳驾驶预警系统项目知识点整理

参考:

Dlib模型之驾驶员疲劳检测三(瞌睡点头)_疲劳检测 点头-CSDN博客

python毕业设计 深度学习疲劳检测 驾驶行为检测 - opencv cnn_疲劳驾驶算法-CSDN博客

1.数据集使用什么?

使用开源的人脸数据库训练集模型dlib

该系统采用Dlib库中人脸68个关键点检测shape_predictor_68_face_landmarks.dat的dat模型库及视频中的人脸,之后返回人脸特征点坐标、人脸框及人脸角度等。

2.dlib有什么好处?

2.系统的核心功能?

随着计算机视觉检测技术在汽车驾驶安全领域的广泛应用,驾驶员疲劳特征识别需要突破传统小部分特征识别上的局限性和单一性。

为此,设计了一种基于OpenCV的驾驶员疲劳特征识别系统。

该识别系统以树莓派为处理核心,利用摄像头获取所需的检测数据,综合分析驾驶员眼动,嘴型及头部姿势特征,进行疲劳判断。

若处于疲劳驾驶状态,则用语音播放方式发出警告。

该系统通过多次调试验证,实时监测驾驶员的驾驶状态,能更加全面,高效识别驾驶员是否属于疲劳驾驶。

2.疲劳驾驶预警系统的核心功能?

  1. 识别出驾驶员姓名
  2. 分别通过Blinks,Yawning,Nod来表示驾驶员的眨眼,打哈欠,点头数
  3. 正常的睁眼闭眼不会被计入,疲劳状态的半睁半闭Blinks+1
  4. 左右查看车况,抬头不会误计入
  5. 当连续低头超过2s,或者当连续闭眼超过2会自动报警,并存入抓拍图片。

4.68个关键点来识别人脸:眉毛轮廓,双眼轮廓,鼻子轮廓,嘴巴轮廓,脸颊轮廓

5.实际检测数通过索引找到每个点在做什么事情

6.基本流程:

  • 先做关键点的定位:首先找到人脸轮廓位置face_detection,然后找到人脸上的各个点相对于轮廓的位置land_mark
  • 使用dlib人脸识别库:加载人脸检测工具,创建检测68个关键点的检测器,读入数据,检测到多张人脸
  • 使用cv2包提取出一个矩形
  • 计算各个部位关键点的凸包

如何检测眨眼、打哈欠?

  • 闭眼检测,提取人眼部分的点。通过论文提出的EAR值。EAR越大,睁眼;EAR越小,闭眼。用欧式距离。
  • 计算视频中每一帧的眼睛纵横比EAR值,当EAR值小于0.2并且连续3帧时,计一次blink
  • 类似方法计算哈欠数,嘴巴纵横比,Yawn为打哈欠的帧数,N为1 min内总帧数,设双阈值法哈欠检测的阈值为10%,当打哈欠频率Freq>10%时,则认为驾驶员打了1个深度哈欠或者至少连续2个浅哈欠,此时系统进行疲劳提醒。

如何检测瞌睡点头?

基于HPE(Head Pose Estimation)算法的点头检测算法步骤:

  1. 2D人脸关键点检测:加载人脸检测和姿势模型估计
  2. 3D人脸模型匹配:目的是得到世界坐标系中人的点,通过算法对不同的人脸拟合出不同的3D人脸模型,3DMM。
  3. 求解3D点和对应2D点的转换关系:世界坐标系通过旋转平移到相机坐标系,相机坐标系通过透视投影转换到图像坐标系,3D转换到2D,最后图像坐标系转换为像素坐标系。
  4. 判断是否点头:主要是判断旋转角,由于瞌睡时主要考虑pitch俯仰角和roll旋转角,在一个时间段内10 s内,当IPitchI≥20°或者|Rolll≥20°的时间比例超过0.3时 ,就认为驾驶员处于打瞌睡的状态,发出预警。

检测过程中需要使用世界坐标系(UVW)、相机坐标系(XYZ)、图像中心坐标系(uv)和像素坐标系(xy)。

一个物体相对于相机的姿态可以使用旋转矩阵和平移矩阵来表示。

7.pytorch和OpenCV有什么区别?

  • OpenCV是计算机视觉库,用于处理大量图像数据和视频数据;pytorch是深度学习框架,需要对深度学习原理有一定的了解从而构建和训练神经网络模型。
  • pytorch适合于构建和训练神经网络模型而OpenCV适合于视频处理和图像处理。
  • OpenCV主要用于实时场景:如视频处理,人脸识别等,而pytorch主要用于离线场景:比如数据分析,模型构建等。
  • 都是很好的工具,要根据不同的需求选用。
相关推荐
盼小辉丶18 分钟前
图机器学习(11)——链接预测
人工智能·机器学习·图机器学习
CareyWYR1 小时前
每周AI论文速递(250714-250718)
人工智能
想要成为计算机高手1 小时前
9. isaacsim4.2教程-ROS加相机/CLOCK
人工智能·机器人·ros·仿真·具身智能·isaacsim
Elastic 中国社区官方博客1 小时前
AI 驱动的仪表板:从愿景到 Kibana
大数据·数据库·人工智能·elasticsearch·搜索引擎·全文检索·kibana
西柚小萌新1 小时前
【大模型:知识图谱】--6.Neo4j DeskTop安装+使用
人工智能·知识图谱
杨小扩2 小时前
开发者进化论:驾驭AI,开启软件工程新纪元
人工智能·软件工程
请站在我身后2 小时前
无声视频自动配音效,开源模型thinksound 和mmaudio复现
人工智能·深度学习·算法·计算机视觉·aigc
咖啡星人k2 小时前
PandaWiki与GitBook深度对比:AI时代的知识管理工具,选谁好?
人工智能·深度学习·神经网络
往日情怀酿做酒 V17639296382 小时前
深度学习和神经网络的介绍
人工智能·深度学习·神经网络
码狂☆2 小时前
LLaMA.cpp HTTP 服务参数: --pooling 嵌入模型 池化类型详解
人工智能