社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

基于深度学习检测驾驶员的走神行为

机器学习AI算法工程 • 3 年前 • 454 次点击  


向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程   公众号:datayx


项目背景

我们经常遇到这样的场景:一盏灯变成绿色,你面前的车不走。另外,在没有任何意外发生的情况下,前面的车辆突然减速,或者转弯变道。等等这些现象,给道路安全带来了很大的影响。


那么造成这样现象的原因是什么,主要有因为司机疲劳驾驶,或者走神去做其他事情,想象身边的例子,开车时候犯困,开始时候打电话,发短信,喝水,拿后面东西,整理化妆的都有。这对道路安全和行车效率形成了极大的影响。




据中国安全部门介绍,五分之一的车祸是由司机分心引起的。令人遗憾的是,这样一来,每年有42.5万人受伤,3000人因分心驾驶而死亡。

我们希望通过车内摄像机来自动检测驾驶员走神的行为,来改善这一现象,并更好地保证客户的安全。


问题描述

我们要做的事情,就是根据车内摄像机的画面自动检测驾驶员走神的行为。如果是安全驾驶则一切正常,如果有走神行为,给予警报提醒。


驾驶员可能存在的走神的行为,大概有如下几种,左右手用手机打字,左右手用手持方式打电话,调收音机(玩车机),喝饮料,拿后面的东西,整理头发和化妆,和其他乘客说话。

侦测的准确率accuracy就是衡量解决这个问题好坏的重要指标。



全部代码,论文获取方式:

关注微信公众号 datayx  然后回复 驾驶员 即可获取。



输入数据集

输入数据集来自Kaggle 下载地址如下:

https://www.kaggle.com/c/state-farm-distracted-driver-detection/data

下载下来解压后有3个文件

- driver_imgs_list.csv.zip (92.89K)

- imgs.zip (4G)  所有的图片数据, 解压后

        - train (训练集数据)

               - c0 ~ c9 分别表示不同状态的训练集

        - test (测试集数据,用于提交Kaggle比赛的测试集)

- sample_submission.csv.zip (206.25K) Kaggle比赛需要提交的样本

 

下面是10种状态下每个状态的示例图片:图片大小 640x480





其中 driver_imgs_list.csv.zip 的是对分类标号和人分类编号的csv文件。这个csv表格有三列

-       subject:人的ID,不同的人,这个值不同

-       classname:状态,c0 ~ c9

-       img:图片名称

 

解决方法

这是一个分类器分为,预测的时候是将图片进行归类 C0~C9

首先,第一步,对图片进行预处理,保留有用的部分

第二步,将train数据,划分为训练和验证集,

第三步,建模调参,首先采用迁移学习(transfer learning) 的方式,对imagenet上的已经训练好的模型拿过来,只对以已经预测过的数据做全连接层的训练。在验证集上看精度accuracy. 然后尝试改造模型和自己建模,在验证集上看精度accuracy

第四步,选择最高精度accuracy的模型和参数,生成Kaggle测试集提交文件,手动拿出 20个数据开人眼判断是否正确



基准模型

我用ImageNet上已经成熟的模型来做基准模型来和我的计算结果做对比。

       我选择选择 ResNet50 的去掉原有全连接层之后,自己训练全连接层来做为基准模型。我基于这个基准模型再做改进。

       我的目标是 accuracy > 0.93 并且 logloss < 1.0 并且世界排名前 1/3



评估指标

这是典型的分类问题,评估指标采用

  1. 1.    精度accuracy来评估结果好坏。

  2. 2.    Logloss的评估方式,这也是kaggle比赛的评估方式



对比这两种方案。Accuracy对于判断正确和错误的比重是一样的,也就是对了就多一个,错了就少一个,最终看正确的百分比


logloss的评估方式对判断是不是是有明显的方法,如果正确了,Pij=1 => log(Pij)=0, Pij=0.999 => log(Pij)=-0.001。最后增加的log差不多。但如果判断错误,如 Pij=0 => log(Pij) = -无穷。Pih=0.001 => log(Pij)=-6.9 也就是判断错误一个,对等分影响会非常大。

   我认为,在accuray>0.95的情况下,看logloss更有意义。


多模型融合

对比各个模型的运行结果如下,参数都是




新的模型把 ResNet,InceptionV3 和 Xception 混合起来做,从而完成最终模型



新的模型把 ResNet,InceptionV3 和 Xception 的去掉全链接层的结果混合起来,然 后重新用神经网络训练全链接层。最后的在 Adam 优化器下迭代 10 轮之后 (使用混合模型运行在 tensorboard 下的图表如下:)



可见,loss,Accuracy 都处于收敛状态,停止时机比较合适

最终结果如下:
loss: 0.0317 - acc: 0.9995 val_loss: 0.2900 - val_acc: 0.9345


本地验证结果看:
验证集 Loss:0.3615验证集 Accuracy:0.9314

将结果提交到 Kaggle,得到的分数是:
Public Score: 0.25778 排名: 148 / 1440 (top 20%)Private Score: 0.29588 排名: 189 / 1440 (top 20%)

由于比赛上不评估 Accuracy,所以只拿 LogLoss 来做世界排名对比 其结果对比起基准模型



机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码




阅读过本文的人还看了以下文章:


TensorFlow 2.0深度学习案例实战


基于40万表格数据集TableBank,用MaskRCNN做表格检测


《基于深度学习的自然语言处理》中/英PDF


Deep Learning 中文版初版-周志华团队


【全套视频课】最全的目标检测算法系列讲解,通俗易懂!


《美团机器学习实践》_美团算法团队.pdf


《深度学习入门:基于Python的理论与实现》高清中文PDF+源码


《深度学习:基于Keras的Python实践》PDF和代码


特征提取与图像处理(第二版).pdf


python就业班学习视频,从入门到实战项目


2019最新《PyTorch自然语言处理》英、中文版PDF+源码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


PyTorch深度学习快速实战入门《pytorch-handbook》


【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》


《Python数据分析与挖掘实战》PDF+完整源码


汽车行业完整知识图谱项目实战视频(全23课)


李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材


笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!


《神经网络与深度学习》最新2018版中英PDF+源码


将机器学习模型部署为REST API


FashionAI服装属性标签图像识别Top1-5方案分享


重要开源!CNN-RNN-CTC 实现手写汉字识别


yolo3 检测出图像中的不规则汉字


同样是机器学习算法工程师,你的面试为什么过不了?


前海征信大数据算法:风险概率预测


【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类


VGG16迁移学习,实现医学图像识别分类工程项目


特征工程(一)


特征工程(二) :文本数据的展开、过滤和分块


特征工程(三):特征缩放,从词袋到 TF-IDF


特征工程(四): 类别特征


特征工程(五): PCA 降维


特征工程(六): 非线性特征提取和模型堆叠


特征工程(七):图像特征提取和深度学习


如何利用全新的决策树集成级联结构gcForest做特征工程并打分?


Machine Learning Yearning 中文翻译稿


蚂蚁金服2018秋招-算法工程师(共四面)通过


全球AI挑战-场景分类的比赛源码(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在线识别手写中文网站


中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程



不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  





Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132028
 
454 次点击