[]史上最强副驾驶——开车打瞌睡?Python叫醒你
全文共3641字 , 预计学习时长17分钟
本文插图
图源:unsplash
道路千万条 , 安全第一条!疲劳驾驶可谓交通事故几大罪魁祸首之一 , 根据美国一项研究显示 , 司机睡眠不足4小时 , 交通事故肇事几率等同于醉驾 。
为了减少疲劳驾驶现象 , 驾驶员疲劳检测应运而生 。 这是一项安全技术 , 可以预防驾驶员在驾驶过程中因疲劳而导致的安全事故 。
该Python中级项目的目的是建立一个驾驶员疲劳检测系统 , 用于检测人眼闭合时长 。 当检测到驾驶员疲劳驾驶时 , 该系统将发出警告 。
本文插图
驾驶员疲劳检测系统
本Python项目将使用OpenCV收集来自网络摄像头的图像 , 将其输入到“深度学习”模型中 , 由该模型对人眼按“睁开”或“闭合”进行分类 。 该Python项目将采取的方法如下:
第1步-从相机中获取图像作为输入 。
第2步-检测图像中的脸部并创建一个感兴趣区(ROI) 。
第3步-从ROI中检测人眼并将其输入分类器 。
第4步-分类器将按睁开或闭合对人眼进行分类 。
第5步-计算分数判断驾驶员是否处于疲劳状态 。
在学习先决条件、数据集和模型结构前 , 如果您是新手 , 建议您参考Python MasterSheet先了解Python编程语言所需的一切概念 。
先决条件
该Python项目需要一个网络摄像头 , 用于捕获图像 。 您需要在系统上安装Python(建议使用3.6版) , 然后使用pip安装所需的软件包 。
· OpenCV – 使用pip安装opencv-python(面部和眼部检测) 。
· TensorFlow – 使用pip安装tensorflow(keras使用TensorFlow作为后端) 。
· Keras – 使用pip安装keras(建立分类模型) 。
· Pygame – 使用pip安装pygame(播放警告提示音) 。
数据集
需要创建用于此模型的数据集 。 为创建数据集 , 我们编写了一个脚本来捕获摄像机中的人眼图像并将其存储在本地磁盘中 , 将人眼图像分为“睁开”或“闭合”状态两类 , 通过删除构建模型不需要的图像来手动清理数据 。
数据包括大约7000张在不同光照条件下的人眼图像 。 在数据集上训练模型后 , 我们附加了最终权重和模型结构文件“models /cnnCat2.h5” 。 现在 , 你可以使用此模型按人眼睁开还是闭合对图像进行分类 。
本文插图
图源:unsplash
模型结构
我们使用的模型是Keras通过卷积神经网络(CNN)构建的 。 卷积神经网络是一种特殊类型的深度神经网络 , 在图像分类方面表现非常出色 。
CNN基本上由一个输入层、一个输出层和一个可以包含多个层的隐藏层组成 。 通过过滤器在这些层上执行卷积运算 , 该滤波器在层和过滤器上执行2D矩阵乘法 。
CNN模型结构包括以下几层:
· 卷积层;32个节点 , 内核大小为3
· 卷积层;32个节点 , 内核大小为3
· 卷积层;64个节点 , 内核大小为3
· 完全连接层;128个节点
最后一层也是具有2个节点的完全连接层 。 在所有层中 , 除了使用Softmax的输出层外 , 均使用Relu激活函数 。
本文插图
Python项目进行驾驶员疲劳检测的步骤
从zip下载python项目源代码并提取系统中的文件:Python项目Zip文件 。
zip的目录为:
1.“haar级联文件/ cascade files”文件夹包含从图像中检测对象所需的xml文件 。 在本案例中 , 需要检测人脸和人眼 。
推荐阅读
- 驱动之家|NVIDIA:7nm安培是有史以来最强大的GPU
- Tech情报局TB|小米MIX4曝光:对标华为P40 Pro+,下半年最强安卓机皇预定?
- 壹观察|从最强到更强手机影像,华为P40 Pro+做了哪些加法?地表最强影像旗舰,再进一步!2020全球旗舰手机新高度
- 信息史上最全SpaceX火箭数据开源,核心、组员舱、起落架、发射信息全都有!
- 羽度非凡|安卓旗舰性能榜单:骁龙865依然最强王者!
- zol中关村在线|拜雅史上最强放血活动!旗舰立减2500元
- 雷科技|苹果最强Bug!千万别更新iOS,会立刻死机,目前无解
- 成都全搜索|史上首次,私人公司载人上太空!“狂人”马斯克想送100万人去火星
- 易评机|华为P40 Pro+翻车了吗?依然是地表最强拍照手机
- |京东618空调卖爆 强势发起史上最省钱空调季!