如何使用機器學習功能在汽車應用中,以 ASM330LHHX 為例

概括
機器學習核心 (MLC) 是傳感器 ASIC 中的一個硬體核心,具有開發人工智能算法的功能。 巨大的優勢是降低了整個系統的功耗,使數據事件檢測和分類不需要主機的微控制器,所有計算和決策都在傳感器執行。 在透過這篇文章中,我們將展示如何使用 ST 汽車級 ASM330LHHX 並利用我們的 Unico-GUI,為汽車應用程序構建基於決策樹分類器的機器學習算法,這將允許一個簡單的即插即用解決方案。

1. 軟件
這篇文章中使用的軟件工具是 Unico-GUI,這是一個圖形用戶界面(適用於 Linux、MacOS 和 Windows),它支持各種傳感器並允許構建 MLC 程序(即使沒有連接任何板 = 離線模式)並生成傳感器配置文件(UCF 文件)。

2.硬件
本教程將使用 STEVAL-MKI109V3 來配置 MEMS 傳感器並評估傳感器輸出。 此外,它還具有一些高級功能,例如:
* 可編程電壓電源
* 電流消耗測量
* 通信協議,可以在 SPI 和 I²C 之間更改
STEVAL-MKI109V3 可與不同的 DIL24 適配器板一起使用。 在本教程中,我們將使用 STEVAL-MKI212V1,它是用於 ASM330LHHX 的 DIL24 適配器板,該 IMU 是用於具有嵌入式機器學習內核的汽車應用的 IMU。
有關更多硬件詳細信息,請訪問:
ST MEMS 傳感器資源頁面
ST 資源頁面上探索 MEMS 傳感器中的機器學習核心
ASM330LHXX 中嵌入機器學習內核的應用筆記 AN5296

3.如何構建MLC配置
第一步,在 PC 上啟動 Unico-GUI 並選擇適配器板 STEVAL-MKI212V1,其中包含 ASM330LHHX,即本文章中使用的具有嵌入式機器學習內核的汽車級 IMU。



在 Unico-GUI 主窗口中,通過單擊選項,可以配置主要的加速度計和陀螺儀設置。 對於此示例,已選擇它:
加速度計 - 2g 量程和 104Hz 輸出數據速率
陀螺儀 - 250dps 量程和 104Hz 輸出數據速率



單擊頂部欄上的“開始”按鈕,我們將啟用 STEVAL-MKI109V3 和我們的 PC 之間的通信。



單擊繪圖工具時,我們可以實時可視化來自傳感器的數據。





要開始記錄,需要按下“加載/保存選項”,選擇要保存的參數,在這種情況下,只需要加速度和角速率數據,然後需要輸入日誌的文件名, 並獲取所有類的數據。



本知識文章的機器學習算法已記錄並且將檢測到的分類是:
*靜止
*運動/駕駛
*抬高
*碰撞









獲取所有日誌後,建議分析每個類的日誌並整理數據。 在此示例中,使用了 Microsoft Excel。


在分析數據日誌時,可以注意到:

主要變化在於加速度計 X 和 Y 軸與加速度計相比,陀螺儀不提供額外信息。因此,可以僅使用加速度計數據配置 MLC,並在加速度計 X 和 Y 軸上選擇一些特徵(如平均方差峰峰值)。下一步是導入在 Unico-GUI 的 MLC 工具中獲取的數據日誌。 在 MLC 工具的“數據模式選項卡”中,通過單擊“瀏覽”按鈕,可以選擇相應的數據日誌文件(可以同時為同一類選擇多個文件)。



對於導入的所有數據日誌和每個類別,需要分配一個標籤,即與該數據關聯的分類。正確導入所有日誌後,單擊“配置”選項卡並繼續創建決策樹和配置文件。
該配置適用於 ASM330LHHX:
機器學習核心的 104 Hz 數據速率(與用於獲取數據日誌的數據速率相同)
僅加速度計數據
* 2g量程
* 104Hz 數據速率
不需要陀螺儀,因為在分析數據時很明顯它沒有為此應用程序提供額外信息



然後需要通過選擇 1 個決策樹和 104 個樣本的窗口長度來進行配置。 窗口參數指定機器學習核心每次必須識別一個類別時詳細說明的樣本數量。它可以從 1 到 255,MLC 結果的延遲將與此數字相關。 在這種情況下,數據速率為 104 Hz,窗口中的 104 個樣本獲得 1 秒的等效時間窗口。



此範例跳過了過濾器配置部分,這意味著沒有對輸入數據使用過濾器。在特徵配置部分,可以選擇在構建決策樹時使用哪個特徵。由於從數據日誌中可以清楚地看出加速度計 X 軸和 Y 軸上存在一些變化,因此可以在這些軸上以及加速度計範數上選擇一些特徵(如均值、方差、能量、峰值峰值)。



現在,該工具正在生成 arff 文件,該文件包含選定的特徵,在之前定義的 1 秒窗口中計算,使用提供的所有標記數據。



然後我們需要決定哪些數值描述了不同的類(這些值是 MLC 的輸出,可以在我們設備的 MLC_SRC 寄存器中讀取)。 我們正在使用這些值:
0 靜止
4 運動/駕駛
8 抬高
12 碰撞





現在可以按照配置過程構建決策樹,使用之前通過單擊“生成”按鈕定義的一些功能或者可以導入由外部工具生成的決策樹。 在下一部分中,可以選擇不同的過濾器,但是對於本示例,這部分已被跳過。 最後,該工具可以生成帶有 ASM330LHHX 機器學習核心配置的 UCF 文件,以將決策樹嵌入傳感器配置中。 由於帶有 ASM330LHHX DIL24 適配器 (STEVAL-MKI212V1) 的 STEVAL-MKI109V3 已經連接到 PC,因此可以直接對器件進行編程,並評估此配置。



最後,可以檢查 MLC 是否正常工作。 該算法必須檢測所有 4 個記錄的類別。在汽車靜止的情況下,我們看到輸出 0,這意味著“靜止”。



前後移動小車,MLC 輸出變為 4。



當汽車側向抬起時,MLC 輸出變為 8。



最後,當汽車撞到另一輛車時,MLC 檢測到“碰撞”類,其值為 12。



在這篇文章中,已經展示如何使用 ASM330LHHX 中的 MLC 檢測四種不同的類別,但電流消耗是多少? 要使 MLC 處於活動狀態,本示例僅需要大約 10 µA。 這是機器學習內核的額外電流,必須添加到傳感器電流消耗中。 不同的配置是可能的 - 識別不同的類別 - 選擇不同的數據速率 - 或使用不同的數據(例如加速度計數據,或加速度計 + 陀螺儀)。 在表格中,您可以看到我們在 GitHub 存儲庫中為同一設備提供的一些示例。



作者:Luca SEGHIZZI;出處:網址

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能