当前位置:网站首页>【系统设计与实现】基于flink的分心驾驶预测与数据分析系统
【系统设计与实现】基于flink的分心驾驶预测与数据分析系统
2022-08-02 14:09:00 【虹夭】
基于flink的分心驾驶预测与数据分析系统(GitHub仓库点击这里)
项目简介
通过flink和随机森林模型实时识别驾驶员用户是否处于警惕状态,并进行进一步数据统计和分析,将分析结果保存在hbase,并通过Websocket向用户提供实时的分析结果。 (前几年练手做的系统了,模型说实话挺扯的)
项目技术栈
后端技术栈:Flink,Flume,kafka,HBase,Mysql,Springboot
前后端通信协议:websocket(stomp),http(前端axios)
前端技术栈:Vue,Echart,ElementUI
机器学习:sklearn,pmml
项目组成
本次项目共创建三大模块:
StayAlertWeb模块:系统的Web客户端,用于展示实时的统计结果以及查询实时的用户统计数据。
StayAlertAPI模块:该模块是一个Springboot程序,用于对外提供获取持久化统计数据和实时统计数据的api接口。模拟特征数据也是通过该模块的api转发到flume和kafka中间件,然后再交由预测分析程序进行处理。
StayAlertFlink模块:该模块负责根据模拟特征数据预测用户的警惕状态,然后结合用户的个人信息进行用户个人的数据分析以及全局的数据分析。该模块 将统计结果发送到消息中间件中并持久化数据到hbase。StayAlertAPI模块可以从Kafka的消息队列中获取实时数据,也可以直接中hbase中获取持久化的数据。
数据库:本次项目使用Mysql保持用户的个人信息,并使用HBase进行统计结果的数据持久化。
业务流程:
- 模拟程序向Springboot编写的api程序发送用户模拟特征数据。
- springboot将特征数据通过Flume和Kafka的消息中间件转发给Flink预测分析程序,形成计算流。
- 通过connect操作将预测结果和用户信息数据合并。
- 预测流载入事先训练好的PMML随机森林模型进行预测。
- 程序从Mysql中定期读取用户信息数据,通过广播的形式向主干计算流发送数据
- 程序将统计结果持久化到Hbase中,然后发送到Flume和Kafka消息中间件中等待Springboot程序获取并推送给用户。
- 根据用户id分组,统计用户个人数据
- 使用窗口操作和聚合函数统计全局的数据
- Springboot向用户发送统计结果
- 从消息中间件中获取实时数据
- 从Hbase和Mysql数据库中获取持久化数据
- Web客户端先向Springboot请求一个持久化数据进行初始的页面展示,然后创建Websocket连接,获取实时的统计结果
界面
相关下载
原始数据集
分心分类模型
模型下载后放到/StayAlertSystem/StayAlertFlink/src/main/resources
目录下。
名称 | 说明 | 准确率 | 模型大小 |
---|---|---|---|
StayAlertRFC.pmml | 使用88个评估器 | 87.56% | 200MB |
LightStayAlertRFC.pmml | 使用20个评估器 | 84.46% | 45MB |
百度云 提取码:qz4x
操作文档
数据集说明
本数据集来自Kaggle的一次竞赛,数据集由福特公司提供,该数据显示了许多组“试验”的结果,每一次试验代表持续大约2分钟的驾驶数据,这些数据在道路上或驾驶模拟器中每100毫秒记录一次,数据的特征字段包括了驾驶过程中驾驶员的生理指标,某些环境指标和车辆指标,可能出于某些考虑,这些指标的实际名称和测量单位在本任务中没有披露。
字段名称 | 字段解释 |
---|---|
TrialID | 大约2分钟的连续数据的每个周期都有一个唯一的试验ID。例如,前1210次观察代表每100ms的连续观察,因此都有相同的试验ID |
ObsNum | 这是在一个试验ID内按顺序递增的数字 |
IsAlert | 如果司机是警觉的为1,否则为0 |
P1-P8 | 表示生理数据 |
E1-E11 | 代表环境数据 |
V1-V11 | 表示车辆数据 |
边栏推荐
- 2021-10-14
- Actual combat Meituan Nuxt +Vue family bucket, server-side rendering, mailbox verification, passport authentication service, map API reference, mongodb, redis and other technical points
- LLVM系列第二十七章:理解IRBuilder
- 蓝牙温度检测系统(基于BT08-B蓝牙模块)
- PyTorch⑤---卷积神经网络_卷积层
- Win11系统找不到dll文件怎么修复
- 【目标检测】YOLO v5 安全帽检测识别项目模型
- PyTorch⑥---卷积神经网络_池化层
- Do Windows 10 computers need antivirus software installed?
- LLVM系列第二十八章:写一个JIT Hello World
猜你喜欢
随机推荐
图像配置分类及名词解释
Win10电脑不能读取U盘怎么办?不识别U盘怎么解决?
win10任务栏不合并图标如何设置
Mysql连接错误解决
Pytorch(16)---搭建一个完整的模型
LeetCode2 电话号码的字母组合
NER(命名体识别)之 FLAT模型
FP5207电池升压 5V9V12V24V36V42V大功率方案
Win7怎么干净启动?如何只加载基本服务启动Win7系统
DP4344兼容CS4344-DA转换器
PyTorch⑦---卷积神经网络_非线性激活
Win10上帝模式干嘛的?Win10怎么开启上帝模式?
CS4398音频解码替代芯片DP4398完全兼容DAC解码
win10系统更新错误代码0x80244022怎么办
最小树高度
投资组合理论的简单介绍
Do Windows 10 computers need antivirus software installed?
Tensorflow常用函数
Binder ServiceManager解析
Win11没有本地用户和组怎么解决