電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Sony Spresense和人工智能識別不良駕駛習慣

使用Sony Spresense和人工智能識別不良駕駛習慣

2023-02-06 | zip | 0.21 MB | 次下載 | 免費

資料介紹

描述

不良駕駛習慣導致危險的駕駛條件

我們的 10n2 項目旨在通過使用 Sony Spresense 和人工智能識別不良駕駛習慣。年輕的司機可以而且確實在很小的時候就養(yǎng)成了很多不良習慣。不良習慣的范圍從不正確的手部位置到在控制車輛時使用移動設備。國家安全委員會報告稱,手機使用每年導致160 萬起車禍!隨著新司機的誕生,我們非常有興趣在不良駕駛習慣養(yǎng)成習慣之前幫助他們消除這種習慣。

人工智能和物聯(lián)網(wǎng)來拯救

10n2 設備不僅會檢測手機使用情況,還會檢測手部位置不當、急轉(zhuǎn)彎、短停快速加速和跳坑。所有這些都會導致危險的駕駛條件。當檢測到違規(guī)行為時,司機會收到實時通知。

?

設備收集的信息用于在 Google 地球 KML 中生成報告,其中詳細說明檢測到的違規(guī)行為以及地理位置。收集違規(guī)行為,并在旅行的各個部分計算分數(shù)。司機可以回顧他們的行程并了解他們可以改進的地方。

?

構建設備

10n2 是 3d 打印材料、DiY 電氣元件、Sony Spresense 板和攝像頭、經(jīng)過 Edge Impulse 訓練的 CNN 和一些使其全部工作的代碼的組合。

pxl_20220805_153400343_mp_dFJrWatOMz.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

10n2 坐騎

首先要做的是打印 10n2 安裝。將model.stl加載到切片軟件(如Cura )中,生成許多3d打印機使用的gcode。獲得 gcode 后,將其加載到 3d 打印機上,打印大約需要 1 小時。在 Ender3 Pro 上!

pxl_20220805_143251229_mp_E1KEIgskew.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

現(xiàn)場準備

現(xiàn)在是時候按照索尼網(wǎng)站上的精彩文檔準備 Sony Spresense 了啟動并運行 Spresense 并安裝 Sony 相機板后,就可以將電池插座焊接到主板上了。

安裝組件

下一步是安裝 MPU 和按鈕開關。10n2 安裝座具有 MPU 和按鈕的安裝座。MPU 使用 M3 螺絲固定,按鈕使用 Velcro 直接安裝到 10n2 安裝座。

pxl_20220805_155354965_wb44EzYbWq.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

電線組件

現(xiàn)在組件已安裝,您可以按照下面的接線圖連接 MPU 和按鈕。可以通過在相機帶狀電纜下方布設電線來實現(xiàn)電線管理。這樣可以讓電線遠離您,并有助于 GPS 信號。

pxl_20220805_155905920_mp_oixSwZcn4C.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

收尾工作

設備全部連接好后,我們現(xiàn)在可以安裝電池外殼和 Velcro(用于將 10n2 設備安裝到車頂)。電池外殼粘在相機支架的底部。這有兩個目的;1) 固定電池 (duh) 和 2) 為相機捕捉圖像和執(zhí)行實時分類提供正確的角度。您還可以安裝輕型 3.5 毫米。杰克揚聲器作為這一點。

pxl_20220805_162059106_NRQqpGdo1T.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

恭喜!你現(xiàn)在對硬件不滿意了。

加載 10n2 軟件

GitHub 上提供了所有 10n2 軟件。要加載軟件,建議您遵循 Spresense SDK 設置,克隆存儲庫并使用 VSCode 將軟件直接安裝到設備。

IDE準備

按照Sony Spresense IDE 指南為您的環(huán)境安裝和配置軟件。

10n2 準備和構建

現(xiàn)在您已經(jīng)準備好一個 IDE,是時候克??隆 10n2 存儲庫了。將存儲庫克隆到新的 VSCode 項目。10n2 存儲庫有一個 10n2 sdk.config ,其中包含運行 10n2 軟件所需的所有 nuttx/spresense 配置。通過微型 USB 將您的 Spresense 設備連接到您的計算機,并確保它被 VSCode 識別。現(xiàn)在,您可以通過左鍵單擊您的 VSCode 項目并選擇Spresense:Build and Flash 來刷新您的設備。

10n2-build_f3rgu4gTUx.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

如果一切順利,沒有任何問題,您應該可以使用 10n2 設備了!

掛載 10n2

10n2需要倒置安裝在駕駛員頭部后方約 12 英寸處,并在車門之間居中,向下傾斜約 15 度(由電池支架提供)。

?
?
?
10n2-deployed_i4sjeRKNSa.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?
1 / 2
?

訓練

10n2 設備使用Edge Impulse在 10n2 的核心設計模型和訓練 CNN。該模型是一個簡單的 3 類(手/無手/細胞)2D 量化卷積模型。由于 Sony Spresense 的內(nèi)存/計算限制,我們決定使用簡單的 CNN。量化是必不可少的,因為它使模型達到可管理的大小。Edge Impulse 具有易于使用的量化模型方法,以及有關如何在目標硬件上使用量化模型的詳細說明。

10n2-ei-model_USrst73XId.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

如您所見,該模型訓練得相對較好并且表現(xiàn)出奇的好。

10n2-ei-testing_ITF951BQbE.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

數(shù)據(jù)

該模型是在 96x96 位圖像灰度 8 位圖像上訓練的。我們選擇 96x96 是因為它剛好足以覆蓋視野中的方向盤,又小到足以為我們的目標平臺制作大小合適的模型,而 96x96 是許多流行的預訓練模型中的常見尺寸。

數(shù)據(jù)采集

數(shù)據(jù)直接從 Spresense 和 Sony Camera 開發(fā)板收集*。對于我們的 96x96 下采樣,我們使用相機 x 坐標中 192-288 的像素和相機 y 坐標中 12-108 的像素。它位于相機的右上象限,即覆蓋方向盤和手部位置的象限。

* 所有數(shù)據(jù)均在 2007 年本田 CRV 中收集

安裝 EI 模型

一旦你有了一個你喜歡的模型,你就可以使用很棒的 Edge Impulse 網(wǎng)站來構建一個可部署的模型。10n2項目采用C++模型部署方式。

10n2-ei-deploy_SCQNMsK0iK.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

獲得 C++ 模型部署 zip 后,您需要做的就是將以下文件提取到 10n2 存儲庫中的等效文件:

model_metadata.h
tflite-resolver.h
tflite-trained.h //model weights

代碼

任何項目中我最喜歡的部分是代碼!完整的 10n2 代碼可通過 GitHub 獲得。本節(jié)將突出顯示導入部件。首先,SMP是必需的,因為 10n2 對 Spresense 的要求很高。SMP 允許異步使用所有 6 個內(nèi)核。10n2 將一個完整的核心專用于 TensorFlow 推理引擎,并將剩余的核心分配給相機捕捉、數(shù)據(jù)收集和 KML 生成等功能。

SMP 示例

您會注意到在使用 SMP 時設置 CPU 親和性很重要。這告訴調(diào)度程序哪個 CPU 運行 p 線程。

bool imu_init(void)
{
    printf("imu init\n");
    imu_running = true;
    cpu_set_t cpuset = 1 << 2;
    pthread_create(&imu_th_consumer, NULL, &_imu_q_read, NULL);
    int rc;
    rc = pthread_setaffinity_np(imu_th_consumer, sizeof(cpu_set_t), &cpuset);
    if (rc != 0)
    {
        printf("Unable set CPU affinity : %d", rc);
    }

    return true;
}

Edge Impulse 模型推理

EI生成的TFLM模型是量化的。必須對輸入和輸出進行量化和反量化以獲得有意義的結(jié)果。

量化

int8_t quantize(uint8_t pixel_grayscale)
{

    // ITU-R 601-2 luma transform
    // see: https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.convert
    int32_t gray = (iRedToGray * pixel_grayscale) + (iGreenToGray * pixel_grayscale) + (iBlueToGray * pixel_grayscale);
    gray >>= 16; // scale down to int8_t
    gray += EI_CLASSIFIER_TFLITE_INPUT_ZEROPOINT;
    if (gray < -128)
        gray = -128;
    else if (gray > 127)
        gray = 127;
    return static_cast8_t>(gray);
}

反量化

for (int k = 0; k < NUM_CLASSES; k++)
      {
          //dequantized output
          conf = (od[k] - EI_CLASSIFIER_TFLITE_OUTPUT_ZEROPOINT) * EI_CLASSIFIER_TFLITE_OUTPUT_SCALE;

      }

急轉(zhuǎn)彎、加速和減速都是根據(jù) MPU 收集的數(shù)據(jù)計算得出的。MPU 安裝在 10n2 的一側(cè),Z 軸朝上,Y 軸沿車輛的加速度軸,Z 軸垂直于 X 和 Y。

加速/減速

通過確定 Y 樣本在 100 Hz 的 moving.35 秒窗口上的斜率來計算加速度和減速度。樣品。如果坡度高于閾值,則認為車輛加速過快。如果坡度低于閾值 (± 500),則認為車輛減速過快。

急轉(zhuǎn)彎

轉(zhuǎn)彎的計算方式與加速度相同,但使用來自 MPU 的 X 加速度并使用小得多的斜率閾值 (+- 250)。

坑洞

通過對沿 Z 軸的加速度使用標準偏差閾值來識別坑洞。如果標準偏差 > 1800,那么我們認為這是一個底池持有。

收集的數(shù)據(jù)

10n2 記錄原始傳感器數(shù)據(jù)以及 csv 中的計算數(shù)據(jù)。當 10n2 處于“訓練”模式時,也會收集圖像數(shù)據(jù)。CSV 數(shù)據(jù)以以下 CSV 格式存儲:

t	slopex	slopey	slopez	inf	conf	acx	acy	acz	gyx	gyy	gyz	y	M	d	h	m	s	us	type	lat	lon
23915	-98	55.299999	-27	0	0.53125	4225	-210	644	205	-129	-54	2022	8	3	23	42	23	586585	1	39.513708	-104.764668
24016	17.1	44.599998	-15.6	2	0.589843	4949	-4	641	-71	-75	20	2022	8	3	23	42	24	817926	1	39.513708	-104.764668
24117	-11.2	-31.700001	-6.1	1	0.46875	4870	-99	713	-53	-196	32	2022	8	3	23	42	25	433078	1	39.513708	-104.764668
24218	-67.400002	-35.200001	-7.1	0	0.953125	4969	10	685	-60	-104	-2	2022	8	3	23	42	26	648016	1	39.513708	-104.764668
24321	-12.1	7.8	6.6	1	0.734375	5005	-44	704	-60	-120	15	2022	8	3	23	42	27	890861	1	39.513708	-104.764668

結(jié)論

如果你做到了這一點,謝謝。我們在開發(fā)我們認為有用的產(chǎn)品方面度過了愉快的時光。我們歡迎所有評論和問題,希望您喜歡 10n2。要查看更多信息,請在線訪問我們


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

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