TT Lab
블로그

한국어

시작하기
블로그

블로그

데이터·라이선스·학습 과정, 그리고 상업 서비스로 가는 길

상태: 초안 (2026-10-26), 실측 반영. 데이터 규모는 우리가 직접 센 값이고, 라이선스는 각 데이터·저장소의 공식 페이지와 LICENSE 파일에 적힌 문구까지만 확인했습니다. 이 글은 법률 판단이 아닙니다. 「상업 사용 가능」은 적힌 문구 기준이며, 상업 서비스에서의 최종 판단은 법률 검토를 거쳐야 합니다. 작성 규칙: 실측 데이터가 기본이고, 못 잰 것은 「미실측」, 근거를 찾지 못한 것은 「확인 못 함」으로 표시합니다.

데이터·라이선스·학습 과정

목차

1. 왜 이 글이 따로 필요한가

모델 이야기는 보통 구조와 정확도로 끝납니다. 그러나 실제 서비스에서는 두 가지 질문이 늘 따라옵니다.

  1. 이 숫자는 무엇으로 쟀나? 같은 모델도 어떤 데이터로, 어떤 규칙으로 쟀느냐에 따라 숫자가 크게 달라집니다.
  2. 이 모델을 써도 되나? 학습에 쓴 데이터의 라이선스가 모델에 그대로 따라옵니다.

TT Lab 은 2026-10-18 에 상업 서비스로 방향을 정했고, 그 뒤로 둘째 질문이 모든 모델의 첫 질문이 되었습니다. 이 글의 마지막 절은 그 방향과 원칙, 계획입니다.

2. 데이터셋 표

데이터 출처 라이선스 상업 사용 우리 용도 규모(직접 셈)
OpenTTGames 공개 탁구 데이터셋(TTNet 논문[1]과 함께 공개) CC BY-NC-SA 4.0 불가 연구·평가의 바탕(고정 분할) 12편, 644,199프레임, 89.5분, 1920×1080·120fps, 소리 없음. 공 표식 52,987프레임(8.2%), 이벤트 4,271개
Extended OpenTTGames 위 데이터의 확장 라벨(arXiv:2512.19327) CC BY-NC-SA 4.0 불가 랠리 승자·원인 정답, 타구 라벨(연구·평가) 랠리 종료 281(서버를 아는 275개를 씀), 타구 1,456
T3Set 공개 훈련 영상 데이터셋(KDD 2025) CC BY-NC-SA 4.0 불가 다른 조건 일반화 평가(공 정답 없음, 눈 검수), 소리 실험, 코칭 기준값 선수 32, 라운드 387, 영상 734개, 26.9GB, 1080p 60fps, 소리 있음
TT Sounds 탁구 충돌음 데이터셋[2] CC BY-NC 4.0 불가 소리 분류 실험만. 엔진에는 안 넣음 15ms 조각 6,037개, 라벨 5,702(라켓 3,396 · 탁구대 777 · 바닥 290 · 기타 1,239), 원녹음 149
실험실 탁구 영상(OpenNeuro ds004505) 공개 신경과학 실험 데이터 CC0 1.0 가능 데모 한 편, 탁구대 찾기 시험(실험실 대각 3장). 시험과 같은 실험실이라 꼭짓점 학습에서 뺌 확인 못 함
2015 슬로베니아 리그 중계 Wikimedia Commons CC BY 3.0 가능(출처 표기) 꼭짓점 모델 학습 12장(시험과 겹치지 않는 구간), 탁구대 찾기 시험 26장, 첫 화면 데모 1080p 25fps, 24.7분
4K 동호회 경기 Wikimedia Commons CC BY 3.0 가능(출처 표기) 동호회 데모, 탁구대 찾기 시험(옆면 4장). 같은 체육관 영상은 꼭짓점 학습에서 뺌 확인 못 함
1934년 탁구 뉴스 필름 Wikimedia Commons 퍼블릭 도메인 가능 옛 필름 데모, 탁구대 찾기 시험 2장 확인 못 함
휴대폰 세로 경기 영상 Wikimedia Commons CC BY-SA 4.0 가능(같은 라이선스로) 세로 휴대폰 데모, 조건별 시험 한 클립 1080×1920, 26.08fps
합성 탁구대 그림 우리 코드(외부 그림 없음) 자체 가능 꼭짓점 모델 학습의 80% 무작위 카메라·조명·바닥·뒷막·옆 탁구대·사람, 2,500반복 × 배치 12 = 3만 장
합성 랠리(ttscore/sim/) 우리 코드 자체 가능 엔진 합성 시험(정답은 따로 쓴 코드가 만듦) 물리 1ms 적분, 랠리 7유형, 카메라 12프리셋
연구실 3경기(TT3D) 연구 공개 자료 확인 못 함 확인 못 함 일반화 평가만 정답 프레임 49,516
국제 중계 자동 추적(LATTE-MV) 연구 공개 자료 카드는 Apache-2.0, 원 중계 영상의 권리는 불명 불명 일반화 평가만(정답이 사람 라벨 아님) 812경기, 23,781클립, 640×360·30fps
라켓 키포인트(RacketVision 탁구분) 연구 공개 자료 주석 MIT, 영상 권리 불명 → 내부 전용 불명 점수 그래픽 읽기 실험(내부) 780클립, 170,027프레임

몇 가지는 표만으로 드러나지 않습니다.

보관

원본은 받은 그대로 NAS 에 두고 고치지 않습니다. 작업 사본은 GPU 서버의 볼륨에 15묶음, 약 89GB 가 있습니다(OpenTTGames 33GB, T3Set 26GB, 국제 중계 20.7GB 등). 노트북 GPU 쪽에는 볼륨을 따로 두지 않고 NAS 를 읽기 전용으로 붙여 읽습니다. 연구 산출물(추론 결과, 열지도, 학습한 가중치)도 NAS 의 별도 폴더에 둡니다. 내려받기 기록에는 같은 자리의 크기가 132GB 로 적혀 있어 수치가 서로 다릅니다(어느 쪽이 지금 값인지 확인 못 함).

3. 학습은 실제로 어디서 어떻게 도나

「학습」이라고 하면 큰 GPU 클러스터를 떠올리기 쉽지만, 점수 엔진의 학습은 대부분 아주 작습니다.

모델 · 학습한 곳 · 규모 · 운영 상태 가짜 바운드 거르기 (1D CNN) 학습: 노트북 CPU 1.8만 파라미터 · 20에폭 · 시드 5개 켬 「확인 필요」 보정 (회귀) 학습: 노트북 CPU 19특징 · 경기 단위 5겹 교차 검증 켬 탁구대 꼭짓점 모델 학습: 노트북 GPU 1회용 파드 셋 합성 80% + CC BY 중계 20% · 약 20분 켬 미세조정 공 모델 학습: 노트북 GPU 1회용 파드 8,934걸음 · 69분 · 켜는 조건 미달 꺼짐 공 모델 BlurBall 저자 가중치를 그대로 씀 149만 파라미터 · 미세조정 없음 켬 탁구대 EfficientTAM S 저자 가중치를 그대로 씀 찾기 사슬의 첫 칸 켬 상업 서비스에 맞춰 학습 자료와 가중치를 상업 사용이 허락된 것으로 바꾸고 있다(6절의 원칙).
그림: 우리가 학습한 모델과 쓰는 모델: 학습한 곳과 운영 상태
모델 학습한 곳 걸린 시간·규모 운영
가짜 바운드 거르기(1D CNN, 1.8만) 노트북 CPU 20에폭, 배치 2048, 시드 5개 켬
「확인 필요」 보정(로지스틱 회귀, 19특징) 노트북 CPU 학습 경기 5편 × 열화 조건의 판정, 경기 단위 5겹 교차 검증 켬(v2)
학습형 「랠리 끝」(지연 줄이기) 노트북 CPU — 기각(원장 E10)
미세조정 공 모델(clutter-v1) 노트북 GPU(8GB급), 1회용 파드 8,934걸음, 69분 꺼짐
탁구대 꼭짓점 모델(머리 64만) 노트북 GPU(8GB급), 1회용 파드 셋 각 2,500반복 × 배치 12, 약 20분 켬(2026-10-25)

추출과 추론(공개 영상 전체에 공 모델 돌리기, 자세 뽑기 등)은 GPU 서버나 노트북 GPU 의 CPU·GPU 파드에서 돌렸습니다.

1회용 파드라는 방식

노트북 GPU 에서의 학습은 쿠버네티스 위의 1회용 파드로 돌립니다. 학습 코드와 입력을 담은 파드를 그 노드에 고정해 띄우고, 끝나면 지웁니다(--rm). 이렇게 하는 이유는 실제로 겪은 사고들에 있습니다.

GPU 드라이버 쪽 문제로 GPU 파드가 아예 뜨지 않은 날도 있었습니다. 작은 실험실 규모의 GPU 를 쓸 때는 학습 코드보다 자리가 멀쩡한지를 먼저 보는 습관이 필요합니다.

Kubeflow 는 설치돼 있지만, 점수 엔진에는 아직

2026-10-18 에 Kubeflow Trainer(v2.3.0, JobSet v0.12.0)를 GitOps 로 설치했고 정상 동기화를 확인했습니다. 학습 전용 구역도 만들었습니다. 그 구역의 울타리는 이렇습니다.

그러나 이 TrainJob 으로 돌린 학습은 지금까지 탁구 로봇 팔 강화학습과 연기 시험뿐입니다. 점수 엔진 모델(공·거르기·보정·꼭짓점)을 TrainJob 으로 학습한 기록은 없습니다. 이유는 운영 문서에 적혀 있습니다. 공 모델 미세조정에 필요한 자료와 큰 GPU 는 GPU 서버에 있는데, 학습 구역의 GPU 는 노트북 GPU 노드로 고정돼 있어 규칙이 맞지 않습니다. 자료를 옮기거나 규칙을 바꾸는 결정이 먼저입니다. 파이프라인(KFP 2.16.1)과 하이퍼파라미터 탐색(Katib v0.19.0)도 설치 파일은 있지만, 설치 직후 동기화 오류를 다룬 기록 뒤로 지금 상태는 확인 못 함이고, 탁구 모델에 쓴 기록은 찾지 못했습니다.

솔직히 말하면 지금 규모에서는 이것이 큰 문제가 아닙니다. 거르기와 보정은 노트북 CPU 에서 몇 분이면 끝나고, 꼭짓점 모델도 20분입니다. 학습 플랫폼이 필요해지는 것은 공 모델을 처음부터 다시 학습해야 할 때(6절)입니다.

4. 실험 규칙: 숫자를 믿을 수 있게

학습보다 시간이 더 드는 것은 공정하게 재는 일입니다. 연구 원장 맨 앞에 모든 실험에 적용하는 규칙을 적어 두었습니다(2026-10-13).

고정 분할

이름 경기 서버를 아는 랠리 쓰임
dev_train 공개 학습 경기 3편 140 연구용 학습형 후보 만들기
dev_val 공개 학습 경기 2편 78 하이퍼파라미터·문턱·조합 선택은 여기서만
test 공개 시험 경기 7편 57 실험마다 마지막에 한 번. 열화 조건 표도 여기
all12 위 전부 275 예전 기록과 견줄 때만

이 분할은 연구용입니다. 상업 서비스의 학습 재료는 6절의 원칙을 따릅니다.

누수 경고를 적어 둔다

규칙 엔진은 2026-10-11–12 에 공개 경기 12편 전부(시험 7경기 포함)를 보며 다듬어졌습니다. 그래서 규칙 기준선의 시험 점수는 표본 안(in-sample)이라 낙관적입니다. 새 학습형 방법은 시험 경기를 본 적이 없으니, 비교는 새 방법에 불리하게 기웁니다. 이 경고를 원장 맨 앞에 적어 두고, 비교할 때마다 함께 적습니다. 또 공 모델의 학습 영상 목록이 공개되지 않아 시험 경기와 겹치는지 모릅니다. 그래서 공 검출 품질을 일반화 성능으로 읽지 않습니다.

주 지표 하나, 짝 비교, 시드 중앙값

결과를 보기 전에 판정 규칙을 적는다

몇몇 실험(확인 필요 보정 v3, 끝선 띠, 카메라 점수판 처음부터 끝까지, 꼭짓점 모델)은 결과를 보기 전에 채택 조건을 원장에 적었습니다(사전 등록). 예를 들어 꼭짓점 모델은 「새 35장에서 확실&맞음이 늘고, 어떤 묶음에서도 확실&틀림이 늘지 않을 것, 시드 셋의 중앙값으로」였습니다. 그래도 지키지 못한 것이 있으면 숨기지 않고 적습니다. 꼭짓점 모델은 첫 해독의 시험 결과를 본 뒤 둘째 해독을 설계해 시험을 두 번 봤고, 원장과 4편에 그대로 적었습니다.

실시간 예산

실패에서 생긴 규칙(Ruling)

코드 라이선스 원칙

GPL·AGPL·MPL 코드는 가져오지 않고 방법만 새로 구현합니다. 모델마다 학습 재료를 가중치 메타데이터(nc_sources)와 원장에 적습니다. 이 기록이 상업 전환 때 무엇을 다시 학습할지 가르는 바탕이 됩니다(6절).

5. 지금의 실측 수치 한눈에

무엇 조건 값 근거
공 정밀도 / 재현율 공개 시험 7경기, 60fps, 512×288 반경 5px, 2026-10-11 0.9817 / 0.9785 PERFORMANCE 2.1
랠리 승자(오프라인, 랠리 단위) 공개 12편 275랠리, 분할 모델 꼭짓점 93.8% (258) PERFORMANCE 2.10
랠리 승자(배포 실시간 경로) 같은 275랠리, 데이터셋 마스크 꼭짓점, 2026-10-13 90.2% (248) 원장 E00
운영 흐름 고정 기준표 시험 7경기 × 열화 11조건, 라벨 638, 2026-10-16 맞음 508, 확인 없이 틀림 8, 확인 필요 497, 유령 51 원장 E25·E27
열화 12조건 랠리 단위 운영 공 모델 + 보정 v2 587/696 (84%) 원장 E33
같은 조건, 미세조정 공 모델 clutter-v1 + 보정 v3(꺼짐) 610/696 (88%) 원장 E33
카메라 점수판 처음부터 끝까지 시험 7경기 851초, 가짜 카메라 30fps, 라벨 58, 2026-10-17 맞음 47, 확인 없이 틀림 0, 확인 필요 53/65 원장 E35
탁구대 찾기(운영, 꼭짓점 켬) 시험 204장 JPEG 70, 2026-10-25–26 짚기 없이 확실&맞음 84, 확실&틀림 23 원장 E44
판정 지연 시험 7경기 깨끗함 p90 1.31초 원장 E00·E07
휴대폰으로 찍은 실제 탁구장 — 미실측(라벨 있는 폰 영상 0편) —

마지막 줄이 가장 중요합니다. 지금까지의 숫자는 모두 공개 영상에서 나왔습니다. 고정 카메라로 잘 찍힌 연구용 영상, 중계 영상, 합성 열화입니다. 사용자가 실제로 쓰는 「동네 탁구장에서 삼각대에 세운 휴대폰」의 숫자는 아직 없습니다. 그 숫자를 얻으려면 라벨을 단 자체 촬영 영상이 필요하고, 그것이 다음 절의 과제와도 이어집니다.

6. 상업 서비스로 가는 길: 방향과 원칙

TT Lab 은 2026-10-18 에 상업 서비스로 방향을 정했고, 그에 맞춰 학습 자료와 가중치를 상업 사용이 허락된 것으로 바꾸고 있습니다. 여기서는 그 방향과 원칙, 계획만 적습니다. 판단은 모두 데이터와 저장소에 적힌 문구 기준이며 법률 검토를 대신하지 않습니다.

원칙

  1. 운영 모델은 상업 사용이 허락된 자료로 학습한다. 쓸 수 있는 재료는 넷입니다. 자체 촬영·자체 라벨 영상, 우리 코드로 만든 합성 자료(탁구대 그림, 합성 랠리 궤적), CC BY·CC0·퍼블릭 도메인처럼 상업 사용을 허락하는 공개 영상, 그리고 학습 이용에 동의한 사람이 고친 판정(6편)입니다.
  2. 비상업(NC) 데이터셋은 내부 연구·평가로만 쓴다. 위 데이터셋 표의 비상업 데이터는 엔진을 연구하고 재는 데 쓰고, 상업 서비스의 학습 재료로 삼지 않습니다. 평가에서의 쓰임도 법률 검토 대상으로 둡니다(아래).
  3. 공개물은 상업 사용 가능한 원본으로 만든다. 사이트의 데모 영상은 상업 전환에 맞춰 상업 사용 가능한 원본으로 다시 만들었습니다(2026-10-24–25). 카메라 점수판 데모는 CC BY 리그 중계 영상으로 새로 찍었고, 원본마다 저작자·라이선스·바꾼 것을 화면에 답니다.
  4. 모델마다 학습 재료를 적어 둔다. 가중치 메타데이터(nc_sources)와 연구 원장에 재료를 남겨, 어떤 모델을 무엇으로 다시 학습해야 하는지 언제든 가를 수 있게 합니다.
  5. GPL·AGPL·MPL 코드는 가져오지 않는다. 방법만 새로 구현합니다(4절).

이 원칙으로 만든 첫 사례

4편의 탁구대 꼭짓점 모델이 이 원칙으로 처음부터 만든 모델입니다. Apache-2.0 인코더, 자체 합성 그림 80%, CC BY 3.0 중계 12장 20% 로 학습했고, 비상업 데이터셋은 시험에만 썼습니다(메타데이터 nc_sources=[]). CC BY 의 출처 표기를 학습한 가중치에서 어떻게 지킬지는 법률 검토로 정합니다.

계획

평가 데이터는 어떻게 되나

평가에는 비상업 데이터를 쓰고 있습니다. 공개 경기 시험 7경기가 이 글의 거의 모든 숫자의 바탕입니다. 상업 회사가 내부 평가에 비상업 데이터를 쓰는 것이 허용되는지는 데이터 라이선스의 「비상업」 해석에 달린 법률 문제라, 여기서 결론을 내지 않습니다. 기술적으로 확실한 길은 하나입니다. 라벨 달린 자체 촬영 시험셋을 만드는 것입니다. 그것은 동시에 「휴대폰 현장 정확도 미실측」이라는 가장 큰 빈칸을 채우는 일이기도 합니다.

7. 정리

티티 한마디. 모델이 잘 맞히는 것만큼 「누구 데이터로 배웠나」도 중요해요. 그래서 이제는 우리가 찍고 우리가 그린 공책으로 공부하려고 해요.

참고문헌

  1. R. Voeikov, N. Falaleev, R. Baikulov. "TTNet: Real-time Temporal and Spatial Video Analysis of Table Tennis." CVPR Workshops, 2020. arXiv:2004.09927. OpenTTGames 데이터 CC BY-NC-SA 4.0(데이터 공개 페이지 문구).
  2. T. Gossard, J. Schmalzl, A. Ziegler, A. Zell. "Sound-Based Spin Estimation in Table Tennis: Dataset and Real-Time Classification Pipeline." IEEE STAR, 2025. arXiv:2409.11760. 데이터 CC BY-NC 4.0(저장소 README).
  3. T. Gossard, F. Radovic, A. Ziegler, A. Zell. "BlurBall: Joint Ball and Motion Blur Estimation for Table Tennis Ball Tracking." CVPR Workshops (CVsports), 2026. arXiv:2509.18387. 코드 MIT.
  4. N. Ravi 외. "SAM 2: Segment Anything in Images and Videos." ICLR, 2025. 코드·체크포인트 Apache-2.0.
  5. Y. Xiong 외. "Efficient Track Anything." ICCV, 2025. 코드·체크포인트 Apache-2.0.
  6. Extended OpenTTGames(랠리 종료 원인·승자, 타구 라벨). arXiv:2512.19327. CC BY-NC-SA 4.0.
  7. 우리 측정과 기록: 저장소 docs/tt/PERFORMANCE.md 2.1·2.10·2.19, docs/study/tt-score-models/07-datasets.md(데이터 세기), 연구 원장 0절(실험 규칙)·Ruling·E00·E25·E27·E33·E35·E44, deploy/ 아래 학습 작업 안내 문서, backend/app/tt_score_demos.py 머리말(데모 원본).

함께 읽기

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

댓글

아직 댓글이 없습니다.

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