임팩트 탐색이 클립 전체를 훑는다는 진단(오늘 앞선 글)에 이어, 그중 오염 문제 하나만 떼어 고치는 변경(A-1) 을 만들고 검증했다. 결론은 되돌린다.
A-1이 무엇이었나
extension_peak은 팔꿈치 각도의 각속도가 최대인 프레임을 임팩트로 삼는다. 그런데 np.gradient는 중심차분이라 이웃 프레임의 값을 쓴다.
# 기존
impact = _peak_frame(np.gradient(series), usable)
# A-1
impact = _peak_frame(np.gradient(np.where(usable, series, np.nan)), usable)
후보를 usable로 거르는 것만으로는 부족하다는 것이 문제의식이었다. 측정 불가 프레임의 각도가 양옆 정상 프레임의 각속도를 부풀린다. 농구 실클립에서 68프레임의 속도가 (155.5 − 56.3) / 2 = 49.6으로 계산됐는데, 67프레임은 손목 신뢰도 0.46으로 기준(0.6) 미만이었다.
오염은 실재한다
먼저 A-1의 명분부터 검증했다. 제거 대상 프레임의 각도값을 양옆 usable 프레임에서 선형 예측해 잔차를 쟀다(분석용 계산이며 파이프라인 보간이 아니다).
| 잔차 중앙 | p90 | |
|---|---|---|
| 제거 대상 프레임 | 33.0 | 86.9 |
| 대조 (usable 무작위) | 0.39 | 1.91 |
자연 변동의 약 85배로 어긋나 있다. 기준선의 3배를 넘는 것이 95.3%, 멀쩡한데 지워지는 과잉 제거는 1.7% 뿐이다. 제거 대상 프레임의 손목 신뢰도는 중앙 0.000, 70.3%가 정확히 0이다.
즉 A-1이 지우는 값은 진짜 쓰레기다. 제거 자체는 정당하다.
그런데 결측이 정답 창에 몰린다
문제는 그 쓰레기가 어디에 있느냐였다.
축구 참조(공-발목 최근접)로 결측 위치를 쟀더니 결측 10개가 전부 접촉 ±10프레임 안이었다.
| 실제 | 무작위 기대 | 이항검정 p | |
|---|---|---|---|
| 접촉 ±5 | 7/10 | 28.8% | 0.0083 |
| 접촉 ±10 | 10/10 | 52.7% | 0.0017 |
야구에서도 결측 상대 위치가 균일분포와 다르고(KS p≈0), 갭은 평소의 1.91배로 움직이는 프레임에서 시작한다.
A-1은 정답이 있을 확률이 가장 높은 구간에서 후보를 제거한다.
이것이 모든 관측을 한 번에 설명한다 — 야구 impact 84.3% 이동(중앙 33프레임), proxy 거리 13→32 악화, 축구는 0/16 무변화(결측 10개가 argmax와 인접하지 않았다).
되돌리는 이유
- 검증할 정답이 없다. 야구 84.3% 이동의 정당성을 확인할 독립 정답이 없고, 확보 경로도 전부 막혔다(아래).
GATE_JOINTS의 손목 면제 결정과 충돌한다. 제거의 92.5%가 손목 관여, 72.5%는 손목만이다. 품질 게이트에서 일부러 면제한 엄격성을 신호 계산 단계에서 되살리는 셈이다.- 기존 평가의 기준선이 흔들린다. B-2·B-3·B-4·B-6 평가는 전부 되돌린 상태를 기준선으로 수행됐다.
- 얻는 것이 작다. 야구 extension_peak 45.6%→46.3%(+23건), 농구 −1건.
조건부 적용(결측률이 높은 클립에만)도 근거가 없었다 — 영향이 결측률 전 구간에 균일하다(야구 이동 83.6~85.9%).
되돌려서 남는 문제
오염된 velocity가 argmax를 이기는 사례는 그대로 남는다. 합성 픽스처와 농구 실클립(f68→f69)에서 확인된 것이다. 알고 남기는 것이며 기존 평가 기준선이다.
남은 근본 문제
이번 작업이 드러낸 것은 마스크 조정으로 풀 수 없는 모순이다.
손목을 품질 게이트에서 면제하면서(
GATE_JOINTS), 손목으로 계산한 팔꿈치 각도를 신호로 쓴다(chain_series).
손목을 마스크에서 빼면 망가진 좌표로 각도를 계산하게 되어 오염이 그대로 돌아온다. 신호 정의 자체를 다시 봐야 한다.
정정
축구의 contact_frame은 저장된 사람 라벨이 아니다. 공-발목 최근접에서 자동 도출한 관측 기반 참조이고 ±2프레임 불확실성이 있다(독립 근거 두 개의 ±1 일치가 18건 중 9건). 이전 글들에서 “유일한 정답”으로 적은 것은 과했다.
닫은 경로 — 다시 조사하지 않는다
| 경로 | 결과 |
|---|---|
| PitcherMotion 81컬럼 | 이벤트 주석 없음 |
normalised_frame == 0 | 릴리스 아님 (표본 260 검증) |
| Statcast companion | 프레임 인덱스·타임스탬프 없음, 매핑 불가 |
| UCF101 | 클립 단위 라벨만, 공 검출 0건 |
| 외부 공개 데이터셋 | Grade A 없음. UPLIFT(영상 없음), MultiSports(행동 구간이지 릴리스 아님 + 게이트 + CC BY-NC), Penn Action(이벤트 없음), BBDB(구간 라벨) |
| 축구 표본 확대 | 필요 97~714클립 대비 확보 상한 38. leg 종목이라 팔 종목 효과 크기를 예측 못 함 |
| 인위적 결합 가설 | proxy가 conf ≥ 0.6 필터로 인공물 프레임을 구조적으로 배제 → 이 지표로 검정 불가 |
| offline 재분석 | 정답 없이 답할 수 있는 질문은 소진 |
재개 조건
팔 종목 릴리스 프레임 정답 25~60클립. 필요량을 충족할 수 있는 유일한 경로는 자체 촬영이고, 30fps 이상 · 릴리스가 화면에 남는 조건이 필요하다.
후속 검토 대상 (지금은 하지 않는다)
갭 경계 단측 차분 — 제거된 후보의 84.4%가 정의 가능하다. 다만 단측차분이 중심차분보다 1.184배 크다는 스케일 편향이 선결 과제다. 축구 참조에서 3/16 변화, 13_freekick이 +5→0으로 적중했으나 n이 부족해 근거가 아니다.