發表文章

目前顯示的是 10月, 2026的文章

Chrominance-Based rPPG只取前額部分ROI的程式複現

圖片
  Photoplethysmography (PPG) 光體積變化描記法是一種用於監測多種生命徵象的光學技術,例如脈搏率、呼吸率及血氧飽和度,由於其非侵入性的特點而被廣受採用。 於早期研究中可得知,這些變化也可透過遠距方式測量,進而形成遠程光體積變化描記法(rPPG)的方法。於學術研究中,僅需低成本的RGB攝影機就能夠做實驗。而rPPG技術受限受測者不能有劇烈運動。當受測者只要出現顯著動作,現有演算法便會失效。 在2013年時候Gerard de Haan釋出一篇論文是探討「基於色度的 rPPG 強健脈搏率」, 提出新的 rPPG 技術比過去盲源分離方法(BSS-based methods)來得更穩健,其在訊雜比(SNR)與抗動作干擾能力方面,均優於所有先前的方法。他們不是單純從 RGB 中找週期,而是從「皮膚反射光的物理模型」推導出色度方法。論文的實驗包含 117 位受試者,並另外用腳踏車與踏步器測試動作干擾。 CHROM 到底想解決什麼問題? 假設你對一張臉拍攝影片,每一幀都取臉部皮膚 ROI 的平均顏色,就會得到三條隨時間變動的訊號: \[ R(t),\quad G(t),\quad B(t) \] 心臟跳動時,皮膚中的血液量會微微改變,因此吸收、反射的光也會跟著改變。攝影機雖然看不到明顯的「臉變色」,但 RGB 數值其實會有非常微小的週期變化。 論文一開始將某個顏色通道 \(C\) 寫成: \[ C_i=I_i^C(\rho_{dc}^{C}+\rho_i^C) \] 其中 \(C\) 可以是 R、G、B。 可以理解成 :  攝影機看到的顏色=照到臉上的光x皮膚反射回來的顏色。 而皮膚反射又可以想成: 皮膚原本的顏色+心跳造成的微小變化 也就是說,我們真正要找到的是那個非常小的心跳變化。 但攝影機同時還會看到燈光亮暗、臉部移動、反光等大得多的變化。 第一步:先把 R、G、B 各自正規化 如果今天整張臉突然變亮,R、G、B 都可能一起變大。 因此作者先把每個顏色通道除以該時間區間的平均值: \[ R_n=\frac{R}{\mu(R)} \] \[ G_n=\frac{G}{\mu(G)} \] \[ B_n=\frac{B}{\mu(B)} \] 這樣就可以降低不同膚色、不同曝光亮度造成的絕對數值差異。 Ref: Gerard de ...