在使用 Edge Impulse 來建立感測器資料集時,以往的做法是建議您一次上傳一筆長度為1秒鐘的資料,但這樣反覆操作下來實在有點煩,有沒有更方便的操作方式呢?有!本文將為您介紹如何一次上傳較長秒數的資料,再從 Edge Impulse (本文後簡稱 EI) 中來裁剪 (crop ) 或分割 (split)。
使用 Edge Impulse 來裁剪與分割資料
註冊與登入 EI 的方式在先前的文章已經說明,在此不再贅述,也歡迎看看阿吉老師的 Wio Terminal X TinyML 系列影片,帶您輕鬆完成一個光感測器手勢辨識專案!
以加速度感測器為例,下圖是一筆長度為10秒 (100 Hz,總共 1000 筆特徵點) 的加速度感測器資料,定義 label 為 Shake。
由於一開始開發板是靜置於桌面,因此加速度沒有明顯變化,三秒左右才開始搖晃,如果直接把這資料拿去訓練 , 或許前面靜止的部分會被神經網路視為特徵點而影響模型辨識。
這時候就可以用到 EI 中的內建功能:Crop sample(切除範例)和 Split sample(分割範例)
在 EI 左側的 Data Acquisition 標籤中,這裡會看到您已經上傳的所有資料。每一筆資料的最右端會有三個點,點擊後會出現一串選項,其中有本文要介紹的 Crop sample (裁剪樣本) 和 Split sample (分割樣本) 等兩個功能,接下來將分段說明 。
裁剪樣本
Crop Sample 是捨棄選取範圍之外的資料,選擇 windows 大小時會在右上角看到其時間長度(單位為毫秒)。請注意這個數字請與後續的推論時間相符,因此建議都選定為 1000 ms,這也是 TinyML 專題常見的設定。點選右下 Crop 之後就裁剪完成。別擔心,後續還是可以回溯到最初的未修改狀態。
分割樣本
Split sample 是將一筆時間長度較長的資料分為多筆相同長度的資料,但原始資料在分割之後就無法再回復成原始資料。
請在 Split 畫面中點選左上角的 Add Segment 來新增多個 window,彼此可以重疊也可以調整 window 寬度。首次進入時,EI 會自動判斷哪些段的資料是值得被留下來的,如下圖有四個 window。
按下 Split 之後就會把這筆資料分割成多筆小片段,可由分割後的時間長度來判斷。
透過這兩個功能,您可以將比較明顯的加速度值改變的位置以週期為單位框取並分割。這樣就能收集一筆時間較長的資料再分割,也可以手動檢查資料來裁剪,避免多餘或錯誤的資料來影響神經網路訓練結果。
對於AI而言,資料集品質的重要性應該不需要再強調了吧?高品質的訓練資料最終才能產生好的模型。希望以上的教學可以讓各位在收集資料方面更方便快速,最後祝大家都能成功訓練出自己所要的模型!
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏