빗줄기 방향과 강도를 고려한 심층 합성곱 신경망 기반의 빗줄기 제거 기법
초록
최근 인공지능 기술의 발달로 무인자동차, 무인드론 및 자율운항선박시스템 등이 개발되고 있다. 그러나 컴퓨터 비전 기반의 보행자 검출, 영상분할 같은 기법은 기상 환경에 상당한 영향을 받는다. 특히 비가 내리는 상황에서 영상을 획득할 때 캡처된 영상에서 빗줄기 패턴이 형성되고 이러한 빗줄기 패턴은 컴퓨터 비전 알고리즘에서 사용되는 특징 추출에 부정적인 영향을 줄 수 있다. 따라서 본 논문에서는 빗줄기의 강도와 방향을 고려한 심층 합성곱 신경망 기법을 제안하고자 한다. 특히 빗줄기 강도와 방향을 구별 짓기 위한 심층 합성곱 신경망과 빗줄기 타입 별 빗줄기 제거를 위한 잔차 네크워크 즉, 두 종류의 서브 네트워크를 학습해서 빗줄기를 제거하고자 한다. 제안한 기법을 적용할 때, 기존의 방법보다 빗줄기 제거와 디테일 보존 성능 측면에서 더 나은 결과를 얻을 수 있었으며 정량적 화질 평가에서도 우위를 달성할 수 있었다.
Abstract
Recently, autonomous cars, autonomous drones, and self-driving ship systems are being developed, thanks to the development of artificial intelligence technologies However, computer vision algorithms such as pedestrian detections and image segmentations, are significantly affected by weather conditions. When capturing images in a rainy day, rain streaks are formed in the captured images, thereby having negative effects on feature extractors used in computer vision algorithms. Therefore, this paper proposes the deep convolution neural networks that consider the strength and orientation of rain streaks. More specifically, in this paper, two types of sub-networks are learned for rain streaks removal. One is to detect the strength and orientation of rain streaks and the other is to remove rain streaks via residual networks, which are trained optimally to each type of rain streaks. Experimental results show that the proposed method is more effective in removing rain streaks and preserving details than the conventional methods. Moreover, quantitative image quality assessments also show that the performance of the proposed method is superior to the conventional methods.
Keywords:
rain removal, residual networks, deep convolutional neural networks, sparse codingⅠ. 서 론
최근 컴퓨터 비전 기술의 비약적인 성장으로 인해 인공지능 기반의 컴퓨터 비전 기술이 무인 자동차, 자율운항운행시스템, 무인 드론 분야에서 활발히 적용되고 있다. 그러나 이러한 컴퓨터 비전 알고리즘은 청명한 날씨에서 또는 조도가 충분한 환경에서 촬영된 것을 전제로 하고 있다. 즉 입력 영상에 잡음, 블러링, 헤이즈, 빗줄기와 같은 결함이 없는 상태를 원한다. 특히 비가 내리는 상황에서 영상을 촬영하게 되면 원치 않는 빗줄기 패턴이 생성된다. 이러한 빗줄기 패턴은 컴퓨터 비전 알고리즘에서 수행되는 특징 추출 과정에 부정적인 영향을 주게 되고 결국 영상 인식의 성능 저하로 직결된다. 따라서 폭우와 같이 비가 내리는 상황에서 영상 인식 성능을 개선하기 위해서는 빗줄기 영상에서 빗줄기 패턴을 제거하는 기법이 필요하다.
기존의 빗줄기 제거 기법은 크게 비디오 기반 및 단일 영상 기반으로 분류될 수 있다. 그러나 본 연구에서는 단일 영상 기반의 빗줄기 제거 기법에 초점을 두고자 한다. 단일 영상 기반으로 빗줄기 제거를 위해, 먼저 수작업 기반의 빗줄기 특징을 모델링한 후 빗줄기 영역을 검출하고 비국부 필터링 기법 또는 인페인팅 기법을 적용해서 빗줄기를 제거할 수 있다[1]. 그러나 기존의 수작업 기반의 빗줄기 특징 추출은 그 성능의 한계로 인해 최근에는 표현 학습(Representation Learning) 기법이 주목을 받고 있다.
대표적인 표현 학습 기법에는 사전 학습(Dictionary Learning)과 심층 학습(Deep Learning) 기법이 있다. 먼저, 사전 학습 기반의 빗줄기 제거 기법[2]은 입력 영상에서 전체 사전을 학습한 뒤 호그(Histogram-of-the-Oriented Gradients) 특징[3]에 기초해서 빗줄기 사전을 추출한다. 그런 후 빗줄기 사전에 대응하는 스팔스 코드(Sparse Codes)의 값을 영으로 만들어 줌으로써 빗줄기 패턴을 제거한다. 이 기법은 사전 학습과 스팔스 코딩 기반의 빗줄기 제거 기법을 최초로 제시하면서 빗줄기 제거 가능성을 보여 주었다.
그러나 전체 사전에서 빗줄기 사전을 추출할 때 수작업 기반 즉, 호그 특징 추출 기법을 적용하기 때문에 빗줄기 사전 추출 과정에서 오류가 발생할 수 있다. 이로 인해 결과 영상에서 빗줄기와 객체의 디테일 성분이 동시에 제거되는 단점이 발생하게 된다. 이를 개선하기 위해 빗줄기 영상에서 빗줄기가 포함된 패치를 따로 추출해서 빗줄기 사전을 학습한 후에 빗줄기 영역을 검출하고 검출된 영역에서 추정된 스팔스 코드의 값을 수축하는 기법이 개발되었다[4]. 이 기법은 기존의 방법보다 다양한 빗줄기 패턴을 제거할 수 있는 장점이 있으며 객체의 디테일도 선명하게 보존할 수 있다. 이와 유사하게 가우시안 혼합 모델을 사용해서 빗줄기 패턴을 학습하는 기법도 제안되었다[5].
그러나 이 기법은 빗줄기 영역이 어디에 존재하는지 사용자에 의해 필수적으로 지정되어야 한다. 즉, 빗줄기 영역 검출 과정이 배제되어 있다. 이렇게 빗줄기 영역이 주어진 경우 빗줄기 패치를 추출해서 가우시안 혼합 모델을 학습하고 빗줄기 패턴을 제거한다.
심층 학습 기반의 빗줄기 제거 기법은 빗줄기 영상과 그에 대응하는 빗줄기가 없는 선명한 영상을 수집해서 기존의 다층 신경망(Multilayer Neural Networks)[6][7]에서 은닉 층의 개수를 증가한 후 학습하는 기법을 말한다. 앞서 말한, 사전 학습 기법이 에지와 같은 저수준의 특징을 추출할 수 있는 얇은 학습(Shallow Learning)이라면 심층 학습 기법은 다양한 은닉 층을 스택으로 쌓아서 저수준에서 고수준까지의 특징을 자동으로 추출하면서 빗줄기 영역을 검출하고 동시에 빗줄기를 제거하는 깊은 학습에 속한다.
따라서 현재 보고된 논문에 따르면 [6] 심층 학습 기반의 빗줄기 제거 기법은 사전 학습이나 스팔스 코딩 기반보다 더 우수한 성능을 보이고 있다. 심층 학습 기반의 빗줄기 제거 기법은 학습을 할 때 사용된 아키텍처에 따라 분류될 수 있다. 가장 간단한 아키텍처는 기존의 다층 신경망에서 은닉 층의 개수만 증가시켜 입력 빗줄기 영상과 빗줄기가 없는 선명한 원본 영상을 학습하는 방식을 취한다.
그러나 이러한 아키텍처는 출력 영상이 취할 수 있는 값의 범위가 넓기 때문에 학습 시간이 오래 걸리거나 학습 성능이 떨어질 수 있다. 이러한 문제를 극복하기 위해 최근에는 잔차 네트워크(Residual Networks) 기법이 제안되었다[6]. 이 네트워크는 기존과 동일하게 입력 계층에서는 빗줄기 영상을 입력으로 받지만 손실 계층에서는 빗줄기 영상에서 원본 영상을 뺀 차 영상을 입력으로 받는다. 이 잔차 네트워크 기반의 빗줄기 제거 기법은 빗줄기 제거 측면이나 객체의 디테일 보존 측면에서 상당한 개선을 달성하였다.
그러나 여전히 화질 개선의 여지가 남아 있다. 특히 기존의 잔차 네트워크는 입력 빗줄기의 다양한 패턴이나 굵기에 강인한 성능을 보유하기 어렵다. 따라서 본 논문에서는 빗줄기의 강도와 방향에 따른 심층 합성곱 신경망 기반의 빗줄기 제거 기법을 제안하고자 한다. 특히 빗줄기 강도와 방향을 구별 짓기 위한 심층 합성곱 신경망과 빗줄기 강도와 방향에 따른 빗줄기 제거를 위한 잔차 네트워크 즉, 두 종류의 서브 네크워크를 학습하는 기법을 제안하고자 한다.
이 논문의 구성은 다음과 같다. 먼저 제 2장에서는 관련 연구를 소개하고 문제점을 분석한 후, 제 3장에서는 제안한 빗줄기 제거 기법에 대해 자세히 설명하고자 한다. 제 4장에서는 제안한 기법의 실험 결과 및 평가를 분석하고, 마지막 제 5장에서는 결론 및 향후 연구에 대해 고찰하고자 한다.
Ⅱ. 관련 연구
2.1 사전 학습 기반의 빗줄기 제거 기법
이 기법은 빗줄기가 포함된 패치와 빗줄기가 없는 일반 패치를 각각 수집한 후, 빗줄기 사전과 빗줄기가 아닌 사전을 학습한다[2].
(1) |
여기서 Y는 빗줄기 패치들 또는 빗줄기 없는 원본 패치들을 담고 있다. 다시 말하면, Y는 각 패치를 벡터로 변환해서 열 방향으로 저장하고 있다. D는 학습될 사전을 의미하며 A는 D에 대응하는 스팔스 코드를 열 방향으로 포함한다. 그리고 수식 1의 두 번째 항목은 D의 열벡터에 대응하는 스팔스 코드가 l0 - 놈을 만족해야 된다는 제약 조건을 의미한다. 즉, 대부분의 값이 0이어야 한다. 수식 (1)을 만족하는 빗줄기 사전과 빗줄기가 아닌 사전을 학습한 후, 입력 테스트 패치로부터 빗줄기를 제거한다. 빗줄기 제거 수식은 아래와 같이 표현된다.
(2) |
여기서 R은 입력 영상 x로부터 i번째의 패치를 추출하기 위한 연산자이다. 그리고 추출된 패치 Rix는 사전 D와 스팔스 코드 αi의 곱 즉, Dαi로 표현된다. D는 빗줄기 사전과 빗줄기가 아닌 사전 즉, Dr와 Dn으로 다시 분해가 되고, 빗줄기를 제거하기 위해서는 빗줄기 사전 Dr에 해당하는 스팔스 코드(αr)의 값을 영으로 설정하면 된다. 이는 입력 패치(Dαi)에서 빗줄기 사전에 의해서 만들어지는 빗줄기 패치 즉, Drαr을 뺀 것을 의미한다. 수식 (2)는 학습된 두 종류의 사전을 가지고 빗줄기를 제거하는 기법이지만 두 종류의 사전이 상관성을 가질 수 있기 때문에 대비가 떨어지고 경계면 결함이 발생할 수 있다.
2.2 스팔스 수축 기반의 빗줄기 제거 기법
기존의 세로 방향의 빗줄기 패턴에 최적화된 사전 학습 기반의 빗줄기 제거 기법을 보완하기 위해 스팔스 코드의 수축 모델링에 기반한 빗줄기 제거 기법이 제안되었다[4]. 이 기법은 입력 영상에서 빗줄기 영역을 확률 값으로 수치화해서 그 값을 사용해서 빗줄기 사전과 빗줄기가 아닌 사전에 대응하는 스팔스 코드의 값을 선형적으로 바꾸어 준다. 제안된 스팔스 코드의 수축 모델은 아래와 같다.
(3) |
식 (2)와 달리, 식 (3)에서는 스팔스 코드(αr)의 값에 와 을 곱해준다. 이때 기본적인 스팔스 코드의 수축 방식은 빗줄기 영역에서는 빗줄기 사전에 대응하는 스팔스 코드 값을 영에 가깝도록 설정하고, 빗줄기가 없는 영역에서는 빗줄기 사전과 빗줄기가 없는 사전에 대응하는 와 값을 1에 가깝도록 설정해준다. 참고로 와 는 [0-1] 사이에 존재한다. 이렇게 스팔스 코드 수축 모델링을 적용함으로써 빗줄기 영역에서는 빗줄기를 제거하고, 객체 영역에서는 객체의 에지나 디테일 성분을 유지할 수 있게 된다.
그러나 이러한 빗줄기 사전 학습 기반의 빗줄기 검출 기법은 저주파 영역에서 빗줄기와 객체의 에지 성분을 잘 분류하지 못한다. 이로 인해 빗줄기 제거 과정 동안에 객체 내부의 저주파 성분이 제거되는 문제가 발생한다. 이를 보완하기 위해, 최근에는 심층 합성곱 신경망이 사전 학습 대신에 스팔스 코드의 수축 값을 추정하기 위해 사용되었다[8]. 즉, 빗줄기 영역만 심층 합성곱 신경망으로 추정하고 빗줄기 제거 과정은 여전히 사전 학습 기반으로 수행된다. 따라서 패치 기반의 사전 학습 기법은 다양한 빗줄기의 강도나 방향에 대해서 빗줄기 제거 성능에서 한계를 가질 수 있다.
2.3 기존의 잔차 네트워크 기반의 빗줄기 제거
기존의 심층 합성곱 신경망 기법은 출력 영상이 취할 수 있는 값의 범위가 넓기 때문에 학습 시간이 오래 걸리거나 학습 성능이 떨어질 수 있다. 이러한 문제를 극복하기 위해 잔차 네트워크가 제안되었다[6]. 이 네트워크는 빗줄기 영상과 빗줄기 영상에서 원본 영상을 뺀 차 영상을 훈련 영상으로 사용한다. 따라서 손실 계층의 목적 함수는 다음과 같이 정의될 수 있다.
(4) |
여기서 X와 Y는 각각 빗줄기 영상과 원본 영상을 나타낸다. 그리고 h는 잔차 네트워크이고, F는 프로베니우스 놈(Frobenius Norm)에 해당된다. 수식 (4)에서 보듯이 잔차 네트워크는 빗줄기 영상에서 원본 영상을 뺀 차 영상을 학습한다. 따라서 잔차 네트워크는 출력 계층에서의 값의 범위가 상대적으로 좁기 때문에 기존의 심층 합성곱 신경망보다 학습의 정확도를 좀 더 개선할 수 있다. 이러한 잔차 네트워크 기반의 빗줄기 제거 기법은 빗줄기 제거나 객체의 디테일 보존 측면에서 상당한 개선을 달성하였다. 그러나 잔차 네트워크 기반의 빗줄기 제거 기법도 빗줄기의 방향과 굵기가 다양하게 가변될 때 빗줄기 제거의 성능이 떨어지게 된다.
2.4 기여도
기존의 심층 학습 기법이나 잔차 네크워크와는 달리 이 논문에서는 빗줄기의 강도와 방향을 고려한 심층 합성곱 신경망 기반의 빗줄기 제거 기법을 제안한다. 특히 빗줄기의 강도와 방향을 분류하기 위해 기존의 VGG 신경망 모델[9]을 미세 튜닝하는 과정과, 빗줄기 강도와 방향에 따른 잔차 네트워크 기반의 빗줄기 제거 기법을 새롭게 소개하고자 한다. 또한 제안한 두 개의 서브 네트워크로 구성된 심층 학습 기반의 빗줄기 제거 기법은 기존의 신경망 기법보다도 빗줄기 제거 측면이나 객체의 디테일 보존 능력 측면에서 만족할만한 성과를 달성하였다. 더 나아가 제안한 빗줄기 제거 기법이 객체 검출 인식률을 얼마나 제고할 수 있는지 그 효과성도 검증해 보았다. 그리고 제안한 두 종류의 서브 네트워크 기반의 심층 합성곱 신경망은 비단 빗줄기 제거뿐만 아니라 눈 제거(Snow Removal)와 같은 분야에도 응용될 수 있을 것으로 보인다.
Ⅲ. 제안한 빗줄기 방향 및 강도를 고려한 심층 합성곱 신경망 기반의 빗줄기 제거 기법
3.1 제안한 접근 방법
제안한 빗줄기 제거 기법은 두 종류의 서브 네트워크로 구성되어 있다. 하나는 빗줄기의 강도와 방향을 분류하기 위한 서브 네트워크이고, 다른 하나는 빗줄기의 강도와 방향에 따른 빗줄기 제거를 위한 서브 네트워크이다. 첫째, 본 연구에서는 빗줄기 분류를 위해 기존의 심층 합성곱 신경망 모델인 VGG-16을 사용하고자 한다. 이 모델은 일반화 된 분류 능력이 있음을 이미 입증된 상태이다[9]. 그리고 빗줄기 제거를 위해서는 잔차 네트워크 기반의 심층 합성곱 신경망 구조를 사용한다. 그 이유는 잔차 네트워크는 잡음 제거와 같은 영상 복원에 효과적인 성능을 보이고 있기 때문이다.
3.2 신경망 기반의 빗줄기 강도와 방향 분류
빗줄기의 강도와 방향에 따라 입력 영상의 빗줄기 패턴을 분류하기 위해 본 연구에서는 미리 학습된 VGG-16 심층 합성곱 신경망을 사용하고자 한다. 본 연구에서는 총 5종류의 빗줄기 타입에 대해 분류하고자 한다. 이를 위해 미리 학습된 VGG-16 모델을 미세튜닝 하였다. 다시 말하면, 기존의 VGG-16 모델의 맨 마지막 계층의 1000개의 노드 수를 5개의 노드 수로 변경한 후 VGG-16 신경망을 재학습하였다.
그림 1은 VGG-16 신경망의 아키텍처를 보여주고 있다. VGG-16 신경망은 입력 계층, 합성곱 계층(Convolution Layer)과 풀링 계층(Pooling Layer), 정류 선형 유닛 계층(Rectified Linear Unit Layer: ReLU Layer), 완전연결계층(Fully-Connected Layer), 소프트맥스 계층(Softmax Layer), 로그 손실 계층(Log Loss Layer)으로 구성되어 있다.
입력 계층은 224×224로 고정된 크기의 입력 영상을 받는다. 합성곱 계층에서는 입력 영상에 3×3의 작은 필터를 씌운 후 합성곱 연산을 수행한다. 이후 풀링 계층에서는 각각의 특징 맵에 2×2 윈도우 창을 씌운 후 최대값을 취하는 연산을 적용한다. 그리고 정류 선형 유닛 계층에서는 특징 맵에 비선형 함수를 픽셀 단위로 적용한다. 즉, 특징 맵에서 픽셀의 값이 음수이면 0의 값으로 만들고 양수이면 변경 없이 그대로 둔다. 완전연결 계층은 기존의 다층 신경망 학습과 동일하고 소프트맥스 계층은 완전연결 계층의 각각의 출력 값에 지수 함수를 통과한 후 그 출력 값의 총합으로 나눈다. 따라서 소프트맥스 계층은 0에서 1로 정규화 된 값을 출력하여 확률 값으로 해석할 수 있다. 즉 확률 값이 가장 큰 노드가 미리 정해진 특정한 부류로 분류된다. 로그 손실 계층에서는 소프트맥스 출력 값에 로그 함수를 적용해서 예측 확률에 따른 손실 정도를 추정한다. 참고로 그림 1의 상단에 입력 계층에서 맨 마지막 계층까지 입력 영상의 크기가 어떻게 변화되는지를 보여주고 있다.
그림 2는 본 연구에서 사용된 총 5종류의 빗줄기 타입의 예시를 보여주고 있다. 그림에서 보듯이 빗줄기의 방향과 강도가 다른 것을 확인할 수 있다. 본 논문에서 총 5종류의 빗줄기 타입을 가진 데이터베이스를 확보하기 위해 기존의 잔차 네트워크 기반의 빗줄기 제거 기법에서 공개된 오픈 데이터베이스를 사용하였다. 본 논문에서는 5종류의 빗줄기 타입에 대해서 학습하기 때문에 소프트맥스 계층은 총 5개의 노드로 구성된다. 보다 자세한 VGG-16 모델에 대한 설명은 참고 문헌을 보시기 바란다[9].
3.3 빗줄기 제거를 위한 훈련 패치 추출
빗줄기를 제거하기 위해 본 논문에서는 잔차 네트워크 기반의 심층 합성곱 신경망 기법을 사용한다. 이를 위해 기존의 잔차 네트워크 기반의 빗줄기 논문에서 공개한 데이터베이스 영상에서 빗줄기 패치와 빗줄기가 없는 패치를 각각 수집하여 훈련 패치들을 확보한다. 공개 데이터베이스 영상에는 빗줄기 타입 별로 총 1000장의 영상이 있으며 이 중에서 700장을 훈련 영상 집합으로, 나머지는 테스트 영상 집합으로 사용하였다.
그림 3의 빨간색 박스에서 보듯이 왼쪽에서 오른쪽으로, 위에서 아래로 40칸씩 이동하면서 패치를 추출하였다. 또한 객체의 스케일에 불변한 성능을 확보하기 위해 입력 영상의 스케일을 1.0, 0.9, 0.8, 0.7배로 변환하면서 패치를 추출하였다. 본 논문에서 추출된 패치는 64×64이며 학습에 사용된 총 패치의 수는 191,553개이다. 또한 빗줄기가 없는 원본 패치들도 동일한 방식으로 추출하였다. 따라서 총 학습에 사용된 빗줄기 및 원본 패치의 수는 383,106개이다.
3.4 빗줄기 타입 별 잔차 네트워크 학습
본 논문에서 사용된 잔차 네트워크 기반의 심층 합성곱 신경망 구조는 합성곱 계층, 배치 정규화 계층(Batch Normalization Layer: BN Layer), 정류 선형 유닛 계층, 손실 계층으로 구성되어 있다. 사용된 총 계층의 수는 28개이다.
잔차 네트워크는 기존의 심층 합성곱 신경망과는 달리 입력 계층에서는 기존과 동일하게 빗줄기 패치를 입력으로 받지만, 손실 계층에서는 빗줄기 패치에서 원본 패치를 뺀 차 영상을 입력으로 받는다. 따라서 입력 계층에 인가된 빗줄기 패치는 잔차 네트워크의 합성곱 계층, 배치 정규화 계층, 정류 선형 유닛 계층 등을 통과하면서 차 영상으로 변환하게 된다.
그림 4는 잔차 네트워크의 아키텍처를 보여주고 있다. 그림에서 손실 계층에 잔차 패치가 입력되는 것을 볼 수 있다.
3.5 빗줄기 타입 별 빗줄기 제거
앞 절에서 설명한 잔차 네트워크가 빗줄기 타입 별로 학습된 후에는 입력 빗줄기 영상에서 빗줄기를 제거할 수 있다. 그림 5는 빗줄기 방향과 강도에 따른 빗줄기 타입 별 잔차 네트워크 기반의 빗줄기 제거 과정을 보여준다. 먼저, VGG-16 심층 합성곱 신경망을 사용해서 입력 빗줄기 영상의 강도와 방향을 분류한다. 그리고 잔차 영상을 추정하기 위해 빗줄기 타입 별로 미리 학습된 잔차 네트워크를 통과한다. 마지막으로 이 차 영상을 입력 빗줄기 영상에 더함으로써 빗줄기가 제거된 결과 영상을 획득하게 된다.
Ⅳ. 실험 및 결과
4.1 실험 환경
본 논문에서는 빗줄기 방향과 강도를 분류하기 위해 총 5,000장의 영상 중에서 3,500장을 훈련 영상으로 사용하였고, 나머지 1,500장을 테스트 영상으로 사용하였다. 그리고 빗줄기 타입 별 잔차 네트워크를 학습하기 위해 각 타입 별 1,000장의 영상 중에서 700장은 훈련 영상으로 나머지 300장은 테스트 영상으로 사용하였다. 학습에 사용된 언어는 매트랩이고, GPU 사용은 Quadro M5000을 사용하였다. 그리고 매트랩 기반의 딥 러닝 라이브러리 툴인 MatConvNet[10]을 사용하였다. 제안한 기법의 성능을 테스트하기 위해 최근에 발표된 최첨단 기법인 가우시안 혼합 모델 기반의 빗줄기 제거 기법[5], 잔차 네트워크 기반의 빗줄기 제거 기법[6]을 비교하였다. 정량적 성능 평가를 위해 최대 신호 대 잡음비(Peak Signal-to-Noise Ratio)와 구조적 유사성(Structural Similarity)[11] 척도를 사용하였다.
4.2 실험 결과
그림 6, 7, 8, 9, 10은 기존의 기법과 제안한 기법을 사용해서 빗줄기가 제거된 영상을 보여주고 있다.
그림 6의 노란색 박스에 보듯이, 기존의 기법을 적용했을 때 결과 영상에서 빗줄기가 덜 제거되거나 선명도가 떨어지는 것을 볼 수 있다. 반면에 제안한 기법을 적용했을 때 결과 영상에서 기존의 기법보다 빗줄기를 더 깨끗하게 제거하면서도 더 선명한 영상을 복원한 것을 볼 수 있다. 그림 7의 노란색 박스에서도 기존의 기법을 사용했을 때에는 빗줄기가 여전히 남아 있지만 제안한 기법을 사용했을 때에 더 선명한 영상을 획득한 것을 볼 수 있다. 나머지 결과 영상에서도 유사한 시각적 효과를 볼 수 있다. 따라서 제안한 기법이 적용했을 때, 객체의 디테일을 가장 잘 보존하면서도 빗줄기 패턴을 잘 제거한 것을 볼 수 있다. 이는 제안한 기법이 기존의 기법과는 달리 빗줄기 타입 즉, 빗줄기 방향과 강도에 따라 빗줄기를 분류하고 빗줄기 타입 별로 빗줄기를 제거했기 때문이다. 즉, 두 개의 서브 네트워크를 사용했기 때문에 가능하다.
그림 12는 제안한 빗줄기 제거 기법을 적용했을 때 객체 검출 인식률을 얼마나 제고할 수 있는지 그 효과성을 보여주고 있다.
제안한 빗줄기 제거 기법을 보행자 검출 과정에 적용해 보았다. 그리고 보행자 검출 기법은 실시간 검출이 가능하면서 수작업 특징 추출 기법에서는 최고의 성능을 소유한 ACF(Aggregated Channel Feature) 특징 추출 기반의 보행자 검출 기법[12]을 채택하였다. 결과 영상에서 박스위에 출력된 숫자는 보행자로 인식된 점수에 해당한다. 빗줄기 영상에서는 빗줄기 때문에 보행자 검출의 성능이 낮은 것을 볼 수 있다. 또한 빗줄기 제거 기법을 적용했을 때 보행자 검출의 성능이 올라가는 것을 볼 수 있다. 특히 기존의 잔차 네트워크 기반의 빗줄기 제거 기법보다 제안한 기법을 적용했을 때 보행자 검출 성능이 더 증가하는 것을 볼 수 있다. 예를 들어 다섯 번째 그림에서 기존의 잔차 네트워크 기반의 빗줄기 제거 기법에서는 보행자를 검출하는데 실패한 것을 볼 수 있다.
표 1과 표 2는 최대 신호 대 잡음비와 구조적 유사성 평가 결과를 보여 주고 있다. 이때 최대 신호 대 잡음비란 원본 영상과 결과 영상의 픽셀 값의 차이가 얼마나 나는지를 인간 시각 시스템이 인지하는 값으로 표현한 값이다. 즉 로그 변환 함수를 통과한 수치이다. 그리고 구조적 유사성 척도란 원본 영상과 결과 영상간의 에지나 텍스처 등과 같은 영상 구조가 얼마나 유사한지를 수치적으로 표현해 주는 방법이다. 보다 자세한 사항은 참고 문헌 [11]을 보시기 바란다. 정량적 평가를 사용된 영상은 그림 11에 있다. 빗줄기 타입 별로 테스트한 결과, 표에서 보듯이 제안한 기법이 평균치 측면에서 기존의 기법들보다 더 우수한 결과를 획득할 수 있었다.
Ⅴ. 결론 및 향후 과제
본 논문에서는 빗줄기 타입을 분류하는 심층 합성곱 신경망과 빗줄기 타입 별 빗줄기 제거를 위한 잔차 네트워크에 대해 소개하였다. 실험 결과에서 보듯이 기존의 최첨단 빗줄기 제거 기법보다 제안한 빗줄기 타입 별 잔차 네트워크 기반의 심층 합성곱 신경망 기법이 객체의 디테일의 선명도를 보존하면서 빗줄기를 더 깨끗하게 제거할 수 있음을 확인하였다. 또한 최대 신호 대 잡음비와 구조적 유사성 평가에서 더 우수한 성능을 획득할 수 있었다. 그리고 제안한 빗줄기 제거 기법을 보행자 검출 분야에 적용했을 경우에도 검출 성능을 상당히 개선할 수 있었다.
향후 계획으로는 객체의 검출 성능을 향상시키기 위해 본 논문에서 사용된 빗줄기 타입 별 잔차 네트워크와 객체의 위치를 동시에 학습할 수 있는 신경망 기법을 개발하고자 한다.
Acknowledgments
이 논문은 2017년도 정부(교육부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업임(No. 2017R1D1A3B03030853)
References
- J. H. Kim, C. Lee, J. Y. Sim, and C. S. Kim, "Single-image deraining using an adaptive nonlocal means filter", IEEE International Conference on Image Processing, Melbourne, VIC, p914-917, Sept.), (2013. [https://doi.org/10.1109/icip.2013.6738189]
- L. W. Kang, C. W. Lin, and Y. H. Fu, "Automatic single-image-based rain streaks removal via image decomposition", IEEE Transactions on Image Processing, 21(4), p1742-1755, Apr.), (2012.
- N. Dalal, and B. Triggs, "Histograms of oriented gradients for human detection", IEEE Conference on Computer Vision and Pattern Recognition, 1, p886-893, Jun.), (2005.
- C. H. Son, and X. P. Zhang, "Rain removal via shrinkage of sparse codes and learned rain dictionary", IEEE International Conference on Multimedia and Expo Workshop, Seattle, p1-6, Jul.), (2016. [https://doi.org/10.1109/icmew.2016.7574752]
- Y. Li, R. Tan, and M. S. Brown, "Rain streak removal using layer priors", IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas, NV, USA, p2736-2744, Jun.), (2016. [https://doi.org/10.1109/cvpr.2016.299]
- X. Fu, J. Huang, D. Zeng, Y. Huang, X. Ding, and J. Paisley, "Removing rain from single images via a deep detail network", IEEE Conference on Computer Vision and Pattern Recognition, Honolulu, HI, USA, p1715-1723, Jul.), (2017. [https://doi.org/10.1109/cvpr.2017.186]
- M. S. Kim, and T.W. Kang, "Proposal and analysis of various link architectures in multilayer neural network", Journal of Korean Institute of Information Technology, 16(4), p11-19, Apr.), (2018. [https://doi.org/10.14801/jkiit.2018.16.4.11]
- C. H. Son, "Rain detection via deep convolutional neural networks", Journal of The Institute of Electronics and Information Engineers, 54(8), p81-88, Aug.), (2017.
- K. Simonyan, and A. Zisserman, "Very deep convolutional networks for large-scale image recognition", arXiv:1409.1556, (2015).
- http://www.vlfeat.org/matconvnet, [accessed: Sept. 17, 2018]
- A. Hore, and D. Ziou, "Image quality metrics : PSNR vs. SSIM", IEEE International Conference on Pattern Recognition, Istanbul, Turkey, p2366-2369, Aug.), (2010. [https://doi.org/10.1109/icpr.2010.579]
- Y. H. Byeon, and K. C. Kwak, "Comparative analysis of perfomance using faster RCNN and ACF in people detection", Journal of Korean Institute of Information Technology, 15(6), p11-21, Jun.), (2017. [https://doi.org/10.14801/jkiit.2017.15.6.11]
2019년 2월 : 군산대학교 소프트웨어융합공학과(공학사)
관심분야 : 컴퓨터 비전, 영상처리, 딥 러닝, 프로그래밍
2002년 2월 : 경북대학교 전자전기공학부(공학사)
2004년 2월 : 경북대학교 전자공학과(공학석사)
2008년 8월 : 경북대학교 전자공학과(공학박사)
2008년 8월 ~ 2009년 12월 : 삼성전자 프린팅사업부 책임연구원
2015년 3월 ~ 2017년 2월 : 캐나다 Ryerson 대학교 포닥연구원
2017년 4월 ~ 현재 : 군산대학교 소프트웨어융합공학과 조교수
관심분야 : 컴퓨터 비전, 영상처리, 기계학습, 딥 러닝