[논문 리뷰] ADI-Diff

마계닭·2026년 3월 26일

논문 리뷰

목록 보기
15/18

원제: Action Detection via an Image Diffusion Process

1. Introduction

Goal: Untrimmed video에서 행동 instance의 시작점과 끝점을 찾고 동시에 행동의 class를 예측하는 것

기존의 방식

  • 행동 instance의 후보를 추출
  • 각 후보를 개별적으로 처리
  • 한계
    • 행동이 복잡한 움직임을 포함함
    • 동일 클래스에도 변동성이 큼
    • 조명, 시점, 복잡한 배경으로 인한 어려움

Diffusion

  • 노이즈가 섞인 불확실한 이미지에서 노이즈를 제거하는 과정을 통해 고품질 이미지 생성
  • 이를 이용해 행동 탐지 이미지를 생성하는 문제로 치환
    • 행동 클래스 예측을 N×CN \times C(N은 프레임 수, C는 class 수)
    • 시작점과 끝점 예측을 N×2N \times 2

ADI-Diff

  • Diffusion을 통해 Action class, 시작점, 끝점에 해당하는 AD 이미지 생성
  • forward process: 정답 AD 이미지에 점진적으로 노이즈 추가
    • Discrete Action-Detection Diffusion Process: 이산 확률 분포를 생성
  • reverse process: 노이즈가 포함된 입력에서 노이즈를 제거하고 고품질 AD 이미지 생성
  • Row-Column Transformer: 행 방향은 시간적 순서성, 열 방향은 클래스간 관계

2. Related Work

Anchor

  • Anchor-based

    • 비디오 전반에 걸쳐 미리 정의된 길이를 가지는 다수의 anchor 생성
    • multi-tower network, temporal feature pyramid network
  • Anchor-free

    • 비디오 프레임에 대해 actionness scroe / 행동 경계 신뢰도 점수를 예측

시공간 정보 인코딩

  • 기존: RNN, Graph, Transformer
  • proposal-free

3. ADI-Diff Framework

Formulation of AD images

Goal: AD의 세 가지 출력을 세 개의 이미지로 재구성할 수 있음을 관찰

Action-class AD image xax^a

  • xa=N×Cx^a = N\times C, [0, 1]범위
    N = 비디오 프레임 수, C = 행동 클래스 개수
  • xax^a의 n번째 행, c번째 열의 값: n번째 프레임에서 행동 c가 발생할 확률

Starting/Ending point AD image xs,xex^s, x^e

  • xs[0,1]N×2x^s \in [0,1]^{N \times 2}, xe[0,1]N×2x^e \in [0,1]^{N \times 2}
  • 각 행은 하나의 프레임, 행마다 2개의 픽셀
    • 첫 번째 값: 해동 프레임에서 시작점/끝점이 존재할 확률
    • 두 번째 값: 존재하지 않을 확률

결론적으로 xa,xs,xex^a, x^s, x^e 모두 grayscale의 이미지로 image diffusion으로 생성될 수 있음

Discrete Action-Detection Diffusion Process

표준 이미지 기반 모델

  • 완전히 노이즈가 섞이고 불확실한 이미지에서 시작
  • 여러 단계를 거쳐 점진적으로 노이즈와 불확실성 제거
  • Forward process: Gaussian noise 점진적으로 추가
  • Reverse process: Gaussian noise를 제거하는 과정 학습

AD생성

  • Gaussian이 아닌 이산 확률 분포를 나타냄
  • 정답인 이상적인 이산 확률 분포와 완전히 불확실한 이산 확률 분포를 연결
    • Discrete Action-Detection Diffusion Process
    • 가장 불확실한 상태: Uniform distribution(Property 1)
  • 모델 학습을 위한 추가적인 성질
    • Property 2: 여러 단계의 Forward Process를 건너뛸 수 있는 q(ztz0)q(z_t|z_0)가 존재해야 함
    • Property 3: Forward Process posterior인 q(zt1zt,z0)q(z_{t-1}|z_t, z_0)를 계산할 수 있어야 함

Forward Process

  • 정답 AD 이미지를 초기값으로 설정
  • 각 행을 점진적으로 Diffusion하여 T단계에 걸쳐 Uniform distribution으로 수렴

정의

  • ztz_t: 확산 과정의 t번째 단계에서의 이상 확률 분포 (길이 C인 벡터)
  • z0z_0: 초기 상태, 정답 클래스 위치에 1, 나머지는 0인 one-hot vector
  • 총 T단계 구성, 점진적으로 노이즈 추가, zTz_T가 균등분포에 가까움
  • 각 단계 t에서 노이즈 vtv_t 추가
    • vtv_t는 균등 확률을 가지는 Multinomial distribution에서 샘플링

실제 과정(단일 단계)
zt=(1βt)zt1+βtvtz_t = (1-\beta _t)z_{t-1} + \beta _t v_t

  • 각 단계 t에서 작은 확률로 임의의 클래스를 동일한 확률로 선택할 수 있도록 불확실성 증가
  • βt\beta_t: 해당 단계에서의 랜덤성 증가 정도(hyperparameter)
  • vtv_t는 길이 C인 벡터, 모든 원소가 0이상, 합이 1
    • vtv_tMNK(K,1C1)MN_K(K, {{1}\over{C}1})를 샘플링
    • 샘플링 결과를 K로 나눠서 합이 1이 되도록 함

즉, 단일 단계: q(ztzt1)=MNK(zt(zβt)zt1βt)q(z_t|z_{t-1}) = MN_K({{z_t -(z-\beta_t)z_{t-1}}\over{\beta_t}})

t단계 전체를 고려했을 때
zt=αˉtz0+(Πr=2tατ)β1v1+...+βtvtz_t = \bar \alpha_t z_0 + (\displaystyle \Pi_{r=2}^t \alpha_{\tau})\beta_1 v_1 + ... + \beta_t v_t

  • αt=1βt\alpha_t = 1-\beta_t
  • α^t=Πr=1tατ\hat \alpha_t = \Pi^t_{r=1} \alpha_\tau

따라서 q(ztz0)=MNBtK(ztα^tz01α^t)q(z_t|z_0) = MN_{B_tK}({{z_t-\hat \alpha_t z_0}\over{1- \hat \alpha_t}})

  • 중간 단계 분포를 직접 생성할 수 있기에 효율적인 학습이 가능함

이때 βt\beta_t가 충분히 크다면 α^t0\hat \alpha_t \rightarrow 0이 되어서 최종 분포 zTz_T는 균등 분포로 수렴
E[zT]=1C1E[z_T] = {{1}\over{C}}1

property 3. forward process posterior

  • Markov chain에 따라서
    q(zt1zt,z0)=1σtq(z_{t-1}|z_t, z_0) = {{1}\over{\sigma_t}}\cdot(두 Multinomial 분포의 곱)
  • 이때 σt\sigma_t는 정규화 상수. 실제에선 hyperparameter

Reverse Process

  • Forward Process를 통해 중간 분포 {z1,...,zT}\{z_1, ..., z_T\}를 생성할 수 있음
  • 중간 분포를 활용해 reverse process 학습
  • T 단계에 걸쳐서 AD image 출력

정보 추출

  • Diffusion 과정을 보조
  • 학습된 feature extractor 이용해서 비디오의 snippets에서 feature 추출
  • fSTRN×CSTf_{ST} \in \mathbb R^{N \times C_{ST}}
    • N은 프레임 수, CSTC_{ST}는 채널 수
    • fSTf_{ST}는 condition으로 사용

과정

  • 초기 input: 완전히 불확실한 분포 ZTZ_T
  • Reverse Process를 수행하며 최종 예측 z^0\hat z_0를 예측
  • 단계별 z^t1=dϕ(z^t,fST,ft)\hat z_{t-1} = d_\phi (\hat z_t, f_{ST}, f_t), t{1,...,T}t \in \{1,...,T\}
    • ftf_t는 t번째 diffusion 단계를 나타내는 임베딩, 사인 함수를 이용해 생성

Multi-row Processing

  • 동일한 Diffusion 과정은 전체 AD image의 모든 행에 동시에 적용이 가능함
  • 순방향 과정에서 모든 행에 동시에 노이즈를 추가 {xa1,...,xaTx^1_a, ..., x^T_a}를 생성
  • 역방향 과정에서 각 단계에서 xatx^t_a로부터 xat1x^{t-1}_a를 생성하도록 학습

Row-Column Transformer Architecture

  • Row(frame): temporal한 관계
  • Column(class): 서로 다른 클래스 간 관계
  • 기존의 Diffusion network: 2D 공간의 local negihbor을 처리하는 방식

input

Diffusion network d의 t번째 단계

  • input image: xaRN×Cx_a \in \mathbb R^{N \times C}
  • 시공간 특징: fSTRN×CSTf_{ST} \in \mathbb R^{N \times C_{ST}}
  • Diffusion 단계 임베딩: ftRN×1f_t \in \mathbb R^{N \times 1}
    • ftf_t는 사인 함수 기반 임베딩
  • concat: xRN×(C+CST+1)x \in \mathbb R^{N \times (C + C_{ST} + 1)}

Row-Column Block

Column

  • 클래스 간 관계는 장거리 관계를 가질 수 있기에 Multi-Head Self-Attention(MHSA) 사용
    • 입력 x의 각 열을 하나의 토큰으로 간주
    • C+CST+1C+C_{ST} + 1개의 토큰 생성, 각 토큰의 길이는 N
  • 중간 출력 ucolRN×(C+CST+1)u_{col} \in \mathbb R^{N \times (C+C_{ST}+1)}을 얻고 두 개의 MLP Layer 통과

Row

  • Temporal convolution(TC) + MHSA
  • 1×31 \times 3 Temporal Convolution을 적용, local 관계를 반영한 urowu_row 생성
  • 각 행을 하나의 토큰으로 간주하여 MHSA 수행

Combined Image Processing

  • 동일한 방법으로 xsx_sxex_e에도 적용
  • 각각 따로 생성 or 세 이미지를 하나로 결합하여 동시에 처리도 가능
    • xtcombinedRN×(C+4)x^{combined}_t \in \mathbb R^{N \times (C+4)}
    • 효율성 증가
    • 분류와 위치 추정 사이의 정보를 공유하여 성능 향상

Inference and Training Pipeline

Inference Pipeline

모델이 출력한 세 개의 AD 이미지 x^a0,x^s0,x^e0\hat x^0_a, \hat x^0_s, \hat x^0_e를 이용해 최종 행동 탐지 결과 생성

  • 시작점/끝점 후보 찾기
    • x^s0,x^e0\hat x^0_s, \hat x^0_e의 첫 번째 열 확인
    • 값이 임계값 이상인 프레임들을 후보로 선택
  • grouping
    • 연결된 프레임들을 하나의 그룹으로 묶고
    • 평균 위치를 실제 시작점 / 끝점으로 결정
  • candidate 생성
    • 시작점에 대해 끝점과 짝을 지음
    • 시작점 ~ 끝점 구간을 하나의 행동 후보로 생성
  • 행동 클래스 결정
    • 해당 구간에 해당하는 x^a0\hat x^0_a의 행들을 평균
    • 가장 높은 값을 가진 클래스 선택
  • Soft-NMS
    • 겹치는 후보들을 Soft-NMS로 제거
    • 최종 행동 탐지 결과 생성

Training Pipeline

  • 비디오 특징 추출
    • 사전 학습된 모델을 사용해 fSTf_{ST} 추출
    • 학습 중에는 이 특징 추출기 고정
  • 모델 초기화
    • Diffusion model d는 랜덤 초기화
  • Forward Process
    • 정답 이미지 x0x_0에 노이즈 추가
    • 중간 단계 분포 생성: 학습용 정답 역할
  • Reverse Process
    • 확산 모델이 노이즈를 제거하여 중간 단계 및 최종 AD 이미지 에측
  • Loss 계산
    • 각 단계에서 모델의 예측 AD 이미지와 Forward Process에서 생성된 정답 이미지 간 MSE Loss 계산하여 학습

4. Experiment

Ablation Study

Discrete Diffusion

  • 기존 diffusion보다 성능이 크게 향상됨

Row-Column Transformer

  • 일반 구조 대비 성능 상승

AD image 구성

  • 시작/끝 이미지가 없다면 성능이 떨어짐

stitching

  • 속도와 성능 모두 향상
    병렬 처리 + 정보 공유의 효과

결론적으로 속도는 기존 최신 모델과 유사하면서 성능은 더 높음

profile
뉴비

0개의 댓글