Multi-Object Tracking (MOT)
컴퓨터 비전의 다중 객체 추적을 살펴보세요. 자율주행, 리테일 등 다양한 분야에서 Ultralytics YOLO26을 사용해 객체를 탐지하고 추적하는 방법을 알아보세요.
다중 객체 추적 (MOT)은 비디오 스트림 내에서 서로 다른 여러 엔터티를 감지하고 시간의 흐름에 따라 해당 엔터티의 ID를 유지하는 컴퓨터 비전 (CV)의 동적 작업입니다. 모든 프레임을 독립적인 스냅샷으로 처리하는 일반적인 객체 감지와 달리, MOT는 인공지능 (AI)에 시간적 차원을 도입합니다. MOT 알고리즘은 감지된 각 인스턴스에 고유 식별 번호 (ID)를 할당합니다. 예를 들어 군중 속 특정 보행자나 고속도로의 차량에 ID를 할당하여 시스템이 궤적을 추적하고, 동작을 분석하며, 상호작용을 이해할 수 있도록 합니다. 이 기능은 최신 비디오 이해의 기반이며, 변화하는 환경에서 기계가 연속성을 인식할 수 있도록 합니다.
MOT 작동 방식#
대부분의 최신 추적 시스템은 "tracking-by-detection" 패러다임으로 작동합니다. 이 접근 방식은 프로세스를 두 가지 주요 단계로 나눕니다. 먼저 프레임에 무엇이 있는지 식별한 다음, 해당 결과를 과거에 확인된 객체와 연결합니다.
-
감지: 각 프레임에서 YOLO26과 같은 고성능 모델이 이미지를 스캔하여 객체의 위치를 찾고 바운딩 박스와 클래스 확률을 생성합니다.
-
모션 예측: 객체가 다음에 어디로 이동할지 예측하기 위해 알고리즘은 흔히 칼만 필터를 사용합니다. 이 수학적 도구는 속도와 위치 같은 동적 시스템의 상태를 추정하여 다음 프레임에서 검색 영역을 좁히는 데 도움을 줍니다.
-
데이터 연결: 시스템은 새로운 감지 결과를 기존 트랙과 매칭합니다. 헝가리안 알고리즘과 같은 최적화 방법은 매칭 비용을 최소화하여 이 할당 문제를 해결하며, 공간적 중첩을 측정하기 위해 교집합 대비 합집합 (IoU)을 사용하는 경우가 많습니다.
-
재식별 (ReID): 가림이라고 하는 시각적 장애가 발생하면 고급 트래커는 시각적 임베딩을 사용하여 객체가 다시 나타났을 때 이를 인식합니다. 이를 통해 "ID 전환"을 방지하고, 터널에서 나오는 차량이 터널에 진입했던 바로 그 차량임을 시스템이 파악할 수 있습니다.
MOT와 단일 객체 추적의 구분#
용어는 비슷하지만 **다중 객체 추적 (MOT)**은 단일 객체 추적 (SOT)과 크게 다릅니다. SOT는 첫 번째 프레임에서 초기화된 하나의 특정 대상만 추적하며, 다른 모든 엔터티는 무시하는 경우가 많습니다. 반면 MOT는 언제든 장면에 들어오거나 나갈 수 있는, 수를 알 수 없고 계속 변하는 대상들을 처리해야 합니다. 따라서 MOT는 여러 이동 객체 간의 복잡한 상호작용뿐 아니라 트랙의 시작과 종료를 처리하기 위한 견고한 로직이 필요하므로 계산량이 더 많습니다.
실제 적용 사례#
여러 엔터티를 동시에 추적하는 능력은 여러 주요 산업에서 혁신을 이끌고 있습니다.
- 자율주행: 자율주행 자동차는 안전하게 주행하기 위해 MOT에 크게 의존합니다. 보행자, 자전거 이용자 및 다른 차량을 추적함으로써 자율 시스템은 충돌을 피하기 위해 미래 위치를 예측할 수 있습니다. 최대한의 신뢰성을 확보하기 위해 카메라와 LiDAR 센서의 데이터를 융합하는 경우가 많습니다.
- 리테일 분석: 오프라인 매장에서 소매업체는 리테일 분야의 AI를 사용하여 고객의 이동 경로를 파악합니다. MOT 알고리즘은 유동 인구의 히트맵을 생성하여 관리자가 매장 레이아웃을 최적화하고 피크 시간대의 대기열 관리를 개선할 수 있도록 지원합니다.
- 스포츠 분석: 프로 팀은 MOT를 사용하여 선수의 움직임과 팀 포메이션을 분석합니다. 경기장의 모든 선수를 추적하면 코치는 포즈 추정 기법을 사용하여 속도, 이동 거리 및 전술적 위치에 관한 세부 지표를 추출할 수 있습니다.
Python으로 MOT 구현하기#
Ultralytics를 사용하면 최첨단 모델로 추적을 간편하게 구현할 수 있습니다. track() 메서드는 감지 및 추적 로직을 원활하게 통합하며 ByteTrack 및 BoT-SORT와 같은 알고리즘을 지원합니다. 아래 예제에서는 권장되는 YOLO26 모델을 사용하여 비디오에서 차량을 추적하는 방법을 보여줍니다.
from ultralytics import YOLO
# Load the official YOLO26 small model
model = YOLO("yolo26s.pt")
# Track objects in a video file (or use '0' for webcam)
# The 'persist=True' argument keeps track IDs consistent between frames
results = model.track(source="traffic_analysis.mp4", show=True, persist=True)
# Print the IDs of objects tracked in the first frame
if results[0].boxes.id is not None:
print(f"Tracked IDs: {results[0].boxes.id.int().tolist()}")다중 객체 추적의 과제#
발전이 이루어졌음에도 MOT는 여전히 어려운 분야입니다. 가림은 주요 난제 중 하나입니다. 객체가 서로 경로를 가로지르거나 장애물 뒤에 숨으면 ID를 유지하기가 복잡해집니다. 바쁜 마라톤이나 새 떼와 같은 혼잡한 장면은 데이터 연결 알고리즘의 한계를 시험합니다. 또한 고해상도 비디오 스트림을 처리하면서 실시간 추론 속도를 유지하려면 효율적인 모델 아키텍처와 NVIDIA Jetson 디바이스와 같은 특수 하드웨어가 필요한 경우가 많습니다.
이러한 문제를 해결하기 위해 연구자들은 감지와 추적을 하나의 네트워크로 통합하는 엔드투엔드 딥러닝 접근 방식을 탐구하고 있으며, Ultralytics Platform을 활용하여 까다로운 데이터셋에 주석을 추가하고 견고한 커스텀 모델을 학습시키고 있습니다.









