FIND YOUR NEXT MOVE
문서 탐색
ENGINEERING DOCUMENTATION

수학과 신호 처리

실제 구현의 좌표, 정규화, 시간 변화와 적응형 증거 기준.

IMPLEMENTED소스 검토 / 2026.09.09

두 좌표 경로를 구분하기

기존 PoseNormalizer의 보정 기준 계산과 V3의 종횡비 보정 계산은 다릅니다. 서로 다른 길이 단위의 변수를 한 수식에 섞지 않습니다. 이 문서는 실제 소스에서 확인한 식만 다룹니다.

영상 종횡비 보정

ImagePlaneGeometry.Project는 정규화된 영상 좌표를 영상 높이 단위의 등방성 평면 좌표로 변환합니다.

x=xWH,y=yx'=x\frac{W}{H},\qquad y'=y
표기구현 변수단위와 의미
x,yx,yCanonicalNormalizedPoint.X/Y각 축 크기로 정규화된 좌표
W,HW,HPoseImageDimensions.Width/Height영상 픽셀 크기
x,yx',y'AspectCorrectImagePoint.X/Y영상 높이 단위, 미터 아님
return new AspectCorrectImagePoint(
    point.X * dimensions.AspectRatio, point.Y);

이 변환은 화면의 가로·세로 크기가 다른 문제를 보정합니다. 깊이나 실제 세계 거리를 복원하지 않습니다. 유효하지 않은 영상 크기는 예외 또는 TryProject 실패가 됩니다. 기본 관절 신뢰도 기준은 이 경로에서 0.50이며 기존 보정 경로의 0.45와 구분됩니다.

기존 경로의 몸 기준 변위

PoseNormalizer.TryNormalize는 필터링한 골반의 수평 이동을 보정 시 어깨 너비로 나눕니다.

dx=hx,thx,0S0d_x=\frac{h_{x,t}-h_{x,0}}{S_0}

h_{x,t}filteredHip.X, h_{x,0}profile.HipCenter.X, S_0profile.ShoulderWidth입니다. 결과는 어깨 너비에 대한 비율입니다. 이 값 자체가 좌우 이동을 확정하지는 않습니다. 어깨의 동반 이동, 몸통 기울기, 시간 조건을 추가로 평가합니다.

시간 기반 스무딩

α=1eΔt/max(0.0001,τ),p^t=p^t1+α(ptp^t1)\alpha=1-e^{-\Delta t/\max(0.0001,\tau)},\qquad \hat p_t=\hat p_{t-1}+\alpha(p_t-\hat p_{t-1})

dt는 단조 캡처 시각 차이(초), tauSmoothingTimeConstantSeconds(기존 기본값 0.045 s)입니다. filteredShoulderfilteredHip 등이 이 갱신을 사용합니다. 샘플 간격에 따라 가중치를 조절하기 위한 식입니다.

첫 샘플 또는 기본값 0.35 s를 넘는 타임스탬프 간격에서는 alpha = 1로 과거 필터 상태를 이어 쓰지 않습니다. 0 이하의 시간 차이와 중복·역순 시퀀스는 거부됩니다. 이 설정은 지연 시간 보장이 아닙니다.

기존 몸통 상승 속도

vy=cy,tcy,t1T0Δtv_y=\frac{c_{y,t}-c_{y,t-1}}{T_0\,\Delta t}

torsoCenter.YpreviousTorsoCenter.Y는 필터링된 어깨·골반 중심의 중점이며, T_0profile.TorsoLength입니다. 단위는 몸통 길이/초입니다. 첫 샘플, 간격 리셋 또는 미분 불가 조건에서 코드는 속도를 0으로 초기화합니다. 이를 실제로 정지했다는 관측으로 확대 해석하면 안 됩니다.

V3 점프의 적응형 증거 기준

JumpV3Parameters는 로컬 정지 관측의 노이즈를 반영하되 최소 기준을 낮추지 않습니다.

θd=max(f,41.4826MAD)\theta_d=\max(f,4\cdot1.4826\cdot\mathrm{MAD}) θv=max(f,m+41.4826MAD)\theta_v=\max(f,|m|+4\cdot1.4826\cdot\mathrm{MAD})

f는 해당 신호의 절대 하한(floor), mrestMedian, MADrawRestMad입니다. RobustStatistics.GaussianConsistencyFactor1.4826입니다. 중앙 절대 편차는 median(ximedian(x))\operatorname{median}(|x_i-\operatorname{median}(x)|)로 계산됩니다. 변위와 속도 하한의 단위는 해당 입력 신호 단위를 따릅니다.

음수 또는 비유한 하한과 MAD, 비유한 중앙값은 NaN을 반환합니다. 이 수식은 신체 검증된 임계값을 뜻하지 않습니다. V3 일부 절대 하한은 합성 증거에서 유래합니다.

수치적 예외

종횡비 보정 경로의 AngleDegrees는 분모가 1e-12 이하이면 NaN을 반환합니다. 기존 MotionMath.Angle은 두 변 중 길이가 1e-6 이하이면 0을 반환합니다. 두 구현 모두 역코사인 전에 코사인을 [-1,1]로 제한하지만 예외 반환값은 다릅니다. 경로를 바꾸며 동일한 의미로 취급하지 않습니다.