상태: 초안 (2026-10-18), 실측. 시험장의 정확도는 시뮬레이터 안의 상대 비교값입니다. 계산은 모두 맥 한 대(Apple M1 Max 10코어, Python 3.9.6, numpy 2.0.2)의 CPU 로 했고, GPU 와 클러스터는 쓰지 않았습니다. 새 패키지·이미지·데이터는 내려받지 않았습니다. 맞추기와 시험장은 시드를 고정한 결정적 실행이라 한 번씩 돌렸고(같은 명령이면 같은 결과), 처리 시간만 5회 반복의 중앙값입니다. 처리 시간은 맥에 다른 일이 돌아 부하 평균이 47–76 일 때 잰 값입니다. 실제 영상은 공개 데이터셋 OpenTTGames(120 fps, 사람이 찍은 공 좌표와 바운드 표식)와 그 확장 라벨을 썼고, 둘 다 CC BY-NC-SA 4.0 입니다. 이 자료로 맞춘 물리값과 그 값으로 그린 그림(반발 계수 그림)도 같은 조건을 따릅니다. 원자료(맞춤 결과, 시험장 판정 24,300행씩, 실제 기준표 결과)는 작업 디렉터리
measure/tt-twin/에 있습니다.
목차
- 1. 직관: 정답을 아는 연습 경기장
- 2. 실물 맞추기: 실제 바운드 1,777조각
- 3. 정답을 아는 심판 시험장: 24,300판정
- 4. 개선 고리 한 바퀴: 탄도 메우기
- 5. AI 심판 넓히기: 중력 자와 규칙별 판단표
- 6. 한계
- 7. 다음 바퀴
- 참고
1. 직관: 정답을 아는 연습 경기장
카메라 점수판의 심판 기능을 좋게 만들려면 「틀린 판정」을 많이 모아야 합니다. 실제 경기 영상에는 정답 라벨이 적고, 엣지볼이나 오브스트럭션 같은 드문 장면은 거의 없습니다. 시뮬레이터 안이라면 공이 어디에 닿았는지를 물리가 알고 있으므로, 원하는 장면을 원하는 만큼 만들어 심판에게 보여 줄 수 있습니다. 이것이 정답을 아는 시험장입니다.
다만 시험장의 공이 실제 공과 다르게 날면 시험이 엉뚱한 약점을 찾습니다. 그래서 순서를 셋으로 나눴습니다.
- 실물 맞추기(real2sim): 실제 바운드로 시뮬레이터의 물리값을 맞춥니다.
- 시험장: 맞춘 물리로 장면을 만들어 운영 판정 코드에 넣고 약점을 찾습니다.
- 개선 고리: 가장 큰 약점 하나를 고치고, 시뮬레이터와 실제 영상 둘 다에서 좋아졌을 때만 채택합니다.
2. 실물 맞추기: 실제 바운드 1,777조각
2.1 방법
- 카메라 세우기. 탁구대 네 모서리로 경기마다 카메라 자세를 세웠습니다. 네 모서리는 한 평면에 있어 초점거리를 정하지 못하므로 1,400 px(가로 화각 약 69°)로 고정하고, ±20% 민감도를 따로 쟀습니다. 모서리 재투영 오차는 1.0–4.0 px 였습니다.
- 바운드 조각 맞추기. 바운드 하나마다 접촉 시각, 접촉점, 들어오는·나가는 속도와 탑스핀 등 미지수 11개를 맞췄습니다. 접촉점이 탁구대 평면에 묶이고 비행이 중력·항력·마그누스를 따른다는 제약이, 카메라 한 대로는 보이지 않는 깊이를 정해 줍니다.
- 나눔. 맞추기는 학습 5경기의 조각 1,537개, 평가는 시험 7경기의 조각 240개로 경기 단위로 나눴습니다.
- 물리. 운영 합성 장치와 같은 식(반발 e = e0 + e1·v_z, 미끄럼·구름 경계 2/5, 속도·회전에 따른 항력·마그누스 계수)이고, 반발·마찰·항력 배율·마그누스 배율만 매개변수로 풀었습니다.
처음에는 「바운드 뒤 50 ms 만 보고 다음 바운드를 예측」하는 오차를 줄이는 방식으로 맞췄는데, 측정 잡음이 커서 반발 계수가 실측과 동떨어진 곳(e0 1.09)으로 갔습니다. 그래서 버리고, 항력·마그누스 배율을 격자로 고른 뒤 바운드마다 잰 반발 계수를 직접 회귀하는 순서로 바꿨습니다. 실패한 방법도 기록으로 남깁니다.
2.2 결과
| 항목 | 운영 기본값 | 맞춘 값 |
|---|---|---|
| 반발 e0, e1 | 0.98, 0.02 | 0.982, 0.045 |
| 마찰 μ | 0.25 | 0.160 |
| 항력 배율 | ×1 | ×0.8(0.8–1.2 사이 차이 0.02 px 안이라 약하게만 정해짐) |
| 마그누스 배율 | ×1 | ×1.5(끄면 맞춤 잔차가 두 배. 1 이상이면 회전 크기와 맞바뀌어 구별되지 않음) |
| 30 cm 낙하 꼭대기(공기저항 없이 계산) | 26.0 cm(e 0.931) | 22.9 cm(e 0.873) |
| 내려오는 속도 | 실측 e 중앙값, 학습 5경기(사분위) | 실측 e, 시험 7경기 | 기본값 | 맞춘 값 |
|---|---|---|---|---|
| 1.5–2.5 m/s | 0.894(0.781–0.991), n 692 | 0.911, n 93 | 0.939 | 0.889 |
| 2.5–3.5 m/s | 0.831(0.746–0.892), n 507 | 0.854, n 93 | 0.921 | 0.849 |
| 3.5–5.0 m/s | 0.838(0.753–0.880), n 176 | 0.830, n 30 | 0.902 | 0.807 |
실측 반발 계수는 운영 합성 장치의 값보다 0.04–0.07 낮았습니다. ITTF 규정(2.1.3)은 30 cm 에서 떨어뜨린 공이 약 23 cm 튀어야 한다고 정하는데, 영상으로 맞춘 값이 그 기준(22.9 cm) 쪽으로 옮겨 갔습니다. 2편에서 본 MuJoCo 의 DeepMind 탁자 값(26.4 cm)과 운영 기본값(26.0 cm)이 모두 규정보다 탄력적이었던 것과 같은 방향입니다.
2.3 그런데 예측은 거의 좋아지지 않았다
서브의 첫 바운드 앞 조각과 바운드 뒤 150 ms 를 보고 나머지 비행을 예측해, 상대 쪽 바운드(B2)와 견줬습니다.
| 경기 | 물리 | 서브 수 | B2 위치 오차 중앙값(p90) | 깊이 방향 | B2 시각 오차 중앙값(p90) | 시각 치우침 |
|---|---|---|---|---|---|---|
| 학습 5경기 | 기본값 | 207 | 22.7(47.4) cm | 18.8 cm | 24.6(68.3) ms | +9.7 ms |
| 학습 5경기 | 맞춘 값 | 207 | 22.9(45.5) cm | 16.2 cm | 24.1(68.6) ms | +3.1 ms |
| 시험 7경기 | 기본값 | 23 | 21.3(37.4) cm | 20.3 cm | 22.5(52.8) ms | +5.7 ms |
| 시험 7경기 | 맞춘 값 | 23 | 17.4(31.4) cm | 9.9 cm | 13.1(45.7) ms | −0.6 ms |
(예측이 네트에 걸려 B2 를 내지 못한 서브는 오차 계산에서 빠집니다. 학습 55–59개, 시험 7–8개입니다.)
- 시험 7경기의 개선은 유의하지 않습니다. 서브가 23개뿐이고, 중앙값의 95% 구간(부트스트랩 2,000번)이 위치 11.3–30.9 cm 대 12.7–29.4 cm, 시각 6.6–32.9 ms 대 8.9–38.3 ms 로 겹칩니다.
- 맞추기가 줄인 것은 치우침(학습 경기 시각 +9.7 → +3.1 ms)이고, 흩어짐은 그대로였습니다.
2.4 오차 대부분은 카메라 한 대의 깊이에서 온다
정답을 아는 재표본으로 단안 카메라의 한계를 쟀습니다. 실제 바운드 맞춤 600개를 정답으로 두고, 맞춘 물리로 다시 그려 카메라에 투영하고 잡음을 입힌 뒤 같은 방법으로 되찾았습니다(물리 모형이 정확하다고 둔 하한).
| 카메라 | 앞·뒤 프레임 | 들어오는 속도 오차 중앙값, 길이 / 깊이 방향 | 접촉점 오차 중앙값, 길이 / 깊이 | 탑스핀 오차 중앙값 |
|---|---|---|---|---|
| 실제 경기 카메라 120 fps, 사람 표식 | 8 / 12 | 0.06 / 0.33 m/s | 0.3 / 0.5 cm | 51 rad/s |
| 점수판 기준 카메라 512×288, 60 fps | 6 / 6 | 0.09 / 0.67 m/s | 1.1 / 1.7 cm | 60 rad/s |
| 점수판 기준 카메라 512×288, 30 fps | 3 / 3 | 0.12 / 1.11 m/s | 3.1 / 3.8 cm | 116 rad/s |
- 바운드 자리는 카메라 한 대로도 잘 정해집니다. 60 fps 폰에서 1–3 cm 입니다.
- 깊이 방향 속도는 길이 방향보다 7–10배 부정확합니다. 0.3초 비행이면 깊이 위치가 10–50 cm 어긋나고, 2.3절 표의 흩어짐이 바로 이 크기입니다.
- 회전은 잴 수 없습니다. 오차가 실제 회전 크기(DeepMind 데이터의 중앙값 54 rad/s)와 같거나 큽니다.
- 30 fps 는 앞뒤 3프레임뿐이라 600개 중 157개만 맞출 수 있었습니다.
- 가정한 초점거리를 1,150 / 1,400 / 1,700 px 로 바꾸면 실측 e(2.5–3.5 m/s 칸)가 0.847 / 0.831 / 0.802 로 움직였습니다. 초점거리 가정이 반발 계수에 ±0.03 정도의 불확실성을 더합니다.
지금은 깊이 오차가 물리값 차이를 덮습니다. 마그누스 배율과 깊이를 함께 정하려면 두 번째 카메라나 공 무늬가 보이는 고속 영상이 필요합니다.
3. 정답을 아는 심판 시험장: 24,300판정
3.1 무엇을 만들었나
- 물리. 2절에서 맞춘 값에 탁구대 모서리와 옆면을 더했습니다. 판 두께 25 mm 의 상자로 보고(추정), 윗면 모서리에 위에서 닿으면 엣지(ITTF 2.1.2 에 따라 경기면, 득점 인정)로 정했습니다.
- 장면 9종. 엔드라인·옆줄 둘레(엣지, 바로 안, 바로 밖), 네트 맞고 넘어감, 서브 렛, 투 바운드, 빠른 스매시, 높은 로브, 발리(받는 쪽이 튀기 전에 침. 경기면 위면 오브스트럭션), 기준 랠리입니다. 정답은 의도가 아니라 물리가 낸 접촉 순서로 정했습니다.
- 열화 9조건. 이상(잡음 없음), 실제(실측 검출 잡음), 30 fps, 120 fps, 잡음 2배, 번짐, 가림, 놓침, 폰(30 fps + 잡음 2배 + 번짐 + 가림)입니다. 검출 신뢰도는 실제 검출기 71,617프레임의 분포에서 뽑았습니다.
- 판정 엔진. 운영 판정 코드의 사본을 운영과 같은 스위치로 그대로 돌렸습니다. 장면마다 300개, 9조건, 합해서 24,300판정에 맥에서 25분이 걸렸습니다.
왜 렌더링하지 않고 투영 좌표를 썼나. 판정 엔진의 입력은 공의 화면 좌표이고, 목적은 엔진의 약점을 찾는 것입니다. 좌표 수준에서는 같은 장면을 조건만 바꿔 수만 번 돌릴 수 있습니다. 대가는 겉모습의 차이가 빠진다는 것입니다. 공이 배경·옷·조명에 묻히는 일, 라켓이나 손을 공으로 읽는 일, 실제 번짐 자국의 모양은 검출기 오류의 확률 모형으로만 흉내 냈습니다. 실제로 시험장의 기준 랠리(실제 조건) 정확도 82% 는 같은 운영 경로로 잰 실제 시험 7경기 깨끗한 영상의 93%(54/58)보다 낮습니다. 그래서 아래 표는 장면과 조건 사이의 상대 비교로만 읽어야 합니다. 절대값을 실제 정확도로 읽으면 안 됩니다.
3.2 약점 셋
- 오브스트럭션 16%(모든 조건에서 12–24%). 엔진에는 「상대 공을 내 쪽에 튀기 전에 경기면 위에서 쳤다」는 개념이 없어, 대부분을 투 바운드로 읽고 반대 선수에게 점수를 줍니다. 같은 엔진이 엔드라인을 넘은 공을 친 발리는 86% 맞히는데, 규칙을 알아서가 아니라 우연입니다.
- 엣지볼 53%, 확인 없이 틀림 21%. 엣지에 닿은 공은 화면에서 V 자 바운드를 그리지 않습니다. 엔진은 바운드를 못 보고 아웃으로 처리합니다. 틀리면서도 사람 확인으로 보내지 않는 비율이 가장 높아, 가장 위험한 칸입니다.
- 서브 렛 60%(가림 41%, 폰 44%). 네트에 스친 서브의 속도 감소를 못 보거나, 네트에서 꺾인 공을 바운드로 읽거나, 리시버 쪽 바운드를 놓칩니다.
그다음은 높은 로브(들어감) 60% 였습니다. 공이 화면 위로 나가거나 1.5초 넘게 날아 「랠리 끝」이 먼저 납니다. 장면을 가리지 않는 실패 원인 1위는 공 검출이 빈 자리에서 바운드를 놓치는 것이었습니다.
120 fps 가 60 fps 보다 나빴습니다(77% 대 80%). 프레임이 많으면 좋아질 것 같지만, 엔진의 화소 문턱과 바운드 거부 규칙이 60·30 fps 에 맞춰져 있기 때문으로 봅니다. 원인을 따로 분리해 재지는 않았습니다(미실측). 실제 120 fps 영상의 추론으로 확인하는 것이 다음 일입니다.
4. 개선 고리 한 바퀴: 탄도 메우기
4.1 무엇을 바꿨나
시험장의 실패 원인 1위인 「공 검출이 4표본(60 fps 에서 약 0.07초) 넘게 빈 자리의 바운드 놓침」을 골랐습니다. 실제 경기에서도 놓친 바운드 다수가 이 길이었다는 앞선 기록이 있습니다.
빈 자리 앞뒤의 궤적 조각에 곡률을 중력으로 고정한 포물선을 맞춥니다(곡률 = 그 자리의 화면 축척 × 9.81, 기울기와 절편만 맞춤). 아래를 모두 만족할 때만 앞 곡선과 뒤 곡선으로 빈 자리를 메웁니다.
- 앞은 내려오고 뒤는 올라간다. 두 곡선이 빈 자리 안에서 만난다.
- 만난 점의 가로 위치가 앞뒤에서 탁구대 길이의 4% 안으로 맞고, 가로 방향이 유지된다(뒤집히면 타구).
- 만난 점이 탁구대 윗면 띠 안이다. 빈 자리는 0.3초 이하, 앞뒤 조각은 각 3표본 이상, 포물선 잔차는 2 px 이하다.
메운 점은 신뢰도를 양쪽의 절반으로 두어, 그 바운드는 사람 확인 쪽으로 갑니다. 문턱은 물리로 미리 정했고, 시험 결과를 보고 고르지 않았습니다.
(그림은 원리를 보이려고 만든 합성 궤적입니다. 실제 판정 결과가 아닙니다.)
4.2 시뮬레이터에서
| 조건 | 맞음 기준 → 변경(/2,700) | 좋아짐 / 나빠짐 | McNemar p |
|---|---|---|---|
| 이상 | 2,392 → 2,391 | +0 / −1 | 1 |
| 실제 | 2,159 → 2,209 | +57 / −7 | 7.6e−11 |
| 120 fps | 2,075 → 2,163 | +98 / −10 | 2.7e−19 |
| 가림 | 1,671 → 1,826 | +223 / −68 | 2e−20 |
| 폰 | 1,512 → 1,548 | +63 / −27 | 0.00019 |
| 전체(24,300) | 17,900 → 18,483(73.7 → 76.1%) | +778 / −195 | 5.3e−83 |
확인 없이 틀린 판정은 1,215 에서 996 으로 줄었습니다. 다만 엣지(53.1 → 49.9%)와 오브스트럭션(16.3 → 14.6%)은 내려갔습니다. 이 변경의 목표가 아니었고, 다음 바퀴의 과제입니다.
4.3 실제 영상에서(채택 여부를 정한 표)
시뮬레이터에서만 좋아진 것은 채택하지 않습니다. 시험장은 겉모습이 빠진 근사이므로, 거기서 좋아진 변경이 실제 영상에서 나빠질 수 있기 때문입니다. 그래서 운영 실시간 경로 그대로 실제 영상의 고정 기준표를 다시 돌렸습니다.
| 기준표 | 랠리 | 맞음 기준 → 변경 | 좋아짐 / 나빠짐 |
|---|---|---|---|
| 시험 7경기 × 12조건(깨끗함, 어두움, 30 fps, 저해상, 번짐, 방해물, 손떨림, 가림, 폰 화질 셋) | 638 | 536 → 543 | +8 / −1, McNemar p 0.039 |
| 개발용(학습 경기 깨끗함·30 fps·좌표 가림 15%, 검증 경기 8조건) | 1,394 | 1,217 → 1,238 | +36 / −15, p 0.005 |
- 시험 12조건에서 나빠진 조건은 없었습니다(어두움의 −1 은 같은 조건의 +3 과 함께 났습니다).
- 난제였던 로브 랠리가 맞게 바뀌었습니다. 시험 1경기 24.4초의 높은 로브는, 공이 떨어지는 순간 검출이 비어 바운드를 놓치던 랠리입니다. 깨끗함·번짐·손떨림·폰 화질에서 맞게 바뀌었습니다.
- 개발용에서 한 랠리씩 나빠진 조건이 다섯 있었습니다. 깨끗한 영상의 두 랠리는 득점이 끝난 뒤 카메라 앞으로 떨어진 공이 화면에서 탁구대 위로 보여 바운드가 메워진 경우였습니다. 단안의 깊이 모호함 그대로이고, 두 판정 모두 신뢰도 0.44 라 사람 확인으로 갑니다.
- 처리 비용은 표본당 p95 0.445 → 0.545 ms(학습 3경기 깨끗함)로, 늘어난 몫은 0.1 ms 안팎입니다. 실시간 예산 5 ms 안입니다.
판정: 채택. 다만 운영에는 스위치를 꺼 둔 채 들어갑니다. 꺼져 있으면 예전과 같은 계산이라 판정이 바뀌지 않습니다. 켜기 전에 카메라 점수판의 E2E 기록(시험 7경기를 가짜 카메라 30 fps 로 기록하고 재현)으로 「운영보다 나쁘지 않음」을 실시간 경로에서 한 번 더 확인하고, 위의 「카메라 앞으로 떨어진 공」 무리를 함께 봅니다.
5. AI 심판 넓히기: 중력 자와 규칙별 판단표
5.1 중력 자
서브 토스는 손을 떠난 뒤 16 cm 이상 올라가야 합니다(ITTF 2.6.2). 그런데 카메라 한 대로는 공까지의 거리를 모르니, 화면의 화소를 센티미터로 바꿀 축척이 없습니다. 여기서 중력이 자가 됩니다. 손을 떠난 공의 화면 높이를 시간에 대한 포물선 y = a·t² + b·t + c 로 맞추면 a = g·s/2 이고, s 는 그 공의 깊이에서 1 m 가 몇 화소인지입니다. 그러면 높이 = 화소 차 ÷ s 로 잴 수 있고, 깊이(초점거리 ÷ s)로 공의 3차원 자리도 나옵니다.
- 실측. 실제 경기 영상의 서브 토스 80개에서 이렇게 잰 축척의 중앙값은 330 px/m 였고, 카메라 기하로 구한 네트 자리 축척은 네 경기에서 303–335 px/m 였습니다. 중력 자가 실제 영상에서도 맞습니다.
- 한계. 규칙의 16 cm 는 손을 떠난 순간부터입니다. 합성 시험에서 손이 공을 3–15 cm 들어 올린 뒤 놓는 동작(추정)을 넣으면, 16 cm 판정 정확도가 0.70–0.86, 경계 ±4 cm 안에서는 0.59–0.66 으로 떨어졌습니다. 손을 들어 올리지 않는 이상 조건에서는 0.99 였습니다. 공 궤적만으로는 「떠난 순간」을 잘 잡지 못합니다.
- 실제 영상(60 fps, 서브 275개)에서 높이를 잴 수 있었던 서브는 80개(29%)였습니다. 정답 높이가 없어 정확도는 재지 못했습니다.
5.2 규칙별 판단표
신호마다 신뢰도를 두고, 신호가 엇갈리거나 확신이 낮으면 사람 확인으로 보낸다는 원칙입니다. 「잰 것」은 이번 실측, 「못 잰 것」은 미실측입니다.
| 규칙(ITTF) | 필요한 신호 | 잰 것 | 못 잰 것 | 1차 판정 / 사람 확인 |
|---|---|---|---|---|
| 토스 16 cm 이상(2.6.2) | 공(중력 자), 손이 떠나는 순간 | 손 들어 올리기를 넣은 합성에서 0.70–0.86, 경계 ±4 cm 안 0.59–0.66. 실제 영상에서 잴 수 있는 서브 29% | 손 관절로 떠난 순간 찾기, 실제 정답 높이 | 사람 확인. 명백히 낮은 토스만 알림 후보 |
| 토스 위치: 엔드라인 뒤, 경기면 높이 위(2.6.4) | 공(중력 자로 깊이까지) | 합성 0.89–0.97, 선에서 10 cm 넘게 떨어지면 0.97–1.00 | 실제 영상 정답 | 10 cm 밖은 1차, 안은 사람 확인 |
| 손바닥을 펴서 공을 올림(2.6.1) | 손 관절 | 없음 | 손 관절 모델 | 사람 확인 |
| 서브를 가리지 않기(2.6.4–2.6.5) | 리시버 시점의 공 보임 | 없음 | 옆에서 찍는 폰 한 대로는 원리상 알 수 없음 | 사람 확인 |
| 서브 렛(2.9.1.1) | 공(네트에서 속도 감소), 네트 소리 | 시험장 60% | 실제 폰 소리 | 사람 확인(다시 서브라 확인 비용이 작음) |
| 엣지(2.1.2) | 공(V 없는 급한 꺾임), 엣지 소리 | 시험장 53%, 확인 없이 틀림 21% | 실제 엣지 영상, 옆면(사이드)은 생성 0건 | 사람 확인 필수 |
| 투 바운드 | 공 | 시험장 83%, 탄도 메우기 뒤 87.5% | 실제 표본이 적음 | 1차 |
| 오브스트럭션(2.5.8) | 공(튀기 전 방향이 뒤집힌 자리가 탁구대 위인가), 몸·라켓 | 시험장 16% | 실제 라벨 | 사람 확인. 「바운드 없이 방향 뒤집힘 + 그 자리가 탁구대 위」 규칙을 시험장에서 먼저 잴 차례 |
6. 한계
- 시험장의 정확도는 겉모습이 빠진 근사라 실제보다 가혹합니다(기준 랠리 82% 대 실제 93%). 표는 상대 비교로만 읽습니다.
- 탁구대 판 두께 25 mm, 모서리가 둥글지 않다는 가정, 번짐 놓침 모형, 잡음 강도 2, 손 들어 올리기 3–15 cm 는 추정입니다. 탁구대 옆면(사이드) 접촉은 장면 생성에서 한 번도 나오지 않았습니다.
- 카메라 초점거리는 1,400 px 로 가정했고(±20% 에 e ±0.03), 회전은 단안으로 정해지지 않습니다.
- 서브 예측의 맞추기 전후 차이는 시험 표본 23개라 유의하지 않습니다.
- 실제 기준표의 「확인 없이 틀림」은 운영 보정이 아니라 신뢰도 0.6 미만 규칙으로 센 대리 값입니다. 처리 비용은 맥 부하가 높을 때 잰 값이라 조용할 때 다시 재야 합니다.
7. 다음 바퀴
- 탄도 메우기 스위치를 켜기 전 E2E 확인.
- 엣지 후보 → 사람 확인. 끝선 띠 안에서 「V 없이 방향이 급히 꺾임」을 엣지 후보로 표시합니다. 시험장에서 확인 없이 틀림이 줄고 일반 아웃이 나빠지지 않는지 먼저 잽니다.
- 오브스트럭션 규칙. 옆에서 보면 길이 방향은 잘 보이므로(2.4절), 방향이 뒤집힌 자리의 길이 좌표로 판정합니다.
- 시험장 충실도. 실제 검출기의 오류를 속도·자리별로 다시 재서 잡음 모형을 맞추고, 120 fps 가 60 fps 보다 나빴던 결과를 실제 120 fps 추론으로 확인합니다.
티티 한마디. 정답을 아는 연습장에서 심판을 2만 4천 번 시험해 봤어요. 거기서 찾은 약점을 고친 다음, 진짜 경기 영상에서도 좋아졌을 때만 받아들였어요. 연습장에서만 잘하는 심판은 쓸모없으니까요!
참고
모든 링크는 2026-10-18 에 열람해 열리는 것을 확인했습니다.
- ITTF 탁구 규칙 2026–27(공개 사본): https://www.tabletennisengland.co.uk/content/uploads/2026/07/Laws-of-Table-Tennis-2026-27.pdf
- DeepMind 공개 공 상태(회전 크기 비교에 사용): https://github.com/google-deepmind/competitive_robot_table_tennis(© 2025 Google LLC, CC BY 4.0)
- 실제 영상 자료: OpenTTGames 데이터셋과 그 확장 라벨(CC BY-NC-SA 4.0). 이 글의 맞춘 물리값과 반발 계수 그림은 같은 조건(CC BY-NC-SA 4.0)을 따릅니다.
- 앞 편: 2편 탁구공 물리를 MuJoCo 로 재기, 6편 DeepMind 탁구 로봇 개선 방향