촬영·음성·기초 신호 처리
브라우저 기본 기능인 getUserMedia, MediaRecorder, Web Audio API, Canvas API가 카메라·마이크 입력, 녹화, 음량 RMS, 얼굴 피부영역 색상 샘플링을 담당합니다.
COUNSELCUE · SKKU RESEARCH PILOT
실시간 수집 앱의 실행 구성, 추출 필드, 저장 파일과 해석 범위를 설명합니다.
MEASUREMENT & RUNTIME
설치 없는 Cloudflare 웹앱으로 운영됩니다. 세션·API·저장은 클라우드에서 관리하고, 지연과 개인정보 노출을 줄이기 위해 영상 프레임의 AI 특징 추출만 참여자의 브라우저에서 실행합니다. 동의 후 시작된 세션만 원본 미디어와 시간 정렬된 특징값을 HTTPS로 전송합니다.
브라우저 기본 기능인 getUserMedia, MediaRecorder, Web Audio API, Canvas API가 카메라·마이크 입력, 녹화, 음량 RMS, 얼굴 피부영역 색상 샘플링을 담당합니다.
Face Landmarker와 Pose Landmarker Full이 WebAssembly로 브라우저 안에서 동작합니다. GPU를 우선 사용하고 지원되지 않으면 CPU로 자동 전환합니다.
Cloudflare Pages가 화면을 제공하고, Workers runtime의 API가 세션을 처리하며, 원본과 JSONL 신호는 공개 목록이 없는 비공개 R2 버킷에 저장됩니다.
cc-mmla-web-observational-v1.0| 항목 | 현재 설정 | 연구 근거 | 적용 경계 |
|---|---|---|---|
| 영상 입력 | 1280×720, 목표 30 fps | rPPG 원신호의 시간 해상도를 보존하며 실제 장치 설정도 세션 정보에 기록합니다. | 장치·브라우저 성능에 따라 실제 값은 달라질 수 있습니다. |
| rPPG | POS-inspired, 얼굴 3개 ROI, 10초 창, 0.7–3.0 Hz | de Haan & Jeanne (2013), Wang et al. (2017)의 색차 기반 rPPG 원리를 따릅니다. | 현재 구현은 임상기기가 아닌 브라우저 파일럿입니다. |
| 초기 기준선 | 첫 60초 자동 요약 | Laborde et al. (2017)가 짧은 HF 평가의 절대 최소로 1분을 제시합니다. | 세션 내 상대 비교용입니다. HRV 분석 기준선은 아닙니다. |
| HRV 확장 | 현재 비활성 | Task Force (1996)와 Laborde et al.은 단기 HRV에 5분 기록을 권고합니다. | ECG/RR 웨어러블 연동 후 ≥125 Hz ECG 또는 검증된 RR로 별도 구현합니다. |
| EDA 확장 | 현재 비활성 | SPR EDA Committee (2012)의 전극·단위·sampling·tonic/phasic 보고 기준을 적용합니다. | EDA 지원 웨어러블 연동 전에는 추정하지 않습니다. |
| 동기화 | 단조시간 + epoch 시간 동시 저장 | 동일 세션 내 정렬을 보존합니다. 교차 장치는 공통 이벤트 또는 검증된 후처리 정렬이 필요합니다. | BLE 수신시각만으로 장치 간 동시성을 가정하지 않습니다. |
| 모델·품질 임계값 | 버전과 값을 세션 정보에 저장 | MediaPipe detection/presence/tracking 0.5와 rPPG quality 0.18은 표준이 없는 공학 파라미터입니다. | 연구 전 검증셋으로 재보정하며 원신호·품질값을 삭제하지 않습니다. |
| 영역 | 저장 필드 | 계산·의미 | 해석 시 주의 |
|---|---|---|---|
| 시간 | t_msepoch_ms | 세션 시작 후 경과시간과 실제 시각. 영상·음성·특징값 정렬에 사용합니다. | 기기 시계 설정의 영향을 받습니다. |
| 검출 상태 | face_availablepose_available | 해당 프레임에서 얼굴·상체 자세 모델 결과가 있었는지 표시합니다. | false 구간은 결측으로 다뤄야 합니다. |
| 카메라 맥박 | rppg_bpmrppg_signal | 이마와 양 볼의 RGB 변화에서 POS 계열 색상 신호를 만들고, 최근 10초의 0.7–3.0 Hz 피크를 42–180 BPM으로 환산합니다. | 의료기기 측정값이 아닙니다. 품질 기준 미달이면 BPM은 null입니다. |
| rPPG 품질 | rppg_qualitybrightness | 주파수 피크 선명도, 얼굴 크기, 밝기, 머리 움직임을 합친 0–1 품질값과 피부영역 평균 밝기입니다. | 정확도 확률이 아니라 분석 가능성 지표입니다. |
| 얼굴 움직임 | head_motion | 코 기준점의 프레임 간 이동속도를 정규화하고 평활화한 0–1 상대값입니다. | 고개 회전뿐 아니라 카메라 흔들림도 포함될 수 있습니다. |
| 표정 단서 | smile_activationblink_activation | MediaPipe의 좌우 입꼬리 미소 및 양안 깜박임 blendshape 활성도를 평균한 0–1 값입니다. | 관찰 가능한 모델 활성값이며 행복·불안 같은 감정 판정이 아닙니다. |
| 제스처 | gesture_intensity | 양 손목의 2D 이동속도를 정규화·평활화한 0–1 활동 강도입니다. | 제스처 종류나 의미를 분류하지 않습니다. |
| 자세 | torso_lean_deg | 어깨 중심과 골반 중심을 잇는 선의 화면상 좌우 기울기(도)입니다. | 2D 카메라 기준이며 실제 3D 몸통 각도와 다를 수 있습니다. |
| 음성활동 | voice_activity | 마이크 파형 1,024개 샘플의 RMS 음량을 정규화한 0–1 값입니다. | 말의 내용·화자·정서를 인식하지 않으며 주변 소음도 반영됩니다. |
| 희소 좌표 | face_keypointspose_keypoints | 코·눈·입꼬리와 어깨·손목·골반의 정규화된 x/y 좌표 및 가시성입니다. | 전체 얼굴 메시가 아니라 재분석에 필요한 선택 좌표만 저장합니다. |
| 초기 기준선 | baseline_summary | 세션 첫 60초 동안 각 신호의 평균, 표준편차, 유효 표본 수를 자동 계산해 별도 레코드로 저장합니다. | 5분 HRV 기준선이 아니라 세션 내 상대 비교용 초기 기준선입니다. |
브라우저가 지원하는 WebM 또는 MP4 영상·음성을 약 5초 단위 청크로 업로드합니다. 세션 종료 후 하나의 미디어 파일로 내려받을 수 있습니다.
특징값을 목표 33ms 간격으로 저장하고, 첫 60초 기준선 요약을 자동 추가합니다. 분석 중에는 약 5초마다 묶어서 전송합니다.
Study, 비식별 Participant code, 브라우저가 보고한 해상도·프레임률·오디오 설정, 시작·종료 시각, 청크·샘플 수를 기록합니다.
연구자가 세션 파일을 다시 받을 수 있는 링크와 접근키를 담습니다. 참여자에게 공유하지 않고 승인된 연구 저장소에만 보관해야 합니다.