電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>致命事故風(fēng)險(xiǎn)緩解(FARM)開源分享

致命事故風(fēng)險(xiǎn)緩解(FARM)開源分享

2023-01-30 | zip | 0.19 MB | 次下載 | 免費(fèi)

資料介紹

描述

根據(jù)美國(guó)國(guó)家公路交通安全管理局 (NHTSA)最新的汽車事故和死亡數(shù)據(jù),2020 年美國(guó)死亡人數(shù)超過(guò) 38,000 人,為 2007 年以來(lái)的最高水平。2021 年估計(jì)超過(guò) 40,000 人。

poYBAGPXHYWAMq_8AAIqBk4penk668.png
2021 年的估計(jì)甚至高于 2020 年。
?

根據(jù)美國(guó)國(guó)家公路交通安全管理局 (NHTSA) 的說(shuō)法,在 45% 的致命事故中,乘用車司機(jī)至少有以下一種危險(xiǎn)行為:超速、酗酒或未系安全帶(2023 年 1 月 13 日更新:前幾天我在收音機(jī)里聽說(shuō)激進(jìn)駕駛也是事故的一個(gè)因素,所以我在我的項(xiàng)目中添加了另一個(gè)傳感器?。?/font>

借助 Edge Impulse 對(duì)象檢測(cè)模型和 Blues Wireless Notecard,我們可以利用機(jī)器學(xué)習(xí)和無(wú)線物聯(lián)網(wǎng)的力量來(lái)幫助減輕這些危險(xiǎn)行為!

我將此項(xiàng)目稱為致命事故風(fēng)險(xiǎn)緩解 (FARM) 。這是車隊(duì)管理能力的概念證明:確定您的團(tuán)隊(duì)中誰(shuí)在駕駛車輛,他們是否系好安全帶,他們是否以安全速度行駛,是否在車內(nèi)檢測(cè)到酒精,以及(更新)他們是否激進(jìn)駕駛(急加速和/或急剎車)。這一切都可以使用在 Raspberry Pi 4 上運(yùn)行的 Edge Impulse 對(duì)象檢測(cè)模型、Raspberry Pi 相機(jī)、在 Raspberry Pi HAT 上運(yùn)行的 Blues Wireless Notecard、DFRobot MQ-3 氣體傳感器(更新)和 Seeed Studio 來(lái)完成Grove LIS3DHTR 3 軸加速度計(jì)。該裝置可以通過(guò)車輛的 12V 電源(即點(diǎn)煙器)甚至電池組供電。

該項(xiàng)目的第一步是創(chuàng)建模型,為此我需要數(shù)據(jù)。我在外出開車時(shí)使用 Raspberry Pi 和相機(jī)拍了數(shù)百?gòu)堈掌晕矣幸恍┱鎸?shí)的樣本來(lái)展示模型會(huì)看到的東西。我收集了大約 300 張我在一天中不同時(shí)間系好安全帶駕駛的照片,以及不同日照量來(lái)改變輸入。這是我為捕獲這些圖像而開發(fā)的簡(jiǎn)短 Python 腳本:

import os
import time

FRAMES = 200
TIMEBETWEEN = 6

frameCount = 0
while frameCount < FRAMES:
    imageNumber = str(frameCount).zfill(7)
    os.system("raspistill -o image%s.jpg"%(imageNumber))
    frameCount += 1
    time.sleep(TIMEBETWEEN - 6) #Takes roughly 6 seconds to take a picture

獲得圖像后,我將批量上傳到我的 Edge Impulse 項(xiàng)目中。可以在此處找到該項(xiàng)目的公共版本然后是乏味的工作:貼標(biāo)簽。幸運(yùn)的是,Edge Impulse 能夠在其框架內(nèi)標(biāo)記每個(gè)圖像,從而使這變得非常簡(jiǎn)單。對(duì)于每張圖片,我在我的臉周圍畫了一個(gè)邊界框,在肩部區(qū)域附近畫了一個(gè)邊界框,顯示系好安全帶(但也有一些背景表明我系了安全帶)。

pYYBAGPXHYiARz9XAAFDv08TfGI501.png
給每張照片貼標(biāo)簽很乏味,但 Edge Impulse 環(huán)境讓這一切變得簡(jiǎn)單。
?

在所有圖像都貼上標(biāo)簽后,我開始了 Impulse Design 過(guò)程。在大多數(shù)情況下,我保留了 Edge Impulse 推薦的默認(rèn)參數(shù)。如前所述,我使用了對(duì)象檢測(cè)框架。因?yàn)槲沂褂玫氖?Raspberry Pi 4,所以我并不過(guò)分關(guān)心模型大小。我使用了 320x320 RGB 輸入圖像,并使用遷移學(xué)習(xí)在由 Edge Impulse 專家之一導(dǎo)入的 YOLOV5 數(shù)據(jù)集上訓(xùn)練了 50 個(gè)訓(xùn)練周期。還有一個(gè)社區(qū) YOLOV5 模型也可以使用。該模型的精度得分為 98.3%,推理時(shí)間為 272 毫秒。模型大小為 3.5 MB,因此有足夠的空間容納 Raspberry Pi 4。

poYBAGPXHYqAESjhAAA0VRTi99U713.png
模型的精確度得分很高!
?

然后我將模型部署為 Linux (ARM V7).eim 文件。

pYYBAGPXHYyAMW4JAAB8W9kf6ow029.png
我將模型部署為 Linux .eim 文件。
?

由于我過(guò)去曾使用 .eim 文件完成項(xiàng)目,因此我利用該經(jīng)驗(yàn)開發(fā) Python 代碼來(lái)加載模型、讀取圖像、對(duì)這些圖像進(jìn)行分類,然后對(duì)推理結(jié)果采取行動(dòng)(在本例中發(fā)送數(shù)據(jù)到 Blues Wireless Notehub.io)。Python 腳本可以在我的 github 上看到,該項(xiàng)目有一個(gè)鏈接(請(qǐng)參閱代碼部分)。

永遠(yuǎn)不會(huì)滿足,一旦我啟動(dòng)并運(yùn)行我的代碼,我決定在設(shè)置中添加一個(gè)酒精傳感器,看看我是否可以檢測(cè)到車內(nèi)是否存在酒精。我有一個(gè)一年前購(gòu)買的 DFRobot 重力氣體傳感器 (MQ3),并為這個(gè)項(xiàng)目回收了它。大多數(shù) MQ3 傳感器都是 5V 和模擬的,這在 Raspberry Pi 上表現(xiàn)不佳。然而,DFRobot 重力傳感器具有 I2C 接口,可承受 3.3V 和 5V,因此連接到 Raspberry Pi 非常容易(沒(méi)有 5V 到 3.3V TTL,也沒(méi)有 ADC)。

為了測(cè)試我的代碼,我將 Raspberry Pi(帶有 HAT)攝像頭、酒精傳感器、(更新)和加速度計(jì)安裝到我汽車的儀表板上,并將其插入 12V 電源:

pYYBAGPXHZaAeiArAAunJrwDjXI786.jpg
使用 Notecard Pi 載體、相機(jī)和氣體傳感器安裝 Raspberry Pi。
?

我還連接了一個(gè)小型便攜式顯示器和 USB 鍵盤/鼠標(biāo),這樣我就可以看到何時(shí)獲得 GPS 衛(wèi)星定位(每次關(guān)閉 Notecard 電源時(shí),都必須重新獲取衛(wèi)星)。一旦我獲得了 GPS 位置,我就開車四處轉(zhuǎn)轉(zhuǎn)。我設(shè)置了我的代碼,以便每 2 分鐘發(fā)送一次帶有駕駛員 ID 信息的注釋,如果他們系好安全帶,如果檢測(cè)到酒精,(更新)以及激進(jìn)加速和制動(dòng)的計(jì)數(shù)速度和 GPS 信息由 Notecard 以預(yù)定的時(shí)間間隔自動(dòng)發(fā)送(在我的例子中,我將其設(shè)置為每 20 秒一次以獲得精細(xì)的位置和速度數(shù)據(jù))。

筆記被發(fā)送到 Blues Wireless Notehub.io。您可以在下面看到發(fā)送到Notehub.io的示例注釋

poYBAGPXHZqAAbQyAAG6y7fYWIQ743.png
來(lái)自 Notehub.io 的示例注釋捕獲推理和位置/速度信息
?

然后我按照 Blues Wireless 的優(yōu)秀教程創(chuàng)建了一條通往Datacake的路線,在那里我可視化了 Notes 中感興趣的數(shù)據(jù):位置信息的緯度和經(jīng)度、駕駛員姓名、速度、安全帶信息、檢測(cè)到的酒精數(shù)據(jù)(靜態(tài)和趨勢(shì)) ,(更新)和攻擊性駕駛的計(jì)數(shù)下面是 Datacake 儀表板配置選項(xiàng)卡中的有效載荷解碼器代碼:

function Decoder(request) {
    
    var data = JSON.parse(request.body);
    var device = data.device;
    
    var file = data.file;
    
    var decoded = {};
    
    decoded.pi_location = "(" + data.where_lat + "," + data.where_lon + ")";
    //detect excessive speed, convert to mph, 30 mph for test purposes
    //recommend higher (80 mph?) to detect excessive speeding
    if ( (data.body.velocity * 2.23694) > 30.0 )
    {
        decoded.max_velocity = data.body.velocity * 2.23694;
    }   
    
    if (file === "locations.qos") {
        
        decoded.voltage = data.body.voltage;
        decoded.motion = data.body.motion;
        decoded.seconds = data.body.seconds;
        
    } else if (file === "_session.qo") {
        
        decoded.voltage = data.voltage;

    } else if (file === "sensors.qo") {
        
        // custom application code
        decoded.faceID = data.body.faceID;
        decoded.confidence = data.body.confidence;
        decoded.seatbelt = data.body.seatbelt;
        decoded.alcohol_detected = data.body.alcohol_detected;
        //new aggressive driving data (hard acceleration and braking)
        decoded.num_hard_accel = data.body.num_hard_accel; 
        decoded.num_hard_brake = data.body.num_hard_brake;
        decoded.time = data.when;
    }
    
    if (("tower_lat" in data) && ("tower_lon" in data)) {
        decoded.tower_location = "(" + data.tower_lat + "," + data.tower_lon + ")";
    }
    if (("where_lat" in data) && ("where_lon" in data)) {
        decoded.device_location = "(" + data.where_lat + "," + data.where_lon + ")";
    }
    
    decoded.rssi = data.rssi;
    decoded.bars = data.bars;
    decoded.temp = data.temp;
    decoded.orientation = data.orientation;
    decoded.card_temperature = data.body.temperature;
    
    // Array where we store the fields that are being sent to Datacake
    var datacakeFields = []
    
    // take each field from decodedElsysFields and convert them to Datacake format
    for (var key in decoded) {
        if (decoded.hasOwnProperty(key)) {           
            datacakeFields.push({field: key.toUpperCase(), value: decoded[key], device: device})
        }
    }      
    
    // forward data to Datacake
    return datacakeFields;
    
}

Datacake 在可視化數(shù)據(jù)方面做得很好,如下所示:

pYYBAGPXHZ-ASXiYAAE2fW5VuxY732.png
我既不能確認(rèn)也不能否認(rèn)我在(停放的)車?yán)锖攘似【苼?lái)捕捉酒精趨勢(shì)。
?

儀表板識(shí)別駕駛員,如果他們系了安全帶,車速(可以設(shè)置一個(gè)閾值,所以你只看到他們是否超速),安全帶趨勢(shì)(如果他們?cè)谡麄€(gè)駕駛過(guò)程中都系著安全帶),檢測(cè)到酒精趨勢(shì)(和上次讀數(shù))、地圖上的位置信息、(更新)以及駕駛員加速和猛踩剎車的次數(shù)。如果您需要任何這些行為的即時(shí)警報(bào),Notehub.io有一個(gè)Twilio 路由選項(xiàng),因此您可以接收短信(例如,如果檢測(cè)到酒精)。我沒(méi)有在這個(gè)演示中實(shí)現(xiàn)它,但它是未來(lái)的一種可能性。

添加加速度計(jì)

如前所述,廣播中關(guān)于激進(jìn)駕駛導(dǎo)致事故的報(bào)道啟發(fā)我在硬件中添加加速度計(jì)傳感器以跟蹤激進(jìn)駕駛行為。我在他們的 Grove 套件中放置了一個(gè) Seeed Studio Grove 加速度計(jì),通過(guò) Notecarrier Pi HAT 上的 Grove 連接器,這是一個(gè)非常簡(jiǎn)單的連接。

pYYBAGPXHaOAPcp9AAYJKCPdS3k895.jpg
將加速度計(jì)連接到 Notecarrier Pi HAT 非常簡(jiǎn)單。
?

我用雙面膠帶固定加速度計(jì),Y 面朝前(俯仰),X 面朝另一邊(滾動(dòng)),Z 面朝上。我在 Seeed Studio 網(wǎng)站上找到了一些 Python 代碼,經(jīng)過(guò)一些修改后,我的測(cè)試按預(yù)期運(yùn)行。然后,我在路上進(jìn)行設(shè)置并四處行駛,以測(cè)試加速度計(jì)如何檢測(cè)怠速的汽車、正常駕駛以及急加速和制動(dòng)。我對(duì)數(shù)據(jù)中不同階段的獨(dú)特性感到驚喜:

poYBAGPXHaWAdugCAACcehAF7b0675.png
你可以清楚地看到我什么時(shí)候加速,什么時(shí)候猛踩剎車。
?

不出所料,當(dāng)我空閑時(shí),數(shù)據(jù)幾乎沒(méi)有變化。當(dāng)我開車時(shí),數(shù)據(jù)有一點(diǎn)變化。但是當(dāng)我激進(jìn)地駕駛時(shí),你可以清楚地看到當(dāng)我加速時(shí)正方向的尖峰和當(dāng)我在 Y 軸上踩剎車時(shí)的負(fù)方向尖峰(黃色圖),這是俯仰。這是有道理的,因?yàn)槿绻焖偌铀倩驕p速,那是變化最大的軸。所以我簡(jiǎn)單地在y軸數(shù)據(jù)上設(shè)置了一個(gè)閾值。如果大于 10000 或小于 0,則說(shuō)明駕駛員駕駛過(guò)于激進(jìn)。我設(shè)置了計(jì)數(shù)器來(lái)跟蹤硬停止和啟動(dòng)的次數(shù),并將其傳遞給Notehub.io并將其路由到 Datacake。如果您想添加額外的檢查,您甚至可以跟蹤急轉(zhuǎn)彎。我沒(méi)有在圖表上標(biāo)記它,但 x 軸(灰色圖)顯示我在這個(gè)數(shù)據(jù)集中進(jìn)行了 3 次右轉(zhuǎn)。您可以看到數(shù)據(jù)中的 3 個(gè)(?。┘夥濉?/font>如果我要更積極地進(jìn)行這些轉(zhuǎn)彎,那么這些尖峰將更加明顯并且很容易達(dá)到閾值。我將我的代碼范圍限制在硬加速和剎車上。

最后的想法

這是一個(gè)我認(rèn)為相當(dāng)簡(jiǎn)單的項(xiàng)目,但隨著我對(duì)車禍及其原因的研究越來(lái)越多,它變得越來(lái)越復(fù)雜。我對(duì)識(shí)別我的模型的性能以及我是否系好安全帶感到滿意。酒精傳感器也表現(xiàn)出色。只需喝一口啤酒并正常呼吸,傳感器就會(huì)觸發(fā)檢測(cè)酒精的閾值。加速度計(jì)也表現(xiàn)出色。我在為 Notecard 設(shè)置正確參數(shù)時(shí)遇到了一些挑戰(zhàn),但一旦我這樣做了,結(jié)果看起來(lái)相當(dāng)不錯(cuò)。感謝 Rob Lauer 和 Blues Wireless 的支持團(tuán)隊(duì)一直以來(lái)的幫助。總體而言,Blues Wireless Notecard 具有很多功能,我期待在未來(lái)的項(xiàng)目中嘗試使用它。

這個(gè)項(xiàng)目的巧妙之處在于沒(méi)有圖像被發(fā)送到任何地方,所以它是安全的。Raspberry Pi 上本地存儲(chǔ)了一張調(diào)試照片(以確認(rèn)相機(jī)正在查看的內(nèi)容),但可以在代碼中將其禁用。否則,唯一發(fā)送到 Notehub 和 Datacake 的只是元數(shù)據(jù)!

我確實(shí)想評(píng)論的一件事是一些限制。第一:太陽(yáng)。特別是在新英格蘭的冬天,太陽(yáng)在天空中的角度很低。根據(jù)您駕駛的方向,Raspberry Pi 攝像頭可能會(huì)被陽(yáng)光遮擋,從而導(dǎo)致無(wú)法檢測(cè)到駕駛員和安全帶。這也許可以通過(guò)不同的傳感器(ToF、毫米波雷達(dá)?)來(lái)解決。但在大多數(shù)情況下,這不是問(wèn)題。第二:我的模型只有我自己和安全帶的課程。如果需要考慮其他驅(qū)動(dòng)因素,則需要進(jìn)行類似的數(shù)據(jù)收集和標(biāo)記(以及模型更新)。第三,我只在車上收集數(shù)據(jù)。如果您有車隊(duì),則需要為每種車輛類型收集數(shù)據(jù)(因?yàn)槊枯v車的安全帶位置不同)。當(dāng)我在我妻子的車?yán)餃y(cè)試我的代碼時(shí),我很容易被識(shí)別出來(lái),但安全帶卻沒(méi)有。此外,由于這是基于 EO 相機(jī)的系統(tǒng),因此無(wú)法在黑暗中工作。也許我可以用用于夜間駕駛的NoIR 攝像頭,但我只將范圍限制在白天。這可能是未來(lái)的增強(qiáng)。最后,酒精傳感器可以檢測(cè)多種類型的酒精,包括洗手液,所以你可能會(huì)得到誤報(bào)。不過(guò),進(jìn)一步細(xì)化傳感器讀數(shù)可能會(huì)過(guò)濾掉它。

如果您讀到了這篇文章的結(jié)尾,感謝您的閱讀。我希望你喜歡。我很高興我能夠解決導(dǎo)致大多數(shù)致命事故的幾個(gè)因素:超速、攻擊性駕駛、酗酒和不系安全帶。我希望這能激發(fā)未來(lái)的生產(chǎn)產(chǎn)品,以降低道路風(fēng)險(xiǎn),以“建設(shè)更智能的世界”。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)