일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- opencv
- Segmentation
- 코드구현
- Computer Vision
- 논문
- pytorch
- object detection
- 인공지능
- 논문 리뷰
- 딥러닝
- 파이썬
- Semantic Segmentation
- programmers
- 옵티마이저
- 논문구현
- 논문리뷰
- Python
- 코딩테스트
- cnn
- Ai
- ViT
- 프로그래머스
- 머신러닝
- transformer
- optimizer
- 파이토치
- Convolution
- Self-supervised
- Paper Review
- 알고리즘
- Today
- Total
Attention please
[논문 리뷰] Real-world Anomaly Detection in Surveillance Videos(2019) 본문
[논문 리뷰] Real-world Anomaly Detection in Surveillance Videos(2019)
Seongmin.C 2023. 7. 2. 15:17이번에 리뷰할 논문은 Real-world Anomaly Detection in Surveillance Videos(2019) 입니다. 사실 이번에 처음으로 Anomaly Detection 분야를 건드리게 되었는데 computer vision 중에서도 video 분야에서 사용되는 기법들을 찾다가 해당 논문을 읽게 되었습니다.
아무래도 이상치 탐지 분야에 대해 처음 접하는만큼 세부적인 내용에 대해서도 detail하게 잡고 넘어갈 생각입니다. 그래도 최대한 핵심적인 부분만 골라보도록 하겠습니다.
해당 논문은 paperwithcode 사이트의 Abnormal Event Detection In Video 에서 Most implemented 에 해당하는 논문으로 후에 구현을 위해 선정하게 되었습니다.
https://paperswithcode.com/paper/real-world-anomaly-detection-in-surveillance
Abstract
위에서도 말씀드렸듯이 본 논문은 video 에서의 Anomaly Detection 을 목적으로 합니다.
기본적으로 video 에서 Anormaly Detection을 진행한다고 한다면 영상을 instance 단위로 나눈 후 각 frame에 대해 학습을 하는 방식이 존재합니다. 하지만 본 논문에서는 normal video 와 anomalous video를 multiple instance learning(MIL) 의 인스턴스인 bags 로 간주한다고 합니다.
일반적으로 anomaly detection 분야는 Auto Encoder 와 같이 unsupervised learning 으로 진행되는 경우가 많았습니다. 하지만 본 논문에서는 semi-supervised learning 기법으로 해당 task를 풀려고 했다는 점에서 차이가 있어 보입니다.
또한 본 논문은 learning method 뿐만 아닌 dataset 도 소개를 하고 있습니다. 무려 128시간의 실시간 감시 카메라 video data 라고 하며 총 13가지의 class가 존재한다 소개합니다. 이 dataset 으로 단순히 정상 / 비정상 이진 분류에 대해 실험을 하는 것 뿐만 아니라 13가지의 anomalous activities 를 분류하는 실험 역시 가능하다고 말하고 있죠.
Introduction
일반적으로 anomalous event 들은 normal activity 에 비해서 아주 적게 발생하기 때문에 노동력과 시간을 절약하기 위해 자동 영상 이상치 탐지 알고리즘은 중요하다고 합니다.
실제 세계의 anomalous event 들은 아주 복잡하고 다양합니다. 그러므로 anomaly detection 알고리즘을 구축할 때 이전의 정보에 의존하면 안된다고 하죠. 제가 이해한 바로는 이상 범주에 속하는 사건들은 어떻게 언제 일어날 지 예측이 되지 않기 때문에 sequence한 정보에 너무 의존하면 오히려 좋지 않은 성능을 보여줄 수도 있음을 말하는 것 같습니다.
Sparse-coding 기법은 anomaly detection 의 대표적인 방법들 중 하나입니다. 이 방법들은 정상 데이터만을 따로 분류하여 사용합니다. 이 방법의 main idea는 anomaly data는 normal data로 복원될 수 없다 라고 할 수 있을 것 같습니다. 비슷한 예시로는 Auto Encoder를 사용하여 Anomaly detection을 수행하는 것을 들 수 있습니다. 이는 Encoder를 통해 정상 데이터의 중요한 부분만을 추출하여 Latent vector로 변환한 후 다시 복원시키도록 학습을 진행합니다. 이렇게 학습이 완료된 모델에 Novelty data를 넣게 되면 완벽하게 복원하는 것이 불가능하다는 것을 전제로 진행됩니다.
Motivation
하지만 위 방법론에는 한가지 문제가 있습니다. normal class에 속하는 한 장면이라도 시간이 지남에 따라 다른 풍경을 보여줄 수 도 있다는 것이죠. 예를 들어 한 풍경에 대한 정상 데이터가 존재한다고 생각해봅시다. 저녁이 되어 어두워졌을 때 Sparse-coding 기법을 사용한다면 abnormal 이라 오분류할 수도 있다는 것입니다.
즉, 위 method는 학습된 정상 패턴에서 벗어난 모든 패턴을 이상으로 간주한다는 가정에 기초하고 있으며 이는 모든 가능한 정상 / 비정상 패턴을 고려하여 detection 하는 것이 어렵기 때문에 완벽한 방법이라 하기에는 부족함이 있습니다. 또한 정상과 비정상의 경계는 아주 오모한 경우가 많습니다. 같은 행동이라도 정상일 수도 비정상일 수도 있다는 것이죠.
본 논문은 weakly labeled training video 를 사용하여 anomaly detection 알고리즘을 제안합니다. weakly label 이란 영상의 각 프레임 하나하나에 label을 붙이는 것이 아닌 영상 단위로 label을 붙이는 것을 의미합니다. 예를 들어 1분 정도의 영상에 anomaly data가 포함되어있다면 비정상 label을, 포함되어있지 않다면 정상 label을 붙인다는 것이죠. 또한 이 방법을 사용하게 되면 아주 많은 양의 데이터 라벨링을 손쉽게 할 수 있다는 장점도 존재합니다.
이러한 weakly-supervised learning 접근을 제시하기 위해 multiple instance learning (MIL) 을 참고합니다. 위에서 말했던 것처럼 labeling 된 영상들을 하나의 instance로 취급하며 이런 영상들을 bags 라고 부릅니다. 즉, 각 영상들은 instance들을 담은 하나의 가방이 되는 셈이죠.
다시 내용으로 돌아와 각 bags들을 데이터로 삼아 training을 진행하게 됩니다. 후에 test 시에는 각 비디오들을 각각의 segments 로 나누어 각 segment 들에 abnormal score를 부여하게 됩니다.
Contributions
본 논문에서는 weakly label 된 비디오들만으로 anomaly detection을 위해 MIL solution 을 제안합니다. 또한 video segments 에 대해 anomaly score를 학습하기 위해 deep learning network 에 sparsity 와 smoothness 제약을 포함한 MIL ranking loss를 제안합니다.
또한 video anomaly detection 분야에서 MIL 을 활용한 경우는 없다고 합니다.
위에서 언급했던 것처럼 아주 방대하며 13가지나 되는 anomalous event 를 포함한 데이터를 소개한다고 합니다. 이런 데이터들은 현실의 복잡함을 좀 더 잘 표현해줄 것이라는 기대가 있습니다.
또한 이러한 데이터들은 본 논문에서 제안한 방법이 다른 anomaly detection 의 SOTA 접근 방식에 비해 훨씬 좋은 성능을 보여줍니다. 기존의 SOTA 모델들이 본 논문에서 소개한 복잡한 데이터에 대해 좋지 않은 성능을 보여준다는 것은 결국 도전적인 benchmark dataset으로의 역할을 해준다는 것을 의미하는 셈이기도 하죠.
Related Work
Anomaly detection 분야는 computer vision 분야에서 가장 도전적이며 여전히 어려움을 가지고 있는 문제들 중 하나라고 합니다. 여러가지 주제들이 존재하며, 본 논문에서는 폭력, 싸움에 대해 detection 하는 연구에 대해 소개합니다.
위와 같이 사람이 폭력을 사용하는 motion을 감지하여 detection 하는 연구가 진행되었다고 합니다.
최근에는 Auto Encoder 를 기반으로 normal behavior 에 대해 모델을 학습하는 것 역시 사용되었지만 해당 method는 정상 데이터만을 사용하여 학습을 진행하기에 부족함이 있었습니다. 본 논문에서는 normal behavoir 를 고려하는 것 뿐만 아닌 anomalous behavior 도 고려하며, weakly labeled training data를 사용한다는 특징이 있다고 말합니다.
추가로 진행되었던 연구들이 많으니 혹여나 관심이 있다면 논문을 찾아보시는 것을 추천드립니다.
Proposed Anomaly Detection Method
Figure 1 은 본 논문에서 제안하는 방법을 시각적으로 보여줍니다. 우선 비디오 영상들을 정해진 수의 segment 들로 나눕니다. 이렇게 나눈 segment들은 bags에 들어가는 instance가 되며 positive(anomalous) 와 negative(normal) 으로 분류하여 학습을 위한 데이터를 준비합니다.
이렇게 준비된 데이터들을 사용하여 제안된 MIL ranking loss 으로 anomaly detection model을 학습합니다.
Multiple Instance Learning
먼저 표준적으로 supervised classificatoin problem 에 사용되는 support vector machine 을 소개합니다. SVM 은 다음의 optimization function을 최적화하여 라벨이 positive 혹은 negative 함을 학습합니다.
이때 ① 에 해당하는 부분은 hinge loss를 의미합니다. hinge loss 는 SVM 에 자주 사용되는 손실함수이며 실제 값과 예측 값의 사이의 오차를 측정하는데 사용되는 기준이 됩니다. 아무래도 margin 을 최대화하는 SVM에서 자주 사용되죠.
hinge function에 대해 간단히 설명을 하자면 기본 형태는 L(y) = max(0, 1 - yt) 와 같습니다. 이때 y는 실제 label(-1 or +1) 이며, t 는 예측 label을 의미합니다. 만약 예측값과 실제값이 일치한다면 L(y) 은 0이 되며, 일치하지 않는다면 실제값과 예측값의 차이 즉 margin을 반환하게 됩니다.
$ \phi (x) $는 image 즉 video의 segment 의 feature representation 를 의미합니다. 결국 이미지의 feature를 추출하는 함수이며 딥러닝이라면 중간층들을 의미하는 것이 되겠죠.
b 는 편향을 의미하며, k 는 training example의 총 개수를 의미합니다. 마지막으로 w는 분류기의 학습시켜야할 가중치를 의미합니다.
Robust classifier를 학습하기 위해서는 positive와 negative에 대해 정확한 annotation이 필요하며 supervised anomaly detection의 문맥에서는 video들의 각 segment에 대해 시간적인 정보를 담은 annotation이 필요합니다.
하지만 MIL 방법론은 정확한 시간적 annotation을 가져야한다는 가정을 완화해줍니다. MIL 방법론은 언제 어디서 정확하게 이상 정보가 있다고 분류할 필요 없이 video level에서 anomaly 가 있는 지만 예측하면 되기 때문에 훨씬 간단합니다.
또한 주석을 다는 것 역시 간단해지기 때문에 시간도 절약되며 대용량의 동영상 데이터를 더 쉽게 처리할 수 있게 됩니다.
positive video(anomaly) 에 대해서 positive bag $ \beta_{a} $ 으로 표현하며 서로 다른 시간의 segment들인 bag안의 개별적인 instance들 ($ p^{1}, p^{2}, ..., p^{m} $)으로 구성됩니다. positive bag 이기 때문에 적어도 1개의 segment는 anomaly 여야 합니다.
반대로 negative video(without anomaly) 에 대해서는 negative bag $ \beta_{n} $ 으로 표현하며 역시나 bag안의 개별적인 instance들은 $ n^{1}, n^{2}, ..., n^{m} $ 으로 구성됩니다. negative bag이기 때문에 단 1개의 segment 도 anomaly 하면 안되죠.
positive instance의 정확한 정보는 존재하지 않습니다. (각 segment들에 대해 labeling한 것이 아니기 때문) 그렇기에 각 bag안의 maximum score를 가지는 instance에 대해 목적 함수를 최적화할 수 있습니다. 이때 목적함수는 다음과 같습니다.
$ \beta_{j} $는 bag level의 label을 의미하며, z는 bag의 총 개수를 의미합니다. (나머지 변수들은 Eq. 1과 동일)
Deep MIL Ranking Model
Anomalous behavior 는 너무 주관적이며 사람마다 다양하게 생각할 수 있기 때문에 정확하게 정의하기 어렵습니다. 또한 정상인지 비정상인지 명확하게 labeling 하기도 애매하며 anomaly에 대한 예제도 충분하지 않기 때문에 보통 anomaly detection은 분류 문제가 아닌 낮은 likelihood 패턴을 감지하는 방향을 가집니다.
본 논문에서는 anomaly detection을 회귀문제로 다룹니다. 비정상 segment를 정상 segment에 비해서 더 높은 anomaly score를 매기기 위해 다음과 같은 ranking loss 식을 사용합니다.
$ V_{a} $는 anomalous video segment들을 의미하며 $ V_{n} $는 normal video segment들을 의미합니다. 또한 $ f $ 함수는 각각 예측된 score를 반환합니다. 이 ranking fuction은 해당 segment가 정상인지 비정상인지를 알 수 있도록 학습됩니다.
하지만 본 논문에서는 video segment level로 annotation을 가지지 않습니다. 여러개의 segment들로 이루어진 각 영상들에 주석을 달기에 위 식을 사용하기에는 적합하지 않습니다. 이 문제를 해결하기 위해 multiple instance ranking objective function을 제안합니다.
위 식을 해석해보자면 positive bag와 negative bag 들 중 가장 높은 anomaly score를 가지는 2개의 instance에 대해서 비교합니다. 이로 인해 각 segment들이 모두 annotation이 없어도 학습이 가능하다는 것이죠.
positive bag에서 나온 anomaly score이 가장 높은 segment는 abnormal할 가능성이 높습니다. 반대로 negative bag에서 나온 anomaly socre이 가장 높은 segment는 실제로는 정상 데이터이지만 모델이 abnormal이라 오분류할 가능성이 높은 segment 라고 할 수 있습니다.
위 식에는 1가지 한계가 존재합니다. anomalous video의 기본적인 시간적 요소를 무시한다는 것이죠. 실제 세계에서anomaly 는 아주 짧은 시간동안 일어납니다. 이 경우 anomalous bag안에 instance들의 score는 sparse 해야합니다. 즉, 적은 양의 segment들만 anomaly를 포함해야함을 의미합니다. 또한 video는 segment들의 sequence이기 때문에 anomaly socre는 비디오의 segment들 사이에서 아주 smooth 하게 변해야합니다.
위와 같은 이유로 본 논문에서는 비디오 내의 인접한 segment에 대해 socre의 차이를 최소화하여 시간적으로 인접한 video segment들의 anomaly socre들 사이에 시간적인 smoothness를 강제화하였다고 합니다. instance score에 대해 sparsity 함과 smoothness 함을 통합하여 다음과 같은 손실함수가 만들어지게 됩니다.
①에 해당하는 부분은 temporal smoothness 함을 위해 추가한 것이며, ②에 해당하는 부분은 sparsity 함을 위해 추가된 것이다. ①식을 자세히 살펴보자. 우선 temporal smoothness 함을 위해서는 서로 인접한 segment들의 score들의 차이가 작아야합니다. $ V^{i}_{a} $ 와 $ V^{i+1}_{a} $ 의 차이를 구한 후 제곱하여 더하는 부분을 확인할 수 있는데 이를 최소화함으로써 서로 인접한 segment들의 score 차이를 최소화하여 temporal smoothness 하게 만드는 것이 가능해집니다.
다음으로 ②식을 살펴보면 단순히 anomalous video의 segment들의 anomaly score를 합하는 것임을 알 수 있습니다. 이를 통해 전체적으로 anomaly instance에 대해 score를 낮추어 sparsity 함을 만드려고 합니다.
최종적으로 본 논문에서 사용되는 objective function은 다음과 같습니다.
(7)식의 $ l(\beta_{a}, \beta_{n}) $ 는 위에서 정의했던 (6) 식과 동일하며 $ \left\|W \right\|_{F} $ 는 가중치 행렬 $ W $의 frobenius form으로 모델의 가중치가 너무 커지지 않도록 하기 위해 더해준 것으로 보입니다.
Bags를 만들 때는 각 비디오를 서로 겹치지 않는 연속적인 segment들을 같은 수로 나누어 bag instance로 사용했다고 합니다. 이렇게 만든 각 video segment에 대해 3D convolution feature를 추출합니다.
Dataset
Previous dataset
해당 부분에서는 UMN dataset, UCSD Ped1, Ped2 와 같은 anomaly detection을 위해 대표적으로 사용되는 video dataset들에 대해 소개하고 있습니다.
Our Dataset
본 논문에서는 새로운 데이터셋에 대해 제안을 하고 실험을 진행하였습니다. 해당 데이터를 수집하기 위해 abnormal에 대한 검색어들(자동차 추돌, 도로 사고, ...)을 사용하여 Youtube와 LiveLeak에서 비디오들을 검색하였다고 합니다.
training 을 위한 annotation은 단순히 video-level의 label만으로 충분하지만 test를 위해서는 언제 anomalous event가 시작되고 끝이 나는지 시간적인 요소를 포함한 annotation이 필요합니다.
이렇게 수집한 데이터셋을 training set과 test set으로 구성하였는데 training set의 경우 800개의 normal video와 810개의 anomalous video로 구성되었으며 test set의 경우 150개의 normal video와 140개의 anomalous video로 구성됩니다.
위 table은 본 논문에서 제안하는 dataset에서 각각의 anomaly한 video들의 개수를 보여줍니다. 총 13개의 anomaly class가 존재함을 확인할 수 있습니다.
위 figure는 training set에서 각 비디오들의 재생 시간의 분포를 보여주고 있습니다.
위 figure는 testing set에서 video frame이 어떻게 분포되었는지 보여줍니다.
위 figure는 testing set에서 각 video안의 anomaly percentage를 보여줍니다. 표 중간이 비어져있는 이유는 59 ~ 208 비디오는 normal video로 anomaly frame이 존재하지 않기 때문입니다.
Experiments
Implementation Details
본 논문에서는 시각적인 feature를 추출하기 위해서 C3D network의 fully connected(FC) layer FC6을 사용합니다.
feature를 추출하기 전 각 video의 frame 크기를 240x320 pixel로 resize합니다. 또한 모든 비디오는 30fps로 통일합니다.
16-frame video frame에 대해 C3D feature를 계산한 후 $ l_{2} $ normalization을 적용합니다. 또한 video segment의 feature를 얻기 위해 모든 16-frame video frame에 대해 평균값을 구한 후 이 feature 값(4096D)을 3-layer FC neural network의 input으로 적용합니다. 이후에는 512개, 32개, 1개의 unit을 가진 FC layer를 차례대로 적용시켜 값을 도출시킵니다. 또한 각 FC layer 사이에는 60%의 dropout regularization을 사용합니다. (본 논문에서는 더 깊은 층을 실험해보았지만 성능 개선이 이루어지지 않다고 설명합니다.)
첫번 째와 마지막 FC layer에 각각 ReLU activation 과 Sigmoid activation을 사용합니다. 또한 optimizer는 Adagrad를 사용하였으며, learning rate는 0.001을 적용하였습니다.
추가로 MIL ranking loss 함수의 파라미터 $ \lambda_{1} $ 와 $ \lambda_{2} $ 가 $ 8 \times 10^{-5} $ 일 때 가장 좋은 성능을 보여주었다고 설명합니다.
각 비디오에 대해 겹치지 않도록 32개의 segment들로 나누어 bag의 instance로 간주합니다. 이때 segment의 개수인 32개는 하이퍼 파라미터로 저자가 경험적으로 설정한 수라고 설명합니다. 또한 segment들이 시간적으로 서로 겹치게 하여 실험을 진행해보았지만 정확도 측면에서 효과를 보지 못했다고 하죠.
각각 30개의 postive bag와 negative bag을 선택하여 mini-batch로서 사용을 합니다. 각 video들은 network를 통과한 후 각 temporal segment들의 score를 얻습니다. 이렇게 구한 score를 가지고 위에서 정의했던 식을 사용하여 loss값을 계산한 후 batch전체에 대해 loss를 역전파를 진행하게 됩니다.
본 논문에서는 평가지표로 ROC curve와 AUC 를 사용합니다. 추가로 EER은 사용하지 않는다고 하는데 비디오의 아주 일부만이 abnormal일 때는 판단하기 힘들기 때문이라고 합니다.
Comparison with the State-of-the-art
저자는 2개의 SOTA 접근방식과 본 논문의 method를 비교합니다. 첫 번째 방법론은 normal behavior에 대해 학습하여 anomalies를 detect하기 위해 reconstruction error를 사용하는 dictionary based approach 입니다. 두번 째 방법론은 local feature와 classifier를 학습하기 위해 제안되었던 deep auto-encoder based approach 입니다. 또한 추가로 기본적인 방법론인 binary SVM classifier 역시 사용했다고 합니다.
위 figure가 실험에 대한 결과인데 본 논문에서 제안하는 방법론의 성능이 가장 좋은 것을 확인할 수 있습니다. binary classifier의 성능이 좋지 않은 것은 예상되는 결과였지만 auto-encoder를 기반으로 한 방법론의 성능이 binary classifier와 비슷할 정도로 성능이 좋지 않은 것은 좀 신기하더군요.
추가로 AUC에 대한 table 역시 보여줍니다. 역시나 본 논문에서 제안된 방법론의 AUC 수치가 가장 높은 것을 확인할 수 있습니다.
또한 본 논문에서 제안했던 접근법 중 smoothness 와 sparsity 제약을 포함한 것과 포함하지 않았을 때 에 대해 비교하여 실험을 진행했습니다. 결과는 방법론을 적용하였을 때 저 좋은 성능을 보여준다고 합니다. 특히 해당 방법론은 다른 방법론들에 비해 높은 수치의 true positive rate를 보여준다고 설명합니다.
위 결과를 봤을 때 확실히 binary classifier와 같은 전통적인 접근 방식은 실제 세계의 감지 카메라에 대해 anomaly detection을 위해 사용하기에는 한계가 있음을 보여주었습니다. 이는 본 논문에서 사용한 dataset이 정제되지 않았을 뿐더러 anomaly가 아주 짧은 시간동안만 나타나기 때문입니다.
Dictonary 방법론의 경우 normal과 anomalous의 패턴을 차별화 하기에 충분하지 않았습니다. 게다가 비디오의 normal 부분과 anomalous 부분 모두 낮은 reconstruction error를 보여준다고 합니다.
Auto encoder 기반 접근법의 경우 normal 패턴은 잘 학습하였다고 합니다. 하지만 새로운 normal 패턴에 대해서는 높은 anomaly score를 주는 경향이 있다고 하죠. 이 부분은 Auto encoder와 같이 정상 데이터만을 사용하여 학습하는 비지도 기법들의 고질적인 문제들 중 하나이기도 합니다.
본 논문에서 제안한 기법은 Auto encoder 기반 접근법에 비해 훨씬 더 좋은 성능을 보여주며 정상 데이터 뿐만 아닌 비정상 데이터 역시 같이 학습한다는 점을 강조합니다. 이는 robust한 anomaly detection 시스템에 필수적이라고 하죠.
위 figure는 test data에 대해 얼마나 잘 작동하는지를 보여줍니다. (a) ~ (d) 의 경우 중간에 abnormal event가 발생하며 해당 모델이 잘 감지하고 높은 anomaly score를 매겼습니다. 또한 (e) 와 (f) 의 경우 abnormal event가 없는 normal video이며 모델 역시 anomaly score를 매기지 않았음을 볼 수 있습니다.
하지만 (g)와 (h) 를 보면 abnormal을 잘 감지하지 못했음을 볼 수 있습니다. 저자는 늦은 시간대여서 어두운 화면이 해당 오분류의 원인으로 말하고 있습니다.
Analysis of the Proposed Method
본 논문에서 제안하는 방법론의 가장 중요한 가정은 video-level로 라벨링된 많은 양의 positive와 negative한 video가 주어졌을 때 자동적으로 비디오내의 anomaly의 위치를 예측할 수 있도록 학습될 수 있다는 것입니다. 이 가정을 수행하기 위해 학습하는 동안 anomalous video segment들에 대해 높은 anomaly score를 줄 수 있도록 학습되어야 합니다.
위 figure는 1000번의 iterations 에서 8000번의 iterations 로 갈수록 anomaly 에 대해서만 높은 anomaly score를 매기는 것을 확인할 수 있습니다.
가장 주목할 점은 segment level로 annotation을 매겨 사용하지 않았으며 모델이 자동적으로 anomaly의 temporal location을 예측할 수 있다는 점입니다.
실제 세계에서 감시 카메라 비디오 영상의 대부분은 normal로 이루어져있습니다. robust한 anomaly detection 방법론이라면 normal video에는 낮은 false alarm rate를 가져야하죠. 이 점에 대해 본 논문에서는 오직 normal video에 대해서 제안된 방법론과 다른 방법론들을 적용하여 서로 비교합니다.
위 table은 제안된 방법론과 기존의 방법론 2가지에 대해 False alarm rate의 수치를 비교하여 보여주고 있습니다. 이 역시 제안된 방법론의 성능이 가장 좋은 것을 확인할 수 있죠.
Anomalous Activity Recognition Experiments
본 논문에서 각 event에 대해 50개의 video들을 사용하였으며 75 대 25의 비율로 training과 testing을 나누었습니다.
총 2가지의 baseline에 대해 진행하였으며, 4-fold cross validation을 기본으로 적용하였습니다. 첫 번째 baseline의 경우 각 16-frames clip 으로부터 나온 C3D feature를 평균화한 후 4096-D feature vector를 구성하였습니다. 이 feature vector는 nearest neighbor classifier의 input으로 사용됩니다.
두 번째 baseline의 경우 Tube of interest(ToI) pooling 층을 도입하여 C3D pipeline의 5번째 3d max pooling 층을 대체하여 사용합니다. ToI pooling 층을 모든 clip에서 feature를 추출하여 전체 video에 대해 하나의 feature vector를 출력합니다. 이 방법론은 end to end deep learning 기반의 비디오 인식 접근법이라 할 수 있습니다.
위 figure는 C3D 와 TCNN 을 본 논문에서 제안한 dataset에 적용하였을 때 결과를 confusion matrices 로 보여줍니다. 그리 좋지 않을 결과가 나오는 것을 확인할 수 있죠.
위 table은 C3D 와 TCNN 의 Activity recognition에 대한 정확도를 보여줍니다. 역시 좋지 않은 성능임을 확인할 수 있습니다.
결론적으로 이 dataset에 대해서 두 최첨단 활동 인식 기법들의 성능이 떨어지는 것을 확인할 수 있습니다. 저자는 해당 데이터셋의 비디오가 저해상도이며 가공되지 않은 감시 카메라임이 이유라고 설명하고 있습니다. 이런 이유로 제안되는 dataset이 아주 도전적이라고 설명하고 있죠.
Conclusions
본 논문은 실제 세계의 이상치 탐지를 위한 deep learning 방법론을 제안합니다. 이상치 탐지 task 는 abnormal의 복잡성이 크기 때문에 지금까지 제안된 접근방식처럼 단순히 정상 데이터만을 사용하는 것은 anomaly detection에 최적이 되지 않을 수 있습니다. 또한 대용량의 비디오 데이터를 전처리하기 위해 시간과 노동력이 낭비되는 것을 semi-supervised learning을 사용함으로써 해결하였습니다. video-level에 대해서만 annotation을 만들어 이상치 탐지의 일반적인 모델들을 학습하죠.
추가로 본 논문에서 제안한 데이터셋은 대규모이면서 다양한 class를 포함하고 있기 때문에 도전적인 데이터셋이 될 것으로 보입니다.