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 Haan and Vincent Jeanne, “Robust Pulse Rate From Chrominance-Based rPPG,” IEEE Transactions on Biomedical Engineering, Vol. 60, No. 10, pp. 2878–2886, 2013. DOI:10.1109/TBME.2013.2266196。
Google Patent WO2014068436A1
Device and method for extracting physiological information
Inventor:Gerard De Haan
留言
張貼留言