資料介紹
描述
不良駕駛習慣導致危險的駕駛條件
我們的 10n2 項目旨在通過使用 Sony Spresense 和人工智能識別不良駕駛習慣。年輕的司機可以而且確實在很小的時候就養成了很多不良習慣。不良習慣的范圍從不正確的手部位置到在控制車輛時使用移動設備。國家安全委員會報告稱,手機使用每年導致160 萬起車禍!隨著新司機的誕生,我們非常有興趣在不良駕駛習慣養成習慣之前幫助他們消除這種習慣。
人工智能和物聯網來拯救
10n2 設備不僅會檢測手機使用情況,還會檢測手部位置不當、急轉彎、短停快速加速和跳坑。所有這些都會導致危險的駕駛條件。當檢測到違規行為時,司機會收到實時通知。
設備收集的信息用于在 Google 地球 KML 中生成報告,其中詳細說明檢測到的違規行為以及地理位置。收集違規行為,并在旅行的各個部分計算分數。司機可以回顧他們的行程并了解他們可以改進的地方。
構建設備
10n2 是 3d 打印材料、DiY 電氣元件、Sony Spresense 板和攝像頭、經過 Edge Impulse 訓練的 CNN 和一些使其全部工作的代碼的組合。
10n2 坐騎
首先要做的是打印 10n2 安裝。將model.stl加載到切片軟件(如Cura )中,生成許多3d打印機使用的gcode。獲得 gcode 后,將其加載到 3d 打印機上,打印大約需要 1 小時。在 Ender3 Pro 上!
現場準備
現在是時候按照索尼網站上的精彩文檔準備 Sony Spresense 了。啟動并運行 Spresense 并安裝 Sony 相機板后,就可以將電池插座焊接到主板上了。
安裝組件
下一步是安裝 MPU 和按鈕開關。10n2 安裝座具有 MPU 和按鈕的安裝座。MPU 使用 M3 螺絲固定,按鈕使用 Velcro 直接安裝到 10n2 安裝座。
電線組件
現在組件已安裝,您可以按照下面的接線圖連接 MPU 和按鈕。可以通過在相機帶狀電纜下方布設電線來實現電線管理。這樣可以讓電線遠離您,并有助于 GPS 信號。
收尾工作
設備全部連接好后,我們現在可以安裝電池外殼和 Velcro(用于將 10n2 設備安裝到車頂)。電池外殼粘在相機支架的底部。這有兩個目的;1) 固定電池 (duh) 和 2) 為相機捕捉圖像和執行實時分類提供正確的角度。您還可以安裝輕型 3.5 毫米。杰克揚聲器作為這一點。
恭喜!你現在對硬件不滿意了。
加載 10n2 軟件
GitHub 上提供了所有 10n2 軟件。要加載軟件,建議您遵循 Spresense SDK 設置,克隆存儲庫并使用 VSCode 將軟件直接安裝到設備。
IDE準備
按照Sony Spresense IDE 指南為您的環境安裝和配置軟件。
10n2 準備和構建
現在您已經準備好一個 IDE,是時候克??隆 10n2 存儲庫了。將存儲庫克隆到新的 VSCode 項目。10n2 存儲庫有一個 10n2 sdk.config ,其中包含運行 10n2 軟件所需的所有 nuttx/spresense 配置。通過微型 USB 將您的 Spresense 設備連接到您的計算機,并確保它被 VSCode 識別。現在,您可以通過左鍵單擊您的 VSCode 項目并選擇Spresense:Build and Flash 來刷新您的設備。
如果一切順利,沒有任何問題,您應該可以使用 10n2 設備了!
掛載 10n2
10n2需要倒置安裝在駕駛員頭部后方約 12 英寸處,并在車門之間居中,向下傾斜約 15 度(由電池支架提供)。
訓練
10n2 設備使用Edge Impulse在 10n2 的核心設計模型和訓練 CNN。該模型是一個簡單的 3 類(手/無手/細胞)2D 量化卷積模型。由于 Sony Spresense 的內存/計算限制,我們決定使用簡單的 CNN。量化是必不可少的,因為它使模型達到可管理的大小。Edge Impulse 具有易于使用的量化模型方法,以及有關如何在目標硬件上使用量化模型的詳細說明。
如您所見,該模型訓練得相對較好并且表現出奇的好。
數據
該模型是在 96x96 位圖像灰度 8 位圖像上訓練的。我們選擇 96x96 是因為它剛好足以覆蓋視野中的方向盤,又小到足以為我們的目標平臺制作大小合適的模型,而 96x96 是許多流行的預訓練模型中的常見尺寸。
數據采集
數據直接從 Spresense 和 Sony Camera 開發板收集*。對于我們的 96x96 下采樣,我們使用相機 x 坐標中 192-288 的像素和相機 y 坐標中 12-108 的像素。它位于相機的右上象限,即覆蓋方向盤和手部位置的象限。
* 所有數據均在 2007 年本田 CRV 中收集
安裝 EI 模型
一旦你有了一個你喜歡的模型,你就可以使用很棒的 Edge Impulse 網站來構建一個可部署的模型。10n2項目采用C++模型部署方式。
獲得 C++ 模型部署 zip 后,您需要做的就是將以下文件提取到 10n2 存儲庫中的等效文件:
model_metadata.h
tflite-resolver.h
tflite-trained.h //model weights
代碼
任何項目中我最喜歡的部分是代碼!完整的 10n2 代碼可通過 GitHub 獲得。本節將突出顯示導入部件。首先,SMP是必需的,因為 10n2 對 Spresense 的要求很高。SMP 允許異步使用所有 6 個內核。10n2 將一個完整的核心專用于 TensorFlow 推理引擎,并將剩余的核心分配給相機捕捉、數據收集和 KML 生成等功能。
SMP 示例
您會注意到在使用 SMP 時設置 CPU 親和性很重要。這告訴調度程序哪個 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模型是量化的。必須對輸入和輸出進行量化和反量化以獲得有意義的結果。
量化
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;
}
急轉彎、加速和減速都是根據 MPU 收集的數據計算得出的。MPU 安裝在 10n2 的一側,Z 軸朝上,Y 軸沿車輛的加速度軸,Z 軸垂直于 X 和 Y。
加速/減速
通過確定 Y 樣本在 100 Hz 的 moving.35 秒窗口上的斜率來計算加速度和減速度。樣品。如果坡度高于閾值,則認為車輛加速過快。如果坡度低于閾值 (± 500),則認為車輛減速過快。
急轉彎
轉彎的計算方式與加速度相同,但使用來自 MPU 的 X 加速度并使用小得多的斜率閾值 (+- 250)。
坑洞
通過對沿 Z 軸的加速度使用標準偏差閾值來識別坑洞。如果標準偏差 > 1800,那么我們認為這是一個底池持有。
收集的數據
10n2 記錄原始傳感器數據以及 csv 中的計算數據。當 10n2 處于“訓練”模式時,也會收集圖像數據。CSV 數據以以下 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
結論
如果你做到了這一點,謝謝。我們在開發我們認為有用的產品方面度過了愉快的時光。我們歡迎所有評論和問題,希望您喜歡 10n2。要查看更多信息,請在線訪問我們。
- 2023年人工智能產業概況及應用趨勢分析 8次下載
- 什么是人工智能 人工智能應用領域 0次下載
- 基于python人工智能算法的五官識別設計資料 3次下載
- 人工智能專題報告:生成式人工智能產業全梳理 3次下載
- Spresense智能浮標開源分享
- 基于人工智能驅動的關鍵信息基礎設施防御 4次下載
- 基于遷移學習的駕駛分心行為識別模型 10次下載
- 智能系統的定義與識別:人造智能與人工智能資料下載
- 人工智能的倫理智能體應用及相關研究 7次下載
- 如何才能讓人工智能更加智能 2次下載
- 人工智能到底是什么?什么工作需要學習人工智能 17次下載
- 為什么Python是人工智能最好的編程語言Python有什么優勢 15次下載
- 人工智能及其產業發展如何?人工智能標準化白皮書(2018版)免費下載 0次下載
- 人工智能行業發展狀況如何?人工智能行業研究報告詳細資料免費下載 15次下載
- 電子書 中美人工智能行業生態比較 243次下載
- 人工智能的語音識別技術詳解 1431次閱讀
- 人工智能的工作原理和特點 1617次閱讀
- 生成式人工智能和感知式人工智能的區別 1922次閱讀
- aigc是什么意思和人工智能有什么區別 1w次閱讀
- 什么是人工智能?人工智能的分類和應用介紹 1.1w次閱讀
- 人工智能在自動駕駛應用中的5大關鍵技術分析 2.9w次閱讀
- 淺談人工智能中六大關鍵技術 2.9w次閱讀
- 蘋果將人工智能和面部識別系統應用于車頭燈 4813次閱讀
- 人工智能瞬間識別慢性疾病還有多遠? 1530次閱讀
- 破局人工智能:AI平臺及智能語音應用解析 7225次閱讀
- 關于人工智能領域最新的報告分析 4835次閱讀
- 中國人工智能創業領軍20人里_你認識幾個 9960次閱讀
- 人工智能技術有哪些_人工智能技術的原理 6.1w次閱讀
- 人工智能為何這么熱_人工智能價值與應用_無人機屬于人工智能嗎 7526次閱讀
- 人工智能需要哪些知識_人工智能需要學什么_如何自學人工智能 4.4w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多