DOI QR코드

DOI QR Code

Video Stabilization Algorithm of Shaking image using Deep Learning

딥러닝을 활용한 흔들림 영상 안정화 알고리즘

  • Received : 2018.12.11
  • Accepted : 2019.02.08
  • Published : 2019.02.28

Abstract

In this paper, we proposed a shaking image stabilization algorithm using deep learning. The proposed algorithm utilizes deep learning, unlike some 2D, 2.5D and 3D based stabilization techniques. The proposed algorithm is an algorithm that extracts and compares features of shaky images through CNN network structure and LSTM network structure, and transforms images in reverse order of movement size and direction of feature points through the difference of feature point between previous frame and current frame. The algorithm for stabilizing the shake is implemented by using CNN network and LSTM structure using Tensorflow for feature extraction and comparison of each frame. Image stabilization is implemented by using OpenCV open source. Experimental results show that the proposed algorithm can be used to stabilize the camera shake stability in the up, down, left, and right shaking images.

본 논문에서는 딥러닝을 활용한 흔들림 영상 안정화 알고리즘을 제안하였다. 제안하는 알고리즘은 기존 몇 가지 2D, 2.5D 및 3D 기반 안정화 기술과 다르게 딥러닝을 활용한다. 제안하는 알고리즘은 흔들리는 영상을 CNN 네트워크 구조와 LSTM 네트워크 구조를 통한 특징 추출 및 비교하여 이전 프레임과 현재 프레임 간의 특징점 위치 차이를 통해 특징점의 이동 크기와 방향의 반대로 영상을 변환하는 알고리즘이다. 흔들림 안정화를 위한 알고리즘은 각 프레임의 특징 추출 및 비교를 위해 Tensorflow를 활용하여 CNN 네트워크과 LSTM 구조를 구현하였으며, 영상 흔들림 안정화는 OpenCV open source를 활용해 구현하였다. 실험결과 영상의 흔들림이 상하좌우로 흔들리는 영상과, 급격한 카메라 이동이 없는 영상을 실험에 사용하여, 제안한 알고리즘을 적용한 결과 사용한 상하좌우 흔들림 영상에서는 안정적인 흔들림 안정화 성능을 기대할 수 있었다.

Keywords

Ⅰ. 서론

2차원의 디지털 멀티미디어에서 느끼는 한계를 극복 하기 위해 3차원 가상현실이 주목 받고 있다. 하지만 3차원 가상현실을 구현하기 위해서는 많은 자원이 요구되고 있다. 반면에 가상현실의 한 분야인 증강현실은 현실세 계를 바탕으로 목적물에 대해서만 3차원 가상현실을 적용함으로써 상대적으로 용이한 구현조건을 가질 뿐만 아니라 현실세계와 가상현실에서 얻기 어려운 부가적인 정보들을 보강해 제공할 수 있는 특징을 가지고 있다[1-3].

그러나, 가상현실과 비교 했을 때 증강현실이 구현의 복잡성이 낮을 뿐이지 현실세계를 바탕으로 구현하기 때문에 현실세계 배경으로 얻기 위한 기술이 필요하다. 현실세계의 정보를 얻을 때 카메라를 이용하기 때문에 하드웨어의 성능 따라 쓰이는 기술 또한 다르다. 만약 카메라 하드웨어의 성능이 낮아 흐려진 영상을 얻게 된다면 증강현실 구현이 어려워질 수 있다. 영상이 흐려지는 이 유는 단순하게 하드웨어의 성능이 낮은 것을 사용된 것이 이유가 되지만 카메라가 자체가 흔들려 얻어진 영상 또한 흔들리는 영상을 얻기 때문에 흐려지는 문제가 발 생된다. 이를 해결하기 위한 하드웨어 및 소프트웨어 방법을 활용한다.

하드웨어를 이용한 기술로는 광학 이미지 흔들림 보정 기능(OIS, Optical Image Stabilization) 불리는 기술로 또 다른 이름으로는 Image Stabilization 또는 Vibration Reduction 불린다. 이 기술은 그림 1과 같이 기울기를 측정할 수 있는 센서를 이용하며, 흔들림을 보정할 수 있는 방향으로 렌즈를 움직이거나, 뒷부분의 센서를 움직여 흔들림을 해결한다. 비슷하지만 또 다른 방법으로는 카메라에 흔들림을 해결하는 손잡이는 장착하게 되는데 손잡이에 추를 매달아 카메라를 수직 혹은 수평 방향으 로 지속적으로 영상을 흔들림을 해결할 수 있다[4].

OTNBBE_2019_v19n1_145_f0001.png 이미지

그림 1. 광학 흔들림 보정 기술

Fig. 1. Optical Image Stabilization Technology

소프트웨어를 이용한 흔들림 보정 기술의 핵심도 비 슷하다. 움이지는 이미지의 각 프레임을 이전 프레임과 비교해 얼마나 이동했는지 파악하고, 움직임과 반대 방 향으로 이미지를 이동해 흔들림을 보정한다. 이미지의 이동성을 크기를 파악하는 방법은 다양하며, 보통 특징 점을 이용한다. 특징점은 이미지의 다른 부분과 구별되 는 정보를 가지는 부분으로 이동, 회전, 크기 변화가 있어 도 같은 특징으로 구별할 수 있다는 장점으로 이미지 내의 객체 인식 및 검출과 추적 기술에 많이 활용된다. 특징점을 이용한 흔들림 보정 과정을 정리하면 다음과 같다.

① 각 프레임 이미지에서 특정점 추출

② 각 프레임 이미지의 특징점들 중 같은 특징점 매칭

③ 매칭 된 특징점이 이동성 계산.

④ 이동 방향 반대 방향 및 크기 만큼 특징점 이동

특징점을 찾는 알고리즘은 1970년대 말에 Morvec 제곱의 합(Sum of squared difference) 방식으로 특징점을 제안하며 공식은 다음 수식 (1)과 같다.

\(S(x, y)=\sum_{u} \sum_{v} w(u, v)(I(u+x, v+y)-I(u, v))^{2}\)       [1]

이미지에서\((u, v)\)위치에 있는 픽셀의 값과 \((u, v)\)를 기준으로 \(x\)와 y만큼 이도한 값의 차를 구한다. Mora-vec은 특징점이 되려면 동서남북 네 방향으로 변화가 커야한다고 보고, \(s(0, 1), s(0, -1), s(1, 0), s(-1, 0)\) 인 값 가운데 최솟값에 해당되는 점을 특징점이라 정의 한다[5].

그 이후로 회전한 이미지에는 적용할 수 없는 Moravec의 공식의 한계로 이를 해결하기 위한 Harris Coner[6], 크기가 바뀐 이미지에는 적합하지 않는 문제를 해결하기 위한 SIFT(Scale Invariant Feature Transform)[7], SIFT의 높은 복잡도가 커 메모리와 처리 속도에 한계로 인해 모바일에 환경에는 적합하지 않는 문제를 해결한 FAST 알고리즘[7] 등 다양한 특징점 추출기 알고리즘에 대한 많은 연구가 진행되고 있다. 이러 한 특징점 추출기를 활용한 특징을 추출한 후 현재 프레 임과 이전 프레임 간의 특징점을 비교해야 한다. 한 프레임에서 이미지의 특징점은 수백개에서 수천개까지 추출 되기 때문에 빠르게 비교하려면 k 차원 트리(k-d tree)를 사용하거나, k-근접 이웃(k-nearest neighbor)을 찾는 알고리즘을 사용한다. 비교 과정을 거쳐 프레임 이미지에 서 같은 특징점 매칭을 수행하면 흔들림 영상 보정에 불 필요한 특징점을 제거하여 메모리 및 처리 속도를 높일 수 있다. 특징점 매칭 과정에서 2차원상에서 특징점의 이 동성 알 수 있다. 2차원상에서 이동은 결과 3차원에서 카메라가 이동했기 때문에 발행되는데 RANSAC(Random Sample Consensus)[8] 알고리즘을 활용하여 2차원상에서 점의 이동으로 3차원상에서 이동을 나타내는 기하학 변 환 행렬 (Geometric Transform matrix) 찾아 흔들림 영 상을 보정 할 수 있다.

최근 몇 년간 하드웨어의 급격한 발전이 있었다. 특히 연산 처리 하드웨어의 발전으로 신경 회로망을 사용하는 딥러닝 구현에 있어 연산 처리량 및 처리 속도의 한계를 해결하게 되면서 많은 관심과 연구가 활발히 진행되고 있다. 컴퓨터 비전에서도 딥러닝을 통한 영상 처리에 대 한 연구가 현재까지도 진행되고 있다.

본 논문에서는 흔들림 영상을 보정하기 위해 딥러닝을 활용한다. 제안하는 알고리즘은 흔들림 영상의 현재 프레임과 이전 프레임의 간의 특징점 비교 및 매칭 과정 에서 발생되는 특징점 이동을 딥러닝을 활용하여 이동 방향 및 크기를 추출하여 좀 더 정밀하고 빠른 흔들림 보정을 할 수 있다.

Ⅱ. 딥러닝을 이용한 특징점 이동 정보 추출

1. CNN을 이용한 특징점 추출

기존 흔들림 영상 보정을 위한 알고리즘은 특징 추출을 위한 필터 값을 수동으로 정의한다. 필터 값의 수동 정의는 실험을 통한 경험의 의한 보편적인 값은 이미 여러 논문 및 연구에서 발표되어 있다. 따라서 보편적인 값 이용한다면 흔들림 영상을 보정할 수 있다. 그러나, 다양한 환경에 유연한 성능을 가지 수는 없기 때문에 제안 하는 알고리즘은 그림 2와 같이 CNN(Convolutional Neural Network)을 통한 특징 추출을 한다. CNN은 특징을 직접 학습하기 때문에 특징을 수동으로 추출해야 할 필요가 없다.

OTNBBE_2019_v19n1_145_f0002.png 이미지

그림 2. CNN을 이용한 특징맵 추출

Fig. 2. Feature map extraction using CNN

합성곱 레이어(Convolutional layer)를 거칠수록 강한 특징점을 추출할 수 있으며, 그림 2과 같이 추출된 특징 들을 수식 (2)를 이용하여 그림 3과 같이 특징맵을 얻을 수 있다.

OTNBBE_2019_v19n1_145_f0003.png 이미지

그림 3. 특징맵

Fig. 3. Feature map

\(X_{l+1}^{t}=\sum_{i=1}^{m} \sigma_{R e L U}\left(N_{l}^{i}+X_{l}^{i}\right) \cdot \nu_{l, i}^{\prime}\)       (2)

이러한 특징들의 이동 크기와 방향은 이전 프레임과 비교하면 알 수 있다.

그림 4와 같이 각 프레임에서 현재 프레임으로에 대한 이전 프레임의 dx , dy변환과 이에 대한 흔들림 안전 화을 통한 dx, dy변환를 나타낸다.

OTNBBE_2019_v19n1_145_f0004.png 이미지

그림 4. 흔들림 영상 변환 그래프

Fig. 4. Shake image conversion graph

그림 5와 같이 각 프레임에 대한 누적 된 x와 y그래프에서 빨간색 선은 원 x와 y궤적을 나타내며, 초록색 선은 원 x와 y궤적을 Smoothed 기법을 통해 매끄러운 궤적을 그리도록 변환한다.

OTNBBE_2019_v19n1_145_f0005.png 이미지

그림 5. 각 프레임에 대한 x, y그래프

Fig. 5. x and y graphs for each frame

2. 흔들림 영상 내의 특징점 비교를 위한 LSTM

현재 사용되는 카메라의 성능은 보통 HD(High Definition, 720p, 1280x720), FHD(Full HD, 1080p, 1920x1080), UHD(Ultra HD, 4K~) 까지 높은 해상도와 24~ 60FPS 프레임으로 촬영할 수 있다.

이러한 하드웨어에서 각 프레임 간의 특징점 비교는 실제 3차원에서의 물체가 많이 이동되어야 2차원상에 특징점의 이동차가 계산할 수 있다. 또한 카메라의 성능이 마다 특징점이 이동의 유무를 이동 크기를 정의해야 한다. 만약 카메라의 움직임 또는 카메라의 흔들리는 환경 에서 촬영한 영상 내에서 빠르게 이동되는 사람이 있을 때 사람의 특징점 이동 크기 만큼 보정되면 잘못된 값으 로 보정되는 문제가 생긴다. 이런 문제는 특징점 이동 크 기를 임계값으로 크게 움직이는 특징점을 제거하고 일관 되게 같은 위치에 있는 특징점만 남겨 비교한다. 그러나 이러한 해결 방법은 하드웨의 변경 또는 촬영된 장소의 환경에 따라 임계값을 설정해야하는 문제점을 가진다. 따라서 본 논문에서는 LSTM(Long-Short Term Memory) 네트워크 통한 이전 시퀀스 별 특징점들의 이 동 정보를 바탕으로 흔들림으로 인한 특징정 이동의 임 계값을 계산하여 하드웨어 성능 및 촬영 장소에 상관없 는 강인한 특징점 추출 할 수 있다. LSTM은 RNN(Recurrent Neural Network) 의 단점이 장기 의존 성 문제[9]를 해결하기 위한 방법으로 프레임의 간격 차가 큰 특징점을 비교하게 되면 또한 잘못된 보정이 될 수 있 다. 그림 3. 과 같이 x0에서 Xt+1사이의 특징점을 비교 할 때 x0에 프레임에서는 있던 A1물체가 xt-2프레 임에서 없어지고 Xt-1프레임에서 A1물체와 비슷한 특징점을 가진 A2물체가 있다면, LSTM을 사용하지 않는 RNN 에서는 A1물체가 A2물체의 위치만큼 이 동했다고 판단할 수 있다. 이러한 문제를 해결하기 위해 LSTM 사용하는 RNN 통해 흔들리는 영상에서의 특징 점 이동 정보를 추출하여 흔들림 보정을 할 것이다.

OTNBBE_2019_v19n1_145_f0007.png 이미지

그림 6. RNN의 장기 의존성(Long-Term Dependency) 문제점

Fig. 6. Long-Term Dependency Problems of RNN

현재 프레임과 이전 프레임의 특징을 비교를 위해 제 안하는 알고리즘은 그림 7과 같은 네트워크 구조를 통해 흔들림 영상을 안정화하였다.

OTNBBE_2019_v19n1_145_f0008.png 이미지

그림 7. 제안하는 흔들림 영상 안정화 딥러닝 네트워크 구조

Fig. 7. Proposed Shake Image Stabilization Deep Learning Network Structure

Ⅲ. 실험 및 결과

제안하는 흔들림 안정화 알고리즘은 영상의 흔들림이 상하좌우로 흔들리는 영상과, 급격한 카메라 이동이 없는 영상을 실험에 사용하였다. 흔들림 안정화를 위한 알고리즘은 각 프레임의 특징 추출 및 비교를 위해 Tensorflow를 활용하여 구현하였으며, 영상 흔들림 안정 화는 OpenCV open source를 활용해 구현하였다. 즘은 각 프레임의 특징 추출 및 비교를 위해 Tensorflow를 활 용하여 구현하였으며, 영상 흔들림 안정화는 OpenCV open source 라이브러리를 활용해 구현하였다.

표 1. 흔들림 영상 안정화 실험

Table 1. Image Stabilization Experiment

OTNBBE_2019_v19n1_145_t0001.png 이미지

Ⅲ. 결론

본 논문에서는 딥러닝을 활용한 흔들림 영상 안정화 알고리즘을 제안하였다. 제안하는 알고리즘은 기존 몇 가지 2D, 2.5D 및 3D 기반 안정화 기술과 다르게 딥러닝을 활용한다. 제안하는 알고리즘은 흔들리는 영상을 CNN 네트워크 구조와 LSTM 네트워크 구조를 통한 특징 추출 및 비교하여 이전 프레임과 현재 프레임 간의 특징점 위치 차이를 통해 특징점의 이동 크기와 방향의 반대로 영상을 변환하는 알고리즘이다. CNN 네트워크 구조를 통한 특징 추출은 기존 컴퓨터 비전에서 제안된 방법들은 여러 실험을 통한 경험에서 도출되는 수동적인 필터 값을 통해 특징을 추출하는데 각 수치는 여러 환경에 유연하지 못하는 단점을 가지고 있다. 따라서 제안하는 알고리즘에서는 여러 환경에서 유연한 특징을 추출하기 위해 딥러닝을 통한 여러 필터를 적용한 특징맵들의 평균 특징맵을 추출하여 다양한 환경에서도 비슷한 성능을 가질 수 있었으며, CNN 네트워크 구조에서 이미지의 크기가 줄어들어 연산 속도를 높일 수 있었다. 또한 현재 프레임과 이전 프레임의 특징을 비교하기 위해 LSTM 네트워크 구조를 활용했으며, 이를 증명하기 위한 실험에서는 영상의 흔들림이 상하좌우로 흔들리는 영상과, 급격한 카메라 이동이 없는 영상을 실험에 사용하였으며. 흔들림 안정화를 위한 알고리즘은 각 프레임의 특징 추출 및 비교를 위해 Tensorflow를 활용하여 CNN 네트워크과 LSTM 구조를 구현하였으며, 영상 흔들림 안정화는 OpenCV open source를 활용해 구현하였다. 그 결과 표 1과 같은 결과를 얻을 수 있었다. 제안한 알고리즘을 흔들림 영상에 적용한 결과 사용한 상하좌우 흔들림 영상에서는 안정적인 흔들림 안정화 성능을 기대할 수 있었다. 그러나 급격한 회전 또는 상하좌우 흔들림 영상에서는 급격한 특징점 이동으로 이미지 워핑할 때 많이 찌그러져 알아볼 수 없는 이미지 변환이 발생되었다. 또한 이미지 워핑을 OpenCV 라이브러리를 통한 후처리를 했지만 향후 연구에서는 딥러닝을 네트워크 구조에서 한번 의 forward 프로세싱으로 이미지 워핑할 수 있는 알고리즘을 연구하고자 한다.

References

  1. Myeong-Soo Jang, Woo-Beom Lee, "Implementation of Hand-Gesture Interface to manipulate a 3D Object of AugmentedReality", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 16, No. 4, pp.117-123, Aug 2016. https://doi.org/10.7236/jiibc.2016.16.4.117
  2. Dongil O, "A Modeling of an efficiency analysis based on DEA_AR and AHP for the improvement of usefulness of the Accreditation of Hospitals", The Journal of The Institute of Internet, Broadcasting and Communication, VOL. 11 No. 7, pp.2406-2419, Nov 2010. https://doi.org/10.5762/KAIS.2010.11.7.2406
  3. Choi, Jong-Ho, "Design of Realistic Digital Micromirror System for Special Education," Journal of Korea Institute of Information, Electronics, and Communication Technology, Vol. 8, No. 2, pp. 163-168 Apr 2015. https://doi.org/10.17661/jkiiect.2015.8.2.163
  4. Seung-Kwon Lee and Jin-Heung Kong, "The Design and Evaluation of BACF/DCF for Mobile OIS Gyro Sensor's Zero Point angle Following," The Institute of Electronics Engineers of Korea - Semiconductor and Devices, Vol. 49, No. 8, pp. 16-21, Aug. 2012.
  5. Moravec, H, "Obstacle Avoidance and Navigation in the Real World by a Seeing Robot Rover", Tech Report CMU-RI-TR-3, Carnegie-Mellon University, Robotics Institute, Sep 1980.
  6. C. Harris and M. Stephens, "A combined corner and edge detector", Alvey Vision Conference, 1988. https://doi.org/10.5244/c.2.23
  7. Lowe, D.G., "Distinctive image features from scale-invariant keypoints", IJCV 2004. https://doi.org/10.1023/b:visi.0000029664.99615.94
  8. Martin A. Fischler and Robert C. Bolles, "Random Sample Consensus:A Paradigm for Model Fitting with Application to Image Analysis and Automated Cartography", Communcations of the ACM, Vol 24, No. 6 Jun 1981. https://doi.org/10.1145/358669.358692
  9. Hochreiter S, and Schmidhuber J. "Long short-term memory", US National Libray of Medicine National Institutes of Health, Vol. 15 No.9, pp. 1735-80 Nov 1997.