疲勞駕駛一直是交通界的焦點(diǎn)與痛點(diǎn),每年都有大量司機(jī)因疲勞駕駛導(dǎo)致傷亡。傳統(tǒng)的疲勞駕駛預(yù)防,大都基于司機(jī) 自身角度,通過正常的作息和合理的行車安排來提前減少疲勞駕駛發(fā)生的可能性,而未能從疲勞駕駛已經(jīng)可能發(fā)生的角度及時的避免疲勞駕駛的繼續(xù)。
從這個角度出發(fā),我們將傳統(tǒng)的疲勞駕駛預(yù)防與提醒方式,與人臉識別結(jié)合,設(shè)計了疲勞駕駛監(jiān)測與提醒裝置。可以識別抽煙、喝水、使用手機(jī)、閉眼、睜眼、閉嘴、張嘴等行為狀態(tài)。
注:本項目為2022中國大學(xué)生計算機(jī)設(shè)計大賽RT-Thread@中智訊物聯(lián)網(wǎng)專項賽參賽作品。項目已在github上整體開源,賽后將在本論壇整體開源,這里只做部分代碼及流程解釋。
使用平臺:RTT—DracoAI套件
模型部署插件:RT-AK
代碼編寫工具:RT-Thread Stdio 2.1.5
我就不按比賽要求寫那種產(chǎn)品介紹類的東西了,技術(shù)平臺直接上干貨,模型部分使用yolo-fastest,模型流程圖如下
使用RT-AK進(jìn)行部署
基礎(chǔ)運(yùn)行命令
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做監(jiān)控串口,SPI1(wifi),以及co2傳感器使用的i2c。setting中配置圖如下
接下來就是軟件包的包含,使用了sgp30和gps_rmc,rw007驅(qū)動軟件包會自動包含,具體配置不做贅述(rw007驅(qū)動記得改頻率不然用不了),會在整體開源后補(bǔ)充。
這里展示以下部分代碼流程截圖,首先進(jìn)行硬件初始化和模型初始化
之后為了保證流暢運(yùn)行,各外設(shè)進(jìn)行了多線程的創(chuàng)建和處理
這里遇到了一個神奇的bug,將攝像頭采集的圖片裁剪后放入kpu中會倒是kpu的圖像失敗
只有不裁剪的240*320圖片直接進(jìn)入kpu中才能完美顯示,這里重寫了一個image_seg函數(shù)解決了這個問題,進(jìn)入模型進(jìn)行運(yùn)算并對運(yùn)算結(jié)果進(jìn)行處理
之后就是屏幕顯示onenet上傳圖片巴拉巴拉的就可以了,上傳圖片使用了http post,onenet自己的那個軟件包不好用,這里就不贅述了。模型各類別的準(zhǔn)確度如下圖
因為抽煙這樣的行為在屏幕中表現(xiàn)的實(shí)在是太小了,準(zhǔn)確度相較于其他略有下降,在RTT-Draco上的運(yùn)行時間約為360ms。這里沒有辦法插入視頻,就從視頻里截了一張識別的效果圖。
到此,該項目完成了車輛定位,車內(nèi)co2濃度檢測,駕駛員不良行為檢測等功能,且具備了聲光震動提醒,基本符合疲勞駕駛監(jiān)控系統(tǒng)的定位和要求。
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753083 -
LCD屏
+關(guān)注
關(guān)注
0文章
122瀏覽量
15422 -
USART串口
+關(guān)注
關(guān)注
0文章
32瀏覽量
6818 -
gcc編譯器
+關(guān)注
關(guān)注
0文章
78瀏覽量
3380 -
RTThread
+關(guān)注
關(guān)注
8文章
132瀏覽量
40861
發(fā)布評論請先 登錄
相關(guān)推薦
評論