PaperReview

[DeepSORT] Simple Online and Realtime Tracking with a Deep Association Metric

Black940514 2026. 1. 25. 21:52

Simple Online and Realtime Tracking with a Deep Association Metric

 

저자: Nicolai Wojke, Alex Bewley, Dietrich Paulus

발행년도: 2017년

인용수: 3500회

논문 링크: https://arxiv.org/abs/1703.07402

arXiv ID: 1703.07402

 

---

 

DeepSORT: 실시간 다중 객체 추적에서 외형 정보를 활용한 접근

 

문제 정의 (Problem Definition)

 

다중 객체 추적(Multiple Object Tracking, MOT)은 비디오 시퀀스에서 여러 객체들을 지속적으로 추적하는 컴퓨터 비전의 핵심 과제다. 특히 보안 카메라, 자율주행, 스포츠 분석 등의 실제 응용에서는 실시간 처리가 필수적이다. 하지만 실시간 MOT는 단순히 빠른 속도만 요구하는 것이 아니라, 정확한 추적 성능도 함께 달성해야 하는 도전적인 문제다.

 

실제 환경에서 MOT가 어려운 이유는 크게 세 가지로 압축할 수 있다. 첫째, 객체들이 서로를 가리는 occlusion이 빈번하게 발생한다. 둘째, 조명 변화나 객체의 자세 변화로 인해 외형이 크게 달라질 수 있다. 셋째, 검출기의 실패로 인한 miss detection이 불가피하게 발생한다. 이러한 상황에서 각 객체의 ID를 일관되게 유지하는 것은 매우 어려운 일이다.

 

기존의 tracking-by-detection 방식들은 프레임 단위로 객체를 검출한 후, 이전 프레임과 현재 프레임 사이의 검출 결과를 연결하는 방식으로 작동한다. 하지만 단순히 위치와 크기 정보만으로는 occlusion이나 miss detection 상황에서 올바른 매칭을 보장할 수 없다. 특히 붐비는 환경에서 비슷한 위치에 여러 객체가 존재할 때, 어떤 검출이 어떤 추적 대상과 연결되어야 하는지 결정하기 어렵다.

 

기존 방법의 한계 (Motivation)

 

2017년 당시 대표적인 실시간 MOT 알고리즘은 SORT(Simple Online and Realtime Tracking)였다. SORT는 칼만 필터로 객체의 움직임을 예측하고, 헝가리안 알고리즘으로 검출과 예측을 매칭하는 간단하면서도 효과적인 방법이었다. 260Hz라는 놀라운 속도로 작동했지만, 치명적인 약점이 있었다.

 

SORT의 핵심 문제는 오직 bounding box의 위치와 크기 정보만을 사용한다는 점이었다. IoU(Intersection over Union) 기반의 매칭은 연속적인 프레임에서는 잘 작동하지만, 객체가 일시적으로 가려지거나 검출되지 않았다가 다시 나타날 때는 완전히 실패했다. 예를 들어, 사람이 기둥 뒤로 들어갔다가 나오면 새로운 ID를 부여받는 경우가 빈번했다.

 

또 다른 문제는 빠르게 움직이는 객체나 갑작스러운 방향 전환을 처리하기 어렵다는 점이었다. 칼만 필터의 선형 움직임 모델은 예측 가능한 움직임에는 효과적이지만, 실제 보행자의 복잡한 동선을 모델링하기에는 한계가 있었다. 특히 붐비는 환경에서 사람들이 서로를 피해가며 움직일 때, 위치 기반 예측만으로는 정확한 추적이 불가능했다.

 

> 흥미로운 점은 저자들이 복잡한 motion model을 개선하는 대신 appearance information을 추가하는 방향을 선택했다는 것이다. 이는 "더 정교한 움직임 예측"보다 "객체의 고유한 특징 활용"이 더 효과적일 수 있다는 통찰을 보여준다.

 

핵심 아이디어 (Key Idea)

 

DeepSORT의 핵심 아이디어는 명확하다: SORT의 motion-based association에 deep appearance descriptor를 결합하여 장기간 occlusion을 견딜 수 있게 만들자. 이는 마치 사람이 누군가를 인식할 때 위치뿐만 아니라 옷차림, 체형 등의 외형 특징을 함께 고려하는 것과 같은 원리다.

 

저자들은 large-scale person re-identification 데이터셋에서 학습한 CNN을 사용해 각 검출에서 128차원의 appearance feature를 추출했다. 이 feature는 같은 사람이면 비슷한 값을, 다른 사람이면 다른 값을 가지도록 학습되었다. 핵심은 이 appearance 정보를 기존의 motion 정보와 어떻게 효과적으로 결합하느냐였다.

 

단순히 두 정보를 더하는 것이 아니라, 각 상황에 맞게 가중치를 조절하는 방식을 택했다. 가까운 프레임에서는 motion 정보가 더 신뢰할 만하고, occlusion 후 재등장 시에는 appearance 정보가 더 중요하다. 이러한 상황별 적응적 결합이 DeepSORT의 강력함의 비밀이다.

 

> 다만 "deep" appearance descriptor라는 표현이 다소 과장된 느낌이 있다. 실제로는 비교적 단순한 CNN 구조를 사용했고, 핵심은 네트워크의 복잡도보다는 re-identification task에서의 사전 학습에 있었다.

 

아키텍처 설명 (Architecture)

 

DeepSORT의 전체 파이프라인은 크게 네 단계로 구성된다. 먼저 검출 단계에서 각 프레임의 객체들을 찾아낸다. 다음으로 각 검출에 대해 appearance feature를 추출한다. 그리고 칼만 필터로 기존 track들의 위치를 예측한다. 마지막으로 예측된 track과 새로운 검출을 매칭한다.

 

검출 단계는 논문의 범위를 벗어나며, 저자들은 Faster R-CNN 등의 기존 검출기를 그대로 사용했다. 핵심은 appearance feature 추출 부분이다. 각 bounding box를 128×64 크기로 resize한 후, residual network를 통과시켜 128차원의 feature vector를 얻는다. 이 네트워크는 1,261개의 ID를 가진 1,100,000개 이상의 이미지로 학습되었다.

 

# Simplified matching process
def match_detections_to_tracks(detections, tracks):
    # Motion cost (Mahalanobis distance)
    motion_cost = calculate_motion_cost(detections, tracks)
    
    # Appearance cost (cosine distance)
    appearance_cost = calculate_appearance_cost(detections, tracks)
    
    # Combined cost with gating
    cost_matrix = motion_cost + lambda * appearance_cost
    
    # Apply motion gating
    cost_matrix[motion_cost > threshold] = np.inf
    
    # Hungarian algorithm
    matches = hungarian_algorithm(cost_matrix)
    return matches

 

매칭 과정에서는 두 가지 비용을 계산한다. Motion cost는 칼만 필터의 예측과 검출 사이의 Mahalanobis distance로 계산하고, appearance cost는 feature vector들 사이의 cosine distance로 계산한다. 중요한 점은 cascade matching을 도입했다는 것이다. 최근에 본 track부터 우선적으로 매칭하고, 오래된 track은 나중에 매칭한다. 이는 occlusion에서 막 벗어난 객체가 잘못 매칭되는 것을 방지한다.

 

설계 의도 및 특징 (Design Choices)

 

DeepSORT의 설계에서 가장 주목할 점은 appearance feature의 gallery 관리다. 각 track마다 최대 100개의 appearance feature를 저장하고, 새로운 검출과 비교할 때는 이 gallery의 최소 거리를 사용한다. 이는 객체의 외형이 시간에 따라 변화하는 것을 고려한 설계다.

 

또 다른 중요한 설계는 motion gating이다. Mahalanobis distance가 특정 threshold를 넘으면 아예 매칭 후보에서 제외한다. 이는 appearance가 아무리 비슷해도 물리적으로 불가능한 위치의 객체는 매칭하지 않겠다는 의미다. 합리적인 선택이지만, threshold 설정이 경험적이라는 한계가 있다.

 

Track 관리 정책도 주목할 만하다. 새로운 track은 처음 3프레임 동안은 tentative 상태로 유지하고, 그 이후에 confirmed 상태로 전환한다. 또한 `max_age` 프레임 동안 매칭되지 않으면 track을 삭제한다. 이러한 정책들은 노이즈에 강건한 추적을 가능하게 한다.

 

> 아쉬운 점은 이러한 하이퍼파라미터들(gallery 크기, max_age, gating threshold 등)에 대한 ablation study가 부족하다는 것이다. 실무에서는 이러한 값들을 도메인에 맞게 조정하는 것이 성능에 큰 영향을 미치는데, 가이드라인이 부족하다.

 

실험 결과 분석

 

MOT16 벤치마크에서의 실험 결과는 인상적이다. ID switch가 기존 SORT 대비 45% 감소했다는 것은 appearance 정보의 효과를 명확히 보여준다. 특히 MOTA(Multiple Object Tracking Accuracy)가 61.4%로 당시 실시간 방법 중 최고 수준이었다.

 

하지만 실험 설계에 몇 가지 아쉬운 점이 있다. 첫째, appearance feature 없이 다른 개선사항들(cascade matching, track 관리 정책 등)만 적용했을 때의 성능이 제시되지 않았다. 둘째, 다양한 re-identification 네트워크를 비교하지 않고 하나의 모델만 사용했다.

 

처리 속도 측면에서는 20Hz를 달성했는데, 이는 appearance feature 추출에 드는 시간을 고려하면 합리적인 수준이다. 다만 GPU 사양이나 배치 처리 여부 등 재현성을 위한 세부 정보가 부족하다.

 

> 특히 의문스러운 점은 MOT16의 train/test split을 명확히 밝히지 않았다는 것이다. 또한 appearance network를 학습할 때 MOT 데이터를 사용했는지도 불분명하다. 이는 공정한 비교를 어렵게 만든다.

 

총평: 개인적 해석과 후속 연구 방향

 

DeepSORT는 단순하면서도 효과적인 아이디어로 실용적인 문제를 해결한 좋은 연구다. Motion과 appearance의 결합이라는 직관적인 아이디어를 실시간 시스템에 녹여낸 점이 인상적이다. 특히 복잡한 최신 기법 대신 검증된 요소들(칼만 필터, 헝가리안 알고리즘)을 활용한 점은 실무 적용성을 높였다.

 

그러나 몇 가지 한계도 명확하다. 첫째, appearance network가 person re-identification에 특화되어 있어 다른 객체 클래스로의 확장이 제한적이다. 둘째, 긴 시간 occlusion에서는 여전히 한계를 보인다. 셋째, appearance feature의 계산 비용이 객체 수에 비례해 증가한다.

 

만약 이 연구를 발전시킨다면, 다음과 같은 방향을 고려해볼 것이다. 첫째, adaptive feature fusion을 도입해 상황에 따라 motion과 appearance의 가중치를 자동으로 조절하는 방법을 연구하겠다. 둘째, transformer 기반의 global association을 통해 여러 프레임의 정보를 동시에 고려하는 방향도 흥미롭다. 셋째, few-shot learning을 활용해 새로운 객체 클래스에 빠르게 적응하는 방법도 탐구할 가치가 있다.

 

실무 적용 관점에서 DeepSORT는 여전히 매력적인 선택지다. 코드가 잘 정리되어 있고, 하이퍼파라미터 튜닝만으로도 다양한 도메인에 적용 가능하다. 다만 appearance network를 도메인에 맞게 fine-tuning하는 것이 성능 향상의 핵심이 될 것이다.