Object Tracking
컴퓨터 비전에서 객체 추적이 어떻게 작동하는지 배우십시오. 실시간 분석을 위해 Ultralytics YOLO26을 사용하여 고유 ID로 객체를 식별하고 모니터링하는 방법을 알아보십시오.
객체 추적은 computer vision (CV) 분야의 동적 프로세스로, 비디오에서 특정 개체를 식별하고 일련의 프레임에 걸쳐 그 움직임을 모니터링하는 것을 포함합니다. 각 스냅샷을 독립적으로 취급하는 정적 이미지 분석과 달리, 추적은 시간이라는 차원을 도입합니다. 이를 통해 artificial intelligence (AI) 시스템은 자동차, 사람, 동물 등 감지된 각 항목에 고유한 식별 번호(ID)를 부여하고, 객체가 이동하거나 방향이 바뀌거나 일시적으로 가려질 때도 그 신원을 유지할 수 있습니다. 이 기능은 고급 video understanding의 초석으로, 기계가 원본 영상에서 행동을 분석하고, 궤적을 계산하고, 실행 가능한 인사이트를 도출할 수 있게 합니다.
객체 추적의 작동 원리#
현대 추적 시스템은 일반적으로 "탐지 기반 추적(tracking-by-detection)" 패러다임을 활용합니다. 이 워크플로우는 강력한 탐지 모델과 특수 알고리즘을 결합하여 시간에 따른 탐지 결과를 연결합니다. 이 프로세스는 일반적으로 다음 세 가지 주요 단계를 따릅니다.
-
탐지: 모든 프레임에서 최첨단 YOLO26과 같은 object detection 모델이 이미지를 스캔하여 관심 객체의 위치를 파악합니다. 모델은 각 객체의 공간적 범위를 정의하는 bounding boxes를 출력합니다.
-
모션 예측: Kalman Filter와 같은 알고리즘은 현재 속도와 궤적을 기반으로 객체의 향후 위치를 추정합니다. 이 예측은 다음 프레임의 검색 공간을 줄여 시스템의 효율성을 높여줍니다.
-
데이터 연관: 시스템은 Hungarian algorithm과 같은 최적화 방법을 사용하여 새로운 탐지 결과를 기존 트랙에 매칭합니다. 이 단계는 종종 Intersection over Union (IoU)와 같은 메트릭을 사용하여 예측된 상자가 새로운 탐지 결과와 얼마나 겹치는지를 측정합니다. 고급 추적기는 시각적 feature extraction을 사용하여 유사해 보이는 객체를 다시 식별할 수도 있습니다.
객체 추적 vs. 객체 탐지#
이 용어들은 밀접하게 연관되어 있지만, machine learning (ML) 파이프라인 내에서 서로 다른 기능을 수행합니다.
- 객체 탐지는 "이 이미지에 무엇이 있고 어디에 있는가?"라는 질문에 답합니다. 이는 상태가 없는(stateless) 방식으로, 이전 프레임에 대한 기억이 없습니다. 자동차가 비디오를 통과할 때, 탐지기는 프레임 1에서 "자동차"를 보고 프레임 2에서도 "자동차"를 보지만, 이 둘이 동일한 차량인지 알지 못합니다.
- 객체 추적은 "이 특정 객체가 어디로 가고 있는가?"라는 질문에 답합니다. 이는 상태를 유지합니다. 프레임 1의 "자동차"와 프레임 2의 "자동차"를 연결하여 시스템이 "자동차 ID #42"가 왼쪽에서 오른쪽으로 이동하고 있음을 기록할 수 있게 합니다. 이는 predictive modeling 및 카운팅 같은 작업에 필수적입니다.
실제 애플리케이션 사례#
객체 신원을 유지하는 기능은 다양한 산업에서 복잡한 real-time inference 애플리케이션을 가능하게 합니다.
- 지능형 교통 시스템: 추적은 autonomous vehicles가 안전하게 주행하는 데 매우 중요합니다. 자동차는 보행자와 다른 차량을 추적함으로써 잠재적인 충돌을 예측할 수 있습니다. 또한 교통 엔지니어들은 안전 규정을 집행하고 교통 흐름을 최적화하기 위해 이러한 시스템을 speed estimation에 사용합니다.
- 리테일 분석: 오프라인 매장은 AI in retail을 활용하여 고객 행동을 이해합니다. 추적을 통해 매장 관리자는 object counting을 수행하여 유동 인구를 측정하고, heatmaps을 사용하여 디스플레이 앞에서의 체류 시간을 분석하며, queue management를 최적화하여 대기 시간을 줄일 수 있습니다.
- 스포츠 분석: 프로 스포츠에서 코치들은 추적 기술을 pose estimation과 결합하여 선수 생체 역학 및 팀 대형을 분석합니다. 이 데이터는 육안으로 보이지 않는 패턴을 드러냄으로써 경쟁 우위를 제공합니다.
Python을 활용한 추적 구현#
Ultralytics를 사용하면 고성능 추적을 간단하게 구현할 수 있습니다. 라이브러리의 track 모드는 탐지, 모션 예측, ID 할당을 자동으로 처리합니다. 아래 예제는 Ultralytics Platform 호환 YOLO26 모델을 사용하여 비디오에서 객체를 추적하는 방법을 보여줍니다.
from ultralytics import YOLO
# Load the official YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Track objects in a video file or webcam (source=0)
# 'show=True' displays the video with bounding boxes and unique IDs
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=True)
# Access the unique tracking IDs from the results
if results[0].boxes.id is not None:
print(f"Detected Track IDs: {results[0].boxes.id.cpu().numpy()}")관련 개념#
추적 생태계를 온전히 이해하려면 단순한 상자가 아닌 객체의 정밀한 픽셀 수준 외곽선을 추적하는 instance segmentation을 살펴보는 것이 유용합니다. 또한 다중 객체 추적(MOT) 챌린지는 알고리즘이 혼잡한 장면과 가려짐을 얼마나 잘 처리하는지 평가하기 위해 MOTChallenge와 같은 널리 사용되는 벤치마크를 포함하는 경우가 많습니다. 프로덕션 환경에 배포하기 위해 개발자들은 종종 NVIDIA DeepStream이나 OpenCV 같은 도구를 활용하여 이러한 모델을 효율적인 파이프라인에 통합합니다.






