본문으로 건너뛰기

작은 공의 흐림을 추적 신호로 바꾼 설계

작은 공 검출에서 모델 크기보다 해상도와 움직임 신호가 중요하다는 구현 사례입니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

스포츠 영상의 작은 공은 몇 픽셀 크기의 흐릿한 흔적으로 나타나므로, 32배 다운샘플링을 사용하는 YOLO 계열 모델로는 구조적으로 위치 정보를 보존하기 어렵습니다. 작성자는 RGB와 frame-difference를 입력으로 받고 최대 stride 2를 사용하는 약 131k 파라미터 Detector와 약 48k 파라미터 Verifier를 조합한 뒤, 물리적 이동 한계에 기반한 비ML 추적을 적용했습니다. 전체 약 180k 파라미터 구성은 4090에서 약 125fps를 기록했으며, 핵심은 blur를 결함이 아니라 빠른 움직임을 담은 신호로 활용한 데 있습니다.

실용적 조언

  • 작은 물체가 특징 맵에서 사라지는지 먼저 계산해야 합니다. 입력 공의 크기와 모델의 최대 stride를 비교하고, stride 32에서 8픽셀 물체처럼 한 셀보다 작은 대상이면 Fine-tuning보다 다운샘플링 구조를 줄이는 편이 우선입니다. 이 글의 구현처럼 최대 stride 2를 사용하면 위치 정보 보존을 중심에 둘 수 있습니다.
  • 흐릿한 스포츠 물체를 검출할 때 RGB 입력만 고집하지 말고 프레임 차분 채널을 함께 평가해야 합니다. 연속 프레임의 픽셀 변화를 별도 채널로 넣으면 배경보다 빠른 물체의 움직임이 검출 입력에 직접 반영됩니다. 공의 선명한 외형이 약한 환경에서는 이 신호가 pretrained ImageNet backbone보다 유용할 수 있습니다.
  • 검출기와 검증기를 분리해 후보 생성과 최종 판별을 나누는 방법을 고려할 수 있습니다. Detector가 상위 후보를 넓게 유지하고 Verifier가 64×64 crop에서 공 여부를 재평가하면, 검출기의 재현율과 최종 순위 정밀도를 서로 다른 목표로 조정할 수 있습니다. 원문 구현에서는 Detector의 top 20 포함률이 약 90%이고 1위 비율이 77%여서 이 분리의 필요성이 수치로 드러납니다.
  • 프레임 간 추적은 이동 방향보다 물리적으로 가능한 이동 범위를 기준으로 연결해야 합니다. 라벨링된 영상에서 공이 한 프레임 사이에 이동할 수 있는 거리를 겉보기 크기에 따라 측정한 뒤, 그 한계를 벗어나는 후보 경로를 제거하면 튕김으로 방향이 바뀌는 상황도 처리할 수 있습니다. 이 단계는 추가 ML 모델 없이 후처리 규칙만으로 구현할 수 있습니다.

섹션별 상세

01
작성자는 스포츠 영상에서 작은 공의 위치를 찾아 세로형 화면으로 재구성하는 작업이 겉보기보다 어렵다고 설명합니다. 공은 일시정지해도 몇 픽셀의 흐릿한 흔적으로만 보이고, 연속 프레임마다 모양이 바뀌기 때문에 일반적인 원 검출 문제로 처리하기 어렵습니다. 이 문제를 해결하려면 물체의 선명한 외형보다 움직임과 시간적 변화를 활용해야 합니다.
02
YOLO 계열 모델의 구조적 한계가 작은 물체 검출 실패의 핵심 원인으로 지적됩니다. 32배 다운샘플링을 거치면 8픽셀 크기의 공은 특징 맵에서 한 셀의 4분의 1에 불과해 위치를 표현할 정보가 사라집니다. 더 오래 Fine-tuning하거나 더 큰 GPU를 사용하는 방식만으로는 모델이 구조적으로 볼 수 없는 대상을 복원하기 어렵다는 결론입니다.
03
대안으로 약 131k 파라미터의 Fully Convolutional Detector가 RGB와 frame-difference를 포함한 4채널 입력을 받아 절반 해상도의 위치 히트맵과 크기 지도를 출력합니다. 최대 stride를 2로 제한하고 dilated convolution을 사용했으며, 흐릿한 흔적을 ImageNet 특징보다 중요한 사전 정보로 보고 pretrained backbone을 배제했습니다. Detector는 상위 20개 후보에 공을 약 90% 포함하지만 1위로 올리는 비율은 77%이므로, 약 48k 파라미터의 Verifier가 64×64 crop을 다시 판별합니다.
04
최종 연결 단계에서는 추가 ML 모델 대신 라벨링된 영상에서 측정한 도달 한계를 사용합니다. 프레임 사이에 공이 이동할 수 있는 거리와 겉보기 크기를 조합해 후보 경로를 걸러낸 뒤 살아남은 검출 구간을 연결하며, 공이 튕길 때 이동 방향이 반전될 수 있으므로 진행 방향으로 연결하지 않습니다. 전체 약 180k 파라미터 모델은 4090에서 약 125fps, 실시간의 약 4배를 기록했지만 CPU-bound FFmpeg 디코더와 PCIe 전송이 병목이어서 더 나은 설계와 int8 적용으로 250~300fps까지 가능할 것으로 추정됩니다.
05
이 글의 핵심 관점은 blur를 제거해야 할 결함이 아니라 움직임을 담은 신호로 취급하는 데 있습니다. 공은 복잡한 배경 속에서 거의 보이지 않더라도 대개 프레임 안에서 가장 빠르게 움직이는 대상이므로, frame-difference 채널이 backbone 선택보다 더 많은 정보를 제공할 수 있습니다. TrackNet v2/3/4가 실제 환경의 데이터 분포와 맞지 않아 낮은 품질을 냈다는 경험은 현장 데이터와 입력 신호 설계가 모델 규모보다 중요할 수 있음을 뒷받침합니다.

이미지 분석

실내 스포츠 코트 영상과 공의 움직임을 강조한 푸른색 시각화 화면이 나란히 배치되어 있습니다.
Screenshot

이미지 왼쪽에는 고정된 카메라로 촬영한 파란색 코트와 선수가 보이고, 오른쪽에는 원본 장면의 움직임 또는 검출 결과로 보이는 푸른색 영역이 표시되어 있습니다. 이는 선명한 공의 외형보다 영상 내 움직임을 활용해 작은 대상을 찾고 화면을 재구성하는 글의 작업과 연결됩니다. 다만 저해상도 이미지에서는 공의 위치나 히트맵 수치를 정확히 판독할 수 없습니다.

실내 스포츠 코트 영상과 공의 움직임을 강조한 푸른색 시각화 화면이 나란히 배치되어 있습니다.

용어 해설

다운샘플링(Downsampling)
입력 영상의 공간 해상도를 줄여 특징 맵을 만드는 과정입니다. stride 32처럼 큰 축소율을 사용하면 계산량은 줄지만, 공처럼 몇 픽셀에 불과한 물체의 위치 정보가 특징 맵에서 사라질 수 있습니다.
확장 합성곱(Dilated Convolution)
합성곱 필터의 샘플 간격을 넓혀 해상도를 크게 줄이지 않고 더 넓은 영역을 참고하는 연산입니다. 이 글의 Detector는 확장 합성곱과 최대 stride 2를 사용해 흐릿한 공의 국소 정보를 보존합니다.
프레임 차분(Frame Difference)
연속된 두 영상 프레임의 픽셀 변화를 계산한 값입니다. 배경보다 빠르게 움직이는 공은 RGB 영상에서 흐릿해도 프레임 차분 채널에서 더 뚜렷한 신호로 남을 수 있습니다.
히트맵(Heat Map)
영상의 각 위치가 목표 물체일 가능성을 나타내는 공간적 확률 지도입니다. Detector는 입력 영상의 절반 해상도에서 공의 위치를 나타내는 히트맵과 크기 지도를 함께 출력합니다.
PCIe 전송(PCIe Transfer)
CPU와 GPU 사이에서 데이터를 이동시키는 처리 단계입니다. 이 구현은 GPU 연산 자체보다 CPU-bound FFmpeg 디코더와 CPU-GPU PCIe 전송 때문에 GPU를 100% 활용하지 못하고 처리 속도가 제한됩니다.

언급된 도구

TrackNet v2/3/4비추천

스포츠 영상에서 공을 추적하기 위해 시도한 기존 모델 계열이며, 공개 학습 데이터와 실제 영상의 차이 때문에 품질이 낮았다고 평가됩니다.

TensorRT중립

추론 실행 경로에 사용된 런타임 구성 요소입니다. ORT와 함께 4090에서 Detector와 Verifier를 실행하는 데 사용되었습니다.

ORT중립

추론 실행에 사용된 런타임 구성 요소입니다. TensorRT 및 Rust 서버와 함께 영상 처리 파이프라인에 포함되었습니다.

FFmpeg중립

영상 디코딩을 담당했으며 CPU-bound 상태가 되어 전체 처리 속도의 병목으로 작용했습니다.

Rayon추천

Rust 서버에서 병렬 처리를 통해 일부 영상 처리 속도를 높이는 데 사용되었습니다.

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 17.수집 2026. 08. 17.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.