iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
AI & Data

感知你的動作與情緒:深度學習在人機互動的應用系列 第 22

Day 22 | 多模態情緒感知的設計骨架

  • 分享至 

  • xImage
  •  

前言

把「感知 → 理解 → 回應」做成順、穩、可用的互動,是這一類系統的靈魂。今天用低門檻、可上手的方式,帶你看清整條鏈路該怎麼設計:哪些感測訊號值得用、資料怎麼處理、模型怎麼選、介面怎麼回應、評估怎麼做,以及安全與隱私要怎麼在一開始就想好。


一、要解的問題先說清楚

單一明確情境起步,成功率最高:

  • 專注 vs. 分心(學習輔助、工作番茄鐘)
  • 放鬆 vs. 緊繃(呼吸訓練、冥想 App)
  • 正向 vs. 負向(客服語氣輔助、內容推薦節奏)

小原則:任務「窄」且「可重複」→ 資料好蒐集、模型好學、體驗好驗證。


二、感測訊號怎麼選

建議從穿戴容易、抗干擾的訊號開始,搭配一兩個輔助來源。

  • 心跳(ECG/PPG)
    HRHRV(如 RMSSD、LF/HF):對壓力/放鬆很敏感。
  • 皮膚電(EDA/GSR)
    SCL(基線)與 SCR 次數/幅度:反映激發(arousal)。
  • 呼吸(RSP)
    呼吸率深度:緊張時呼吸偏淺快,放鬆時變慢深。
  • 加速度(ACC)
    用來判定是否在動,避免把運動造成的心跳上升誤判成焦慮。

入門配置範例:手錶 PPG(心率/HRV)+指套 EDA+手機 IMU。裝得了更少,就先 PPG + ACC。


三、資料到「可訓練」的最短路

同步
不同裝置要對齊時間。沒有共用時鐘?錄開始先拍手/深呼吸一次,當「對齊點」。

前處理(概念就好)

  • 心跳:去漂移、找峰值 → 算 HR/HRV。
  • 皮膚電:去趨勢、低通(~1–2 Hz)→ 算 SCL、SCR。
  • 呼吸:找峰谷 → 算呼吸率與變異。
  • 共通:用移動視窗(例:30 秒窗、5–10 秒步進)計算特徵,再做個體 z-score(以人為基線)。

標註

  • 事件腳本:例如「放鬆 60 秒 → 解數獨 60 秒 → 放鬆 60 秒」;切窗時把中間 30 秒當穩定段。
  • 自報量表:每段結束滑一下 Valence–Arousal(價性 × 激發)。
  • 沒有標註也能起步:先做弱監督(例如用 HRV/EDA 的高低分位數挑出「高/低激發」的高置信樣本)做第一版。

四、模型選擇不複雜:先有穩定基線,再看進階

基線(推薦)

  • 用上面窗格特徵(HR、RMSSD、LF/HF、SCL、SCR/min、RR)
  • 丟進 Logistic Regression / XGBoost
  • 優點:可解釋、可快速 A/B、容易維運

進階

  • 1D CNN / LSTM:直接吃序列(每窗的多通道時間序列)
  • 2D CNN:把各頻帶能量或時頻圖疊成「生理影像」
  • 多模態融合
    • 早期融合:把特徵拼在一起(HRV + EDA + RSP)
    • 後期融合:各模態輸出一個機率,再加權平均(做可靠度加權:有大動作就降低 PPG 權重)

輸出要穩

  • 用**指數移動平均(EMA)**平滑機率
  • 門檻 τ冷卻時間(剛切換狀態後 N 秒內不再切)

五、互動設計:讓系統會「做人」

  • 信心透明:顯示狀態與信心水位(例如一條進度條),信心低就用「建議語氣」。
  • 低負擔回饋:提供 👍/👎、一鍵「這段判錯」;越輕鬆越好
  • 情境安全:在車內或客服的高風險場合,低信心就交回人(HITL)。
  • 個人化:提供簡易的「我的基線」校準(2–3 分鐘呼吸練習即可),不同人差很多。
  • 語氣與行為策略
    • 高激發(可能緊張)→ 語句更短、更具體,提供一鍵捷徑。
    • 放鬆進展 → 給正向回饋與下一步建議。
    • 低信心 → 請求補充或引導做一次校準。

六、怎麼判定「夠好可以用」?

離線(先看這三個)

  • F1 或 Macro-F1:類別平衡地看實力
  • AUC:不同門檻的整體表現
  • 資料切分:先做「同一個人的切分」(intra-subject)看到效果,再挑戰跨人(inter-subject)

線上(真的影響體驗的)

  • 成功率/完成時間:任務真的更快/更穩嗎?
  • 誤觸率:低信心時有乖乖等嗎?
  • 回饋參與率:使用者願不願意給 👍/👎(代表回饋成本夠低)
  • 分層錯誤率:不同族群/情境是否一致(公平性檢查)

七、隱私與倫理:一開始就要放進規格

  • 明確告知與同意:用途、保存期限、可撤銷
  • 只留需要的:多留衍生特徵、少留原始波形;能在裝置端就不要上雲端
  • 人在回路:高風險情境保留人工覆核
  • 分層監測:不同年齡/性別/健康狀況的表現差異要持續看

常見問題

  • 把喚醒當情緒:高激發不一定負向,要結合語境或行為(例如任務是否困難、是否在運動)。
  • 忽略個體差:先做個人基線,再談跨人泛化。
  • 動作偽影沒處理:沒有 ACC 當參考,很容易誤判。
  • 過度自動化:沒有冷卻/平滑,畫面會瘋狂跳狀態。

結語

做「感知動作與情緒」的關鍵,不是把模型堆到最花俏,而是把整條流程做乾淨、做穩、做貼心。先用簡單、看得懂的做法打底(像 HRV/EDA 的基線模型),確認真的有用,再視需要加入更進階的模型或更多感測。輸出別太躁進:加點平滑、設個門檻、放冷卻時間,體驗就不會亂跳。資料與隱私一開始就想清楚,低信心就交回人,讓系統不只聰明,還可靠、可被信任。把這幾件事做好,系統會越用越懂人。


上一篇
Day 21 | 推薦系統 × 情緒 × UI:互動設計實作
下一篇
Day 23 | Gradio 多模態互動雛形:把設計骨架跑起來
系列文
感知你的動作與情緒:深度學習在人機互動的應用24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言