99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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ù)美國國家公路交通安全管理局 (NHTSA)最新的汽車事故和死亡數(shù)據(jù),2020 年美國死亡人數(shù)超過 38,000 人,為 2007 年以來的最高水平。2021 年估計(jì)超過 40,000 人。

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

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

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

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

該項(xiàng)目的第一步是創(chuàng)建模型,為此我需要數(shù)據(jù)。我在外出開車時(shí)使用 Raspberry Pi 和相機(jī)拍了數(shù)百張照片,所以我有一些真實(shí)的樣本來展示模型會看到的東西。我收集了大約 300 張我在一天中不同時(shí)間系好安全帶駕駛的照片,以及不同日照量來改變輸入。這是我為捕獲這些圖像而開發(fā)的簡短 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è)圖像,從而使這變得非常簡單。對于每張圖片,我在我的臉周圍畫了一個(gè)邊界框,在肩部區(qū)域附近畫了一個(gè)邊界框,顯示系好安全帶(但也有一些背景表明我系了安全帶)。

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

在所有圖像都貼上標(biāo)簽后,我開始了 Impulse Design 過程。在大多數(shù)情況下,我保留了 Edge Impulse 推薦的默認(rèn)參數(shù)。如前所述,我使用了對象檢測框架。因?yàn)槲沂褂玫氖?Raspberry Pi 4,所以我并不過分關(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 文件。
?

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

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

為了測試我的代碼,我將 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 信息的注釋,如果他們系好安全帶,如果檢測到酒精,(更新)以及激進(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
來自 Notehub.io 的示例注釋捕獲推理和位置/速度信息
?

然后我按照 Blues Wireless 的優(yōu)秀教程創(chuàng)建了一條通往Datacake的路線,在那里我可視化了 Notes 中感興趣的數(shù)據(jù):位置信息的緯度和經(jīng)度、駕駛員姓名、速度、安全帶信息、檢測到的酒精數(shù)據(jù)(靜態(tài)和趨勢) ,(更新)和攻擊性駕駛的計(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)锖攘似【苼聿蹲骄凭厔荨?/font>
?

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

添加加速度計(jì)

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

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

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

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

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

最后的想法

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

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

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

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


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

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級說明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實(shí)名稱的對照表詳細(xì)說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計(jì)指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分