728x90
반응형

 

영상감시(Video Surveillance) 분야에서는 CCTV 영상에서 사람의 비정상적인 행위를 탐지하거나, 사물의 비정상 상황을 인식하는 일이 중요하다. 예를 들어, 고속도로에서 차량 전복 사고가 일어나거나, 어린이 보호구역 보행로에 자전거 및 차량 출현 또는 지하철역에서 싸움 등이 발생하는 비정상(Abnomal) 케이스들을 탐지하여 사고를 예방하거나, 사고에 대한 적절한 대응을 해야한다. 이상 탐지(Anomaly Detection) 기술은 사실 오래전부터 연구되어왔던 분야이다. 이는 영상감시 분야 뿐만 아니라, 머신비전(Machine Vision) 분야에서 장비로부터 측정된 시계열 데이터를 기반으로 한 고장 예측, 제품 결함 검사 등 다양한 환경에 접목 될 수 있다. 

 

 

 

1. 이상 탐지(Anomaly Detection)

 

이상 탐지란 말 그대로 "이상한 것을 찾는 것"이다. 더 자세히 설명하자면 정상(Normal) 데이터와 Abnormal(비정상, 이상치, 특이치) 데이터를 구별해내는 문제이다. 딥러닝 분야에서는 이상 탐지 문제를 아래와 같은 방식으로 풀 수 있다.

 

  • Supervised Learning
  • Semi-supervised (One-Class) Learning
  • Unsupervised Learning

 

Supervised Learning

먼저, Supervised Learning 방식은 주어진 학습 데이터 세트가 정상 및 비정상 데이터 모두 라벨(Label)이 존재한다. 이는 다른 방법 대비 정확도가 굉장히 높다는 특징을 가진다. 그래서 높은 정확도를 요구로 하는 경우에 주로 사용되며, 비정상 데이터들을 다양하게 보유할 수록 더 높은 정확도를 가질 수 있다. 그러나 실세계에서는 정상 데이터들보다 비정상 데이터들의 발생 빈도가 현저히 낮기 때문에 클래스 불균형(Class-Imbalance) 문제를 겪게 된다. 이러한 문제를 해결하기 위해 데이터 증강(Data Augmentation), 손실 함수(Loss Function) 재설계, 배치 샘플링(Batch Sampling) 등 다양한 연구가 수행되고 있다. 하지만 가장 큰 문제는 비정상 데이터들을 확보하는데 많은 시간과 비용이 소요된다는 것이다. 예를 들면 제조업에서 수백만장의 정상 데이터들이 취득되는 동안 단 1장 또는 2장의 비정상 데이터가 취득되기 때문에 현장에 적용하기에는 무리가 있다. 

 

Semi-supervised Learning

이렇게 클래스 불균형 문제가 심각한 경우에 정상 데이터들만 가지고 모델을 학습하기도 하는데, 이 방식을 One-class Classification 또는 Semi-supervised Learning 이라고 한다. 이 방법의 핵심 아이디어는 정상 데이터들을 내포하는 discriminative boundary 를 설정하고, 이 boundary 를 최대한 좁혀 boundary 밖에 있는 데이터들을 모두 비정상으로 간주하는 것이다. 하지만 이러한 방법은 어느 수준까지 정상으로 간주해야되는 것인지를 결정해야하는 문제가 있다. 

 

Deep SVDD (http://data.bit.uni-bonn.de/publications/ICML2018.pdf)

 

Unsupervised Learning

앞서 Supervised 및 Semi-supervised Learning 방법은 입력 데이터가 정상 데이터인지 알기 위해서는 모든 정상 데이터에 대한 라벨이 필요하다. 하지만 Unsupervised Learning 방법은 대부분의 모든 데이터가 정상 데이터라고 간주를 하고, 라벨 필요 없이 학습을 시키는 방식이다. 가장 단순하게 주성분 분석(PCA)을 이용하여 차원을 축소하고, 복원을 하는 과정을 통해 비정상 데이터들을 검출 할 수 있다. 또한 신경망 기반으로는 오토인코더(Autoencoder) 방법론이 주로 사용되고 있다고 한다. 오토인코더는 입력을 latent variable 로 압축하는 인코딩(Encoding) 과정과 이를 다시 원본과 가깝게 복원하는 디코딩(Decoding) 과정으로 진행되며, 이를 통해 데이터의 중요한 정보들만 압축적으로 학습할 수 있기 때문에 PCA와 유사하게 동작한다고 한다. 아래 그림과 같이 오토인코더는 입력을 그대로 출력(복원) 하도록 하는 목적 함수를 갖는다. 보통 MSE(Mean Squared Error, 평균 제곱 오차) 손실함수를 사용하며, 중간에 병목(bottle-neck)이 있어 고차원 공간 상의 입력 데이터를 저차원의 공간으로 매핑하여 latent variable 로 표현했다가, 다시 입력과 같은 고차원 공간으로 복원해야한다. 여기서 인코더와 디코더는 여러개의 비선형(Non-linear) 레이어(계층)를 가질 수 있으며, non-linear activation 함수를 없애서 선형적인 형태로 오토인코더를 구성할 경우 PCA 처럼 동작하게 된다. 

 

마키나락스 김기현님 블로그 : https://kh-kim.github.io/blog/2019/12/15/Autoencoder-based-anomaly-detection.html

 

오토인코더를 사용하면 데이터를 라벨링하지 않아도 데이터의 주성분이 되는 정상 영역의 특징들을 학습 할 수 있다. 이 때 학습된 오토인코더에 정상 데이터를 넣어주면 정상 상태를 잘 복원하기 때문에 입력 및 출력의 차이가 거의 발생하지 않는 반면, 비정상 데이터를 넣게 되면 오토인코더는 결과물을 정상 데이터 처럼 복원하기 때문에 비정상 데이터를 검출 할 수 있게된다. 

 

Nakazawa, Takeshi, and Deepak V. Kulkarni. "Anomaly Detection and Segmentation for Wafer Defect Patterns Using Deep Convolutional Encoder–Decoder Neural Network Architectures in Semiconductor Manufacturing."  IEEE Transactions on Semiconductor Manufacturing  32.2 (2019): 250-256.

 

하지만 오토인코더의 압축 정도 즉, latent variable의 dimension 같은 hyper-parameter 에 따라 전반적인 복원 성능이 좌우되기 때문에 정확도가 Supervised 에 비해서는 "불안정" 하다는 단점이 존재한다. 또한 오토인코더의 difference map을 어떻게 계산할 것인지, 어떤 손실 함수를 사용하여 오토인코더를 학습시킬 것 인지 등 여러 요인에 따라 성능이 크게 달라질 수 있다고한다. 하지만 이는 시간과 비용이 많이 드는 라벨링 과정이 필요없기 때문에 매력적인 방법임이 틀림없다. 

 

 

 

2. 비정상 및 정상 데이터 정의에 따른 이상 탐지

 

비정상 데이터를 정의하는 방식에 따라 이상 탐지를 아래와 같이 구분하였으며, 이에 따라 연구의 방향이 달라질 수 있다.

 

  • Novelty Detection
    • 현재 보유중인 데이터세트에 이전에 없던(Unseen) 형태의 새로운 데이터가 들어오는 경우
      • 강아지 데이터세트에 새로운 종의 강아지가 들어오는 경우
  • Outlier Detection
    • 현재 보유중인 데이터세트에 이전 데이터와 전혀 관련이 없는 새로운 데이터가 들어오는 경우
      • 강아지 데이터세트에 호랑이가 들어오는 경우

비정상 데이터 뿐만 아니라, 정상 데이터가 Multi-class 인 경우에도 이와 같은 개념을 적용할 수 있으며 이를 In-distribution 이라고 표현한다. 이러한 데이터 세트로 신경망을 학습 시킨 뒤, 테스트 단게에서 비정상 데이터를 찾는 문제를 Out-of-distribution Detection 이라고 부른다. 

 

 

 

 

 

 

 

 

3. 영상감시 분야에서의 이상탐지(또는 이상 행위 탐지)

 

앞서 언급했듯, 영상감시 분야에서 싸움, 폭행, 쓰러짐이나 자율주행 분야에서의 보행자 교통사고와 같은 이상 행위들을 탐지할 필요가 있다. 과거의 방식은 optical flow 처럼 매 프레임마다 움직임의 변화량을 측정하여 갑작스러운 변화가 일어났을 때 보통과 다른 상황이라고 판단하였다. 최근에는 앞서 설명한 오토인코더 방식을 사용하여 이상 상황을 탐지할 수 있다. CCTV 화면에서 이상 행위는 불규칙하게 이루어지는 인간의 움직임 패턴을 분석하여 행위를 판단 할 수 있다.

 

 

스켈레톤(Skeleton) + 오토인코더를 이용한 이상 행위 탐지

Morais, Romero, et al. "Learning regularity in skeleton trajectories for anomaly detection in videos."  Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition . 2019.

 

Morais, Romero, et al 의 논문 "Learning Regularity in Skeleton Trajectories for Anomaly Detection in Videos" 에서는 오토인코더를 사용하여 스켈레톤 궤적의 시공간 패턴을 특징으로 하는 오토인코더 형식의 규칙성(Regularity) 모델을 학습함으로써 이상 행위를 탐지하였다. 정상적인 행위와 비교하였을 때 특이한 스켈레톤의 자세를 취하게 되므로 이 차이를 식별하여 이상 행위를 탐지하게 되는데, 이 때 인간의 동작들은 주로 local factor 에 의해 영향을 받게된다. 한편 원거리에서의 동작들은 global movement 으로 치부되어 미세한 움직임들은 대부분 무시된다는 문제점이 있다. 그래서 이 논문에서는 스켈레톤의 움직임을 "global" 및 "local" 의 구성요소로 나누어 학습한다. global 구성요소들은 바운딩 박스의 모양, 크기 및 변형이 거의 없는 큼지막한 움직임(rigid movement)에 대한 정보를 전달한다. 반면 local 구성요소는 스켈레톤 움직임의 내부 변형들을 모델링하고 환경과 관련하여 스켈레톤의 절대 위치(absolute position)를 무시하도록 한다. 아래 그림은 이 논문의 MPED-RNN(Message-Passing Encoder-Decoder Recurrent Network) 아키텍쳐이다.

Morais, Romero, et al. "Learning regularity in skeleton trajectories for anomaly detection in videos."  Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition . 2019.

MPED-RNN 모델은 하나의 프로세스의 내부 상태가 다른 프로세스의 입력에 대한 추가적인 특징으로 사용되는 두 개의 상호작용 하위 프로세스로 global 및 local 특징들을 모델링한다. 이 모델은 두 개의 반복적인 인코더-디코더로 구성되어있다. 이 구조는 LSTMAE(LSTM autoencoder)와 유사하지만, MPED-RNN은 브랜치간 메세지 전달 메커니즘을 통해 구성 요소 간의 상호 종속성을 모델링한다. LSTM의 단순성과 유사한 성능을 위해 MPED-RNN의 모든 부분에서 GRU(Gated Recurrent Unit)를 사용한다. 각 time step 에서 한 브랜치의 GRU 유닛은 다른 브랜치로부터 이전 시간 단계에서의 내부 상태를 알리는 메세지를 받는다. 이는 추가 입력으로 처리되어 GRU 구조에 통합되며, 다른 지점에도 동일하게 적용된다. 

 

 

비디오 정보 + 오토인코더를 이용한 이상 행위 탐지

 

모션 정보는 비디오에서 이상 행위를 탐지하기 위한 핵심이기 때문에 Zhu, et al. 의 논문 "Motion-Aware Feature for Improved Video Anomaly Detection" 에서는 모션을 인식하기 위한 temporal augmented network 를 제안하였다. 또한 attention block 을 사용하여 Multiple Instance Learning(MIL) ranking model과 통합하였다. 학습된 attention weight 는 이상 행위를 담은 비디오와 일반 비디오를 잘 구분해낼 수 있다. 여기서 attention block 은 말 그대로 인코더에서 해당 비디오를 더욱더 집중해서 참고한다는 것이다. 

 

Zhu, Yi, and Shawn Newsam. "Motion-Aware Feature for Improved Video Anomaly Detection."  arXiv preprint arXiv:1907.10211  (2019).

 

다른 논문들과의 차별점은 attention block 을 사용하여 MIL 손실과 함께 사용되어 temporal context 를 학습에 통합시킨다는 것인데, 위 그림 (a)와 같이 강도가 든 상황에서 주의를 기울이지 않으면 파란색 그래프와 같이 500 ~ 1600 프레임까지의 이상 상황을 정상이라고 판단하게 된다. 하지만 attention block 을 사용할 경우 녹색 그래프와 같이 해당 프레임에서 이상 상황을 감지해낼 수 있다. 정상 상황 (b) 에서는 attention block 이 없을 경우 중간에 두개로 그룹화되는 현상이 발생하여 오인할 수 있는 상황이 발생하는 반면, attention block 이 존재할 경우에는 그러한 현상이 발생하지 않는다. 

 

 

 

종합 정보(객체 탐지 + 오토인코더 + time-stamp 등)를 이용한 이상 탐지

교통 상황에서 Time-stamp를 인식하여 이상 상황을 탐지하는 것은 지능형 교통 시스템에서 필수적인 작업이다. 비디오에서 이상 탐지는 비정상 이벤트 발생이 드물고, 다른 유형의 이상 동작이 일관되지 않고 정상 및 비정상 시나리오에 대해 사용 가능한 데이터가 매우 불균형하기 때문에 까다로운 문제이다. 또한 교통 상황에서 비정상 상황은 시간, 장소 및 환경에 따라 달라질 수 있다. 예를 들어 도로에서 자동차를 운전하는 것은 정상이지만, 고속도로에서 정체된 자동차는 이상으로 간주된다. 또한 이와는 달리 주차장에서 움직이지 않는 자동차는 비정상행동이라고 판단하지 않는 것이 이러한 예시이다. 마찬가지로 신호등 근처에서 정차된 차량은 신호가 빨간색 일 때는 정상이지만 녹색 일 때는 비정상이다. 그래서 적절한 특징 추출, 정상 교통 상황 정의, 정상 및 비정상 데이터의 클래스 불균형 분포 처리, 비정상 동작의 변화 해결, 비정상적인 이벤트의 발생 감소, 환경 변화, 카메라 움직임 등이 앞으로 해결해야하는 과제이다. 

 

 

Biradar, Kuldeep Marotirao, et al. "Challenges in time-stamp aware anomaly detection in traffic videos."  arXiv preprint arXiv:1906.04574  (2019).

 

Kuldeep Marotirao Biradar, et al. 의 논문 "Challenges in Time-Stamp Aware Anomaly Detection in Traffic Videos" 에 의하면 이상 상황을 탐지하기 위해 비디오의 모션 패턴을 학습하는 3단계의 파이프라인을 제안한다. 먼저 위 그림 신경망 처럼, 움직임이 없는 객체를 식별하기 위해 최근 프레임으로부터 배경을 추출한다. 신경망은 정적 객체와 동적 객체를 구분하기 위하여 마지막 몇 프레임에서 객체 움직임을 학습해낸다. 이러한 배경 이미지는 프레임 내에서 정상 및 비정상 동작을 localization 하는데 사용된다. 그 다음 추정된 배경에서 관심 대상을 검출한다. 관심 대상은 차량 및 신호등 등이 포함될 수 있는데, 이는 종합적인 상황 인식을 위함이다. 마지막 단계에서는 시간적으로 일치하지 않는 오탐지를 제거하는 알고리즘을 제안하였는데, 이 time-stamp aware anomaly detection 알고리즘에 기초하여 교통 상황에서의 이상 탐지를 수행하게 된다.  

 

 

 

 

 

 

 

 

 

 

 

 

 

참고자료 1 : 

http://research.sualab.com/introduction/review/2020/01/30/anomaly-detection-overview-1.html?fbclid=IwAR3Tt6Jqm0uMY-1Z1JiQHR5oXXAYeVDY2uwf_R1ttcYM0NpOTsyCbwInOuY

 

Anomaly Detection 개요: (1) 이상치 탐지 분야에 대한 소개 및 주요 문제와 핵심 용어, 산업 현장 적용 사례 정리

안녕하세요. 이번 포스팅에서는 Anomaly Detection(이상 탐지)에 대해 소개를 드리고자 합니다. Anomaly Detection이란, Normal(정상) sample과 Abnormal(비정상, 이상치, 특이치) sample을 구별해내는 문제를 의미하며 수아랩이 다루고 있는 제조업뿐만 아니라 CCTV, 의료 영상, Social Network 등 다양한 분야에서 응용이 되고 있습니다. 그러나 Anomaly Detection 용어 외에도 다양한 용어

research.sualab.com

 

참고자료 2 : 

http://intothedata.com/02.scholar_category/anomaly_detection/

 

이상 감지 - Anomaly Detection :: 인투더데이터

이상 감지 - Anomaly Detection 개요 - overview 한글 및 한국어로는 흔히 “이상감지” 또는 “이상징후감지”라고 읽고 쓴다. 영어로는 “anomaly detection” (“어노멀리 디텍션”) 이라고 한다. 이상감지(anomaly detection)는 데이터 분석의 관점의 의미로 용어를 분류한 것인데 학술적으로 데이터마이닝에 일부로 보고 있다. 이상감지 기법은 근래에 갑지기 생긴 것은 아니며 상당히 오래전 부터 연구되어 왔지만 빅데이

intothedata.com

 

참고자료 3 : 

https://blog.naver.com/ehdrndd/221740570509

 

Anomaly Detection

​비정상 탐지. ​비행기 엔진의 정상여부 판단.​수집한 데이터 x로 부터 확률분포 p(x)를 만들어 새로운 ...

blog.naver.com

 

참고자료 4 : 

https://kh-kim.github.io/blog/2019/12/15/Autoencoder-based-anomaly-detection.html

 

Autoencoder based Anomaly Detection - Ki's blog

Autoencoder based Anomaly Detection 이번 포스팅에서는 오토인코더 기반의 이상탐지(anomaly detection)에 대해서 살펴보도록 하겠습니다. 오토인코더는 입력을 그대로 출력(복원)해내도록 하는 목적 함수를 갖습니다. 따라서 보통 MSE 손실 함수를 사용하며, 중간에 bottle-neck(병목)이 있어 고차원 공간 상의 입력 데이터를 저차원의 공간으로 맵핑(mapping)하여 잠재적인 변수로 표현(latent represe

kh-kim.github.io

 

참고자료 5 :

https://github.com/hoya012/awesome-anomaly-detection

 

hoya012/awesome-anomaly-detection

A curated list of awesome anomaly detection resources - hoya012/awesome-anomaly-detection

github.com

 

728x90
반응형