안녕하세요!
영상 속 자동차나 사람을 계속 따라가는 기술이 궁금하셨나요?
이번 글에서는 객체가 움직여도 같은 대상으로 인식하는 원리를 살펴봅니다.
특히 객체 탐지와 객체 추적의 차이부터 차근차근 설명합니다.
실제 영상 프레임에서 추적 ID가 유지되는 과정도 함께 알아봅니다.
객체 탐지와 객체 추적은 무엇이 다를까?
객체 탐지는 한 장의 이미지에서 대상을 찾는 기술입니다.
사람, 자동차, 동물의 위치와 종류를 한 번에 판별합니다.
탐지 결과는 보통 사각형 상자인 바운딩 박스로 표시합니다.
각 상자에는 객체 종류와 신뢰도 점수가 붙을 수 있습니다.
하지만 객체 탐지는 앞뒤 장면의 관계를 직접 알려주지 않습니다.
두 장면의 자동차가 같은 차량인지도 탐지만으로는 알기 어렵습니다.
객체 추적은 영상 속 대상을 시간의 흐름에 따라 연결합니다.
같은 대상에는 가능한 한 동일한 추적 ID를 유지합니다.

사진 한 장에서 사람을 찾는 일은 객체 탐지에 가깝습니다.
그 사람이 어디로 걸어가는지 따라가면 객체 추적이 됩니다.
따라서 탐지는 “무엇이 어디에 있는가”에 답합니다.
추적은 “이전 장면의 그 대상이 지금 어디에 있는가”를 다룹니다.
두 기술은 경쟁 관계가 아니라 서로 보완하는 관계입니다.
많은 추적 시스템은 각 장면의 탐지 결과를 연결해 작동합니다.
영상은 여러 장의 프레임으로 이루어진다
영상은 정지 이미지를 빠르게 이어 붙인 데이터입니다.
이때 각각의 정지 이미지를 프레임이라고 부릅니다.
추적기는 현재 프레임과 이전 프레임의 결과를 비교합니다.
위치와 모양이 비슷하면 같은 객체일 가능성이 높다고 봅니다.
다만 가까운 위치에 있다는 이유만으로 연결하면 오류가 생깁니다.
사람들이 교차하거나 가려질 때는 판단이 더 어려워집니다.
핵심 흐름: Detection → Association → Track Update
대표적인 다중 객체 추적은 세 단계로 이해할 수 있습니다.
바로 Detection → Association → Track Update 흐름입니다.
1단계: Detection으로 객체 찾기
Detection은 각 프레임에서 관심 대상을 찾는 단계입니다.
검출기는 객체마다 위치 상자와 분류 결과를 출력합니다.
예를 들어 첫 프레임에서 자동차 두 대가 검출될 수 있습니다.
추적기는 두 자동차에 각각 ID 1과 ID 2를 부여합니다.
탐지를 놓치면 이후 연결에 사용할 관측값이 사라집니다.
반대로 잘못 탐지하면 존재하지 않는 궤적이 생길 수 있습니다.
2단계: Association으로 같은 대상 연결하기
데이터 연관은 새 탐지 결과와 기존 궤적을 짝짓는 과정입니다.
영어로는 Data Association이라고 합니다.
두 번째 프레임에서 자동차가 조금 오른쪽으로 이동했다고 가정해 봅시다.
추적기는 새 위치가 기존 ID 1의 예상 위치와 가까운지 확인합니다.
일치한다고 판단하면 새 번호를 만들지 않습니다.
이전과 같은 추적 ID인 ID 1을 그대로 붙입니다.
연결 기준에는 위치, 이동 방향, 크기와 색상 등이 쓰입니다.
여러 단서를 함께 사용하면 교차 상황에 더 잘 대응할 수 있습니다.
3단계: Track Update로 궤적 갱신하기
Track Update는 연결 결과를 반영해 추적 상태를 바꾸는 단계입니다.
현재 위치와 속도, 관측 횟수 등을 새 값으로 갱신합니다.
기존 궤적과 연결되지 않은 탐지는 새 객체일 수 있습니다.
조건을 충족하면 새로운 추적 ID를 발급합니다.
반대로 탐지와 연결되지 않은 궤적은 바로 지우지 않기도 합니다.
잠시 가려졌을 가능성을 고려해 일정 시간 보존할 수 있습니다.
실제 프레임에서 ID가 유지되는 과정
횡단보도 영상에 파란 옷을 입은 사람이 등장했다고 가정해 봅시다.
첫 프레임에서 이 사람은 ID 7로 등록됩니다.
두 번째 프레임에서는 사람이 오른쪽으로 몇 픽셀 이동합니다.
추적기는 ID 7이 이동할 다음 위치를 먼저 예상합니다.
새 탐지 상자가 예상 위치와 충분히 겹치면 둘을 연결합니다.
그 결과 두 번째 프레임에서도 ID 7이 유지됩니다.
세 번째 프레임에서 다른 사람이 앞을 잠깐 가릴 수도 있습니다.
이때 탐지 결과가 한 번 사라져도 궤적을 즉시 삭제하지 않습니다.
다음 프레임에 대상이 다시 보이면 위치와 외형을 비교합니다.
조건이 맞으면 새 ID가 아닌 기존 ID 7에 다시 연결합니다.
그러나 가림이 길거나 외형이 비슷한 사람이 많으면 실패할 수 있습니다.
기존 ID가 바뀌는 현상을 ID 스위치라고 부릅니다.
데이터 연관에 사용하는 대표적인 단서
위치와 상자 겹침 정도
가장 단순한 방법은 두 상자의 겹침 정도를 비교하는 것입니다.
이 값은 흔히 IoU라는 지표로 계산합니다.
IoU는 두 상자가 겹친 넓이를 전체 합집합 넓이로 나눈 값입니다.
많이 겹칠수록 같은 대상일 가능성이 높다고 판단합니다.
빠르게 움직이는 물체는 프레임 사이 이동 거리가 커질 수 있습니다.
이 경우 상자 겹침만으로는 올바른 연결이 어려울 수 있습니다.
움직임 예측
추적기는 이전 위치와 속도로 다음 위치를 예상할 수 있습니다.
대표적으로 칼만 필터라는 수학적 예측 방법이 사용됩니다.
칼만 필터는 불완전한 관측값을 이용해 상태를 추정합니다.
쉽게 말하면 이동 흐름을 보고 다음 위치를 보정하는 방식입니다.
외형 특징
외형 특징은 옷의 색이나 형태 같은 시각적 정보를 뜻합니다.
딥러닝 모델은 이를 비교하기 쉬운 숫자 묶음으로 바꿉니다.
객체가 잠시 가려진 뒤 다시 나타날 때 특히 유용합니다.
다만 조명과 자세가 달라지면 외형 비교도 흔들릴 수 있습니다.
여러 후보를 한꺼번에 짝짓기
객체가 많으면 각 궤적에 여러 탐지 후보가 생깁니다.
이때 전체 연결 비용이 작아지도록 조합을 찾아야 합니다.
헝가리안 알고리즘은 이런 할당 문제에 자주 사용됩니다.
각 궤적과 탐지 결과가 중복되지 않도록 짝을 정합니다.
대표적인 객체 추적 방식
단일 객체 추적
단일 객체 추적은 처음 지정한 대상 하나를 따라갑니다.
사용자가 첫 장면에서 추적할 상자를 선택하는 방식이 대표적입니다.
대상이 화면을 벗어나거나 완전히 가려지면 다시 찾기 어려울 수 있습니다.
방식에 따라 별도의 객체 탐지를 계속 사용하기도 합니다.
다중 객체 추적
다중 객체 추적은 여러 사람이나 차량을 동시에 관리합니다.
각 대상에 고유한 추적 ID를 붙이는 것이 핵심입니다.
SORT는 탐지 결과와 움직임 정보를 빠르게 연결하는 방식입니다.
Deep SORT는 여기에 외형 특징을 더해 구분력을 높입니다.
ByteTrack은 낮은 신뢰도의 탐지 결과도 단계적으로 활용합니다.
알고리즘마다 속도와 정확도, 가림 대응 방식이 다릅니다.
추적이 어려워지는 대표적인 상황
가림은 다른 대상이나 장애물 뒤에 객체가 숨는 현상입니다.
가림이 길어질수록 이전 궤적과 다시 연결하기 어려워집니다.
비슷한 옷을 입은 사람이 가까이 지나가도 혼동이 생깁니다.
카메라가 크게 흔들리면 모든 객체가 움직인 것처럼 보입니다.
낮은 해상도와 어두운 조명도 탐지 품질을 떨어뜨립니다.
탐지가 불안정해지면 데이터 연관과 궤적 갱신도 함께 흔들립니다.
그래서 추적 성능은 추적 알고리즘만으로 결정되지 않습니다.
카메라 환경과 객체 탐지 성능도 함께 확인해야 합니다.
좋은 추적 결과를 판단하는 기준
화면에 상자가 잘 그려졌다고 추적이 정확한 것은 아닙니다.
같은 객체의 ID가 꾸준히 유지되는지도 확인해야 합니다.
누락된 객체와 잘못 추가된 객체의 수도 중요합니다.
ID 스위치 횟수와 궤적의 끊김도 평가 대상입니다.
MOTA와 IDF1은 다중 객체 추적에서 널리 알려진 지표입니다.
다만 지표마다 강조하는 오류가 달라 함께 보는 편이 좋습니다.
실시간 서비스라면 처리 속도와 지연 시간도 중요합니다.
정확도가 높아도 너무 느리면 현장 적용이 어려울 수 있습니다.
짧게 따라 해보는 프레임 연결 연습
첫 프레임에 사람 A가 왼쪽, 사람 B가 오른쪽에 있습니다.
두 사람에게 각각 ID 1과 ID 2를 부여해 보세요.
다음 프레임에서 두 사람이 중앙 방향으로 이동합니다.
이전 위치와 이동 방향을 보고 새 탐지 상자와 연결합니다.
세 번째 프레임에서 두 사람이 서로 교차한다고 가정합니다.
위치만 볼 때와 외형까지 볼 때의 결과를 비교해 보세요.
위치만 사용하면 ID 1과 ID 2가 바뀔 가능성이 있습니다.
이동 방향과 외형을 더하면 기존 ID를 지키기 쉬워집니다.
핵심 정리
객체 탐지는 한 프레임 안에서 대상의 위치와 종류를 찾습니다.
객체 추적은 여러 프레임의 결과를 이어 같은 대상을 따라갑니다.
전체 과정은 Detection, Association, Track Update로 정리할 수 있습니다.
탐지하고 연결한 뒤 궤적 상태와 추적 ID를 갱신합니다.
안정적인 추적에는 위치와 움직임, 외형 정보가 필요합니다.
가림과 교차, 탐지 누락까지 고려해야 실제 영상에 적용할 수 있습니다.
일부 이미지는 Pexels에서 제공되었습니다.
'공부' 카테고리의 다른 글
| YOLO를 공부하기 전에 알아야 할 상식과 기초 지식 2편: IoU부터 mAP와 NMS까지 (0) | 2026.09.17 |
|---|---|
| YOLO 공부 전 필수 기초 1편: 이미지 픽셀, 바운딩 박스, 클래스, 학습 데이터 이해하기 (0) | 2026.09.16 |
| 도커로 ROS 2가 동작하는 원리와 Cyclone DDS 네트워크 이해하기 (0) | 2026.09.14 |
| 온톨로지란? 철학부터 인공지능까지 쉽게 이해하기 (0) | 2026.09.13 |
| MLOps란? 머신러닝 모델을 안정적으로 운영하는 방법 (0) | 2026.09.12 |