基于RTT-Draco的疲劳驾驶监控系统设计案例

疲劳驾驶一直是交通界的焦点与痛点,每年都有大量司机因疲劳驾驶导致伤亡。传统的疲劳驾驶预防,大都基于司机 自身角度,通过正常的作息和合理的行车安排来提前减少疲劳驾驶发生的可能性,而未能从疲劳驾驶已经可能发生的角度及时的避免疲劳驾驶的继续。
从这个角度出发,我们将传统的疲劳驾驶预防与提醒方式,与人脸识别结合,设计了疲劳驾驶监测与提醒装置。可以识别抽烟、喝水、使用手机、闭眼、睁眼、闭嘴、张嘴等行为状态。
注:本项目为2022中国大学生计算机设计大赛rt-thread@中智讯物联网专项赛参赛作品。项目已在github上整体开源,赛后将在本论坛整体开源,这里只做部分代码及流程解释。
使用平台:rtt—dracoai套件
模型部署插件:rt-ak
代码编写工具:rt-thread stdio 2.1.5
我就不按比赛要求写那种产品介绍类的东西了,技术平台直接上干货,模型部分使用yolo-fastest,模型流程图如下
使用rt-ak进行部署
基础运行命令python aitools.py --project= --model= --model_name= --platform=k210 --clear
示例$ d:projectedge-airt-akrt_ai_tools>python aitools.py --project=d:projectk210_demok210_rthread_bsp --model=.modelsmnist.tflite --model_name=mnist --platform=k210 --embed_gcc=d:projectk210_third_toolsxpack-riscv-none-embed-gcc-8.3.0-1.2bin --dataset=.platformsplugin_k210datasetsmnist_datasets
部署成功示意图
在rt-thread stdio中工程目录下更新软件包,将会使用到lcd,camera,usart做监控串口,spi1(wifi),以及co2传感器使用的i2c。setting中配置图如下
接下来就是软件包的包含,使用了sgp30和gps_rmc,rw007驱动软件包会自动包含,具体配置不做赘述(rw007驱动记得改频率不然用不了),会在整体开源后补充。
这里展示以下部分代码流程截图,首先进行硬件初始化和模型初始化
之后为了保证流畅运行,各外设进行了多线程的创建和处理
这里遇到了一个神奇的bug,将摄像头采集的图片裁剪后放入kpu中会倒是kpu的图像失败
只有不裁剪的240*320图片直接进入kpu中才能完美显示,这里重写了一个image_seg函数解决了这个问题,进入模型进行运算并对运算结果进行处理
之后就是屏幕显示onenet上传图片巴拉巴拉的就可以了,上传图片使用了http post,onenet自己的那个软件包不好用,这里就不赘述了。模型各类别的准确度如下图
因为抽烟这样的行为在屏幕中表现的实在是太小了,准确度相较于其他略有下降,在rtt-draco上的运行时间约为360ms。这里没有办法插入视频,就从视频里截了一张识别的效果图。
到此,该项目完成了车辆定位,车内co2浓度检测,驾驶员不良行为检测等功能,且具备了声光震动提醒,基本符合疲劳驾驶监控系统的定位和要求。

中国电科与哈工大签署战略合作协议
EUV极紫外光时代步伐渐近 或将迎来250瓦EUV光源
夏季电气防火需重视,智慧用电系统来帮你
苹果13.3寸笔记本电脑怎么样
AMD将发布嵌入式APU处理器
基于RTT-Draco的疲劳驾驶监控系统设计案例
三款电子节能灯电路图详解
捷豹XF车灯升级LED透镜方案的详细说明
结合8D报告来分析一下SMT贴片加工中的反作用
你对于AI的分类与演进了解吗
中国移动打造全国领先5G应用“样板房”,领跑全国5G客户新发展
Q&A | 关于信号发生器的扫频功能,您了解多少?
AI设施正在为政企数字化转型注入新动能
OPPO Find X:全球第一款10G运存的手机,究竟是噱头还是实用?
如何降低嵌入式触摸显示器的亮度?
用户语音业务异常的问题处理
顺丰航空正式引进了一架B757-200型全货机
智能手机并不是唯一一个被中国企业主导的市场
破碎机轴承位磨损的原因有哪些
国虹、鼎瑄、比亚迪技术联合,推新一代长动力手机