使用智慧型感測器內建的機器學習核心,可最佳化「常開型」動作追蹤功能

作者:Stephen Evanczuk

資料提供者:DigiKey 北美編輯群

消費者對於健身追蹤器及其他個人行動裝置中的「常開型」動作追蹤功能之需求日漸增多。過去,設計人員在面臨此種需求時,必須在功能與電池續航力之間有所取捨。若嘗試降低功耗,就不得不犧牲追蹤能力或解析度,影響使用體驗。

在內建動作偵測能力的低功率感測器上市後,開發人員便無須在設計中做出這樣的妥協。

本文將介紹並展示如何使用 STMicroelectronics 的智慧型動作感測器。此款感測器整合了精密的動作處理能力,可提供更有效的低功率、常開型動作追蹤解決方案。

典型的電源管理實務

在典型的低功率行動系統設計中,主機微控制器在正常主動模式中所消耗的功率,佔整體系統功耗的絕大部分。因此,開發人員想盡辦法讓微控制器保持在低功率睡眠模式下運作,直到要執行感測器資料處理或通訊等任務時才將其喚醒,且喚醒時間只足以處理作業。

多年來,開發人員已經能夠使用可獨立於主機處理器收集資料的感測器來達到此目標。在對感測器輸出數據傳輸率要求不高的應用中,感測器會用其晶片上的緩衝器存儲一系列測量值,甚至執行直接記憶體存取 (DMA) 交易,將數據傳輸至系統記憶體,然後才發出中斷訊號,以喚醒處理器來完成處理作業。由於感測器的整合式訊號鏈會執行訊號調整、轉換及濾波,因此處理器可立即開始處理已預先處理的數據,找到對應用而言具有重要意義的事件。

在這些感測器中整合閾值偵測功能後,開發人員可進一步延長處理器保持在低功率模式的時間。感測器不要求處理器識別具有重大意義的事件,只會在測量到事件超出開發人員為其設定的閾值時,才會發出喚醒訊號。舉例來說,設計人員可對此類進階溫度感測器進行編程,讓其僅在測量到的溫度超出指定的最大閾值,或低於指定的最小閾值時發出喚醒訊號。

這種降低功耗的方法,雖然對比較簡單的需求很有效,但是對於偵測更為複雜的事件卻可能明顯缺乏效力。再加上結合常開型感測需求,偵測這些複雜事件意味著處理器需要更高的主動工作週期,而這會快速耗盡個人穿戴裝置的可充電式電池電量,這類電池的蓄電量通常相對較低。因此,由於使用者對常開型偵測及較長電池續航力的需求不斷增加,以主機微控制器執行偵測的傳統方法將無法持續。

相反地,若感測器可執行更複雜的偵測演算法,開發人員則可繼續使用目前的最佳作法,即透過低功率運作模式及處理器睡眠狀態,來降低系統功耗。同時,這種更有智慧的感測器還需要為開發人員提供高度的彈性。若只是將一些特定演算法透過硬連線方式寫入感測器,將無法達到更新、更好的產品功能。STMicroelectronics 的 LSM6DSOX iNEMO (LSM6DSOXTR) 慣性感測器將訊號處理功能及彈性運算能力整合在元件中,達到此彈性。

感測器架構

LSM6DSOX iNEMO 採用系統級封裝 (SiP),在大小僅為 2.5 x 3.0 x 0.83 mm 的平面柵格陣列 (LGA) 封裝內,整合了微機電系統 (MEMS) 感測器、專用訊號鏈、濾波器,以及專用運算引擎。除了內部的三軸加速計及三軸數位陀螺儀 MEMS 感測器,此元件還可配置成感測器中樞,能夠透過專用中樞暫存器,分別協調最多四個外部感測器的運作。

LSM6DSOX 採用與 STMicroelectronics 早期元件 LSM6DSO 相同的架構,可提供該早期元件的所有能力與功能 (請參閱《IMU:透過板載機器學習功能讓主機進入睡眠》)。然而,STMicroelectronics 公司在 LSM6DSOX 產品中採用機器學習 (ML) 核心,可透過高達八個決策樹,對數據集進行分類,很好地補充了早期裝置所提供的有限狀態機 (FSM) 功能。即便沒有採用 FSM 與 ML 核心功能,開發人員仍舊可以利用進階訊號鏈來預先處理來自 MEMS 感測器的數據,實現進階動作偵測功能。

與許多進階感測器一樣,LSM6DSOX 架構採用多階段訊號鏈,將類比數位轉換器 (ADC) 與多個濾波階段相整合。該陀螺儀訊號鏈以一系列可選數位濾波器補充 ADC 階段,包括高通濾波器 (HPF)、低通濾波器 (LPF1) 以及第二低通濾波器 (LPF2)。這些濾波器在裝置的高效能模式下工作,但是在正常模式或低功率模式下則被略過 (圖 1)。

圖 1:與早期的 STMicroelectronics LSM6DSO 一樣,STMicroelectronics LSM6DSOX 會在每個感測器後面採用一個包含多濾波階段的特殊、專用訊號鏈,如此處所示的陀螺儀感測器。(圖片來源:STMicroelectronics)

由於許多整合功能都需要使用加速計,因此在此架構中,加速計訊號鏈得到大幅增強。加速計的初步階段,提供多數進階感測器所具備的基本訊號調整及轉換功能。例如,類比抗交疊低通濾波器會對基本訊號進行調整,16 位元 ADC 則對調整後的訊號執行數位化,而數位化的結果再通過數位低通濾波器。本裝置與眾不同之處,就是在此初步轉換階段之後的精密複合濾波器區塊 (圖 2)。

圖 2:早期的 STMicroelectronics LSM6DSO 與現今的 STMicroelectronics LSM6DSOX 動作感測器都採用大規模的加速計訊號鏈,可獨立於主機偵測多種複雜的動作,包括自由落體、多維定向以及單擊/雙擊 (S/D)。(圖片來源:STMicroelectronics)

加速計的複合濾波器區段將處理區塊與濾波器整合在一起,可自主偵測各種複雜事件,而這類事件至今仍需要處理器去喚醒並執行特殊的事件偵測程式碼。不同的是,現在開發人員可以設定濾波器參數,自動偵測各種複雜動作事件並發出中斷訊號,包括單擊、雙擊、自由落下、活動/非活動、六自由度定向 (6D),或通常用來偵測裝置動作的 4D 定向,比如說,從直向轉成橫向模式。

複合濾波器的進階偵測器透過合併處理區塊與濾波器的結果來執行偵測。比如說,單擊偵測功能使用內建的斜率濾波器,以目前的加速計樣本 acc(tn) 連續產生斜率,即:

slope(tn) = [ acc(tn) - acc(tn-1) ] / 2 (公式 1)

相對於更廣泛的衝擊事件,單擊事件的斜率會在超過某個閾值後迅速下降 (圖 3)。使用開發人員設定的單擊閾值,以及衝擊窗口持續時間,裝置可以自動偵測單擊事件,並向主機微控制器發出中斷。

雙擊偵測建立在此方法的基礎之上,只需再增加一個參數,指定兩次單擊事件之間所需等候的時間。

圖 3:LSM6DSO 與 LSM6DSOX 動作感測器可使用內建的斜率函數,獨立於主機偵測單擊事件;相較於廣泛的衝擊事件特徵 (b),單擊 (a) 會更快返回基線水平。(圖片來源:STMicroelectronics)

該裝置生成推演資料 (如斜率) 的能力,在其整合式 FSM 及機器學習 (ML) 核心所提供的更多進階功能中,扮演著相當關鍵的角色。由於 FSM 功能已在前面引用的文章中討論過,本文的其餘部分將重點介紹 LSM6DSOX 的 ML 核心,以及此核心在偵測更複雜動作事件中的用途,包括動作序列,甚至複雜的移動活動,如特定運動。

決策樹

LSM6DSOX 的 ML 核心提供基於感測器的處理能力,其範圍遠遠超過許多進階智慧型感測器中常見的參數化閾值設定。使用 ML 核心,開發人員可在裝置中實作複雜的偵測演算法,且在不需要喚醒微控制器的情況下,對複雜的動作事件進行常開型偵測。ML 核心在此使用決策樹並根據輸入資料的模式來識別事件。

決策樹已在決策支援系統中使用多年,可比對預先定義的條件,測試輸入資料 (即屬性),將複雜的決策往下細分為一系列的選項。從初始節點 (亦即「根」) 開始,測試屬性的值,然後由結果來決定是否繼續前往特定的子節點 (圖 4)。

圖 4:決策樹使用一連串的節點來生成結果,每個節點都會針對特定的條件 (例如特定閾值) 來測試特定屬性的輸入值,並根據測試結果繼續前往不同的子節點。(圖片來源:STMicroelectronics)

例如,每個更新循環都會調用決策樹處理其節點,確定該次更新是否有可用資料,即不採取動作、前進動作,或以下所列的其他動作:

  1. 測試加速計測量值的大小
    • 1.1.如果數值低於某個預先設定的數值 (條件),則終止
    • 1.2.否則分支至子節點,測試在相同時間窗期取得的陀螺儀測量值
      • 1.2.1.如果陀螺儀測量值低於某個預先設定的數值,則終止,或者
      • 1.2.2.繼續前往更深的子節點,測試在相同時間窗期內測量到的其他屬性,或針對其他條件測試相同屬性。

重複此流程,直到測試到達終端節點,而在此背景中,此節點對應於特定的複雜動作事件 (即「類別」)。在這個簡單的範例中:

  • 終端節點 1.1 可能表示該資料 (即特性組) 應歸類為「不採取動作」
  • 終端節點 1.2.1 可能表示該特性組應歸類為「前進動作」
  • 節點 1.2.2 底下的終端節點,可能表示在移動中轉向,或更複雜的方向改變

當然,在必須使用決策樹的諸多實際問題中,複雜度要高出許多,而且涉及由許多不同屬性與條件構成的大型特性組。事實上,LSM6DSOX 為開發人員提供了許多可能用到的特性組,首先就是感測器資料,這些資料來自加速計、陀螺儀,以及在感測器中樞連線模式下所連的任何外部感測器 (圖 5)。

圖 5:STMicroelectronics 的 LSM6DSOX 特有內建式 ML 核心使用主感測器資料、濾波資料以及派生參數 (如均值與方差),作為該裝置所支援的 8 個決策樹之一的輸入。(圖片來源:STMicroelectronics)

該裝置可從這些主感測器資料生成許多特性,這些特性都是透過滑動時間窗期內的主資料計算而得,其中包括:

  • 範數 V = Ö( x2 + y2 + z2) 與 V2
  • 均值
  • 方差
  • 能量
  • 峰對峰
  • 零交叉
  • 正零交叉
  • 負零交叉
  • 峰值偵測器
  • 正峰值偵測器
  • 負峰值偵測器
  • 最小值
  • 最大值

針對零交叉偵測器與峰值偵測器等特定特性,開發人員還會為移動零交叉軸或峰值閾值,分別指定閾值。

受監控的學習工作流程

運用 LSM6DSOX 的 ML 核心,採行這些特性實作決策樹後,需執行大多數機器學習模型開發工作常見的典型受監控學習工作流程。一般來說,此工作流程首先會識別指定的活動,然後再收集與這些活動相關的資料樣本。

在本例中,開發人員僅需使用 LSM6DSOX 來收集資料,同時執行最終應用需要偵測的特定動作活動組。在此開發階段,開發人員可以使用 STMicroelectronics 的板件和軟體來建立資料採集平台。對於硬體平台,開發人員僅須將 STEVAL-MKI197V1 的 LSM6DSOX 配接器板插入 STEVAL-MKI109V3 評估主機板即可。對於軟體,開發人員可以使用 STMicroelectronics 免費的 Unico 軟體工具,此工具可用於 WindowsMac OSXLinux 等作業系統。

Unico 專為搭配 STEVAL-MKI109V3 主機板使用而設計,可提供簡便的方法來收集 LSM6DSOX 產生的資料。開發人員可合併使用該主機板和 Unico 進行資料收集。執行時,開發人員或助理採用此主機板,同時重複執行其中一項指定的特定動作,並使用 Unico 收集 LSM6DSOX 動作資料。

從 LSM6DSOX 收集多次重複單一活動期間的資料,可為相應的類別 (如先前範例中的「前進動作」) 提供訓練組。在該動作期間收集到的資料,全都對應於同一個類別,因此這種主動收集資料的方法,不需要單獨為資料建立標籤,便可避免拖延受監控的學習工作流程。

為每個指定動作事件類別收集動作資料後,開發人員可使用 Unico 來檢查資料與類別標籤。Unico 除了用於資料檢查之外,還可讓開發人員設定所需決策樹的多個層面、定義篩選器、設定時間窗期,並選擇在建構決策樹時使用的特定特性。

在實踐中,開發人員通常會根據經驗和實驗,將偵測特定活動組所用的特性限制在最小的可能數值。即便是最小的特性組,能否有效實作決策樹,在很大程度上取決於在決策樹各個節點應測試哪些特性 (即屬性)。選出在每個節點測試的「最佳」屬性,對於決策樹大小縮至最小極為重要,尤其對於感測器這種資源有限的裝置來說,更是如此。

讀者注意事項:截至目前,您可能對特性 (feature) 和屬性 (attribute) 的使用感到疑惑。造成困難的原因,是因為我們在 ML 模型中使用「特性」一詞,但該詞在決策樹中卻稱為「屬性」。我們已嘗試在一個章節內遵循各自的用語,但在這裡,為了方便後續有關決策樹的探討,我們會將「特性」改稱「屬性」。毫無疑問,您一定會在其他地方看到這兩種用詞互用,但在此處及後續的「arff」章節中,都會稱為「屬性」。

雖然概念上很簡單,但是對於擁有大量屬性、且每個屬性背後都有廣泛資料數值的決策樹而言,要在每個決策節點選擇準備使用的最佳屬性,卻不是顯而易見的。若想找出要在每個節點測試的最佳屬性,較好的作法則需要使用公式 2,計算在該節點的每個屬性的香儂熵:

entropy(p1,p2,...,pn) = - p1log2(p1) - p2log2(p2)...- pnlog2(pn) (公式 2)

機率 pn 代表每一個與該屬性相關的 n 個可能類別。

其結果為以位元呈現的資訊內容,數值範圍介於 0 至 1,而不是我們更為熟悉的位元定義中的 0 或 1。

每個屬性的資訊「增益」,隨即變為此資訊值與基線資訊值之間的差值,而基線資訊值,是根據未使用決策節點時會發生正確決策的機率,而為該屬性計算而得的數值。雖然仔細檢視此計算方式已超出本文範圍,但如需簡單易懂的解釋,就需要比較哪個方法更可能有效地提供想要的結果:根據該屬性的值 (「基線」) 對資料組執行自下而上的強力切割來取得結果;或是根據該屬性的特定值範圍執行自上而下選擇來取得結果。自上而下選擇採用了「分治法」,此法通常能比自下而上的方法,更快地減少可能發生的結果數量。

快速佈署

幸運的是,開發人員幾乎不需要關注資訊增益與屬性選擇最佳化的細節。相反,他們可利用 Weka 等免費的第三方機器學習工具,自動處理產生最佳決策樹所需的計算。

事實上,Unico 和 Weka 已緊密合作,提供能快速實作決策樹的工作流程。特定決策樹開發工作流程的關鍵步驟,通常在於先前提過的資料收集步驟,具體而言,就是使用 LSM6DSOX 為每個指定活動類別收集具代表性的資料集;同時使用 Unico 細化這些資料集並定義決策樹配置。完成之後,這兩個工具會結合起來,加速整個過程的最後階段。

在 Unico 中細化資料和決策樹配置之後,開發人員會使用該工具將選取的特性組轉換成標準格式,亦即屬性關係檔案格式 (arff)。arff 檔案包括標題部份,會列出選取的屬性 (特性) 與可能的類別,還包括資料部份,會列出每一組的收集資料以及相關的類別 (清單 1)。本範例僅使用極少的特性,且僅用一小組的資料實例組來識別有限的類別組,包括二頭肌彎曲、側面平舉及深蹲。

清單 1:標準的屬性關係檔案格式 (arff) 檔案包括標題部份,其中定義屬性與類別,還包括資料部份,其中包含每個屬性及相關類別的資料實例。(資料來源:STMicroelectronics)

開發人員可使用 Weka 將 arff 檔載入「Preprocess」(預先處理) 窗口,並檢視完整特性組的圖形摘要 (圖 6)。

圖 6:使用 STMicroelectronics 的 Unico 工具為資料集生成 arff 檔案之後,開發人員可使用第三方機器學習工具 Weka 來檢視完整資料集,此處顯示為清單 1 中的 arff 資料。(圖片來源:DigiKey)

若要建立決策樹,開發人員可切換到 Weka「Classify」(分類) 窗口,選擇 Weka J48 分類器 (Weka 的決策樹分類器),並按下「Start」(開始)。該分類器會在其輸出窗口內列出輸入資料的摘要,並以圖形 (圖 7) 和文字格式 (圖 8) 提供決策樹。

圖 7:若要建立決策樹,開發人員只需載入 arff 檔案,選擇 Weka J48 決策樹分類器,並生成最終的決策樹。內建的 Weka 視覺化工具可用來檢視結果,且為每個節點列出屬性及條件;在本例中,使用的是清單 1 裡的 arff 資料。(圖片來源:DigiKey)

圖 8:除了決策樹的視覺顯示,Weka 還可生成實際的 J48 決策樹規格;在本例中,使用的是清單 1 裡的 arff 資料,來生成清單 2 裡的 J48 規格。(圖片來源:DigiKey)

在本範例中,僅需幾行即可生成 J48 決策樹規格 (清單 2)。

清單 2:Weka 生成 J48 決策樹規格,此處採用清單 1 中的 arff 資料來生成規格。開發人員可將此規格載入 STMicroelectronics 的 Unico 工具,以生成配置檔案並將其載入 STMicroelectronics 的 LSM6DSOX 感測器中。(資料來源:STMicroelectronics)

將 J48 決策樹文字複製並儲存至檔案以後,開發人員將該文字檔案載入 Unico,以生成暫存器配置檔案。最後,開發人員使用 Unico「Load/Save」(載入/儲存) 標籤,將該配置檔案載入 LSM6DSOX,以完成整個工作流程。此時,開發人員可執行支援動作,同時握住前述的 STEVAL-MKI109V3 主機板,使用 Unico 從所配置決策樹的 LSM6DSOX 輸出暫存器,讀取決策樹分類結果。

在自訂設計中,開發人員可利用決策樹輸出暫存器的變化,向微控制器發出喚醒訊號,並執行程式碼以向使用者發出訊號、累加運動計數器,或執行應用所要求的其他更高階且合適的作業。

雖然本範例極為簡單,但 LSM6DSOX ML 核心可利用前述的更多不同特性,對更複雜的動作事件進行分類。例如,STMicroelectronics 使用更多的特性將健身活動歸類至更廣泛的運動,包括二頭肌彎曲、開合跳、側面平舉、伏地挺身和深蹲,描述了此簡易應用的更進階版本。

除了在簡單範例中所用的均值和峰對峰特性之外,該複雜範例還增加了為兩秒時間窗期計算的方差、最小值、最大值以及零交叉特性。這個更複雜的應用在 LSM6DSOX ML 核心上執行,所產生的電流消耗大約是 569 μA (@ 1.8 V),其中僅大約 13 μA 是 ML 核心本身消耗的電流。在此水平的功耗下,開發人員可放心地實作常開型動作偵測,其對電池的充電狀態僅會產生些許影響。

機器學習注意事項

現實世界的機器學習應用需仰賴受監控的學習工作流程,而在最終機器學習模型中,無論該模型是極為複雜的卷積神經網路還是相對簡單的決策樹,都會不可避免地引入某種形式的偏差。尤其是動作型資料極為仰賴實體型態和運動學,以致於從一個人執行活動所收集到的資料,可能與從另一個人收集到的明顯不同。

因此,採用 ML 型活動偵測功能的開發人員,會持續面臨同一種挑戰,亦即在資料特定性與一般性之間找出平衡點。過多的特定性通常會限制一般性,而過多的一般性,對於準確偵測不同人在相同動作上的獨特差異,通常是相當不利的。雖然此類問題不是此特定實作所獨有的,但是在個人化動作偵測裝置上取得這種平衡面臨著諸多挑戰,而這可能意味著需要使用能以使用者特定資料更新的決策樹。不過,透過仔細注意這些機器學習資料科學的眾多要求,開發人員已可使用 LSM6DSOX 和現有的工作流程,在功率受限的設計中,加入複雜的常開型動作偵測功能。

結論

既要實作常開型動作追蹤,又要達到更長的電池續航力,對健身裝置與其他小型穿戴式裝置的開發人員來說,似乎是一個無法克服的衝突。雖然許多進階感測器可獨立於處理器之外,提供一定程度的動作偵測,但是,由於市場渴望對更複雜動作進行常開型偵測,阻礙了此種方法在新興應用中的使用。

不過,利用 STMicroelectronics 的 LSM6DSOX 動作感測器的機器學習能力,開發人員可以解決常開型追蹤與更長電池續航力之間的衝突,從而開發出更進階的活動感知型健身環及其他穿戴式裝置。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk 撰寫電子產業的相關資訊已有超過二十年的經驗,涉及的主題多元,涵蓋硬體、軟體、系統以及包含 IoT 在內的應用。他以神經元網路為研究主題,取得神經科學博士學位,並且在航太產業,針對廣泛運用的安全系統和演算法加速方法進行研究。目前,在撰寫科技和工程文章之餘,他投入辨識和推薦系統的深度學習應用。

關於出版者

DigiKey 北美編輯群