트웰브랩스

비디오를 구조화된 자산으로: Time-Based Metadata(TBM) 파이프라인 구축기

Kevin Lee

영상 아카이브를 쿼리 가능한 자산으로 만들기 위해, 트웰브랩스가 schema 조건부 세그멘테이션과 시간·메타데이터를 분리한 이중 평가 체계를 어떻게 설계했는지를 다룹니다.

영상 아카이브를 쿼리 가능한 자산으로 만들기 위해, 트웰브랩스가 schema 조건부 세그멘테이션과 시간·메타데이터를 분리한 이중 평가 체계를 어떻게 설계했는지를 다룹니다.

In this article

No headings found on page

Join our newsletter

Join our newsletter

Receive the latest advancements, tutorials, and industry insights in video understanding

Receive the latest advancements, tutorials, and industry insights in video understanding

Search, analyze, and explore your videos with AI.

2026/05/04

15 minutes

Copy link to article

방송사, 스포츠 리그, 미디어 기업, 엔터프라이즈 플랫폼은 페타바이트 규모의 비디오 아카이브를 보유하고 있습니다. 그런데 이 콘텐츠 대부분은 저희가 다크 비디오(dark video) 라고 부르는 상태에 머물러 있어요. 존재는 하지만 검색할 수 없고, 구조화되지 않았으며, 의미 단위로 활용할 수도 없는 상태죠.

이유는 놀라울 정도로 단순합니다. 비디오는 텍스트가 아니거든요. 비디오 파일에 grep을 걸 수도 없고, SELECT * FROM video WHERE scene = 'scoring_play'도 불가능합니다. 영상이 경제적 가치를 가지려면, 먼저 구조화된 세그먼트와 기계가 읽을 수 있는 메타데이터로 분해되어야 해요. 저희는 이 과정을 비디오 자산화(video assetization) 라고 부르고 있습니다.

이 글은 Time-Based Metadata(TBM, '시간 기반 메타데이터')와 그 평가 체계를 만들어 온 저희의 이야기입니다. 그동안 한 가지 분명해진 게 있어요. 시간-의미 기반 영상 이해를 설계하고 평가할 때는 텍스트나 이미지 모델과는 다른 접근이 필요하다는 거예요.


1. 비디오 자산화 격차: 고객이 실제로 원하는 것

20만 시간의 뉴스 아카이브를 관리하는 방송사를 떠올려 볼게요. 현재 이 작업은 사람이 직접 하고 있습니다. 영상 아카이브 담당자가 각 세그먼트를 수동으로 로깅하고, 스토리를 태깅하고, 발언자를 식별하고, 주제 경계를 표시하는 식이죠. 영상 1시간당 약 $15의 비용이 들고, 예산은 줄어들고 있어요. 이런 방식으로는 도저히 확장이 되지 않습니다.

또 다른 사례도 한번 볼까요? 수천 개의 인플루언서 영상에 걸쳐 자사 제품의 노출을 추적하려는 소비재 브랜드가 있다고 해봅시다. 특정 제품이 화면에 등장하면서 크리에이터가 카메라를 향해 말하는 모든 순간을 찾아야 해요. 그저 제품이 등장했다는 사실만으로는 부족합니다. 정확히 언제, 얼마나 두드러지게, 어떤 맥락에서 등장했는지까지 파악해야 하거든요.

이런 사례는 가상이 아니에요. 방송 아카이브 관리, 스포츠 하이라이트 자동화, 브랜드 인텔리전스, 컴플라이언스 감사. 저희가 만나는 거의 모든 엔터프라이즈 비디오 워크로드는 서로 독립적인 두 가지를 동시에 요구합니다.

  1. 정확한 시간 경계: 각 세그먼트가 어디서 시작하고 어디서 끝나는가?

  2. 스키마에 부합하는 구조화된 메타데이터: 그 세그먼트 안에서 무엇이 일어났는가?

오늘날 대부분의 영상-언어 모델에게 "이 영상에서 무슨 일이 일어나나요?"라고 물으면 유창한 문단을 잘 내놓아요. 하지만 "모든 에디토리얼 내러티브의 시작/종료 타임스탬프를 구조화된 필드(주제, 발언자, 신뢰도)와 함께 제공해 달라"고 요청하는 순간, 범용 비디오 추론과 프로덕션 세그멘테이션이 완전히 다른 문제라는 걸 곧바로 발견하게 되죠.

방송사가 실제로 요구하는 결과를 좀 더 구체적으로 그려보겠습니다. 각 에디토리얼 세그먼트에는 제목, 설명, 편집 주제, 등장 인물, 신뢰도 수준이 필요해요. 1시간짜리 뉴스 프로그램 하나에서 TBM이 추출하는 결과는 이런 형태입니다.


각 세그먼트에는 editorial_subjects, visual_subjects, names, confidence 같은 구조화된 메타데이터가 포함돼요. 1시간짜리 프로그램이 쿼리 가능한 객체들의 집합으로 바뀌는 순간이죠.


2. 왜 기존 접근은 실패할까요

경계 예측 문제 (Boundary Prediction Problem)

대규모 언어 모델은 구간에 대한 추론(요약, 질의응답, 내용 묘사)에 탁월해요. 하지만 세그먼트 경계가 어디에 있는지 예측하는 것은 결이 다른 과제입니다.

Boundary prediction은 세 가지 기술적 난제의 교차점에 놓여 있어요.

  • Weakly-supervised temporal localization: ground truth가 희소하고 주관적입니다.

  • Multimodal change-point detection: 경계가 시각·음성·의미 신호의 동시 전환으로 정의됩니다.

  • Autoregressive decoding 하에서의 token-level classification: 모델이 정확한 타임스탬프를 토큰으로 출력해야 합니다.

초기 실험에서 frontier model조차 의미적으로는 합리적이지만 시간적으로는 부정확한 경계를 만들어 냈어요. Hard cut에서 시작해야 하는 세그먼트가 5~15초씩 어긋나는 식이었거든요. 모델은 무엇이 일어나고 있는지는 잘 이해했는데, 언제 일어나는지를 정확히 짚어내지는 못한 것입니다.


스키마가 없으면 그건 자산이 아닙니다

대부분의 영상-언어 모델은 자유형 텍스트를 생성해요.

"이 영상은 뉴스 방송을 보여줍니다. 약 2분 즈음에 스포츠 세그먼트로 전환됩니다..."

이건 사람이 읽기에는 유용합니다. 하지만 downstream 자동화 입장에서는 거의 쓸모가 없어요. 엔터프라이즈 워크플로우에 실제로 필요한 건 이런 형태거든요.

{
  "start_time": 120.45,
  "end_time": 245.80,
  "metadata": {
    "segment_title": "NFL 플레이오프 리캡",
    "editorial_subjects": ["NFL", "플레이오프", "부상"],
    "names": ["Patrick Mahomes", "Lamar Jackson"],
    "confidence": "HIGH"
  }
}

표현력 있는 텍스트와 기계가 바로 처리할 수 있는 구조화된 출력 사이의 격차는 포맷팅 문제로 끝나지 않습니다. 모델링과 평가가 함께 얽힌 문제죠.


3. 트웰브랩스의 접근: Schema-Conditioned Temporal Extraction

어떤 문제를 풀지 정하기

TBM을 설계할 때 저희는 핵심적인 갈림길에 섰어요. 비디오 하나만 받아서 무엇이든 답해 주는 범용 모델(세그멘테이션도 그중 한 기능)로 만들 것인가, 아니면 비디오와 함께 사용자가 정의한 스키마를 받아 그 스키마대로 세그먼트와 필드를 채워 주는 스키마 조건부 추출 모델(schema-conditioned extraction model) 로 만들 것인가?

처음에는 전자가 자연스러워 보였어요. 하지만 §2에서 본 실패 패턴(흐린 경계, 자유형 필드, 실행마다 달라지는 출력)은 알고 보니 범용 접근의 구조적 한계더라고요. 스키마가 없으면 모델은 무엇을 얼마나 정확히 찾아야 하는지 알 수가 없고, 평가도 "그럴듯하게 썼나?" 수준에서 멈춰 버려요.

저희는 후자를 선택했습니다. TBM은 모든 걸 다 다루는 범용 모델이 아니라, 정확한 시간 경계와 schema-conforming 메타데이터에 최적화된 추출 모델이에요.


스키마 컨디셔닝의 세 가지 효과

TBM에서 사용자는 segment_definitions를 제공합니다. 어떤 세그먼트를 찾고, 각각에서 어떤 메타데이터 필드를 추출할지에 대한 구조화된 명세죠. 이건 그저 편리한 API 설계에 그치는 일이 아니에요. 모델링 관점에서, 스키마 컨디셔닝은 세 가지 핵심 기능을 해 줍니다.

탐색 공간 축소. 비디오의 온갖 측면에 대해 자유로운 자연어를 생성하는 대신, 모델은 스키마가 정의한 제한된 출력 공간 안에서 작동합니다. 스포츠 중계라면 down, scoring_play, penalty_type만 지정하면 충분해요. 가능하지만 무관한 관찰의 거대한 공간이 깔끔하게 잘려나가는 거죠.

경계 정렬 안정화. 모델이 무엇을 찾고 있는지 알게 되면(예를 들어 "play boundary"인지 "ad transition"인지), 일반적인 change-point heuristic에 의존하는 대신 domain-specific temporal cue(휘슬, formation change, fade-to-black 패턴)를 활용할 수 있어요.

평가 앵커링. 각 스키마 필드가 구체적이고 측정 가능한 평가 타겟이 됩니다. "모델이 영상을 이해했나?"라는 모호한 질문 대신, "모델이 이 세그먼트의 down 필드를 3으로 정확히 식별했나?"라고 물을 수 있게 되는 거예요.


4. 커버리지의 폭: 4계층 신호 체계

스키마 컨디셔닝이 실제로 효과를 내려면, 스키마가 어떤 종류의 신호에 매핑되는지 알아야 합니다. 그리고 비디오 세그멘테이션이 어려운 이유 중 하나가 바로 경계를 정의하는 신호의 종류가 너무 다양하다는 점이에요. 카메라 앵글 전환 같은 프레임 수준의 시각 변화부터, 뉴스 편집 패키지의 구조적 전환, 화자 변경 같은 음성 단서, 그리고 스포츠에서 시각+음성+경기 규칙이 결합된 복합 이벤트까지 그 폭이 넓거든요. 모델 하나로 처리할 수 있는 문제가 아니에요.

저희는 이 다양성을 체계적으로 분류해서 네 가지 Cue 계층으로 정리했어요.

Cue 계층

설명

경계 신호 예시

Low-Level Visual

프레임 안에서 일어나는 시각 요소 변화. 좁은 범위의 시각 디테일에 집중해요.

샷 전환, 카메라 앵글 변경

High-Level Semantic

의미적/내러티브 수준의 글로벌 변화. 시각과 음성 스트림 모두를 포함해요.

주제 전환, 편집 패키지 경계(앵커↔현장↔스튜디오)

Audio

음성, 음악, 효과음, 침묵 같은 청각 신호예요.

화자 전환, 음악/BGM 전환

Composite

시각+음성+맥락 정보가 결합된 멀티모달 신호예요.

스포츠 플레이별 이벤트, 광고 구간


이 분류가 가지는 의미

일반적인 비디오 모델은 이 네 계층을 구분하지 않아요. 하지만 실제 고객의 세그멘테이션 요구는 특정 계층, 또는 계층의 조합에 정확히 매핑됩니다.

  • 뉴스 방송사의 "에디토리얼 내러티브 분리" → High-Level (주제 전환 + 편집 패키지 경계)

  • 영상 편집팀의 "샷 경계 탐지" → Low-Level Visual (카메라 컷, 앵글 변화)

  • 스포츠 리그의 "플레이별 세그멘테이션" → Composite (시각 포메이션 + 휘슬 소리 + 경기 규칙)

  • 팟캐스트 플랫폼의 "화자별 구간 분리" → Audio (화자 전환 + ASR 주제 변화)

이 분류는 학술적 정리에서 그치지 않아요. 각 계층마다 모델링 전략, 학습 데이터, 평가 지표가 다 다르거든요. Low-Level Visual은 frame-wise change detection에 가깝고, Composite는 long-context reasoning을 요구하는 식이에요.


5. Multimodal Grounding: 텍스트를 넘어서

엔터프라이즈 비디오 세그멘테이션에서 자주 부딪히는 한계가 있어요. 무엇을 찾을지를 텍스트 설명만으로는 충분히 지정할 수 없다는 점입니다.


텍스트만으로는 부족한 이유

한 관광 콘텐츠 플랫폼의 사례를 볼게요. 그들이 풀고 싶은 문제는 이거예요.

외국인의 서울 여행 vlog 수만 편 중에서 N서울타워가 화면에 잡히는 모든 순간을 찾아 줘. 한강·도시 전경에서 멀리 잡힌 establishing shot인지, 남산공원을 산책하다 잡힌 컷인지, 전망대 위 클로즈업이나 야간 라이트업 컷인지까지 분류해서.

텍스트만으로는 부족합니다. 모델이 ‘N서울타워’라는 이름을 알고 있다고 해서, 그 시각적 외형까지 안정적으로 떠올릴 수 있는 건 아니거든요. 비디오-언어 모델에서 specific entity의 언어적 인지와 시각적 식별은 별개의 문제예요. 학습 분포에 따라 시각 표상이 흐릿할 수도 있고, 도쿄타워·CN타워처럼 형태가 비슷한 다른 broadcasting tower와 혼동되기도 하고요. 그런데 N서울타워의 외관 한 장을 참조 이미지로 함께 주면, 모델은 그 사진을 시각 임베딩의 기준점 삼아 비디오 프레임과 직접 비교할 수 있어요. 텍스트를 시각으로 번역하는 부담이 사라지는 거죠.


Entity Reference 시스템

TBM은 media_sources를 지원해요. 세그먼트 정의 안에 <참조명> 형태로 태그를 끼워 넣으면, 사용자가 등록한 참조 이미지를 본문에서 그대로 가리킬 수 있어요.

출처 - 세종학당재단, https://www.kogl.or.kr/recommend/recommendDivView.do?oc=&recommendIdx=91796&division=img#

{
  "segment_definitions": [{
    "id": "namsan_tower_appearances",
    "media_sources": [
      { "name": "namsan_tower_img", "media_type": "image", "media_url": "<https://cdn>.../namsan_tower.jpg" }
    ],
    "description": "<namsan_tower_img>로 식별되는 N서울타워가 화면에 등장하는 순간",
    "fields": [
      { "name": "screen_prominence", "type": "string",
        "enum": ["HERO_SHOT", "PARTIAL", "BACKGROUND"] },
      { "name": "shot_type", "type": "string",
        "enum": ["CITY_ESTABLISHING", "PARK_WALK", "OBSERVATION_DECK", "NIGHT_LIGHTUP"] }
    ]
  }]
}

모델링 관점에서 보면, 이건 세그멘테이션을 open-vocabulary detection 문제에서 grounded retrieval + temporal localization 문제로 바꿔 주는 겁니다.

  1. Reference resolution: 모델이 <namsan_tower_img>를 비디오 전체에 걸쳐 특정 시각적 외형 패턴에 바인딩해야 합니다.

  2. Visual embedding alignment: 참조 이미지가 비디오 프레임과 동일한 representation space에 인코딩됩니다.

  3. Conditional boundary detection: 세그먼트 경계가 일반적인 장면 전환이 아니라, 특정 시각적 엔터티의 동시 출현을 기준으로 결정됩니다.

이건 "도시 풍경 장면을 찾아 줘"와 "N서울타워가 등장하는 장면을 찾아 줘" 사이의 차이예요. 기술 난이도의 차이가 아니라, 제품이 실제로 풀어내는 문제 자체가 달라지는 거죠.

Entity grounding까지 들어가게 되면 세그멘테이션은 세 축에서 실패할 수 있어요. 시간 경계, semantic label, visual entity resolution. 이게 평가 문제를 한 차원 더 복잡하게 만듭니다.


6. 품질 보장: Dual-Track Evaluation

TBM을 운영하면서 가장 결정적이면서도 의외였던 발견은, 단일 점수로는 세그멘테이션 품질을 판단할 수 없다는 사실이었어요.


숨겨진 결합 문제

다음 두 가지 실패 시나리오를 한번 비교해 볼게요.

시나리오 A. 모델이 10.0s ~ 25.0s 세그먼트를 만들어 냈어요. 실제 정답은 12.0s ~ 48.0s예요. 뉴스 앵커의 인트로 15초만 잡고, 그 뒤 이어진 본 스토리 23초는 통째로 놓친 거죠. 앵커 이름, 주제, 화자 태깅은 다 완벽했지만, 시간 경계는 실제 내용의 1/3밖에 커버하지 못했어요.

시나리오 B. 모델이 정확히 12.0s ~ 48.0s를 잡아냈어요. 그런데 "정치 분석"을 "날씨 세그먼트"라고 태깅했어요. 경계는 완벽한데, 메타데이터가 틀린 거예요.

단일 합산 점수는 이 두 경우를 구분하지 못해요. 그런데 개선 방향은 완전히 달라요. 전자는 temporal modeling을 손봐야 하고, 후자는 semantic grounding을 손봐야 해요. 이 failure mode를 분리하지 않으면, 모델 개선이 실제로 도움이 됐는지조차 판단할 수가 없어요.


트웰브랩스의 해법: 독립된 두 개의 평가 트랙

Segment Track: "모델이 올바른 구간을 찾았는가?"

시간적 정확도를 측정해요. 세그먼트 수준(개별 구간을 얼마나 잘 잡았는가)과 시간 축 수준(타임라인의 어느 구간을 올바르게 커버했는가) 양쪽을 모두 봐요. 둘 다 중요하니까요. 한쪽은 좋은데 다른 한쪽은 나쁠 수 있고, 어느 쪽이 실패하는지가 곧 개선 방향을 결정해 줘요. 최종 비교에는 이 두 관점을 결합한 복합 점수를 주요 지표로 삼고 있어요.

Metadata Track: "올바른 구간 내에서, 모델이 정확히 구조화했는가?"

세그먼트 매칭 이후, 매칭된 세그먼트 쌍 내부에서 각 필드를 독립적으로 평가해요. LLM-as-judge 방식으로, 0.0~5.0 척도에서 필드 유형별 가이드라인에 따라 점수를 부여해요.

한 가지 장치가 더 있어요. 세그먼트 경계가 잘 맞을수록 필드 점수에 더 큰 가중치를 줘요. 경계가 흐릿한 구간에서 "맞아 보이는" 메타데이터가 점수를 부풀리지 못하게 하기 위해서예요.

운영상의 이점도 있어요. 메타데이터 평가를 추론과 분리된 후처리 단계에 두기 때문에, 비싼 비디오 추론을 다시 돌리지 않고도 LLM-as-judge 기준(프롬프트, 스코어링 가이드라인)을 빠르게 반복 개선할 수 있어요.

왜 이 분리가 중요할까요. 세그먼트 점수는 개선되는데 메타데이터 점수가 떨어진다면, 모델이 temporal localization은 향상되었지만 semantic precision을 잃고 있다는 신호예요. 모델 아키텍처가 아니라 training data balance를 조정해야 한다는 뜻이죠. 이런 진단은 트랙이 분리되어 있을 때만 가능해요.


7. Semantic Flywheel: 비디오 자산화의 복리 효과

자산화는 한 번 돌리고 끝나는 작업이 아니에요. 제대로 작동하기 시작하면, 각 회전이 다음 회전의 연료가 되는 자기강화 루프 안으로 들어서게 돼요.


저희는 이걸 Semantic Flywheel이라고 불러요. 방송 아카이브, 브랜드 인텔리전스, 컴플라이언스 감사, 스포츠 하이라이트 자동화. TBM 위에서 돌아가는 워크로드들은 도메인이 제각각이지만 같은 흐름을 따라갑니다. 세그먼트-메타데이터 쌍이 쌓이면, 고객이 교정한 경계, 거부한 태그, 수정한 필드 같은 사용 흔적 자체가 다음 세대 모델을 학습시키는 신호로 돌아오거든요. 일단 돌기 시작하면, 아카이브는 단지 "정리되는" 데서 그치지 않고, 돌수록 더 정교하게 정리되는 시스템으로 바뀌어요.

플라이휠이 돌기 위한 단 하나의 전제 조건은 개선이 관찰 가능해야 한다는 점이에요. 시간 경계의 정확도와 메타데이터의 정확도를 분리해서 측정할 수 없다면, 어느 쪽이 나아지고 어느 쪽이 후퇴하는지 알 수가 없어요. 방향을 모르면 체계적인 반복이 불가능하고, 체계적인 반복이 없으면 플라이휠은 멈춰 버려요. 자산 구조를 반영하는 평가 체계가 없으면, 자산화는 일회성 트릭에 머물고 맙니다.


8. 트웰브랩스가 배운 것

TBM과 그 평가 프레임워크를 만들면서 얻은 교훈들입니다.

세그멘테이션은 질의응답이 아니에요. Temporal segmentation을 "또 하나의 LLM 태스크"로 취급하려는 본능이 저희를 한동안 비생산적인 방향으로 이끌었어요. Boundary prediction은 등장하는 failure mode부터 평가 요구사항, 모델 아키텍처에 대한 민감도까지 다 다른데 말이죠. 이걸 좀 더 일찍 인식했더라면 몇 달은 절약했을 겁니다.

구조화된 출력이 유창한 출력보다 가치 있어요. 프로덕션에서는, 약간 부정확한 경계를 가진 완벽한 JSON 세그먼트가 구조화된 필드 없는 아름다운 산문보다 훨씬 더 유용합니다. Machine-readability를 human-readability보다 우선시한 건 결과적으로 옳은 결정이었어요.

결정론성은 제약이 아니라 기능이에요. Non-overlapping segment, 엄격한 schema conformance, temperature=0 기본값. 이 모든 제약이 처음에는 "모델의 역량을 제한한다"는 반발에 부딪혔어요. 하지만 실제로는 이 제약들 덕분에 출력이 프로덕션 자동화에 쓰일 만큼 신뢰 가능해졌어요. 고객이 API 위에 시스템을 구축할 때는, 역량보다 신뢰성이 이깁니다.


앞으로

영상 자산화는 아직 초기 단계예요. 더 긴 컨텍스트(3시간 이상), 더 풍부한 멀티모달 컨디셔닝(수십 장의 참조 이미지를 가진 복수 엔터티), 그리고 비디오를 넘어 오디오·팟캐스트 같은 다른 컨테이너 자산(containerized asset)으로 같은 구조적 추출을 확장하는 것. 저희가 다음으로 쌓아 올리고 있는 것들이에요.

다만 더 큰 도전은, 역량에 발맞춰 함께 확장되는 평가 프레임워크를 만드는 일이에요. 영상-언어 모델이 더 유능해질수록 failure mode는 더 미묘해지니까, 평가도 그에 맞춰 정교해져야 합니다.

엔터프라이즈 비디오 아카이브 대부분은 여전히 활용되지 않은 채 남아 있어요. 거기서 가치를 끌어내려면 모델만 좋아져서는 안 돼요. 그 모델이 정말로 올바른 순간을 찾아내고 있는지, 그리고 그걸 올바르게 기술하고 있는지를 측정할 수 있어야 합니다.


페가수스 1.5에 대해 더 알아보고 싶다면 → Pegasus 1.5 Tech Blog

팀과 여정을 함께할 분들을 찾고 있습니다 → TwelveLabs Careers

방송사, 스포츠 리그, 미디어 기업, 엔터프라이즈 플랫폼은 페타바이트 규모의 비디오 아카이브를 보유하고 있습니다. 그런데 이 콘텐츠 대부분은 저희가 다크 비디오(dark video) 라고 부르는 상태에 머물러 있어요. 존재는 하지만 검색할 수 없고, 구조화되지 않았으며, 의미 단위로 활용할 수도 없는 상태죠.

이유는 놀라울 정도로 단순합니다. 비디오는 텍스트가 아니거든요. 비디오 파일에 grep을 걸 수도 없고, SELECT * FROM video WHERE scene = 'scoring_play'도 불가능합니다. 영상이 경제적 가치를 가지려면, 먼저 구조화된 세그먼트와 기계가 읽을 수 있는 메타데이터로 분해되어야 해요. 저희는 이 과정을 비디오 자산화(video assetization) 라고 부르고 있습니다.

이 글은 Time-Based Metadata(TBM, '시간 기반 메타데이터')와 그 평가 체계를 만들어 온 저희의 이야기입니다. 그동안 한 가지 분명해진 게 있어요. 시간-의미 기반 영상 이해를 설계하고 평가할 때는 텍스트나 이미지 모델과는 다른 접근이 필요하다는 거예요.


1. 비디오 자산화 격차: 고객이 실제로 원하는 것

20만 시간의 뉴스 아카이브를 관리하는 방송사를 떠올려 볼게요. 현재 이 작업은 사람이 직접 하고 있습니다. 영상 아카이브 담당자가 각 세그먼트를 수동으로 로깅하고, 스토리를 태깅하고, 발언자를 식별하고, 주제 경계를 표시하는 식이죠. 영상 1시간당 약 $15의 비용이 들고, 예산은 줄어들고 있어요. 이런 방식으로는 도저히 확장이 되지 않습니다.

또 다른 사례도 한번 볼까요? 수천 개의 인플루언서 영상에 걸쳐 자사 제품의 노출을 추적하려는 소비재 브랜드가 있다고 해봅시다. 특정 제품이 화면에 등장하면서 크리에이터가 카메라를 향해 말하는 모든 순간을 찾아야 해요. 그저 제품이 등장했다는 사실만으로는 부족합니다. 정확히 언제, 얼마나 두드러지게, 어떤 맥락에서 등장했는지까지 파악해야 하거든요.

이런 사례는 가상이 아니에요. 방송 아카이브 관리, 스포츠 하이라이트 자동화, 브랜드 인텔리전스, 컴플라이언스 감사. 저희가 만나는 거의 모든 엔터프라이즈 비디오 워크로드는 서로 독립적인 두 가지를 동시에 요구합니다.

  1. 정확한 시간 경계: 각 세그먼트가 어디서 시작하고 어디서 끝나는가?

  2. 스키마에 부합하는 구조화된 메타데이터: 그 세그먼트 안에서 무엇이 일어났는가?

오늘날 대부분의 영상-언어 모델에게 "이 영상에서 무슨 일이 일어나나요?"라고 물으면 유창한 문단을 잘 내놓아요. 하지만 "모든 에디토리얼 내러티브의 시작/종료 타임스탬프를 구조화된 필드(주제, 발언자, 신뢰도)와 함께 제공해 달라"고 요청하는 순간, 범용 비디오 추론과 프로덕션 세그멘테이션이 완전히 다른 문제라는 걸 곧바로 발견하게 되죠.

방송사가 실제로 요구하는 결과를 좀 더 구체적으로 그려보겠습니다. 각 에디토리얼 세그먼트에는 제목, 설명, 편집 주제, 등장 인물, 신뢰도 수준이 필요해요. 1시간짜리 뉴스 프로그램 하나에서 TBM이 추출하는 결과는 이런 형태입니다.


각 세그먼트에는 editorial_subjects, visual_subjects, names, confidence 같은 구조화된 메타데이터가 포함돼요. 1시간짜리 프로그램이 쿼리 가능한 객체들의 집합으로 바뀌는 순간이죠.


2. 왜 기존 접근은 실패할까요

경계 예측 문제 (Boundary Prediction Problem)

대규모 언어 모델은 구간에 대한 추론(요약, 질의응답, 내용 묘사)에 탁월해요. 하지만 세그먼트 경계가 어디에 있는지 예측하는 것은 결이 다른 과제입니다.

Boundary prediction은 세 가지 기술적 난제의 교차점에 놓여 있어요.

  • Weakly-supervised temporal localization: ground truth가 희소하고 주관적입니다.

  • Multimodal change-point detection: 경계가 시각·음성·의미 신호의 동시 전환으로 정의됩니다.

  • Autoregressive decoding 하에서의 token-level classification: 모델이 정확한 타임스탬프를 토큰으로 출력해야 합니다.

초기 실험에서 frontier model조차 의미적으로는 합리적이지만 시간적으로는 부정확한 경계를 만들어 냈어요. Hard cut에서 시작해야 하는 세그먼트가 5~15초씩 어긋나는 식이었거든요. 모델은 무엇이 일어나고 있는지는 잘 이해했는데, 언제 일어나는지를 정확히 짚어내지는 못한 것입니다.


스키마가 없으면 그건 자산이 아닙니다

대부분의 영상-언어 모델은 자유형 텍스트를 생성해요.

"이 영상은 뉴스 방송을 보여줍니다. 약 2분 즈음에 스포츠 세그먼트로 전환됩니다..."

이건 사람이 읽기에는 유용합니다. 하지만 downstream 자동화 입장에서는 거의 쓸모가 없어요. 엔터프라이즈 워크플로우에 실제로 필요한 건 이런 형태거든요.

{
  "start_time": 120.45,
  "end_time": 245.80,
  "metadata": {
    "segment_title": "NFL 플레이오프 리캡",
    "editorial_subjects": ["NFL", "플레이오프", "부상"],
    "names": ["Patrick Mahomes", "Lamar Jackson"],
    "confidence": "HIGH"
  }
}

표현력 있는 텍스트와 기계가 바로 처리할 수 있는 구조화된 출력 사이의 격차는 포맷팅 문제로 끝나지 않습니다. 모델링과 평가가 함께 얽힌 문제죠.


3. 트웰브랩스의 접근: Schema-Conditioned Temporal Extraction

어떤 문제를 풀지 정하기

TBM을 설계할 때 저희는 핵심적인 갈림길에 섰어요. 비디오 하나만 받아서 무엇이든 답해 주는 범용 모델(세그멘테이션도 그중 한 기능)로 만들 것인가, 아니면 비디오와 함께 사용자가 정의한 스키마를 받아 그 스키마대로 세그먼트와 필드를 채워 주는 스키마 조건부 추출 모델(schema-conditioned extraction model) 로 만들 것인가?

처음에는 전자가 자연스러워 보였어요. 하지만 §2에서 본 실패 패턴(흐린 경계, 자유형 필드, 실행마다 달라지는 출력)은 알고 보니 범용 접근의 구조적 한계더라고요. 스키마가 없으면 모델은 무엇을 얼마나 정확히 찾아야 하는지 알 수가 없고, 평가도 "그럴듯하게 썼나?" 수준에서 멈춰 버려요.

저희는 후자를 선택했습니다. TBM은 모든 걸 다 다루는 범용 모델이 아니라, 정확한 시간 경계와 schema-conforming 메타데이터에 최적화된 추출 모델이에요.


스키마 컨디셔닝의 세 가지 효과

TBM에서 사용자는 segment_definitions를 제공합니다. 어떤 세그먼트를 찾고, 각각에서 어떤 메타데이터 필드를 추출할지에 대한 구조화된 명세죠. 이건 그저 편리한 API 설계에 그치는 일이 아니에요. 모델링 관점에서, 스키마 컨디셔닝은 세 가지 핵심 기능을 해 줍니다.

탐색 공간 축소. 비디오의 온갖 측면에 대해 자유로운 자연어를 생성하는 대신, 모델은 스키마가 정의한 제한된 출력 공간 안에서 작동합니다. 스포츠 중계라면 down, scoring_play, penalty_type만 지정하면 충분해요. 가능하지만 무관한 관찰의 거대한 공간이 깔끔하게 잘려나가는 거죠.

경계 정렬 안정화. 모델이 무엇을 찾고 있는지 알게 되면(예를 들어 "play boundary"인지 "ad transition"인지), 일반적인 change-point heuristic에 의존하는 대신 domain-specific temporal cue(휘슬, formation change, fade-to-black 패턴)를 활용할 수 있어요.

평가 앵커링. 각 스키마 필드가 구체적이고 측정 가능한 평가 타겟이 됩니다. "모델이 영상을 이해했나?"라는 모호한 질문 대신, "모델이 이 세그먼트의 down 필드를 3으로 정확히 식별했나?"라고 물을 수 있게 되는 거예요.


4. 커버리지의 폭: 4계층 신호 체계

스키마 컨디셔닝이 실제로 효과를 내려면, 스키마가 어떤 종류의 신호에 매핑되는지 알아야 합니다. 그리고 비디오 세그멘테이션이 어려운 이유 중 하나가 바로 경계를 정의하는 신호의 종류가 너무 다양하다는 점이에요. 카메라 앵글 전환 같은 프레임 수준의 시각 변화부터, 뉴스 편집 패키지의 구조적 전환, 화자 변경 같은 음성 단서, 그리고 스포츠에서 시각+음성+경기 규칙이 결합된 복합 이벤트까지 그 폭이 넓거든요. 모델 하나로 처리할 수 있는 문제가 아니에요.

저희는 이 다양성을 체계적으로 분류해서 네 가지 Cue 계층으로 정리했어요.

Cue 계층

설명

경계 신호 예시

Low-Level Visual

프레임 안에서 일어나는 시각 요소 변화. 좁은 범위의 시각 디테일에 집중해요.

샷 전환, 카메라 앵글 변경

High-Level Semantic

의미적/내러티브 수준의 글로벌 변화. 시각과 음성 스트림 모두를 포함해요.

주제 전환, 편집 패키지 경계(앵커↔현장↔스튜디오)

Audio

음성, 음악, 효과음, 침묵 같은 청각 신호예요.

화자 전환, 음악/BGM 전환

Composite

시각+음성+맥락 정보가 결합된 멀티모달 신호예요.

스포츠 플레이별 이벤트, 광고 구간


이 분류가 가지는 의미

일반적인 비디오 모델은 이 네 계층을 구분하지 않아요. 하지만 실제 고객의 세그멘테이션 요구는 특정 계층, 또는 계층의 조합에 정확히 매핑됩니다.

  • 뉴스 방송사의 "에디토리얼 내러티브 분리" → High-Level (주제 전환 + 편집 패키지 경계)

  • 영상 편집팀의 "샷 경계 탐지" → Low-Level Visual (카메라 컷, 앵글 변화)

  • 스포츠 리그의 "플레이별 세그멘테이션" → Composite (시각 포메이션 + 휘슬 소리 + 경기 규칙)

  • 팟캐스트 플랫폼의 "화자별 구간 분리" → Audio (화자 전환 + ASR 주제 변화)

이 분류는 학술적 정리에서 그치지 않아요. 각 계층마다 모델링 전략, 학습 데이터, 평가 지표가 다 다르거든요. Low-Level Visual은 frame-wise change detection에 가깝고, Composite는 long-context reasoning을 요구하는 식이에요.


5. Multimodal Grounding: 텍스트를 넘어서

엔터프라이즈 비디오 세그멘테이션에서 자주 부딪히는 한계가 있어요. 무엇을 찾을지를 텍스트 설명만으로는 충분히 지정할 수 없다는 점입니다.


텍스트만으로는 부족한 이유

한 관광 콘텐츠 플랫폼의 사례를 볼게요. 그들이 풀고 싶은 문제는 이거예요.

외국인의 서울 여행 vlog 수만 편 중에서 N서울타워가 화면에 잡히는 모든 순간을 찾아 줘. 한강·도시 전경에서 멀리 잡힌 establishing shot인지, 남산공원을 산책하다 잡힌 컷인지, 전망대 위 클로즈업이나 야간 라이트업 컷인지까지 분류해서.

텍스트만으로는 부족합니다. 모델이 ‘N서울타워’라는 이름을 알고 있다고 해서, 그 시각적 외형까지 안정적으로 떠올릴 수 있는 건 아니거든요. 비디오-언어 모델에서 specific entity의 언어적 인지와 시각적 식별은 별개의 문제예요. 학습 분포에 따라 시각 표상이 흐릿할 수도 있고, 도쿄타워·CN타워처럼 형태가 비슷한 다른 broadcasting tower와 혼동되기도 하고요. 그런데 N서울타워의 외관 한 장을 참조 이미지로 함께 주면, 모델은 그 사진을 시각 임베딩의 기준점 삼아 비디오 프레임과 직접 비교할 수 있어요. 텍스트를 시각으로 번역하는 부담이 사라지는 거죠.


Entity Reference 시스템

TBM은 media_sources를 지원해요. 세그먼트 정의 안에 <참조명> 형태로 태그를 끼워 넣으면, 사용자가 등록한 참조 이미지를 본문에서 그대로 가리킬 수 있어요.

출처 - 세종학당재단, https://www.kogl.or.kr/recommend/recommendDivView.do?oc=&recommendIdx=91796&division=img#

{
  "segment_definitions": [{
    "id": "namsan_tower_appearances",
    "media_sources": [
      { "name": "namsan_tower_img", "media_type": "image", "media_url": "<https://cdn>.../namsan_tower.jpg" }
    ],
    "description": "<namsan_tower_img>로 식별되는 N서울타워가 화면에 등장하는 순간",
    "fields": [
      { "name": "screen_prominence", "type": "string",
        "enum": ["HERO_SHOT", "PARTIAL", "BACKGROUND"] },
      { "name": "shot_type", "type": "string",
        "enum": ["CITY_ESTABLISHING", "PARK_WALK", "OBSERVATION_DECK", "NIGHT_LIGHTUP"] }
    ]
  }]
}

모델링 관점에서 보면, 이건 세그멘테이션을 open-vocabulary detection 문제에서 grounded retrieval + temporal localization 문제로 바꿔 주는 겁니다.

  1. Reference resolution: 모델이 <namsan_tower_img>를 비디오 전체에 걸쳐 특정 시각적 외형 패턴에 바인딩해야 합니다.

  2. Visual embedding alignment: 참조 이미지가 비디오 프레임과 동일한 representation space에 인코딩됩니다.

  3. Conditional boundary detection: 세그먼트 경계가 일반적인 장면 전환이 아니라, 특정 시각적 엔터티의 동시 출현을 기준으로 결정됩니다.

이건 "도시 풍경 장면을 찾아 줘"와 "N서울타워가 등장하는 장면을 찾아 줘" 사이의 차이예요. 기술 난이도의 차이가 아니라, 제품이 실제로 풀어내는 문제 자체가 달라지는 거죠.

Entity grounding까지 들어가게 되면 세그멘테이션은 세 축에서 실패할 수 있어요. 시간 경계, semantic label, visual entity resolution. 이게 평가 문제를 한 차원 더 복잡하게 만듭니다.


6. 품질 보장: Dual-Track Evaluation

TBM을 운영하면서 가장 결정적이면서도 의외였던 발견은, 단일 점수로는 세그멘테이션 품질을 판단할 수 없다는 사실이었어요.


숨겨진 결합 문제

다음 두 가지 실패 시나리오를 한번 비교해 볼게요.

시나리오 A. 모델이 10.0s ~ 25.0s 세그먼트를 만들어 냈어요. 실제 정답은 12.0s ~ 48.0s예요. 뉴스 앵커의 인트로 15초만 잡고, 그 뒤 이어진 본 스토리 23초는 통째로 놓친 거죠. 앵커 이름, 주제, 화자 태깅은 다 완벽했지만, 시간 경계는 실제 내용의 1/3밖에 커버하지 못했어요.

시나리오 B. 모델이 정확히 12.0s ~ 48.0s를 잡아냈어요. 그런데 "정치 분석"을 "날씨 세그먼트"라고 태깅했어요. 경계는 완벽한데, 메타데이터가 틀린 거예요.

단일 합산 점수는 이 두 경우를 구분하지 못해요. 그런데 개선 방향은 완전히 달라요. 전자는 temporal modeling을 손봐야 하고, 후자는 semantic grounding을 손봐야 해요. 이 failure mode를 분리하지 않으면, 모델 개선이 실제로 도움이 됐는지조차 판단할 수가 없어요.


트웰브랩스의 해법: 독립된 두 개의 평가 트랙

Segment Track: "모델이 올바른 구간을 찾았는가?"

시간적 정확도를 측정해요. 세그먼트 수준(개별 구간을 얼마나 잘 잡았는가)과 시간 축 수준(타임라인의 어느 구간을 올바르게 커버했는가) 양쪽을 모두 봐요. 둘 다 중요하니까요. 한쪽은 좋은데 다른 한쪽은 나쁠 수 있고, 어느 쪽이 실패하는지가 곧 개선 방향을 결정해 줘요. 최종 비교에는 이 두 관점을 결합한 복합 점수를 주요 지표로 삼고 있어요.

Metadata Track: "올바른 구간 내에서, 모델이 정확히 구조화했는가?"

세그먼트 매칭 이후, 매칭된 세그먼트 쌍 내부에서 각 필드를 독립적으로 평가해요. LLM-as-judge 방식으로, 0.0~5.0 척도에서 필드 유형별 가이드라인에 따라 점수를 부여해요.

한 가지 장치가 더 있어요. 세그먼트 경계가 잘 맞을수록 필드 점수에 더 큰 가중치를 줘요. 경계가 흐릿한 구간에서 "맞아 보이는" 메타데이터가 점수를 부풀리지 못하게 하기 위해서예요.

운영상의 이점도 있어요. 메타데이터 평가를 추론과 분리된 후처리 단계에 두기 때문에, 비싼 비디오 추론을 다시 돌리지 않고도 LLM-as-judge 기준(프롬프트, 스코어링 가이드라인)을 빠르게 반복 개선할 수 있어요.

왜 이 분리가 중요할까요. 세그먼트 점수는 개선되는데 메타데이터 점수가 떨어진다면, 모델이 temporal localization은 향상되었지만 semantic precision을 잃고 있다는 신호예요. 모델 아키텍처가 아니라 training data balance를 조정해야 한다는 뜻이죠. 이런 진단은 트랙이 분리되어 있을 때만 가능해요.


7. Semantic Flywheel: 비디오 자산화의 복리 효과

자산화는 한 번 돌리고 끝나는 작업이 아니에요. 제대로 작동하기 시작하면, 각 회전이 다음 회전의 연료가 되는 자기강화 루프 안으로 들어서게 돼요.


저희는 이걸 Semantic Flywheel이라고 불러요. 방송 아카이브, 브랜드 인텔리전스, 컴플라이언스 감사, 스포츠 하이라이트 자동화. TBM 위에서 돌아가는 워크로드들은 도메인이 제각각이지만 같은 흐름을 따라갑니다. 세그먼트-메타데이터 쌍이 쌓이면, 고객이 교정한 경계, 거부한 태그, 수정한 필드 같은 사용 흔적 자체가 다음 세대 모델을 학습시키는 신호로 돌아오거든요. 일단 돌기 시작하면, 아카이브는 단지 "정리되는" 데서 그치지 않고, 돌수록 더 정교하게 정리되는 시스템으로 바뀌어요.

플라이휠이 돌기 위한 단 하나의 전제 조건은 개선이 관찰 가능해야 한다는 점이에요. 시간 경계의 정확도와 메타데이터의 정확도를 분리해서 측정할 수 없다면, 어느 쪽이 나아지고 어느 쪽이 후퇴하는지 알 수가 없어요. 방향을 모르면 체계적인 반복이 불가능하고, 체계적인 반복이 없으면 플라이휠은 멈춰 버려요. 자산 구조를 반영하는 평가 체계가 없으면, 자산화는 일회성 트릭에 머물고 맙니다.


8. 트웰브랩스가 배운 것

TBM과 그 평가 프레임워크를 만들면서 얻은 교훈들입니다.

세그멘테이션은 질의응답이 아니에요. Temporal segmentation을 "또 하나의 LLM 태스크"로 취급하려는 본능이 저희를 한동안 비생산적인 방향으로 이끌었어요. Boundary prediction은 등장하는 failure mode부터 평가 요구사항, 모델 아키텍처에 대한 민감도까지 다 다른데 말이죠. 이걸 좀 더 일찍 인식했더라면 몇 달은 절약했을 겁니다.

구조화된 출력이 유창한 출력보다 가치 있어요. 프로덕션에서는, 약간 부정확한 경계를 가진 완벽한 JSON 세그먼트가 구조화된 필드 없는 아름다운 산문보다 훨씬 더 유용합니다. Machine-readability를 human-readability보다 우선시한 건 결과적으로 옳은 결정이었어요.

결정론성은 제약이 아니라 기능이에요. Non-overlapping segment, 엄격한 schema conformance, temperature=0 기본값. 이 모든 제약이 처음에는 "모델의 역량을 제한한다"는 반발에 부딪혔어요. 하지만 실제로는 이 제약들 덕분에 출력이 프로덕션 자동화에 쓰일 만큼 신뢰 가능해졌어요. 고객이 API 위에 시스템을 구축할 때는, 역량보다 신뢰성이 이깁니다.


앞으로

영상 자산화는 아직 초기 단계예요. 더 긴 컨텍스트(3시간 이상), 더 풍부한 멀티모달 컨디셔닝(수십 장의 참조 이미지를 가진 복수 엔터티), 그리고 비디오를 넘어 오디오·팟캐스트 같은 다른 컨테이너 자산(containerized asset)으로 같은 구조적 추출을 확장하는 것. 저희가 다음으로 쌓아 올리고 있는 것들이에요.

다만 더 큰 도전은, 역량에 발맞춰 함께 확장되는 평가 프레임워크를 만드는 일이에요. 영상-언어 모델이 더 유능해질수록 failure mode는 더 미묘해지니까, 평가도 그에 맞춰 정교해져야 합니다.

엔터프라이즈 비디오 아카이브 대부분은 여전히 활용되지 않은 채 남아 있어요. 거기서 가치를 끌어내려면 모델만 좋아져서는 안 돼요. 그 모델이 정말로 올바른 순간을 찾아내고 있는지, 그리고 그걸 올바르게 기술하고 있는지를 측정할 수 있어야 합니다.


페가수스 1.5에 대해 더 알아보고 싶다면 → Pegasus 1.5 Tech Blog

팀과 여정을 함께할 분들을 찾고 있습니다 → TwelveLabs Careers

방송사, 스포츠 리그, 미디어 기업, 엔터프라이즈 플랫폼은 페타바이트 규모의 비디오 아카이브를 보유하고 있습니다. 그런데 이 콘텐츠 대부분은 저희가 다크 비디오(dark video) 라고 부르는 상태에 머물러 있어요. 존재는 하지만 검색할 수 없고, 구조화되지 않았으며, 의미 단위로 활용할 수도 없는 상태죠.

이유는 놀라울 정도로 단순합니다. 비디오는 텍스트가 아니거든요. 비디오 파일에 grep을 걸 수도 없고, SELECT * FROM video WHERE scene = 'scoring_play'도 불가능합니다. 영상이 경제적 가치를 가지려면, 먼저 구조화된 세그먼트와 기계가 읽을 수 있는 메타데이터로 분해되어야 해요. 저희는 이 과정을 비디오 자산화(video assetization) 라고 부르고 있습니다.

이 글은 Time-Based Metadata(TBM, '시간 기반 메타데이터')와 그 평가 체계를 만들어 온 저희의 이야기입니다. 그동안 한 가지 분명해진 게 있어요. 시간-의미 기반 영상 이해를 설계하고 평가할 때는 텍스트나 이미지 모델과는 다른 접근이 필요하다는 거예요.


1. 비디오 자산화 격차: 고객이 실제로 원하는 것

20만 시간의 뉴스 아카이브를 관리하는 방송사를 떠올려 볼게요. 현재 이 작업은 사람이 직접 하고 있습니다. 영상 아카이브 담당자가 각 세그먼트를 수동으로 로깅하고, 스토리를 태깅하고, 발언자를 식별하고, 주제 경계를 표시하는 식이죠. 영상 1시간당 약 $15의 비용이 들고, 예산은 줄어들고 있어요. 이런 방식으로는 도저히 확장이 되지 않습니다.

또 다른 사례도 한번 볼까요? 수천 개의 인플루언서 영상에 걸쳐 자사 제품의 노출을 추적하려는 소비재 브랜드가 있다고 해봅시다. 특정 제품이 화면에 등장하면서 크리에이터가 카메라를 향해 말하는 모든 순간을 찾아야 해요. 그저 제품이 등장했다는 사실만으로는 부족합니다. 정확히 언제, 얼마나 두드러지게, 어떤 맥락에서 등장했는지까지 파악해야 하거든요.

이런 사례는 가상이 아니에요. 방송 아카이브 관리, 스포츠 하이라이트 자동화, 브랜드 인텔리전스, 컴플라이언스 감사. 저희가 만나는 거의 모든 엔터프라이즈 비디오 워크로드는 서로 독립적인 두 가지를 동시에 요구합니다.

  1. 정확한 시간 경계: 각 세그먼트가 어디서 시작하고 어디서 끝나는가?

  2. 스키마에 부합하는 구조화된 메타데이터: 그 세그먼트 안에서 무엇이 일어났는가?

오늘날 대부분의 영상-언어 모델에게 "이 영상에서 무슨 일이 일어나나요?"라고 물으면 유창한 문단을 잘 내놓아요. 하지만 "모든 에디토리얼 내러티브의 시작/종료 타임스탬프를 구조화된 필드(주제, 발언자, 신뢰도)와 함께 제공해 달라"고 요청하는 순간, 범용 비디오 추론과 프로덕션 세그멘테이션이 완전히 다른 문제라는 걸 곧바로 발견하게 되죠.

방송사가 실제로 요구하는 결과를 좀 더 구체적으로 그려보겠습니다. 각 에디토리얼 세그먼트에는 제목, 설명, 편집 주제, 등장 인물, 신뢰도 수준이 필요해요. 1시간짜리 뉴스 프로그램 하나에서 TBM이 추출하는 결과는 이런 형태입니다.


각 세그먼트에는 editorial_subjects, visual_subjects, names, confidence 같은 구조화된 메타데이터가 포함돼요. 1시간짜리 프로그램이 쿼리 가능한 객체들의 집합으로 바뀌는 순간이죠.


2. 왜 기존 접근은 실패할까요

경계 예측 문제 (Boundary Prediction Problem)

대규모 언어 모델은 구간에 대한 추론(요약, 질의응답, 내용 묘사)에 탁월해요. 하지만 세그먼트 경계가 어디에 있는지 예측하는 것은 결이 다른 과제입니다.

Boundary prediction은 세 가지 기술적 난제의 교차점에 놓여 있어요.

  • Weakly-supervised temporal localization: ground truth가 희소하고 주관적입니다.

  • Multimodal change-point detection: 경계가 시각·음성·의미 신호의 동시 전환으로 정의됩니다.

  • Autoregressive decoding 하에서의 token-level classification: 모델이 정확한 타임스탬프를 토큰으로 출력해야 합니다.

초기 실험에서 frontier model조차 의미적으로는 합리적이지만 시간적으로는 부정확한 경계를 만들어 냈어요. Hard cut에서 시작해야 하는 세그먼트가 5~15초씩 어긋나는 식이었거든요. 모델은 무엇이 일어나고 있는지는 잘 이해했는데, 언제 일어나는지를 정확히 짚어내지는 못한 것입니다.


스키마가 없으면 그건 자산이 아닙니다

대부분의 영상-언어 모델은 자유형 텍스트를 생성해요.

"이 영상은 뉴스 방송을 보여줍니다. 약 2분 즈음에 스포츠 세그먼트로 전환됩니다..."

이건 사람이 읽기에는 유용합니다. 하지만 downstream 자동화 입장에서는 거의 쓸모가 없어요. 엔터프라이즈 워크플로우에 실제로 필요한 건 이런 형태거든요.

{
  "start_time": 120.45,
  "end_time": 245.80,
  "metadata": {
    "segment_title": "NFL 플레이오프 리캡",
    "editorial_subjects": ["NFL", "플레이오프", "부상"],
    "names": ["Patrick Mahomes", "Lamar Jackson"],
    "confidence": "HIGH"
  }
}

표현력 있는 텍스트와 기계가 바로 처리할 수 있는 구조화된 출력 사이의 격차는 포맷팅 문제로 끝나지 않습니다. 모델링과 평가가 함께 얽힌 문제죠.


3. 트웰브랩스의 접근: Schema-Conditioned Temporal Extraction

어떤 문제를 풀지 정하기

TBM을 설계할 때 저희는 핵심적인 갈림길에 섰어요. 비디오 하나만 받아서 무엇이든 답해 주는 범용 모델(세그멘테이션도 그중 한 기능)로 만들 것인가, 아니면 비디오와 함께 사용자가 정의한 스키마를 받아 그 스키마대로 세그먼트와 필드를 채워 주는 스키마 조건부 추출 모델(schema-conditioned extraction model) 로 만들 것인가?

처음에는 전자가 자연스러워 보였어요. 하지만 §2에서 본 실패 패턴(흐린 경계, 자유형 필드, 실행마다 달라지는 출력)은 알고 보니 범용 접근의 구조적 한계더라고요. 스키마가 없으면 모델은 무엇을 얼마나 정확히 찾아야 하는지 알 수가 없고, 평가도 "그럴듯하게 썼나?" 수준에서 멈춰 버려요.

저희는 후자를 선택했습니다. TBM은 모든 걸 다 다루는 범용 모델이 아니라, 정확한 시간 경계와 schema-conforming 메타데이터에 최적화된 추출 모델이에요.


스키마 컨디셔닝의 세 가지 효과

TBM에서 사용자는 segment_definitions를 제공합니다. 어떤 세그먼트를 찾고, 각각에서 어떤 메타데이터 필드를 추출할지에 대한 구조화된 명세죠. 이건 그저 편리한 API 설계에 그치는 일이 아니에요. 모델링 관점에서, 스키마 컨디셔닝은 세 가지 핵심 기능을 해 줍니다.

탐색 공간 축소. 비디오의 온갖 측면에 대해 자유로운 자연어를 생성하는 대신, 모델은 스키마가 정의한 제한된 출력 공간 안에서 작동합니다. 스포츠 중계라면 down, scoring_play, penalty_type만 지정하면 충분해요. 가능하지만 무관한 관찰의 거대한 공간이 깔끔하게 잘려나가는 거죠.

경계 정렬 안정화. 모델이 무엇을 찾고 있는지 알게 되면(예를 들어 "play boundary"인지 "ad transition"인지), 일반적인 change-point heuristic에 의존하는 대신 domain-specific temporal cue(휘슬, formation change, fade-to-black 패턴)를 활용할 수 있어요.

평가 앵커링. 각 스키마 필드가 구체적이고 측정 가능한 평가 타겟이 됩니다. "모델이 영상을 이해했나?"라는 모호한 질문 대신, "모델이 이 세그먼트의 down 필드를 3으로 정확히 식별했나?"라고 물을 수 있게 되는 거예요.


4. 커버리지의 폭: 4계층 신호 체계

스키마 컨디셔닝이 실제로 효과를 내려면, 스키마가 어떤 종류의 신호에 매핑되는지 알아야 합니다. 그리고 비디오 세그멘테이션이 어려운 이유 중 하나가 바로 경계를 정의하는 신호의 종류가 너무 다양하다는 점이에요. 카메라 앵글 전환 같은 프레임 수준의 시각 변화부터, 뉴스 편집 패키지의 구조적 전환, 화자 변경 같은 음성 단서, 그리고 스포츠에서 시각+음성+경기 규칙이 결합된 복합 이벤트까지 그 폭이 넓거든요. 모델 하나로 처리할 수 있는 문제가 아니에요.

저희는 이 다양성을 체계적으로 분류해서 네 가지 Cue 계층으로 정리했어요.

Cue 계층

설명

경계 신호 예시

Low-Level Visual

프레임 안에서 일어나는 시각 요소 변화. 좁은 범위의 시각 디테일에 집중해요.

샷 전환, 카메라 앵글 변경

High-Level Semantic

의미적/내러티브 수준의 글로벌 변화. 시각과 음성 스트림 모두를 포함해요.

주제 전환, 편집 패키지 경계(앵커↔현장↔스튜디오)

Audio

음성, 음악, 효과음, 침묵 같은 청각 신호예요.

화자 전환, 음악/BGM 전환

Composite

시각+음성+맥락 정보가 결합된 멀티모달 신호예요.

스포츠 플레이별 이벤트, 광고 구간


이 분류가 가지는 의미

일반적인 비디오 모델은 이 네 계층을 구분하지 않아요. 하지만 실제 고객의 세그멘테이션 요구는 특정 계층, 또는 계층의 조합에 정확히 매핑됩니다.

  • 뉴스 방송사의 "에디토리얼 내러티브 분리" → High-Level (주제 전환 + 편집 패키지 경계)

  • 영상 편집팀의 "샷 경계 탐지" → Low-Level Visual (카메라 컷, 앵글 변화)

  • 스포츠 리그의 "플레이별 세그멘테이션" → Composite (시각 포메이션 + 휘슬 소리 + 경기 규칙)

  • 팟캐스트 플랫폼의 "화자별 구간 분리" → Audio (화자 전환 + ASR 주제 변화)

이 분류는 학술적 정리에서 그치지 않아요. 각 계층마다 모델링 전략, 학습 데이터, 평가 지표가 다 다르거든요. Low-Level Visual은 frame-wise change detection에 가깝고, Composite는 long-context reasoning을 요구하는 식이에요.


5. Multimodal Grounding: 텍스트를 넘어서

엔터프라이즈 비디오 세그멘테이션에서 자주 부딪히는 한계가 있어요. 무엇을 찾을지를 텍스트 설명만으로는 충분히 지정할 수 없다는 점입니다.


텍스트만으로는 부족한 이유

한 관광 콘텐츠 플랫폼의 사례를 볼게요. 그들이 풀고 싶은 문제는 이거예요.

외국인의 서울 여행 vlog 수만 편 중에서 N서울타워가 화면에 잡히는 모든 순간을 찾아 줘. 한강·도시 전경에서 멀리 잡힌 establishing shot인지, 남산공원을 산책하다 잡힌 컷인지, 전망대 위 클로즈업이나 야간 라이트업 컷인지까지 분류해서.

텍스트만으로는 부족합니다. 모델이 ‘N서울타워’라는 이름을 알고 있다고 해서, 그 시각적 외형까지 안정적으로 떠올릴 수 있는 건 아니거든요. 비디오-언어 모델에서 specific entity의 언어적 인지와 시각적 식별은 별개의 문제예요. 학습 분포에 따라 시각 표상이 흐릿할 수도 있고, 도쿄타워·CN타워처럼 형태가 비슷한 다른 broadcasting tower와 혼동되기도 하고요. 그런데 N서울타워의 외관 한 장을 참조 이미지로 함께 주면, 모델은 그 사진을 시각 임베딩의 기준점 삼아 비디오 프레임과 직접 비교할 수 있어요. 텍스트를 시각으로 번역하는 부담이 사라지는 거죠.


Entity Reference 시스템

TBM은 media_sources를 지원해요. 세그먼트 정의 안에 <참조명> 형태로 태그를 끼워 넣으면, 사용자가 등록한 참조 이미지를 본문에서 그대로 가리킬 수 있어요.

출처 - 세종학당재단, https://www.kogl.or.kr/recommend/recommendDivView.do?oc=&recommendIdx=91796&division=img#

{
  "segment_definitions": [{
    "id": "namsan_tower_appearances",
    "media_sources": [
      { "name": "namsan_tower_img", "media_type": "image", "media_url": "<https://cdn>.../namsan_tower.jpg" }
    ],
    "description": "<namsan_tower_img>로 식별되는 N서울타워가 화면에 등장하는 순간",
    "fields": [
      { "name": "screen_prominence", "type": "string",
        "enum": ["HERO_SHOT", "PARTIAL", "BACKGROUND"] },
      { "name": "shot_type", "type": "string",
        "enum": ["CITY_ESTABLISHING", "PARK_WALK", "OBSERVATION_DECK", "NIGHT_LIGHTUP"] }
    ]
  }]
}

모델링 관점에서 보면, 이건 세그멘테이션을 open-vocabulary detection 문제에서 grounded retrieval + temporal localization 문제로 바꿔 주는 겁니다.

  1. Reference resolution: 모델이 <namsan_tower_img>를 비디오 전체에 걸쳐 특정 시각적 외형 패턴에 바인딩해야 합니다.

  2. Visual embedding alignment: 참조 이미지가 비디오 프레임과 동일한 representation space에 인코딩됩니다.

  3. Conditional boundary detection: 세그먼트 경계가 일반적인 장면 전환이 아니라, 특정 시각적 엔터티의 동시 출현을 기준으로 결정됩니다.

이건 "도시 풍경 장면을 찾아 줘"와 "N서울타워가 등장하는 장면을 찾아 줘" 사이의 차이예요. 기술 난이도의 차이가 아니라, 제품이 실제로 풀어내는 문제 자체가 달라지는 거죠.

Entity grounding까지 들어가게 되면 세그멘테이션은 세 축에서 실패할 수 있어요. 시간 경계, semantic label, visual entity resolution. 이게 평가 문제를 한 차원 더 복잡하게 만듭니다.


6. 품질 보장: Dual-Track Evaluation

TBM을 운영하면서 가장 결정적이면서도 의외였던 발견은, 단일 점수로는 세그멘테이션 품질을 판단할 수 없다는 사실이었어요.


숨겨진 결합 문제

다음 두 가지 실패 시나리오를 한번 비교해 볼게요.

시나리오 A. 모델이 10.0s ~ 25.0s 세그먼트를 만들어 냈어요. 실제 정답은 12.0s ~ 48.0s예요. 뉴스 앵커의 인트로 15초만 잡고, 그 뒤 이어진 본 스토리 23초는 통째로 놓친 거죠. 앵커 이름, 주제, 화자 태깅은 다 완벽했지만, 시간 경계는 실제 내용의 1/3밖에 커버하지 못했어요.

시나리오 B. 모델이 정확히 12.0s ~ 48.0s를 잡아냈어요. 그런데 "정치 분석"을 "날씨 세그먼트"라고 태깅했어요. 경계는 완벽한데, 메타데이터가 틀린 거예요.

단일 합산 점수는 이 두 경우를 구분하지 못해요. 그런데 개선 방향은 완전히 달라요. 전자는 temporal modeling을 손봐야 하고, 후자는 semantic grounding을 손봐야 해요. 이 failure mode를 분리하지 않으면, 모델 개선이 실제로 도움이 됐는지조차 판단할 수가 없어요.


트웰브랩스의 해법: 독립된 두 개의 평가 트랙

Segment Track: "모델이 올바른 구간을 찾았는가?"

시간적 정확도를 측정해요. 세그먼트 수준(개별 구간을 얼마나 잘 잡았는가)과 시간 축 수준(타임라인의 어느 구간을 올바르게 커버했는가) 양쪽을 모두 봐요. 둘 다 중요하니까요. 한쪽은 좋은데 다른 한쪽은 나쁠 수 있고, 어느 쪽이 실패하는지가 곧 개선 방향을 결정해 줘요. 최종 비교에는 이 두 관점을 결합한 복합 점수를 주요 지표로 삼고 있어요.

Metadata Track: "올바른 구간 내에서, 모델이 정확히 구조화했는가?"

세그먼트 매칭 이후, 매칭된 세그먼트 쌍 내부에서 각 필드를 독립적으로 평가해요. LLM-as-judge 방식으로, 0.0~5.0 척도에서 필드 유형별 가이드라인에 따라 점수를 부여해요.

한 가지 장치가 더 있어요. 세그먼트 경계가 잘 맞을수록 필드 점수에 더 큰 가중치를 줘요. 경계가 흐릿한 구간에서 "맞아 보이는" 메타데이터가 점수를 부풀리지 못하게 하기 위해서예요.

운영상의 이점도 있어요. 메타데이터 평가를 추론과 분리된 후처리 단계에 두기 때문에, 비싼 비디오 추론을 다시 돌리지 않고도 LLM-as-judge 기준(프롬프트, 스코어링 가이드라인)을 빠르게 반복 개선할 수 있어요.

왜 이 분리가 중요할까요. 세그먼트 점수는 개선되는데 메타데이터 점수가 떨어진다면, 모델이 temporal localization은 향상되었지만 semantic precision을 잃고 있다는 신호예요. 모델 아키텍처가 아니라 training data balance를 조정해야 한다는 뜻이죠. 이런 진단은 트랙이 분리되어 있을 때만 가능해요.


7. Semantic Flywheel: 비디오 자산화의 복리 효과

자산화는 한 번 돌리고 끝나는 작업이 아니에요. 제대로 작동하기 시작하면, 각 회전이 다음 회전의 연료가 되는 자기강화 루프 안으로 들어서게 돼요.


저희는 이걸 Semantic Flywheel이라고 불러요. 방송 아카이브, 브랜드 인텔리전스, 컴플라이언스 감사, 스포츠 하이라이트 자동화. TBM 위에서 돌아가는 워크로드들은 도메인이 제각각이지만 같은 흐름을 따라갑니다. 세그먼트-메타데이터 쌍이 쌓이면, 고객이 교정한 경계, 거부한 태그, 수정한 필드 같은 사용 흔적 자체가 다음 세대 모델을 학습시키는 신호로 돌아오거든요. 일단 돌기 시작하면, 아카이브는 단지 "정리되는" 데서 그치지 않고, 돌수록 더 정교하게 정리되는 시스템으로 바뀌어요.

플라이휠이 돌기 위한 단 하나의 전제 조건은 개선이 관찰 가능해야 한다는 점이에요. 시간 경계의 정확도와 메타데이터의 정확도를 분리해서 측정할 수 없다면, 어느 쪽이 나아지고 어느 쪽이 후퇴하는지 알 수가 없어요. 방향을 모르면 체계적인 반복이 불가능하고, 체계적인 반복이 없으면 플라이휠은 멈춰 버려요. 자산 구조를 반영하는 평가 체계가 없으면, 자산화는 일회성 트릭에 머물고 맙니다.


8. 트웰브랩스가 배운 것

TBM과 그 평가 프레임워크를 만들면서 얻은 교훈들입니다.

세그멘테이션은 질의응답이 아니에요. Temporal segmentation을 "또 하나의 LLM 태스크"로 취급하려는 본능이 저희를 한동안 비생산적인 방향으로 이끌었어요. Boundary prediction은 등장하는 failure mode부터 평가 요구사항, 모델 아키텍처에 대한 민감도까지 다 다른데 말이죠. 이걸 좀 더 일찍 인식했더라면 몇 달은 절약했을 겁니다.

구조화된 출력이 유창한 출력보다 가치 있어요. 프로덕션에서는, 약간 부정확한 경계를 가진 완벽한 JSON 세그먼트가 구조화된 필드 없는 아름다운 산문보다 훨씬 더 유용합니다. Machine-readability를 human-readability보다 우선시한 건 결과적으로 옳은 결정이었어요.

결정론성은 제약이 아니라 기능이에요. Non-overlapping segment, 엄격한 schema conformance, temperature=0 기본값. 이 모든 제약이 처음에는 "모델의 역량을 제한한다"는 반발에 부딪혔어요. 하지만 실제로는 이 제약들 덕분에 출력이 프로덕션 자동화에 쓰일 만큼 신뢰 가능해졌어요. 고객이 API 위에 시스템을 구축할 때는, 역량보다 신뢰성이 이깁니다.


앞으로

영상 자산화는 아직 초기 단계예요. 더 긴 컨텍스트(3시간 이상), 더 풍부한 멀티모달 컨디셔닝(수십 장의 참조 이미지를 가진 복수 엔터티), 그리고 비디오를 넘어 오디오·팟캐스트 같은 다른 컨테이너 자산(containerized asset)으로 같은 구조적 추출을 확장하는 것. 저희가 다음으로 쌓아 올리고 있는 것들이에요.

다만 더 큰 도전은, 역량에 발맞춰 함께 확장되는 평가 프레임워크를 만드는 일이에요. 영상-언어 모델이 더 유능해질수록 failure mode는 더 미묘해지니까, 평가도 그에 맞춰 정교해져야 합니다.

엔터프라이즈 비디오 아카이브 대부분은 여전히 활용되지 않은 채 남아 있어요. 거기서 가치를 끌어내려면 모델만 좋아져서는 안 돼요. 그 모델이 정말로 올바른 순간을 찾아내고 있는지, 그리고 그걸 올바르게 기술하고 있는지를 측정할 수 있어야 합니다.


페가수스 1.5에 대해 더 알아보고 싶다면 → Pegasus 1.5 Tech Blog

팀과 여정을 함께할 분들을 찾고 있습니다 → TwelveLabs Careers