원제: Action Detection via an Image Diffusion Process
1. Introduction
Goal: Untrimmed video에서 행동 instance의 시작점과 끝점을 찾고 동시에 행동의 class를 예측하는 것
기존의 방식
- 행동 instance의 후보를 추출
- 각 후보를 개별적으로 처리
- 한계
- 행동이 복잡한 움직임을 포함함
- 동일 클래스에도 변동성이 큼
- 조명, 시점, 복잡한 배경으로 인한 어려움
Diffusion

- 노이즈가 섞인 불확실한 이미지에서 노이즈를 제거하는 과정을 통해 고품질 이미지 생성
- 이를 이용해 행동 탐지 이미지를 생성하는 문제로 치환
- 행동 클래스 예측을 N×C(N은 프레임 수, C는 class 수)
- 시작점과 끝점 예측을 N×2
ADI-Diff
- Diffusion을 통해 Action class, 시작점, 끝점에 해당하는 AD 이미지 생성
- forward process: 정답 AD 이미지에 점진적으로 노이즈 추가
- Discrete Action-Detection Diffusion Process: 이산 확률 분포를 생성
- reverse process: 노이즈가 포함된 입력에서 노이즈를 제거하고 고품질 AD 이미지 생성
- Row-Column Transformer: 행 방향은 시간적 순서성, 열 방향은 클래스간 관계
Anchor
-
Anchor-based
- 비디오 전반에 걸쳐 미리 정의된 길이를 가지는 다수의 anchor 생성
- multi-tower network, temporal feature pyramid network
-
Anchor-free
- 비디오 프레임에 대해 actionness scroe / 행동 경계 신뢰도 점수를 예측
시공간 정보 인코딩
- 기존: RNN, Graph, Transformer
- proposal-free
3. ADI-Diff Framework
Goal: AD의 세 가지 출력을 세 개의 이미지로 재구성할 수 있음을 관찰
Action-class AD image xa
- xa=N×C, [0, 1]범위
N = 비디오 프레임 수, C = 행동 클래스 개수
- xa의 n번째 행, c번째 열의 값: n번째 프레임에서 행동 c가 발생할 확률
Starting/Ending point AD image xs,xe
- xs∈[0,1]N×2, xe∈[0,1]N×2
- 각 행은 하나의 프레임, 행마다 2개의 픽셀
- 첫 번째 값: 해동 프레임에서 시작점/끝점이 존재할 확률
- 두 번째 값: 존재하지 않을 확률
결론적으로 xa,xs,xe 모두 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(zt∣z0)가 존재해야 함
- Property 3: Forward Process posterior인 q(zt−1∣zt,z0)를 계산할 수 있어야 함
Forward Process
- 정답 AD 이미지를 초기값으로 설정
- 각 행을 점진적으로 Diffusion하여 T단계에 걸쳐 Uniform distribution으로 수렴
정의
- zt: 확산 과정의 t번째 단계에서의 이상 확률 분포 (길이 C인 벡터)
- z0: 초기 상태, 정답 클래스 위치에 1, 나머지는 0인 one-hot vector
- 총 T단계 구성, 점진적으로 노이즈 추가, zT가 균등분포에 가까움
- 각 단계 t에서 노이즈 vt 추가
- vt는 균등 확률을 가지는 Multinomial distribution에서 샘플링
실제 과정(단일 단계)
zt=(1−βt)zt−1+βtvt
- 각 단계 t에서 작은 확률로 임의의 클래스를 동일한 확률로 선택할 수 있도록 불확실성 증가
- βt: 해당 단계에서의 랜덤성 증가 정도(hyperparameter)
- vt는 길이 C인 벡터, 모든 원소가 0이상, 합이 1
- vt는 MNK(K,C11)를 샘플링
- 샘플링 결과를 K로 나눠서 합이 1이 되도록 함
즉, 단일 단계: q(zt∣zt−1)=MNK(βtzt−(z−βt)zt−1)
t단계 전체를 고려했을 때
zt=αˉtz0+(Πr=2tατ)β1v1+...+βtvt
- αt=1−βt
- α^t=Πr=1tατ
따라서 q(zt∣z0)=MNBtK(1−α^tzt−α^tz0)
- 중간 단계 분포를 직접 생성할 수 있기에 효율적인 학습이 가능함
이때 βt가 충분히 크다면 α^t→0이 되어서 최종 분포 zT는 균등 분포로 수렴
E[zT]=C11
property 3. forward process posterior
- Markov chain에 따라서
q(zt−1∣zt,z0)=σt1⋅(두 Multinomial 분포의 곱)
- 이때 σt는 정규화 상수. 실제에선 hyperparameter
Reverse Process
- Forward Process를 통해 중간 분포 {z1,...,zT}를 생성할 수 있음
- 중간 분포를 활용해 reverse process 학습
- T 단계에 걸쳐서 AD image 출력
정보 추출
- Diffusion 과정을 보조
- 학습된 feature extractor 이용해서 비디오의 snippets에서 feature 추출
- fST∈RN×CST
- N은 프레임 수, CST는 채널 수
- fST는 condition으로 사용
과정
- 초기 input: 완전히 불확실한 분포 ZT
- Reverse Process를 수행하며 최종 예측 z^0를 예측
- 단계별 z^t−1=dϕ(z^t,fST,ft), t∈{1,...,T}
- ft는 t번째 diffusion 단계를 나타내는 임베딩, 사인 함수를 이용해 생성
Multi-row Processing
- 동일한 Diffusion 과정은 전체 AD image의 모든 행에 동시에 적용이 가능함
- 순방향 과정에서 모든 행에 동시에 노이즈를 추가 {xa1,...,xaT}를 생성
- 역방향 과정에서 각 단계에서 xat로부터 xat−1를 생성하도록 학습
- Row(frame): temporal한 관계
- Column(class): 서로 다른 클래스 간 관계
- 기존의 Diffusion network: 2D 공간의 local negihbor을 처리하는 방식
Diffusion network d의 t번째 단계
- input image: xa∈RN×C
- 시공간 특징: fST∈RN×CST
- Diffusion 단계 임베딩: ft∈RN×1
- concat: x∈RN×(C+CST+1)
Row-Column Block
Column
- 클래스 간 관계는 장거리 관계를 가질 수 있기에 Multi-Head Self-Attention(MHSA) 사용
- 입력 x의 각 열을 하나의 토큰으로 간주
- 총 C+CST+1개의 토큰 생성, 각 토큰의 길이는 N
- 중간 출력 ucol∈RN×(C+CST+1)을 얻고 두 개의 MLP Layer 통과
Row
- Temporal convolution(TC) + MHSA
- 1×3 Temporal Convolution을 적용, local 관계를 반영한 urow 생성
- 각 행을 하나의 토큰으로 간주하여 MHSA 수행
Combined Image Processing
- 동일한 방법으로 xs와 xe에도 적용
- 각각 따로 생성 or 세 이미지를 하나로 결합하여 동시에 처리도 가능
- xtcombined∈RN×(C+4)
- 효율성 증가
- 분류와 위치 추정 사이의 정보를 공유하여 성능 향상
Inference and Training Pipeline
Inference Pipeline
모델이 출력한 세 개의 AD 이미지 x^a0,x^s0,x^e0를 이용해 최종 행동 탐지 결과 생성
- 시작점/끝점 후보 찾기
- x^s0,x^e0의 첫 번째 열 확인
- 값이 임계값 이상인 프레임들을 후보로 선택
- grouping
- 연결된 프레임들을 하나의 그룹으로 묶고
- 평균 위치를 실제 시작점 / 끝점으로 결정
- candidate 생성
- 시작점에 대해 끝점과 짝을 지음
- 시작점 ~ 끝점 구간을 하나의 행동 후보로 생성
- 행동 클래스 결정
- 해당 구간에 해당하는 x^a0의 행들을 평균
- 가장 높은 값을 가진 클래스 선택
- Soft-NMS
- 겹치는 후보들을 Soft-NMS로 제거
- 최종 행동 탐지 결과 생성
Training Pipeline
- 비디오 특징 추출
- 사전 학습된 모델을 사용해 fST 추출
- 학습 중에는 이 특징 추출기 고정
- 모델 초기화
- Diffusion model d는 랜덤 초기화
- Forward Process
- 정답 이미지 x0에 노이즈 추가
- 중간 단계 분포 생성: 학습용 정답 역할
- Reverse Process
- 확산 모델이 노이즈를 제거하여 중간 단계 및 최종 AD 이미지 에측
- Loss 계산
- 각 단계에서 모델의 예측 AD 이미지와 Forward Process에서 생성된 정답 이미지 간 MSE Loss 계산하여 학습
4. Experiment
Ablation Study
Discrete Diffusion
- 기존 diffusion보다 성능이 크게 향상됨
Row-Column Transformer
AD image 구성
stitching
- 속도와 성능 모두 향상
병렬 처리 + 정보 공유의 효과
결론적으로 속도는 기존 최신 모델과 유사하면서 성능은 더 높음