消費者對于健身跟蹤器和其他個人移動設備具備“始終開啟”運動跟蹤功能的需求不斷增長,在過去,這意味著設計人員需要在這些功能與電池壽命之間做出取舍。若是嘗試降低功耗,勢必會犧牲跟蹤功能或分辨率,因而會使用戶的體驗受到影響。
不過,隨著內置運動檢測功能的低功耗傳感器的出現,將有助于開發人員消除這一設計局限性。
本文將介紹并展示如何使用STMicroelectronics推出的智能運動傳感器,該傳感器集成了精密的運動處理功能,能提供更有效的解決方案來實現低功耗、始終開啟的運動跟蹤。
傳統的電源管理實踐
在典型的低功耗移動系統設計中,主機微控制器在正常有源模式下所用功耗占系統總功耗的絕大部分。因此,開發人員會尋找一切機會讓微控制器在低功耗休眠模式下運行,并將處理器的喚醒時間控制在僅僅足夠讓處理器完成傳感器數據處理或通信等任務的程度內。
多年來,開發人員一直通過使用可獨立收集主機處理器數據的傳感器實現這一目標。在對傳感器輸出數據速率要求不高的應用中,傳感器可能會將一系列測量數據填入片載緩沖區,甚至執行直接存儲器訪問 (DMA) 事務以將數據傳輸到系統內存中,然后再發出中斷信號喚醒處理器以使其完成處理任務。由于傳感器的集成式信號鏈可以執行信號調節、轉換和濾波,因此處理器可以立即開始處理經過預處理的數據,并尋找對于應用意義重大的事件。
在這些傳感器中集成了閾值檢測功能之后,開發人員可以進一步延長處理器持續處于低功耗模式的時間。傳感器不需要處理器識別重要事件,傳感器僅在測得超出開發人員所設定閾值的事件時發出喚醒信號。例如,設計人員可以對這種高級溫度傳感器進行編程,讓它只在測得的溫度超過指定的最大閾值或低于指定的最小閾值時發出喚醒信號。
這種降低功耗的方法對于比較簡單的需求雖然有效,但用來檢測更為復雜的事件時,它的效果卻要大打折扣。再加上對始終開啟感測的要求,檢測這些復雜事件意味著處理器的有效占空比變得更高,這樣會導致個人可穿戴設備中常用的容量相對較小的充電電池電量很快耗盡。因此,隨著用戶對始終開啟檢測和更長電池續航時間的需求越來越高,以往使用主機微控制器執行檢測的這一做法變得難以為繼。
如果傳感器能夠執行更復雜的檢測算法,那么開發人員就可以沿用目前的最佳實踐,通過低功耗工作模式和處理器休眠狀態來降低系統功耗。與此同時,這種更加智能的傳感器還需要為開發人員提供高度靈活性。僅僅將幾種特定的算法硬寫到傳感器中并不能滿足人們對于更新穎、更出色產品特性的需求。STMicroelectronics 的 LSM6DSOX iNEMO (LSM6DSOXTR) 慣性傳感器可提供這一靈活性,還有內置在該器件內的多種信號處理功能和靈活計算能力。
傳感器架構
LSM6DSOX iNEMO 是一個系統級封裝 (SiP),在一個接點柵格陣列 (LGA) 封裝中整合了微機電系統 (MEMS) 傳感器、專用的信號鏈、濾波器和專用的計算引擎,體積僅為 2.5 x 3.0 x 0.83 mm。該器件還具有內置的三軸加速計和三軸數字陀螺儀 MEMS 傳感器,因此可以將其配置為一個傳感器中樞,用來通過專用的中樞寄存器單獨安排最多四個外部傳感器的運行。
LSM6DSOX 采用與以前的 STMicroelectronicsLSM6DSO相同的架構,可提供早期器件的所有功能和特性(請參閱“IMU:通過板載機器學習讓主機休眠”)。不過,LSM6DSOX 讓 STMicroelectronics 在早期的器件中提供的有限狀態機 (FSM) 具備了機器學習 (ML) 內核,可通過最多 8 個決策樹對數據集進行分類。即使不激活 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.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 軟件工具,此工具具有Windows、Mac OSX和Linux版本。
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,開發人員可以在 Preprocess(預處理)窗口中加載 arff 文件并查看整個特性集的圖形化概覽(圖 6)。
圖 6:使用 STMicroelectronics 的 Unico 工具為自己的數據集生成一個 arff 文件之后,開發人員可以使用第三方機器學習工具 Weka 來查看整個數據集,這里顯示了列表 1 中的 arff 數據的數據集。(圖片來源:Digi-Key Electronics)
要構建決策樹,開發人員需要切換到 Weka 的 Classify(分類)窗口并選擇 Weka J48 分類器(Weka 的決策樹分類器),然后單擊 Start(開始)。在其輸出窗口中,分類器會列出匯總的輸入數據,并同時以圖形格式(圖 7)和文本格式(圖 8)提供決策樹。
圖 7:要構建決策樹,開發人員只需加載一個 arff 文件、選擇 Weka J48 決策樹分類器并生成最終的樹。內置的 Weka 可視化工具用于查看結果,并列出了每個節點的屬性和條件 - 在此示例中使用的是列表 1 中的 arff 數據。(圖片來源:Digi-Key Electronics)
圖 8:除了直觀地顯示決策樹以外,Weka 還會生成實際 J48 決策樹規格 - 在此示例中使用列表 1 中的 arff 數據來生成列表 2 中的 J48 規格。(圖片來源:Digi-Key Electronics)
在此示例中,生成的 J48 決策樹規格只需要幾行代碼(列表 2)。
列表 2:Weka 會為列表 1 中的 arff 數據生成一個類似于此規格的 J48 決策樹規格。開發人員將此規格加載到 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 運動傳感器提供的機器學習能力,開發人員可以解決始終開啟跟蹤與更長電池續航時間之間的沖突,從而構建更加高級并能夠感知活動的健身腕帶和其他可穿戴設備。
-
傳感器
+關注
關注
2551文章
51147瀏覽量
754000 -
跟蹤器
+關注
關注
0文章
131瀏覽量
20042 -
機器學習
+關注
關注
66文章
8421瀏覽量
132703
發布評論請先 登錄
相關推薦
評論