손목, 손가락 피크 비교
지금까지 진행
1. WF-PPG 데이터셋 분석
- 사용한 파일
0_preprocessed_01.csv
→ 원본 신호 (PPG, ECG, 압력 등)0_indices_01.csv
→ waveform 구간 정보 (finger/wrist)
2. ECG R-peak 검출
- ✅ ECG 신호를 필터링 + peak detection
- ➔ R-peak 38개 검출 성공
→ 이걸 Reference (진짜 심장 박동)으로 사용
3. PPG Peak 검출
- ✅ PPG 신호를 필터링하고,
- Peak detection (초기 SSF 방법 사용)
- 검출 결과
- 초기엔 너무 많은 피크 (200개 넘음)
- 개선해서 약 181개 정도로 줄임
- 문제점
- PPG는 노이즈 많고 waveform이 완만해서 잘못 검출 많음
4. 기존 평가 방법
-
✅
Peak Matching 방식
평가
- ECG-Peak과 PPG-Peak를 시간 기준으로 매칭
- 결과:
- TP는 괜찮지만 FP가 매우 많음 ➔ specificity 낮음
PPG 신호 4종류 비교 분석
ECG를 기준 신호로 삼아,
서로 다른 4종 PPG 신호의 심박 검출 정확성과 심박수 측정 정확성을 종합 비교하고자 합니다.
###
2. 실험 방법
데이터 및 환경
- 데이터셋: 0_preprocessed_01.csv
- 샘플링 주파수: 100 Hz
- 측정 신호:
- 손목 Green (PPG_Wrist_G_AC)
- 손가락 IR (PPG_Finger_IR_AC)
- 손가락 Red (PPG_Finger_R_AC)
- 손가락 Green (PPG_Finger_G_AC)
_AC붙은게 전처리된 신호였음.
분석 절차
- ECG 신호를 기반으로 개선된 Pan-Tompkins 변형 알고리즘으로 R-peak 검출
- 각 PPG 신호는 밴드패스 필터 + Savitzky-Golay 스무딩을 적용한 후 peak 검출
- 평가 기준:
- 개별 피크 매칭 (정확도, 민감도, 특이도)
- 구간별 심박수 계산 (60초 단위, MAE, ±1 bpm 일치율)
3. 주요 결과
3.1. 피크 검출 및 매칭 결과
실험 방식 정리 (기본 흐름)
기준인 ECG 피크 220개 각각에 대해, PPG 피크가 200ms 이내에 하나라도 있으면 TP, 없으면 FN
측정 지표 | 손목 Green | 손가락 IR | 손가락 Red | 손가락 Green |
---|---|---|---|---|
검출된 PPG Peaks 수 | 180개 | 222개 | 221개 | 225개 |
Peak 매칭 정확도 | 0.78 | 0.75 | 0.75 | 0.89 |
Peak 매칭 민감도 | 0.80 | 0.86 | 0.86 | 0.95 |
Peak 매칭 특이도 | 0.97 | 0.86 | 0.86 | 0.93 |
- 손목 PPG는 특이도는 높지만 정확도가 부족하고,
- 손가락 Green은 가장 높은 정확도(0.89) 와 가장 높은 f1-score 을 기록했습니다.
3.2. 구간별 심박수 비교
실험 방식 정리 (기본 흐름)
- ECG 피크 (R-peaks)와 PPG 피크를 각각 검출
- 신호를 60초 단위로 나눔
- 각 구간에서 피크 개수를 세서 → 분당 심박수 계산 (bpm)
- ECG HR vs. PPG HR을 1:1로 비교해서 오차 계산
일반적인 HR 분석 구간 (Interval Lengths)
구간 길이 | 용도 / 해석 |
---|---|
5초 ~ 15초 | 실시간 모니터링, 운동 중 빠른 반응 필요 |
30초 | 중간 수준 정확도와 반응성 균형 |
60초 (1분) | 전통적 HR 측정 기준 (임상, 웨어러블 등 대부분 이 기준) |
2~5분 이상 | 장기적 평균 추정, 심박 변이도(HRV) 분석 등 |
항목 | 손목 Green | 손가락 IR | 손가락 Red | 손가락 Green |
---|---|---|---|---|
평균 차이 (PPG-ECG, bpm) | -16.5 | +1.5 | +1.0 | +2.5 |
HR 일치율 (±1 bpm 기준) | 0% | 50% | 100% | 50% |
- 손가락 Red는 구간별 심박수 정확도 면에서 가장 완벽한 결과를 보였습니다.
- 손목 PPG는 약 16.5 bpm 과소 평가하며 큰 체계적 오차를 보였습니다.
평균차이란
예: ECG 83, PPG 87 → 오차 4 / ECG 89, PPG 90 → 오차 1
→ 평균 = (4 + 1) / 2 = 2.5 bpm
±1 bpm 일치율이란?
“ECG와 PPG의 심박수 차이가 ±1 bpm 이내인 구간이 전체 구간 중 몇 퍼센트냐”를 의미해.
-
ECG = 83 bpm
-
PPG = 84 bpm
→ 차이 = 1 bpm → 일치
하지만
-
ECG = 89 bpm
-
PPG = 93 bpm
→ 차이 = 4 bpm → 불일치
4. 각 PPG 신호별 특성 분석
▷ 손목 Green (PPG_Wrist_G_AC)
- 장점: 특이도 0.97 (거짓 검출이 거의 없음)
- 단점: 심박수 대폭 과소평가(-16.5 bpm), 구간별 일치율 0%
- 📝 결론: 착용 편의성은 좋지만 정확성은 임상 수준에 미달
▷ 손가락 IR (PPG_Finger_IR_AC)
- 장점: MAE 1.5 bpm로 양호한 정확도
- 단점: 특이도가 다른 손가락 채널보다 약간 낮음
- 📝 결론: 심박 모니터링에 안정적, 실용성 높음
▷ 손가락 Red (PPG_Finger_R_AC)
- 장점:
- 구간별 MAE 1.0 bpm (최저)
- ±1 bpm 완벽 일치율 100%
- 📝 결론: 심박수 계산 목적이라면 최적의 선택
▷ 손가락 Green (PPG_Finger_G_AC)
- 장점:
- 가장 높은 피크 매칭 정확도 (0.89)
- 민감도 0.95로 거의 모든 실제 심박 검출
- 단점: 심박수 약간 과대 평가(+2.5 bpm)
- 📝 결론: 개별 심박 검출이 필요한 상황 (예: HRV 분석)에 매우 적합
5. 주요 발견점 요약
-
손가락 vs 손목: 손가락
-
색상 채널 영향
:
- Green: 피크 검출에 유리
- Red: 심박수 계산에 유리
- IR: 균형 잡힌 성능
-
손가락 Red 채널이 ECG 대비 심박수 정확성에서 가장 우수
6. 결론 및 응용 제안
최적 PPG 선택
목적 | 추천 채널 |
---|---|
개별 심박 검출 | 손가락 Green |
심박수 정확성 | 손가락 Red |
종합 모니터링 | 손가락 IR |
PPG 기반 심박 모니터링의 성능은 측정 위치와 채널 선택에 크게 의존하며,
적절한 신호를 선택한다면 ECG 수준의 정확성도 달성할 수 있음을 입증했습니다.
0_preprocessed_01.csv
1_preprocessed_01.csv
2_preprocessed_01.csv
는 잘 나오는데
왜 그다음 데이터들은 또 피크검출이던 구간별 심박수 비교이던 값들이 많이 튀는지 모르겟음. 더 해봐야댈듯.
API를 받아올 수 있는 갤럭시링 탐색
어차피 애플리케이션이나 화면에 수면지수나 심박수 뜨는거말고
연구에 사용가능한 raw한 ppg나 ecg데이터를 api로 받아올 수 있는 기기가 있냐로 이해하고 조사함.
삼성 갤럭시링 관련 문의 - 2024/08
https://forum.developer.samsung.com/t/ppg-or-ecg-raw-data/33509
Q: 갤럭시 워치는 raw data인 PPG와 ECG 신호 접근이 가능하던데
갤럭시 링에서도 raw data인 PPG와 ECG 신호에 접근이 가능할까요 ??
A:
-
갤럭시 링의 데이터는 삼성 헬스 앱에 표시됩니다
-
직접적인 API로 원시 데이터(raw data)에 접근하는 것은 불가능한 것으로 보입니다
-
대안적 접근 방법
:
- Google Health Connect API를 통해 삼성 헬스 앱에서 데이터를 가져오는 방법을 시도해 보라고 제안하고 있습니다
- 이는 직접 기기에서 데이터를 받아오는 대신, 삼성 헬스 앱에 이미 저장된 데이터에 접근하는 방식입니다
- 하지만 이 방법으로는 심박수나 수면 패턴 같은 가공된 정보만 접근 가능하고, 센서의 원시 신호에는 접근하기 어려울 것으로 보입니다.
- 50만원
Oura Ring API를 통해 심박수, HRV, 수면 등 다양한 건강 지표 데이터를 받아와 분석·활용한 블로그, 깃허브, 칼럼, 오픈소스 사례는 다수 존재합니다. 300$
그러나, 일반 API로는 원본(raw) PPG/ECG 신호 데이터까지 받아올 수 없으며
알리나 아마존에서도 찾아봤는데 스마트링이라고 파는게 많긴한데 정보가 확실하게 차있는경우도 별로 없고, 리뷰도 별로 안 좋아서 패스. 30~300$
손가락에서 원시(raw) PPG(광용적맥파) 및 ECG(심전도) 데이터를 API로 직접 추출할 수 있는 스마트 링은 연구용 제품 위주로 제한적
일반 사용 제품들은 찾아봤는데 안보이는것 같음.
- Oura, Samsung Galaxy Ring, Ultrahuman, RingConn, Circular, Evie 등 주요 상용 스마트 링은 원시 PPG/ECG 신호를 API로 제공하지 않습니다.
- 이들 제품은 심박수, HRV, 수면 등 “가공된 데이터”만 API 또는 앱을 통해 제공합니다.
- 대부분의 상용 스마트 링은 “가공된 건강 지표”만 제공하며, 연구·개발 목적의 raw 신호 데이터가 필요하다면 반드시 연구용 특화 제품을 별도로 문의·구매해야 합니다.
아래부터는 필드용 링보다는 임상, 연구용 링. 한개밖에 못찾긴 함.
BIOPAC Research Ring (RESRING-PACK)
https://www.neurospec.com/Products/Details/1094/research-ring
- 측정 신호: ECG, PPG, EDA(피부전도), 체온, 움직임
- API/데이터 연동:
- 실시간 원시 신호 스트리밍 지원 (Senstream Cloud 또는 로컬 서버로 직접 전송).
- REST API를 통해 원시 데이터(ECG/PPG 파형)를 JSON/CSV 형식으로 추출 가능.
- BIOPAC AcqKnowledge 소프트웨어와 연동해 연구실 환경에서 고급 분석 가능.
- https://www.senstream.com/the-research-ring
- 특징:
- 9개 링을 동시에 연결해 다중 참여자 데이터 수집 가능.
- iOS/맥OS 앱 및 Windows/Linux 호환.
- 구매: BIOPAC 공식 홈페이지
- 가격: 문의. → 1000만원대
딱 봐도 갤럭시 링처럼 필드 보다는 연구, 임상용 링으로 보임.