TT Lab
요금제

한국어

시작하기
블로그

블로그

정밀 이벤트 찾기: E2E-Spot, T-DEED, AdaSpot — 「몇 번째 프레임」 을 맞히도록 학습시키는 법과 mAP@δ

상태: 초안 (2026-10-13), 일부 실측. 논문 수치는 원문을 열어 조건과 함께 확인했습니다(AdaSpot 의 학회는 공식 저장소 표기로 확인). 직접 해 본 것은 노트북 CPU 의 numpy 예제(code/10_map_delta.py)입니다. TT Score 의 이벤트 실측은 TT Score 모델 해부 5편과 2026-10-13 연구 원장에 「채택」으로 기록된 값입니다(진행 중 연구, 저장소 밖). 이 편의 PES 모델을 탁구 영상에 돌려 본 적은 없습니다(미실측). 2026-10-15 덧붙임: AdaSpot(테니스 small)과 E2E-Spot(테니스, RegNet-Y 200MF) 공개 가중치의 속도를 8GB급 GPU 에서 재 6절에 붙였습니다. 탁구 정확도는 다시 학습해야 의미가 있어 여전히 미실측입니다. 시리즈 「비전 모델 읽기 2」 10편. 앞 편: 작고 빠른 공 추적. 영상 모델 기초는 6편에 있습니다.

목차

1. 직관: 「무엇」이 아니라 「언제」

6편의 영상 모델은 클립에 라벨 하나를 붙였습니다. 「이 2초는 탁구 치기」. 그런데 점수를 매기려면 다른 질문이 필요합니다. 공이 리시버 쪽 테이블에 닿은 것은 정확히 몇 번째 프레임인가.

이렇게 「한 순간에 일어나는 사건의 정확한 프레임」을 찾는 일을 정밀 이벤트 찾기(Precise Event Spotting, PES) 라고 부릅니다. 축구의 「골」이나 「코너킥」처럼 1–5초 오차를 허용하는 행동 찾기(action spotting)와 달리, PES 는 1–2프레임 안을 요구합니다. 테니스의 바운드·타구, 피겨스케이팅의 점프 착지, 다이빙의 입수가 대표 과제입니다.

두 가지가 어렵습니다.

프레임마다 분류 → 봉우리 고르기 → δ 로 채점 클립 → 프레임별 특징(2D 망 + 시간 밀기) → 양방향 GRU → 프레임마다 (K+1)종 분류(+1 = 아무 일 없음) 정답 바운드 타구 실선 = 바운드 확률 · 점선 = 타구 확률 봉우리 하나 = 예측 하나(가까운 중복은 NMS 로 지운다) 채점 mAP@δ 예측을 확신 순으로 세우고, 같은 종류 정답과 |프레임 차| ≤ δ 이면 맞음(정답 하나에 예측 하나) δ=1: 정답 ±1프레임(60fps 면 ±17ms) 정밀도-재현율 곡선 넓이 = AP, 종류별 평균 = mAP
그림: 프레임마다 분류하고 봉우리를 고르고, 허용 오차 δ 로 채점한다

2. 어떻게 학습시키나

E2E-Spot(ECCV 2022): 프레임마다 분류를 끝까지

E2E-Spot 의 구조는 의도적으로 단순합니다.

  1. 가벼운 2D 그림 망(RegNet-Y 200MF, ImageNet 으로 초기화)에 6편의 시간 밀기(GSM) 를 끼워, 프레임마다 특징을 뽑으며 이웃 프레임 정보를 섞습니다.
  2. 그 위에 양방향 GRU 한 층을 얹어 클립 전체의 맥락을 봅니다.
  3. 프레임마다 (K+1)종 분류를 합니다. K 는 이벤트 종류(예: 가까운 쪽 바운드, 먼 쪽 타구 …), +1 은 「아무 일 없음」입니다. 손실은 소프트맥스 교차 엔트로피입니다.

학습 방식의 핵심은 이름 그대로 끝까지(end-to-end) 입니다. 미리 뽑아 둔 고정 특징 위에 머리만 학습하는 대신, 100프레임 클립(224×224)을 통째로 넣어 그림 망까지 함께 학습합니다. 불균형은 이벤트 클래스의 손실에 5배 가중을 주어 다룹니다. 자르기·색 흔들기·mixup 증강을 쓰고, 시험 때는 클립을 반씩 겹쳐 돌려 평균합니다(논문).

고정 특징 위에 머리만 학습한 방식보다 δ=1 에서 4–11 mAP 앞섰습니다(논문). 사전학습 특징은 「무엇」에 맞춰져 있어, 프레임 하나의 미세한 차이를 담지 못한다는 뜻으로 읽힙니다.

T-DEED(CVPRW 2024): 「몇 프레임 떨어져 있나」를 따로 맞힌다

프레임마다 분류만 하면, 이벤트 바로 옆 프레임도 「거의 이벤트」처럼 보여 확률이 퍼집니다. T-DEED 는 두 갈래를 냅니다.

시험 때는 분류로 대략의 자리를 찾고 변위로 정확한 프레임을 고칩니다. 이벤트 둘레 프레임을 그냥 「양성」으로 넓혀 주는 라벨 넓히기(label dilation)보다 이 변위 갈래가 낫다고 보고했습니다(논문). 망은 인코더-디코더 구조로, 시간 해상도를 줄였다 다시 키우며 여러 시간 크기의 맥락을 섞습니다.

AdaSpot(CVPR 2026): 해상도를 쓸 곳에만

테니스·탁구에서 사건의 주인공은 작은 공입니다. 224px 로 줄인 화면에서는 공이 거의 사라집니다. 그렇다고 모든 프레임을 고해상도로 보면 비쌉니다. AdaSpot 은 두 갈래를 둡니다.

  1. 저해상도 갈래: 화면 전체를 낮은 해상도로 봅니다.
  2. 관심 영역 고르기: 저해상도 특징의 채널 평균으로 「돋보이는 곳」 지도를 만들고, 시공간으로 부드럽게 한 뒤, 중요도를 충분히 담는 가장 작은 사각형을 골라 원본에서 112×112 로 잘라 냅니다. 이 고르기는 학습하지 않습니다. 관심 영역 라벨이 따로 필요 없습니다.
  3. 고해상도 갈래: 잘라 낸 작은 영역만 원래 해상도로 봅니다.

손실은 가중 교차 엔트로피(이벤트 가중 5)이고, 두 갈래 각각에도 보조 GRU 머리를 달아 손실을 더합니다(각 ⅓). 이 보조 손실이 없으면 학습이 불안정했다고 적었습니다(논문).

3. 평가: mAP@δ

PES 의 채점은 이렇습니다.

  1. 예측(프레임, 종류, 확신)을 확신이 높은 순으로 세웁니다.
  2. 같은 종류의 정답과 프레임 차이가 δ 이하면 맞음입니다. 정답 하나에 예측 하나만 짝짓습니다.
  3. 정밀도-재현율 곡선 아래 넓이가 AP, 종류별 평균이 mAP 입니다.

δ=1 은 「정답 프레임이나 바로 옆 프레임」입니다. 60fps 면 ±17ms, 25fps 면 ±40ms 라서, 같은 δ 라도 프레임률에 따라 실제 시간 허용이 다릅니다.

직접 해 보기

code/10_map_delta.py 에 이 채점을 구현하고, 이벤트 400개(놓침 5%, 엉뚱한 곳 가짜 5%)에 대해 시각 오차가 다른 세 「모델」을 만들어 채점했습니다(code/10_map_delta.out.txt). 행마다 놓침·가짜를 따로 무작위로 뽑았으니 같은 행 안에서 비교하세요.

시각 오차(표준편차) δ=0 δ=1 δ=2 δ=4
0.3프레임 0.759 0.914 0.914 0.914
0.7프레임 0.317 0.905 0.944 0.948
2.0프레임 0.039 0.339 0.667 0.928

같은 모델(2.0프레임)이 δ 에 따라 0.04 에서 0.93 까지 받습니다. mAP 숫자는 δ 없이 읽을 수 없습니다. 그리고 δ=0(정확히 그 프레임)은 시각 오차가 0.7프레임만 돼도 0.3 대로 떨어집니다. 논문들이 δ=0 을 따로 보고하기 시작한 이유입니다(아래 AdaSpot 표).

중복 예측도 실험했습니다. 이벤트마다 ±1–2프레임에 덜 확신하는 예측을 2개씩 더 냈습니다.

중복 그대로   δ=0: 0.294  δ=1: 0.654  δ=2: 0.739
NMS(±2) 뒤     δ=0: 0.208  δ=1: 0.690  δ=2: 0.875

중복은 「정답 없는 예측」으로 세어져 정밀도를 깎습니다. ±2프레임 안의 중복을 지우는 NMS 로 δ=2 가 0.739 에서 0.875 로 회복됐습니다. 반대로 δ=0 은 오히려 떨어졌습니다. NMS 가 남긴 「가장 확신하는」 예측이 정확히 그 프레임이 아닐 때가 있기 때문입니다. 후처리도 δ 에 따라 득실이 갈립니다.

4. 논문 수치

모델 데이터 δ=0 δ=1 δ=2 조건(논문)
E2E-Spot 테니스 — 96.1 97.7 200MF. 테니스 3,345클립·이벤트 33,791개, 6종(가까운 쪽/먼 쪽 × 서브·타구·바운드)
E2E-Spot 피겨(FS-Comp) · 다이빙 · 체조 — 81.0 · 68.4 · 47.9 93.5 · 85.3 · 65.2 같은 모델
T-DEED 피겨(FS-Comp) · 다이빙 — 85.15 · 71.48 91.70 · 87.62 200MF. 800MF 다이빙 73.23 · 88.88
AdaSpot 테니스 74.02 97.36 97.79 RegNetY-400MF, 1,063만 파라미터, 56.78 GFLOPs, 시드 3개 평균
AdaSpot F3Set(테니스 세밀 이벤트) 55.38 69.37 69.94 같음
E2E-Spot + MFS 탁구(TTA) 36.43 69.50 78.12 휴대 촬영 39경기, 30fps 720p, 이벤트 4,878개 8종

몇 가지 주의할 점입니다.

5. 한계

6. 우리 프로젝트와의 연결

티티 한마디. 「바운드 찾기 97점!」이라는 말을 들으면 먼저 「δ 가 몇이에요?」라고 물어보세요. 같은 모델이 δ=0 에서는 4점, δ=4 에서는 93점을 받을 수도 있어요. 제가 직접 채점해 봤어요.

참고 문헌

로그인하면 좋아요를 누를 수 있습니다

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다