LabHub

블로그

SOTA 실시간 비디오 분석 — 추적, 이해, 효율 추론

한국어English日本語中文

들어가며

이미지 한 장을 이해하는 것과 시간이 흐르는 비디오를 이해하는 것은 다른 문제입니다. 비디오에는 시간 축이 더해지고, 물체는 움직이고 가려지고 다시 나타납니다. "지금 무슨 일이 일어나고 있는가", "이 물체가 다음 프레임에서 어디로 갔는가"를 실시간으로 답하려면 정확도뿐 아니라 지연 시간까지 함께 고려해야 합니다.

이 글은 실시간 비디오 분석의 대표적 과제와 접근을 아키텍처 원리 중심으로 정리합니다. 비디오 SOTA 역시 빠르게 바뀌므로, 특정 모델의 순위나 수치는 단정하지 않고 개념과 계열의 흐름에 집중합니다. 확실치 않은 최신 스펙은 일반화해서 다룹니다.

다룰 내용은 크게 네 갈래입니다. 첫째, 비디오 이해가 나누어지는 과제들. 둘째, 그 과제를 푸는 비디오 모델의 아키텍처 흐름. 셋째, 분할과 추적을 통합하는 SAM 2 계열의 관점과 다중 객체 추적. 넷째, 실시간을 가능케 하는 최적화와 배포의 현실입니다. 각 갈래는 결국 "정확도와 지연 사이 어디에 설 것인가"라는 하나의 질문으로 수렴합니다.

비디오 이해의 주요 과제

비디오 이해는 목표에 따라 여러 과제로 나뉩니다. 대표적인 것들을 정리하면 다음과 같습니다.

   비디오 이해 과제의 지도 (개념)

  분류 축:  "무엇이 일어나는가"  --> 행동 인식
  시간 축:  "언제 일어나는가"    --> 시간적 위치 추정
  추적 축:  "그 물체가 어디로"   --> 객체 추적 (MOT/SOT)
  픽셀 축:  "경계는 어디까지"     --> 비디오 분할
  언어 축:  "말로 설명/질의응답"  --> 비디오-언어 모델

이 과제들은 서로 독립적이지 않습니다. 예컨대 자율주행에서는 추적과 분할과 행동 예측이 하나의 파이프라인 안에서 맞물려 돌아갑니다.

또 하나 강조할 점은, 비디오 이해가 단순히 "이미지 이해를 여러 번 하는 것"이 아니라는 사실입니다. 프레임 사이의 관계, 즉 시간적 일관성이 핵심입니다. 같은 물체를 프레임마다 다른 것으로 본다면 추적은 무너지고, 프레임마다 마스크가 흔들린다면 분할은 쓸모가 없어집니다. 그래서 비디오 모델은 "정확도"만이 아니라 "시간에 걸친 안정성"을 함께 요구받습니다.

비디오 모델의 아키텍처 흐름

3D 합성곱에서 시공간 어텐션으로

초기 비디오 모델은 이미지의 2D 합성곱을 시간 축으로 확장한 3D 합성곱을 사용했습니다. 공간과 시간을 함께 훑어 움직임 패턴을 포착하는 방식입니다. 이후 트랜스포머가 이미지에 성공적으로 적용되면서(비전 트랜스포머), 비디오에도 시공간 어텐션(spatio-temporal attention) 이 도입되었습니다.

        비디오 트랜스포머 (개념)

  비디오 = 프레임들의 시퀀스
    |
  각 프레임을 패치로 나눔 (공간)
    |
  프레임을 시간으로 이어붙임 (시간)
    |
  [시공간 어텐션]
     - 공간 어텐션: 한 프레임 내 관계
     - 시간 어텐션: 프레임 간 관계
    |
  분류/검출/분할 헤드

시공간 어텐션의 과제는 연산량입니다. 프레임 수와 패치 수가 곱해지면 어텐션 비용이 커집니다. 이를 다루기 위한 대표적 절충은 다음과 같습니다.

이 절충들은 정확도와 속도의 상충 위에서 선택됩니다. "가장 좋은" 조합은 과제와 지연 요구에 따라 달라집니다.

시공간 어텐션이 강력한 이유는 "멀리 떨어진 프레임 사이의 관계"를 직접 학습할 수 있기 때문입니다. 예컨대 어떤 행동의 시작과 끝이 수 초 떨어져 있어도, 어텐션은 그 두 시점을 이어 볼 수 있습니다. 3D 합성곱이 주로 인접한 프레임의 지역적 움직임에 강한 것과 대비됩니다. 다만 이 표현력의 대가가 연산량이며, 실시간 시스템은 앞서 말한 절충으로 이 대가를 관리합니다. 이것이 비디오 아키텍처 설계의 핵심 긴장입니다.

비디오 분할과 추적: SAM 2 계열의 관점

이미지 분할에서 Segment Anything(SAM)이 프롬프트 가능 분할을 열었다면, 그 사고방식을 비디오로 확장하는 흐름이 자연스럽게 이어졌습니다. SAM 2 계열은 "이미지의 프롬프트 가능 분할"을 "비디오의 프롬프트 가능 분할·추적"으로 넓히는 개념으로 이해할 수 있습니다.

핵심 아이디어는 다음과 같습니다.

     비디오 프롬프트 분할·추적 (개념)

  프레임 t=0: 프롬프트(점/박스)로 대상 지정 --> 마스크
       |
       v  (메모리에 대상 표현 저장)
  프레임 t=1..N: 메모리 참조하여 마스크 전파
       |
  가림/재등장:  메모리로 동일 대상 재연결
       |
  결과: 대상의 마스크가 프레임 전체에서 일관 유지

여기서 중요한 점은 "추적과 분할이 하나로 묶인다"는 것입니다. 전통적으로 추적은 박스를, 분할은 마스크를 다뤘지만, 이 계열은 마스크 수준의 추적을 통합적으로 제공합니다. 다만 실시간 성능·긴 비디오에서의 안정성·복잡한 가림 상황은 여전히 난제이며, 세부 성능은 구현과 설정에 따라 달라집니다.

메모리 구조의 역할은 특히 강조할 만합니다. 물체가 잠시 화면에서 사라졌다가 돌아올 때, 메모리가 없다면 모델은 그것을 새로운 물체로 오인하기 쉽습니다. 과거 프레임의 대상 표현을 기억해 두면, 재등장한 물체를 "그때 그 대상"으로 다시 이어 붙일 수 있습니다. 이는 앞서 본 MOT의 재식별과 목적이 같지만, 별도 재식별 특징을 두는 대신 통합된 메모리로 처리한다는 점이 다릅니다. 검출·추적·분할이 각각 발전해 온 아이디어들이 이렇게 한 틀 안에서 만나는 것이 최근 흐름의 흥미로운 지점입니다.

다중 객체 추적(MOT)

여러 물체를 동시에 추적하는 다중 객체 추적(Multi-Object Tracking, MOT)은 실시간 비디오 분석의 핵심 축입니다. MOT의 목표는 단순히 "물체를 찾는 것"이 아니라, 각 물체에 시간에 걸쳐 일관된 정체성(ID)을 부여하는 것입니다. 프레임 12의 3번 사람과 프레임 400의 3번 사람이 같은 사람이어야 의미가 있습니다. 널리 쓰이는 접근은 검출 기반 추적(tracking-by-detection) 입니다.

        검출 기반 추적 (tracking-by-detection)

  프레임마다 [검출기] --> 이번 프레임의 박스들
       |
  이전 트랙들과 이번 박스들을 [연결(association)]
       - 위치 예측: 칼만 필터 등으로 다음 위치 추정
       - 외형 매칭: 재식별(re-ID) 특징으로 동일 물체 판정
       |
  같은 물체면 트랙 ID 유지, 새 물체면 새 ID 부여
       |
  결과: 각 물체에 일관된 ID를 붙여 시간에 따라 추적

참고로 추적은 대상 개수에 따라 나뉩니다. 단일 물체 추적(SOT)은 사용자가 첫 프레임에 지정한 하나의 대상을 끝까지 따라가는 과제로, 대상이 무엇인지 미리 알 필요가 없습니다. 다중 물체 추적(MOT)은 여러 대상을 동시에 다루며, 대개 미리 정한 클래스(사람·차 등)의 모든 물체를 검출해 추적합니다. 두 과제는 목표와 난점이 다르며, 여기서 다루는 검출 기반 추적은 주로 MOT의 방식입니다.

MOT의 난제는 ID 스위칭(가림·교차 시 ID가 뒤바뀌는 문제)과 밀집 장면입니다. 좋은 검출기, 견고한 운동 모델, 판별력 있는 재식별 특징의 조합이 성능을 좌우합니다. 어떤 방법이 "최고"인가는 장면 밀도, 카메라 움직임, 지연 요구에 따라 달라지므로 일반화해서 이해하는 편이 안전합니다.

MOT 평가 지표

MOT 성능은 검출과 달리 "얼마나 오래, 얼마나 일관되게 따라갔는가"까지 재야 합니다. 대표 지표를 개념 수준에서 정리하면 다음과 같습니다.

이 여러 측면을 하나로 묶어 보려는 종합 지표들이 있지만, 어떤 지표도 만능은 아닙니다. 감시처럼 놓치지 않는 게 중요한 경우와, 통계처럼 ID 일관성이 중요한 경우는 봐야 할 지표의 무게가 다릅니다.

추적 패러다임의 두 갈래

추적은 크게 두 방식으로 나눠 볼 수 있습니다.

트랜스포머 기반 추적은 DETR의 집합 예측 사고방식을 시간 축으로 확장한 흐름으로 볼 수 있습니다. "이전 프레임의 트랙 쿼리를 다음 프레임으로 이어받아 갱신한다"는 식으로, 검출과 연결을 하나의 학습된 과정으로 묶으려 합니다. 다만 어떤 방식이 우월한지는 장면과 지연 요구에 따라 다르므로 계열 수준에서 이해하는 편이 안전합니다.

행동 인식의 관점

행동 인식은 "무슨 일이 일어나는가"를 시간에 걸쳐 판단하는 과제입니다. 정지 이미지 분류와 달리, 움직임 자체가 정보입니다. 예컨대 "앉기"와 "일어서기"는 한 프레임만 보면 구분이 어렵지만, 시간 흐름을 보면 명확해집니다.

   행동 인식의 정보원 (개념)

  외형(무엇이 보이는가)  --> 물체·장면 단서
  모션(어떻게 움직이는가) --> 광학 흐름, 프레임 차이
  골격(관절이 어떻게)     --> 스켈레톤 시퀀스
       |
  이들을 결합해 "무슨 행동인가"를 시간에 걸쳐 판정

행동 인식은 감시, 스포츠, 재활, 인간-로봇 상호작용 등에서 쓰입니다. 다만 실제 환경의 다양성(카메라 각도, 가림, 개인차) 때문에 벤치마크 성능이 그대로 현장 성능으로 이어지지 않는 경우가 많습니다.

또한 행동 인식은 종종 앞서 본 추적·분할과 결합됩니다. 먼저 사람을 추적·분할해 각 개인의 영역을 얻고, 그 영역 안에서 행동을 인식하는 식입니다. 이렇게 하면 여러 사람이 있는 장면에서도 "누가 무엇을 하는가"를 개별적으로 판정할 수 있습니다. 이는 비디오 이해의 부품들이 어떻게 파이프라인으로 조립되는지 보여주는 좋은 예입니다.

비디오와 언어의 결합

최근 흐름의 한 축은 비디오를 언어와 잇는 것입니다. 멀티모달 모델은 비디오를 인코딩해 언어 모델과 결합함으로써, 비디오에 대해 질문하고 답을 받는 상호작용을 가능하게 합니다.

이런 능력은 방대한 비디오를 사람이 일일이 보지 않고도 검색·요약·분석할 수 있게 합니다. 다만 비디오는 프레임이 많아 계산이 무겁고, 긴 영상의 시간적 맥락을 유지하기가 어렵습니다. 실무에서는 프레임 샘플링, 핵심 구간 선별, 계층적 요약 같은 기법으로 이 부담을 줄입니다.

시간 모델링의 방법들

비디오 이해의 핵심은 "시간을 어떻게 모델에 넣느냐"입니다. 대표적 방식을 정리하면 다음과 같습니다.

   시간 모델링 방식의 스펙트럼 (개념)

  단순/가벼움 <--------------------> 표현력/무거움
     |                                   |
  프레임 독립+집계                     시간 어텐션
  3D 합성곱(지역)                      순환(스트리밍)

  실무: 과제의 시간 규모와 지연 예산에 맞춰 선택

어떤 방식이 무조건 우월하지는 않습니다. 짧은 클립의 행동 분류와 긴 영상의 사건 이해는 요구하는 시간 규모가 다르고, 실시간 스트리밍과 오프라인 배치 처리는 지연 제약이 다릅니다. 방식 선택은 이 요구들의 함수입니다.

데이터와 라벨링의 어려움

비디오 모델의 성능은 데이터에 크게 의존하는데, 비디오 라벨링은 이미지보다 훨씬 비쌉니다.

이 때문에 자기지도·약지도 학습, 합성 데이터, 그리고 모델이 초안 라벨을 만들고 사람이 검수하는 반복 방식이 널리 쓰입니다. SAM 계열의 프롬프트 분할이 비디오 라벨링 도구로도 주목받는 이유가 여기에 있습니다. 사람이 몇 개의 프롬프트만 주면 모델이 나머지 프레임의 마스크를 채워, 라벨링 비용을 크게 줄일 수 있기 때문입니다.

결국 데이터 문제는 "모델을 어떻게 학습시키느냐"만이 아니라 "라벨을 어떻게 효율적으로 만드느냐"까지 포함합니다. 좋은 비디오 시스템은 종종 좋은 라벨링 파이프라인에서 시작하며, 이 파이프라인 자체에도 모델(프롬프트 분할·추적)이 부품으로 들어가는 순환 구조가 나타납니다.

실시간 추론 최적화

비디오는 초당 여러 프레임이 밀려오므로, 정확도만큼이나 처리량과 지연이 중요합니다. 처리량(throughput)은 "초당 몇 프레임을 처리하는가", 지연(latency)은 "한 프레임이 입력되고 결과가 나오기까지 걸리는 시간"입니다. 둘은 다릅니다. 배치를 크게 하면 처리량은 오르지만 개별 프레임의 지연은 늘 수 있습니다. 실시간 응용에서는 이 둘의 균형이 중요합니다. 실시간성을 확보하는 대표적 전략을 정리합니다.

계산량 줄이기

표현·정밀도 최적화

스트리밍·상태 재사용

이 세 축(계산량 줄이기, 표현·정밀도 최적화, 스트리밍·상태 재사용)은 서로 배타적이지 않고 함께 쓰입니다. 예컨대 경량 백본으로 계산량을 줄이고, 양자화로 정밀도를 낮추며, 상태 재사용으로 중복을 없애는 식으로 여러 기법을 겹쳐 실시간을 확보합니다. 다만 각 기법은 정확도를 조금씩 깎을 수 있으므로, 어디까지 감내할지는 응용의 요구가 결정합니다. 최적화는 "공짜"가 아니라 언제나 무언가와의 교환입니다.

     실시간 파이프라인 절충 (개념)

  정확도  <----------------------->  속도
     |                                 |
  무거운 백본                        경량 백본
  모든 프레임 처리                   키프레임+보간
  높은 해상도                        낮은 해상도
  전역 어텐션                        지역/분해 어텐션
  높은 정밀도                        양자화

  실무: 목표 지연/정확도에 맞춰 이 축들을 조합

핵심은 정답이 하나가 아니라는 점입니다. 감시 카메라의 실시간 경보와 오프라인 스포츠 분석은 요구하는 지연·정확도가 다르므로, 최적 조합도 달라집니다.

응용 분야

응용마다 지연·정확도·견고함의 우선순위가 다르며, 그 우선순위가 아키텍처와 최적화 선택을 좌우합니다. 예컨대 자율주행은 지연과 견고함을 함께 극한으로 요구하지만, 미디어 편집은 시간을 들여서라도 정밀한 마스크를 원합니다. 같은 "비디오 분석"이라는 이름 아래에서도 요구가 이렇게 갈립니다.

실무에서 자주 마주치는 문제

실시간 비디오 시스템을 실제로 운영하면 이론에서 잘 드러나지 않는 문제들이 나타납니다.

   실시간 추적 실패 모드 (개념)

  가림 -----> 트랙 끊김 -----> 재식별로 재연결 시도
  블러 -----> 검출 실패 -----> 프레임 스킵/보간으로 버팀
  카메라 이동 -> 운동 예측 오류 -> 배경 보정 필요
  밀집 -----> ID 스위칭 -----> 강한 외형 특징으로 완화

이런 문제들은 "완벽히 푼다"기보다 "얼마나 잘 완화하느냐"의 문제입니다. 그래서 실무 시스템은 실패를 감지하고 복구하는 로직(재검출 트리거, 신뢰도 기반 폐기 등)을 함께 갖춥니다.

하드웨어와 배포의 관점

실시간성은 모델만의 문제가 아니라 배포 환경과 함께 결정됩니다.

배포 관점을 무시한 채 정확도만 높이면, 실제로는 프레임을 따라가지 못해 무용지물이 되기 쉽습니다. "정확하지만 늦은" 결과와 "덜 정확하지만 제때 오는" 결과 중 무엇이 나은지는 응용이 결정합니다.

벤치마크를 읽는 법

비디오 분석 논문의 수치를 읽을 때 유의할 점이 있습니다.

이런 맥락을 무시하고 표의 숫자만 비교하면 잘못된 결론에 이르기 쉽습니다. 항상 "어떤 조건에서 잰 수치인가"를 함께 물어야 합니다.

특히 "실시간"이라는 표현 자체가 상대적입니다. 어떤 응용에는 초당 5프레임이면 충분하지만, 다른 응용에는 30프레임 이상이 필요합니다. 또 같은 프레임률이라도 처리 지연이 누적되면 결과가 실제 상황보다 뒤처집니다. 따라서 논문이 "실시간"이라고 주장할 때, 그 기준이 내 응용의 기준과 같은지 확인하는 것이 중요합니다.

강점과 한계 정리

접근강점한계
3D 합성곱지역 움직임 포착에 강함긴 시간 의존성에 상대적으로 약함
시공간 트랜스포머전역 관계·장기 의존성연산량 큼(절충 필요)
검출 기반 MOT모듈화·유연함ID 스위칭, 밀집 장면에 취약
프롬프트 분할·추적마스크 수준 통합 추적실시간성·긴 비디오 안정성 난제
경량화·양자화실시간 확보정확도 손실 가능

마무리

실시간 비디오 분석은 "정확도"라는 한 축만으로 설명되지 않습니다. 시간 축이 더해지면서 추적의 일관성, 가림 처리, 그리고 무엇보다 지연 시간이 함께 걸립니다. 아키텍처는 시공간 어텐션으로 표현력을 얻고, 최적화는 경량화·스트리밍으로 속도를 벌며, 이 둘 사이의 절충에서 실무 시스템이 만들어집니다.

SAM 2 계열이 보여준 "프롬프트로 지정하고 프레임에 걸쳐 전파한다"는 사고방식은 분할과 추적의 경계를 흐리며 비디오 이해의 부품을 재편하고 있습니다. 새 모델이 계속 나오더라도, 과제의 구조와 절충의 원리를 이해하면 변화를 훨씬 수월하게 따라갈 수 있습니다.

실무자에게 남기고 싶은 조언은 이것입니다. 비디오 시스템을 설계할 때 "가장 정확한 모델"을 먼저 찾기보다, "우리가 견뎌야 하는 지연은 얼마이고, 어떤 실패(가림·블러·ID 스위칭)를 얼마나 감내할 수 있는가"를 먼저 정하십시오. 그 제약이 정해지면, 시간 모델링 방식과 최적화 기법, 배포 위치를 그 위에서 조합하는 일이 훨씬 명확해집니다. 비디오 이해의 어려움은 대부분 시간과 자원의 제약에서 오며, 그 제약을 정직하게 마주하는 것이 좋은 시스템의 출발점입니다.

참고 자료

퀴즈

Q1: 행동 인식과 시간적 행동 위치 추정의 차이는? 행동 인식은 클립·스트림에서 "무슨 행동인가"를 분류합니다. 시간적 위치 추정은 긴 비디오에서 "언제부터 언제까지" 그 행동이 일어났는지 구간까지 찾아냅니다.

Q2: 시공간 어텐션에서 연산량이 문제가 되는 이유는? 프레임 수와 프레임당 패치 수가 곱해져 어텐션 비용이 커지기 때문입니다. 이를 완화하려 공간·시간 어텐션을 분해하거나 토큰을 줄이거나 지역 어텐션을 씁니다.

Q3: SAM 2 계열이 비디오에서 추가하는 핵심 개념은? 한 프레임의 프롬프트로 지정한 대상의 마스크를 이후 프레임으로 전파하고, 메모리 구조로 가림·재등장에도 동일 대상을 이어 붙이는 것입니다. 분할과 추적을 마스크 수준에서 통합합니다.

Q4: 검출 기반 추적(tracking-by-detection)의 기본 흐름은? 프레임마다 검출기로 박스를 얻고, 위치 예측(운동 모델)과 외형 매칭(재식별)으로 이전 트랙과 연결해 같은 물체에 일관된 ID를 유지합니다.

Q5: MOT에서 ID 스위칭이란? 가림이나 물체 교차 상황에서 원래 트랙의 ID가 다른 물체로 뒤바뀌는 문제입니다. 밀집 장면과 유사 외형에서 특히 발생하기 쉽습니다.

Q6: 실시간성을 위해 계산량을 줄이는 방법을 두 가지 든다면? 경량 백본 사용, 키프레임만 무겁게 처리하고 사이 프레임은 가볍게 보간하는 프레임 샘플링, 관심 영역 집중 처리 등이 있습니다.

Q7: 인과적(causal) 처리가 지연을 줄이는 이유는? 미래 프레임을 기다리지 않고 과거·현재 정보만으로 출력하기 때문입니다. 스트리밍 환경에서 즉시 응답이 필요할 때 유리합니다.

Q8: 비디오 분석에서 "최적 조합"을 단정하기 어려운 이유는? 응용마다 요구하는 지연·정확도·견고함의 우선순위가 다르기 때문입니다. 감시 경보와 오프라인 스포츠 분석은 서로 다른 절충을 요구하므로 최적 설정도 달라집니다.

Q9: 검출 기반 추적과 공동 검출·추적의 차이는? 검출 기반 추적은 프레임별 검출 후 별도로 연결합니다(모듈화 쉬움, 검출기 의존). 공동 검출·추적은 검출과 추적을 하나의 모델로 함께 학습해, 프레임 간 특징 전파나 트랙 쿼리로 두 과정을 묶습니다.

Q10: 행동 인식에서 모션 단서가 중요한 이유는? "앉기"와 "일어서기"처럼 한 프레임만으로는 구분이 어려운 행동이 많기 때문입니다. 광학 흐름 같은 움직임 표현을 함께 쓰면 시간에 걸친 변화를 포착해 행동을 더 잘 구분합니다.

Q11: 실시간 비디오에서 "정확하지만 늦은" 결과가 문제인 이유는? 프레임이 계속 밀려오므로, 처리 속도가 프레임 속도를 못 따라가면 밀린 결과는 이미 지난 상황을 가리킵니다. 감시·자율주행처럼 즉시성이 중요한 응용에서는 제때 오는 근사값이 더 유용할 수 있습니다.

Q12: 엣지 처리와 서버 처리의 상충은? 엣지(카메라 근처)는 전송 지연·대역폭이 유리하지만 연산 자원이 제한됩니다. 서버는 강한 모델을 쓸 수 있지만 전송 지연이 생깁니다. 응용의 지연 요구와 자원 제약에 따라 선택이 갈립니다.

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다