疲勞駕駛一直是交通界的焦點與痛點,每年都有大量司機因疲勞駕駛導致傷亡。傳統的疲勞駕駛預防,大都基于司機 自身角度,通過正常的作息和合理的行車安排來提前減少疲勞駕駛發生的可能性,而未能從疲勞駕駛已經可能發生的角度及時的避免疲勞駕駛的繼續。
從這個角度出發,我們將傳統的疲勞駕駛預防與提醒方式,與人臉識別結合,設計了疲勞駕駛監測與提醒裝置。可以識別抽煙、喝水、使用手機、閉眼、睜眼、閉嘴、張嘴等行為狀態。
注:本項目為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濃度檢測,駕駛員不良行為檢測等功能,且具備了聲光震動提醒,基本符合疲勞駕駛監控系統的定位和要求。
-
傳感器
+關注
關注
2548文章
50678瀏覽量
751993 -
LCD屏
+關注
關注
0文章
122瀏覽量
15398 -
USART串口
+關注
關注
0文章
32瀏覽量
6805 -
gcc編譯器
+關注
關注
0文章
78瀏覽量
3363 -
RTThread
+關注
關注
8文章
132瀏覽量
40811
發布評論請先 登錄
相關推薦
評論