본문 바로가기

인공지능/논문 리뷰

[논문 리뷰] JOSENet: A Joint Stream Embedding Network for Violence Detection in Surveillance Videos

728x90

JOSENet: A Joint Stream Embedding Network for Violence Detection in Surveillance Videos


https://arxiv.org/abs/2405.02961

 

JOSENet: A Joint Stream Embedding Network for Violence Detection in Surveillance Videos

The increasing proliferation of video surveillance cameras and the escalating demand for crime prevention have intensified interest in the task of violence detection within the research community. Compared to other action recognition tasks, violence detect

arxiv.org

Nardelli, P., & Comminiello, D. (2024). JOSENet: A Joint Stream Embedding Network for Violence Detection in Surveillance Videos. arXiv preprint arXiv:2405.02961.


1. Introduction

  • 감시 영상에서 폭력 탐지는 공공 안전을 위한 중요한 과제지만, 다양한 배경과 인물, 라벨 부족 등으로 인해 어려움
  • 기존 방법들은 높은 정확도를 내기 위해 많은 연산 자원과 프레임이 필요
  • 이를 해결하기 위해 RGB + Optical Flow의 dual-stream을 활용하는 경량 모델 JOSENet을 제안하며, Self-Supervised Learning 기반 pretraining으로 labeled data 부족 문제를 보완함
  • 특히, 영상에 특화된 Regularized SSL 방식(VICReg 기반)을 통합하여 라벨 없이도 robust하고 efficient한 violence detection을 가능하게 함

=> VICReg 기반 SSL으로 사전 학습된 가중치를 이용하여 경량화된 FGN을 학습, 더 나은 VAD 모델 제안


2. Method

  • JOSENet은 Primary Supervised Model (FGN)과 Auxiliary Self-Supervised Model (VICReg)의 2단 구성
  • RGB + Optical Flow 기반 dual-stream 구조
    • RGB는 정지 이미지(프레임)로 영상의 공간 정보(색, 형태, 위치, 배경 등)를 활용하는데 사용 -> Spatial Block
    • Optical Flow는 연속된 프레임 사이의 벡터 움직임을 계산, 움직임의 방향과 크기를 나타내는데 사용 -> Temporal Block

JOSENet Framework

2.1 Primary Model: An Efficient Two-Stream Flow Gated Network(FGN)

Flow Gated Network

  • FGN은 RGB와 Optical Flow를 병렬로 처리
  • FGN은 세 가지 주요 블록으로 구성
    1. Spatial Block(RGB 영상 처리 모듈)
      • Motion Intensity Map 생성
        • RGB 프레임 전부 사용하는 것은 비효율적 -> Optical Flow를 이용해 움직임이 집중된 지역을 정량적으로 측정, ROI 선택
        • Optical Flow 프레임 $S_{i}$모션 강도 $M_{i} = \sqrt{S_{i,x}^{2}+S_{i,y}^{2}}$()
        • 모든 프레임 $M_{i}$ 누적 합 $M(x,y) = \sum_{i=1}^{N}M_{i}(x,y)$에 평균을 threshold로 사용
        • 그보다 낮은 값은 0으로 필터링 -> 의미 없는 작은 움직임은 제거
        • 확률밀도함수로 (x,y) 좌표 10개 무작위 추출
      • ROI 중심점 $(c_x, c_y)$계산
        • 확률밀도함수로 추출된 (x,y) 좌표 10개의 평균
      • RGB 패치 Crop 및 업스케일
        • $(c_x, c_y)$ 기준으로 112 x 112 사이즈 crop
        • cubic interpolation(삼차 보간)을 이용하여 224 x 224로 업샘플링
          (왜 삼차 보간인지에 대한 설명은 없음, 아마 시공간 특징 보존을 위한 것으로 추측)
      • RGB Block 구성 및 후처리
        • $3 \times N \times 224 \times 224$
    2. Temporal Block
    3. Merging Block
      • RGB와 Optical Flow의 출력 element-wise multiple 이후 max-pooling
      • Fully Connected Layer & Output

2.2 Computational Efficiency of the Primary Model

  1. Computational Enhancement
    • 실시간 이상상황 탐지를 위해서는 낮은 메모리 사용량과 빠른 추론 속도가 필수
    • 따라서 모델은 프레임 수와 속도를 줄이는 동시에 성능 저하 없이 학습해야 함
    • 기존 FGN $N = 64, N_{fps} = 12.8$
    • JOSENet $N = 16, N_{fps} = 7.5$
    • 반드시 높은 프레임 속도에서만 성능이 좋은 것은 아님
      (이 프레임 조정이 실용성과 정확성 사이의 균형점을 이룬다고 언급)
  2. Efficient Implementation
    • Max pooling 2x2x2 -> 1x2x2로 수정
    • 연산 속도를 높이기 위한 Mixed-Precision 사용
      (두 가지 이상의 숫자 표현 방식을 조합해 사용하는 방법/
      대부분은 float16 사용, 정밀도가 필요한 부분에는 float32 사용)
    • 모든 블록의 각 활성화 함수 뒤에 3D Batch Normalization -> 내부 공분산 이동 감소 효과
      내부 공분산 이동: 학습 도중 각 층의 입력 분포가 계속 바뀌는 현상(학습이 어려워지고 수렴이 불안정)
    • Spatial Dropout($p = 0.2$) 적용 통한 과적합 방지

2.3 The Auxiliary Model: VICReg for Joint Video Stream Architectures

Propose VICReg
Original VICReg

  • 경량화된 FGN은 프레임 수나 FPS 감소로 인한 정보 손실 우려가 있음
  • 일반화된 CCTV 영상은 라벨링 데이터가 없다는 특징이 있음
  • 이를 보완하기 위해 SSL로 사전학습 된 모델을 활용하도록 보조 자기지도 학습 형태 채택
  • VICReg(Variance-Invariance-Covariance Regularization)는 비대칭 쌍의 데이터를 다루는 SSL 기법
    • Invariance: 임베딩 벡터들 사이의 평균 제곱거리로 입력의 형태가 달라져도 의미는 유지되도록 함
    • Variance: 각 임베딩 변수의 표준편차가 특정 임계값 이상이 되도록 하는 힌지 손실, 임베딩의 각 변수들이 충분히 다양한 값을 가지도록 하여 collapse 방지(힌지 손실은 표준편차가 임계값보다 작으면 손실을 발생 시킴, 다양성 강제)
      - 이는 negative sample이 없을때 collapse를 막는 SSL 방식
    • Covariance: 중심화된 임베딩 변수들 간의 공분산을 0으로 끌어당기는 항, 임베딩의 각 변수들 간의 상관 관계를 줄이고 변수들이 서로 다른 정보를 담도록 유도
    • https://velog.io/@jaeheon-lee/Paper-Review-VICReg-Variance-Invariance-Covariance-Regularization-for-Self-Supervised-Learning

  • JOSENet의 VICReg 흐름
    1. 입력의 RGB와 Optical Flow $I, I'$ 생성
    2. 각각 Augmentation을 통한 $X, X'$ 생성
    3. VICReg 인코더 $f_{\Theta }, f'_{\Theta'}$ 통한 인코딩(가중치 공유 X)
    4. Siamese merging block $m_{\gamma}$ (temporal max pooling 제거)
      - 이 merging block은 FGN의 merging block을 의미, original VICReg에는 merging block이 없음
      - max pooling을 제거함으로써 $m$의 출력 차원이 늘어나게 되고 이는 h의 입력차원을 증가시켜 성능 향상에 기여 
    5. 이렇게 생성된 표현 $Y, Y'$은 expander $h_{\phi}$을 통해 출력 $Z, Z'$ 생성
      - expander는 3개의 fully-connected layers로 구성된 고차원 표현 생성기
        ( (FC → BN → ReLU) → (FC → BN → ReLU) → FC 형태의 MLP )
    6. 출력 $Z, Z'$을 이용한 $Loss$ 계산
  • $Loss$
    • 이 구조의 목적은 VICReg에서도 RGB와 Flow 정보를 효과적으로 통합하면서도 더 많은 temporal 정보를 유지하고 풍부한 표현을 학습하는 것 
    • hyperparameter $\lambda = 25, \mu =25 , \nu = 1$
    • Invariance loss $s(Z, Z')$: 두 임베딤 벡터 간 입력 시점의 표현이 유사하도록 유도
    • $s(Z, Z') = \frac{1}{n}\sum_{i}^{}\left\| z_{i} - z_{i}'\right\|_{2}^{2}$
    • Variance loss $v(Z)$: 각 차원의 표준편차 이용, collapse 방지
    • $v(Z) = \frac{1}{d}\sum_{j=1}^{d}max(0, \gamma - S(z^{j}, \epsilon ))$
    • Covariance loss $c(Z)$: 서로 다른 차원간 중복 정보 제거 유도
    • $C(Z) = \frac{1}{n-1}\sum_{i=1}^{n}(z_{i}-\overline{z})(z_{i}-\overline{z})^T, where \ \overline{z}=\frac{1}{n}\sum_{i=1}^{n}z_{i}$
    • $c(Z) = \frac{1}{d}\sum_{i\neq j}^{}[C(Z)]^{2}_{i,j}$

$$L(Z, Z') = \lambda s(Z, Z') + \mu [v(Z)+v(Z')]+ \nu [c(Z)+c(Z')]$$

 

3. Experiments

 

Ablation

 

 

의의

FGN를 가볍게 하고, VICReg를 합쳐서 더 정확하고 빠른 이상상황 탐지 모델을 만들었다.

FGN: https://arxiv.org/pdf/1911.05913v3

VICReg: https://arxiv.org/abs/2105.04906

 

 

참조:

https://velog.io/@jaeheon-lee/Paper-Review-VICReg-Variance-Invariance-Covariance-Regularization-for-Self-Supervised-Learning

 

 

P.S 얘네는 모델 중간의 모듈 그림 같은거 추가해서 설명해야지, 이렇게 글로만 쓰면 계속 아카이브에만 있고 정식 게재 되기 어려울거 같은데

(표 3이랑 4는 왜 또 따로임?!)

 

728x90