ForMe Algorithm API Documentation
ForMe 웨어러블 디바이스를 위한 심박수, HRV, 수면 분석 알고리즘 라이브러리 공식 문서입니다.
📱 지원 플랫폼
🤖 Android (AOS)
JNI 기반 네이티브 라이브러리
- 버전: v01.03.03
- 형식:
.so(Shared Object) - Android SDK 문서 보기 →
🍎 iOS
C API 기반 정적 라이브러리
- 버전: v01.03.03
- 형식:
.a(Static Library) - iOS SDK 문서 보기 →
💻 C++ SDK
크로스 플랫폼 네이티브 라이브러리
- 버전: 곧 공개 예정
- 형식: Header + Static/Dynamic Library
- C++ SDK 정보 보기 →
🎯 주요 기능
실시간 심박수 & HRV 측정
PPG 센서와 가속도 센서를 사용하여 실시간으로 심박수와 25개의 HRV 지표를 계산합니다.
- 심박수(HR): 40-160 bpm 범위
- 시간 도메인 지표: SDNN, RMSSD, pNN50 등
- 주파수 도메인 지표: VLF, LF, HF, LF/HF 비율
- 비선형 지표: Poincaré Plot (SD1, SD2)
- Coherence: 심박변이도 일관성
수면 단계 분석
가속도와 HRV 데이터를 종합하여 수면 단계를 30초 단위로 분류합니다.
- Deep Sleep (깊은 수면)
- Light Sleep (얕은 수면)
- REM Sleep (렘수면)
- Wake (각성)
수면 자세 감지
3축 가속도 센서로 수면 자세를 실시간 감지합니다.
- 오른쪽 옆으로 누움
- 바로 누움 (Supine, 등)
- 왼쪽 옆으로 누움
수면 유도 음원 제어
수면 단계와 입면 상태에 따라 자동으로 음원을 제어합니다.
- Background/DBBeats/Stimulus Sound
- 입면 시점 감지
- 자동 음원 중지
🚀 빠른 시작
Android (Kotlin)
// 네이티브 라이브러리 로드
companion object {
init {
System.loadLibrary("formelib_module")
}
}
// 심박수 측정
val result = lib_engine_heart_rate(
accelData, ppgData, devSource,
leadOff = 0,
hrvStart = 1, // 시작
ppgSample = 64, ledState = 32,
cntAccel, cntPPG, cntDev, pktInterval
)
println("HR: ${result.hrv_indices.HR} bpm")
println("SDNN: ${result.hrv_indices.SDNN} ms")
println("Coherence: ${result.hrv_indices.coherence} dB")
iOS (Swift)
import Foundation
var hrvIndices = HrvIndices()
var hrvState: Int8 = 0
var hrCount: Int32 = 0
var ledControl: Int8 = 0
// 심박수 측정
lib_engine_heart_rate(
&accelData, &ppgData, &devSource,
0, 1, ppgSample, ledState,
cntAccel, cntPPG, cntDev, pktInterval,
&hrvIndices, &hrvState, &hrCount, &ledControl
)
print("HR: \(hrvIndices.HR) bpm")
print("Coherence: \(hrvIndices.coherence) dB")
C++ (준비 중)
// C++ SDK는 곧 공개 예정입니다
#include <formelib/heart_rate.hpp>
formelib::HeartRateEngine engine;
auto result = engine.analyze(accel_data, ppg_data);
std::cout << "HR: " << result.hr << " bpm" << std::endl;
📊 알고리즘 흐름
flowchart TD
A[센서 데이터 입력] --> B[데이터 버퍼링]
B --> C{측정 시간 판단}
C -->|0-10초| D[rr_detecShort<br/>실시간 HR]
C -->|0-120초| E[rr_detec<br/>HRV 분석]
D --> F[hrv_calculation]
E --> F
F --> G[HRV 지표 23개]
F --> H[calculate_coh]
G --> I[출력: HR, SDNN, Coherence 등]
H --> I
📚 문서 구조
| 섹션 | 설명 |
|---|---|
| Android SDK | AOS API 레퍼런스 및 예시 |
| iOS SDK | iOS API 레퍼런스 및 예시 |
| 데이터 구조 | HRV 지표, 수면 단계 등 데이터 포맷 |
| 알고리즘 | 내부 알고리즘 상세 설명 |
| 개발 가이드 | 빌드, 통합, 문제 해결 가이드 |
🔗 빠른 링크
🤖 Android API
🍎 iOS API
📊 데이터 구조
⚡ 성능 지표
| 항목 | 사양 |
|---|---|
| 처리 주기 | HR/HRV: 1초, 수면: 30초 |
| 메모리 사용 | ~2MB (버퍼 포함) |
| CPU 사용률 | <5% (Arm Cortex-A55) |
| 배터리 영향 | <0.5% 추가 소모 |
📮 문의
- 기술 지원: contact@dbbeats.com
ℹ️ 라이센스
이 프로젝트는 SleepWave, Inc.의 독점 소프트웨어입니다.
무단 복제, 배포, 수정을 금지합니다.