1. 서 론
최근, 가상현실 분야는 미래 컴퓨팅 기술로 주목받고 있으며 교육, 제조, 국방 등 다양한 산업 분야에서 활용되고 있다. 가상현실에서의 필수 요소 중 하나인 현실성을 높이기 위해선 실세계 영상데이터를 가상 객체에 표현하여야 한다. 예를 들어, 도심지 모델링과 분석을 위해서 실제 항공 영상을 가상의 건물에 맵핑하여 제공함으로써좀 더 사실적으로 표현될 수 있다. 하지만 주간에 촬영한 항공 영상은 건물을 비롯한 다양한 조형물 등에 의해 생성된 그림자로 인해 다양한 영상정보가 가려지거나 왜곡되는 등의 부정적인 요소를 포함하고 있다. 이를 해결하기 위해 그림자 탐지 및 제거는 중요한 전처리 과정으로 고려되어왔으며, 성능 개선을 위해 오랫동안 연구되어 왔다. 기존 연구에서는 밝기(intensity), 색상 불변(color invariant), 색도(chromaticity), 텍스처(texture)와 같은 수작업으로 추출된 특징을 이용하여 그림자를 탐지하였다. 하지만, 객체의 모양과 색상이 다양하고, 주변 조명 조건이 다른 상황에서는 성능을 신뢰할 수 없는 문제점을 안고 있다.
최근 딥러닝이 크게 발전하면서, 그림자 탐지 분야에접목되어 기존 연구에 비하여 뛰어난 성능을 보여주고 있다. 하지만, 딥러닝 네트워크를 통해 학습된 모델이 특정 도메인에서 일반화된 추론 성능을 갖기 위해선 상황에 따른 다양한 종류의 학습데이터가 필요하다. 현재 연구목적으로 공개된 대표적인 데이터 셋 종류는 크게 3가지로 SBU [1], UCF [2], ISTD [3]이며, 이 중 가장 많은 양의 데이터 셋은 SBU로 학습데이터 4089장, 테스트 데이터 638장으로 구성되어 있다. 그러나, 주석 정보를 활용할 수 없어 성능에서의 한계점이 존재한다. 본 논문에서는 VWorld[18]에서 제공하는 공간정보를 이용하여 높이 맵을 포함한 그림자 데이터 셋을 구축하였으며, 기존에 활용할 수 없었던 3차원 건물 높이맵을 이용하여 딥러닝 기반의 그림자 탐지 성능을 개선시킨 방법을 제안하고자 한다.
2. 관련 연구
2.1 영상처리 기반 그림자 탐지
2.1.1 색상 기반 모델
RGB 원 영상을 입력받아, 다른 색상 모델로 변환하여 차 영상을 통해 단서를 얻는 방법으로 진행되어왔다. 그 중에서도 대표적으로 사용되는 방법은 정규화된 RGB, CIEL*a*b 등이 있으며 그림자에 대해 불변한 특징을 가지고 있다. Finlayson et al. [4]은 L2-norm를 이용하여 RGB각 채널에 대해 색상 공간을 변환하여, 그림자가 포함되지 않은 불변한 이미지를 생성한 후, 후처리를 이용하였다. 그림자 경계 부분을 이용하여 탐지하였으며, 기하학적(geometry) 정보를 활용하지 않는 특징을 가지고 있다. Murali et al. [5]은 조명 값을 고려하여 CIE Lab [6]색상 공간으로 변형을 통해 그림자 영역에서 나타나는 특정 채널 값에서의 차이를 이용하였다. 인접한 픽셀의 값을 고려하지 않고, 각 픽셀을 그림자와 비 그림자로 분류하는 특징을 가지고 있다. 하지만, 주변 조명 값이 다르거나 검은 물체가 있을 때 그림자 영역으로 잘못 분류하는 한계가 있다.
2.1.2 사용자 상호 작용 기반 모델
사용자 상호작용에 의한 모델은 컴퓨터에 의해 완전자동화에 한계가 있기 때문에, 그림자 영역에 대해 대략적으로 그려 줌으로써 단서를 제공하는 방법이다. Gong et al. [7]은 사용자가 그림자 영역과 비 그림자 영역에 대해 대략적으로 구분 지어주면 HSV, LUV등의 색상 공간으로 변화시켜 명도 값이 유사한 영역에 대해 확장하면서 그림자의 경계를 탐지한다. 사람의 개입으로 다양한 환경에 대해서 탐지할 수 있는 장점이 있지만, 많은 양의 데이터에 시간과 비용을 소비해야 하는 문제를 가지고 있다.
2.1.3 영역기반 모델
영역기반 모델은 기존의 픽셀 단위 분류 혹은 에지를 활용한 분류와는 다르게 영역 단위 클래스 분류를 통해히스토그램이나 밝기, 텍스쳐와 같은 특성들이 유사한 영역들의 분류를 수행한다. Guo et al [8]은 서포트 벡터 머신(Support Vector Machine)을 이용한 단일 클래스 분류기와 RBF 커널 기반의 쌍별 클래스 분류기 조합을 에너지 함수로 통합하였고, 그래프 컷(Graph Cut) 알고리즘을 통해 에너지 함수의 값을 최소화하여 영역 라벨링을 수행하였다. 기존의 특징기반의 방법들과는 다르게 영역 단위로 분류함으로써 주변의 문맥적 특징들을 고려하여 추론할 수 있다는 장점을 가진다. 하지만 영역들에 대한 학습을 통해 이루어지기 때문에 계산적인 비용이 많이 들며, 광원 및 검은 물체에 대해 여전히 문제점을 가지고 있다.
2.2 CNN 기반 그림자 탐지
Convolution Neural Network (CNN)은 인간의 시각인지시스템에 영감을 받아 뉴런과 뉴런 사이의 로컬 연결성을 기반으로 주로 컨볼루션 레이어(Convolution Layer),풀링 레이어(Pooling layer), 완전연결 레이어(Fully connected layer)로 구성되어 있으며, 시각적 이미지를 분석하는데 활용되는 인공신경망의 한 종류이다. 최근, 컴퓨팅 능력의 향상으로 인해, 많은 연구자들이 딥러닝을 활용한 그림자 탐지방법을 연구해왔으며 기존의 수작업 특징 추출방법들에 비해 높은 성능을 보이고 있다. Qu et al. [9]은 모양, 의미론적, 전역적인 문맥적 특징을 추출하는 세 가지 흐름의 하위 네트워크로 구성되어 있고, 각 흐름에서 추출된 특징들은 결합하여 그림자 마스크를 추정한다.
Hu et al. [10]은 Recurrent Neural Network (RNN) 기반의 방향 인식 모듈을 이용하여 CNN의 각 계층에서 추출되는 특징들에 대해 2차원 공간적 문맥 정보를 학습한다. 또한, 주변 그림자의 문맥적 특징을 방향에 따라 가중치를 고려하여 집계한다. Zhu et al. [11]는 양방향 특징 피라미드 CNN 구조를 통해 크기에 불변한 고수준 문맥 특징과 상세한 특성을 가진 지역적 특징을 양방향으로 진행하면서 얻은 특징들을 반복적 어텐션 모듈을 통해 정제하고 결합하여 그림자 마스크를 추론하였다.
2.3 그림자를 이용한 건물정보 추정
고해상도 위성영상으로부터 건물의 위치나 높이와 같은 공간정보를 얻기 위한 연구는 활발히 진행되어왔다. 3차원 건물정보를 얻기 위한 기존의 방법들은 LIDAR 데이터와 스테레오 영상, 그림자 정보 등을 통해 예측해왔다. 그중에서, 그림자 정보는 건물의 높이 및 형태에 따라 빛이 건물을 투과할 수 없을 때 발생하게 되며, 태양의 고도각, 그림자 길이 등의 정보를 이용하여 3차원 건물정보를 예측하였다. [12]
3. 높이맵을 이용한 CNN기반의 그림자 탐지
3.1 가상환경 데이터 프로그램
다양한 환경에서의 건물이 포함된 학습 데이터를 얻기 위해 공간정보 오픈 플랫폼인 VWORLD를 이용하여 태양의 실제 위치정보를 고려한 그림자 데이터를 생성할 수 있는 가상현실 프로그램을 구축하였으며, 3차원 모델링된 건물의 이미지는 그림 1과 같다.
(그림 1) 3차원 건물 모델링 결과 이미지
(Figure 1) The result image of 3D building modeling
그림자는 광원인 태양의 위치에 따라 모양이 바뀐다.현실과 같은 그림자를 구현하기 위해 시간에 따른 실제 태양의 이동 경로를 참고하여 적위와 고도를 AESL 알고리즘 [13], 방위각은 KASI 알고리즘 [14]을 활용하여 광원을 구현하였다. 이를 바탕으로 사용자가 원하는 위치로 카메라를 이동하여 그림자 데이터를 생성할 수 있도록 하였다.
3.2 높이맵 기반의 데이터 세트
2차원 단일영상을 대상으로 딥러닝 기반 그림자 탐지 방법을 적용하여 3차원 건물에 의해 생성된 그림자를 예측하는 것에는 한계점이 존재한다. 예를 들어, 촬영된 영상에서 높이가 높고 그림자가 생기지 않는 부분을 그림자로 탐지하는 오류가 발생하거나, 바닥 부분에 생긴 그림자가 텍스처 색상에 의해 탐지가 되지 않는 문제들이 있다. 이러한 문제점을 해결하기 위해 그림자가 생겨야 할 부분에 대한 상대적인 확률을 제공할 수 있는 건물의 높이맵을 활용하여 학습시킴으로써 그림자 탐지 성능을 개선하였다. 높이맵은 지표면에서의 높이 값을 최대 건축물 높이를 기준으로 정규화한 정보를 나타낸다. 이를 위해 각 건물의 픽셀 포인트에 대한 레이캐스트를 이용하여 지구와의 거리를 구하고, 지면과 닿는 지점과 지구와의 거리 차이 값을 구하였다. 또한, 건물의 형태를 자세하게 표현하기 위해 기존의 건물의 텍스처를 표현할 때 사용하는 최적화 기법인 ConvexHull 기능을 사용하지 않았으며, 높이 값 수식은 다음과 같다.
\(H_{(x, y)}=\frac{\sqrt{\left(d_{(x, y)}-d_{\text {field}}\right)^{2}}}{H_{\max }} * k\) (수식 1)
\(H_{(x, y)}=\left\{\begin{array}{ll} 255 & , H_{(x, y)} \geq 255 \\ 0 & , H_{(x, y)} \leq 0 \end{array}\right.\) (수식 2)
수식 1에서 H(x,y)은 2차원 영상 좌표에 대한 높이 값을 나타내며, d(x,y)는 지구로부터의 거리, dfield는 지표면에서 지구로부터의 거리, Hmax는 우리나라에서 가장높은 건물인 롯데타워 건물의 높이 값으로 상대적인 그레이 스케일(Gray scale) 영상으로 표현하기 위해 정규화하였다. 상수 k는 수식 2에서 정의된 바와 같이, 정규화된 높이 값을 [0, 255]로 변화시켜 주기 위해 최적화된 값인 240.0으로 설정하였으며, 하늘은 255로 지표면은 0으로 변환하였다. 그림 2는 그림자 영상에 대한 높이맵을 나타낸다. 데이터 세트는 학습된 모델이 일반화된 추론 성능을 갖기 위해 특정 클래스에 편향되지 않는 데이터로 구성되어야 한다. 이점을 고려하여, 태양을 특정 시간가상환경 도심지에서 높이맵을 이용한 그림자 탐지방법대로 고정하고, 여러 상황에 따른 건물의 유형과 데이터양을 표 1과 같이 단일건물, 낮은 건물, 높은 건물, 높고 낮은 건물들의 혼합 4가지로 정의하였다. 데이터 세트는총 4,700장으로 그림자가 포함된 데이터, 그림자 마스크데이터, 건물의 높이맵 데이터로 구성되어 있으며, 학습데이터는 90%인 4,230장 테스트 데이터는 10%인 470장으로 나누었다.
(그림 2) 건물의 그림자 영상과 높이 맵
(Figure 2) A shadow image and the corresponding height map
(표 1) 건물의 유형에 따른 학습데이터 구성
(Table 1) Training dataset by building type
3.3 제안하는 신경망 구조
본 논문에서는 건물의 높이맵을 이용하여 그림자를 탐지하기 위해 기존의 CPD [15]를 기반으로 높이 값에 대한 정보를 고려할 수 있도록 입력 차원을 확장하였고, 특징을 모으는 부분에서 채널 단위 어텐션 모듈을 추가하여 성능을 개선시킨 방법을 제안한다.
기존 CPD는 Resnet50을 기본 네트워크로 총 5개의 컨볼루션 레이어를 가지며, 소요 시간을 줄이고 효율적으로 탐지하기 위해 Convolution 3,4,5 계층의 특징들을 이용하여 두 단계에 걸쳐 문맥정보를 추출함으로써 그림자마스크를 생성한다. 전체적인 네트워크의 구조는 그림 4와 같으며, 입력 RGB 영상으로부터 대략적인 그림자의 위치를 찾고 정제하는 과정을 수행한다. 첫 번째 단계에서 입력 크기가 352x352인 3채널 그림자 데이터를 입력받아 각 계층에서 합성곱 연산과 활성화 함수, 풀링 연산을 통해 특징 맵의 크기가 감소한다. 계층이 깊어질수록 이미지 크기에 불변한 특징들을 가지며, 3,4,5번 계층에서 생성되는 결과들을 RFB(Receptive Field Block) 모듈을 통해 비율이 1,3,5,5로 각각 다른 Dilated 합성곱 연산을 수행하여 고수준 특징정보를 효율적으로 추출한다. 이후, 추출된 3가지 특징들은 그림 3에서 보는 것처럼 dense한 방법으로 결합한다. 크기가 작은 특징들은 업샘플링(Up-sampling)과 3x3 합성곱 연산을 거쳐 크기를 확장하고 이전계층의 특징과 결합하여 첫 번째 단계의 학습을 수행한다. 두 번째 단계에서는 합성곱 연산의 적용 범위를 늘리기 위해 HAM(Holistic Attention Module)에 첫 번째 단계에서의 결과 값을 넣어 유용한 정보들을 확장 시키고, 기존 특징 맵과의 곱셈 연산으로 최적화하였다. 이후에, 다시 RFB 모듈 연산과 부분적 디코더 연산을 통해 초기 결과 특징 맵을 정제하여 학습하는 과정을 수행한다.
(그림 3) 부분적 디코더 구조
(Figure 3) The structure of the Partial Decoder
이와 같은 기존의 CNN구조에서 높이맵과 채널 어텐션 모듈을 적용하기 위한 네트워크 구조는 다음과 같다. 먼저 3채널의 입력 데이터 크기에서 채널 수를 늘려 높이 맵을 추가하였으며, 첫 번째 계층의 컨볼루션 연산 채널 수를 4채널로 변경하였다. 또한, 3개의 특징이 합쳐지는 구간에 채널 어텐션(Channel attention) 모듈을 추가하여 채널 단위 중요한 정보들에 대해 강조하였다. CNN은 학습된 특징들이 채널 단위로 쌓여서 전역적인 수용 필드(Global Receptive Field)를 가지는 하나의 영상으로 만들어지는데, 다수의 채널 정보들이 구분 없이 연산이 이루어지기 때문에 중요한 특징들이 약해지거나 소실되는 문제점이 있다. 이러한 문제를 해결하고자 Hu et al. [16]이 처음 제안한 Squeeze-and-Excitation block을 적용하였다.
(그림 4) 그림자 탐지 네트워크 구조
(Figure 4) The structure of the shadow detection network
\(F_{c}=\sigma\left(M L P\left(\text {AvgPool}_{G}\left(x_{H, W, C}\right)\right)\right)\) (수식 3)
식 3에서처럼, 먼저 Global Average Pooling (GAP) 연산을 이용하여 채널별 특징들의 평균값을 취함으로써 1x1xC의 압축된 공간정보들을 얻게 된다. 그 후, 완전 연결 계층(Fully Connected layer)과 ReLU, 완전 연결 계층으로 구성된 MLP(Multi-Layer Perceptron)를 거쳐 감소비율 r = 16을 사용하여 압축하고 확장 시키는 과정을 거치면서 채널에 따라 가지는 정보들에 대한 중요도를 재조정하였다. 여기서 재조정 된 특징맵은 Sigmoid 함수에 의해 활성화되고, 입력값인 xH,W,C에 원소별 곱셈 연산을 적용하여 중요한 특징들에 대해 강조한다. 마지막으로, 잔여학습의 개념을 활용하여 이전 층의 특징 차이를 학습할 수 있도록 하였다.
4. 실 험
4.1 실험 환경
본 논문에서 실험 환경은 우분투 16.04 LTS 운영체제에 PyTorch 프레임워크를 기반으로 Titan XP GPU에서 학습을 수행하였다. 가중치를 최적화하기 위한 옵티마이저는 Adam을 사용하였으며, 학습률은1e-4로 설정하였다. 학습데이터의 크기는 352 x 352이며, 배치의 크기를 16, 에폭은 600으로 설정하여 학습하였으며, 총 9시간 정도 소모되었다. 학습 그래프는 그림 5와 같고, 학습이 잘 이루어진 것을 확인하였다.
(그림 5) 학습 그래프
(Figure 5) Training graph
4.2 실험 결과
학습데이터 4,230장, 테스트 데이터 470장으로 구성되어 있으며, 네트워크를 통해 추론된 결과는 임계값 0.5보다 크면 1, 작으면 0으로 설정하여 적용하였다. 성능평가에서는 그림자와 비 그림자 클래스에 대해 불균형하게 구성되어 있기 때문에, 수식 4와 같이 BER(Balanced Error Rate)를 이용하여 그림자 탐지 성능을 비교하였다.
\(B E R=1-\frac{1}{2} *\left(\frac{T P}{T P+F N}+\frac{T N}{T N+F P}\right)\) (수식 4)
(그림 6) 방법에 따른 그림자 탐지 결과 비교, (a) CPD[14], (b) 높이맵을 이용한 CPD 네트워크, (c) 높이맵과 채널 어텐션을 이용한 CPD 네트워크
(Figure 6) Comparative performance of shadow detection networks, (a) CPD[14], (b) CPD enhanced with height maps, (c) CPD enhanced with height maps and an attention module
(표 2) 높이맵에 따른 성능 개선
(Table 2) Performance improvement by the height map
표 2에서는 Pix2Pix[17]와 CPD 두 네트워크에 대해 높이맵의 적용 여부에 따라 비교하였으며, 표3에서는 부분적 디코더에서 컨볼루션 연산으로 나온 특징들이 합쳐지는 구간에 채널 어텐션 모듈의 적용 위치에 따라 효과를 비교하였다. 실험 결과 높이 맵을 사용하였을 때, 기존 baseline에 비하여 에러율이 각각 CPD에서 1.41%, Pix2 Pix에서 2.05% 개선되었으며, 채널 어텐션 모듈듈에서는 Convlution 3, 4계층이 합쳐지는 구간에서 0.12%, Convolution 4,5계층이 합쳐지는 구간에서 0.43% 개선되었다. 탐지 결과 이미지는 그림 6과 같으며, 건물의 높이값에 의해 건물 주변 그림자가 생성될 확률을 높여주었고, 채널 어텐션 모듈을 적용하여 채널단위 중요한 특징들에 대한 재조정을 통해 강조함으로써 탐지 성능이 향상된 것을 확인할 수 있다. 반면, 그림 7에서는 제안한 모델의 한계 예시를 보여주고 있다. 제안한 모델은 Convolution 3, 4, 5 계층의 고수준 문맥 특징들을 주로 활용하기 때문에 Convolution 1,2계층에서 포함하고 있는 경계 부분에서의 상세한 정보가 손실된 것을 확인할 수 있다.
(그림 7) 제안한 방법에서의 한계 예시
(Figure 7) Examples of Limitations in the Proposed Method
(표 3) 채널 어텐션 모듈 위치에 따른 성능 비교
(Table 3) Comparative performance according to the location of the channel attention module
5. 결 론
본 논문에서는 가상환경에서 높이맵을 포함한 데이터셋을 구축하고, 이를 딥러닝 기반의 그림자 탐지에 활용하는 방법을 제안하였다. 제안된 방법은 건물의 높이 값을 추가 정보로 활용하여 그림자 탐지 시 성능을 개선시킬 수 있음을 보였다. 향후 연구에서는 탐지된 그림자 마스크 데이터를 활용하여 제거에 관한 연구를 수행하고자 한다.
References
- Y. Vicente, F. Tomas, L. Hou, C.-P. Yu, M. Hoai, and D. Samaras. "Large-scale training of shadow detectors with noisily-annotated shadow examples." In European Conference on Computer Vision (ECCV), Springer, pp. 816-832, 2016. https://doi.org/10.1007/978-3-319-46466-4_49
- J. Zhu, K. G. Samuel, S. Z. Masood, and M. F. Tappen. "Learning to recognize shadows in monochromatic natural images." In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 223-230, 2010. https://doi.org/10.1109/cvpr.2010.5540209
- J. Wang, X. Li, and J. Yang. "Stacked conditional generative adversarial networks for jointly learning shadow detection and shadow removal." In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018. https://doi.org/10.1109/cvpr.2018.00192
- Finlayson, G. D., Hordley, S. D., Drew, M. S. "Removing Shadows from Images." Proceedings of the 7th European Conference on Computer Vision, pp.823-836. 2002, https://doi.org/10.1007/3-540-47979-1_55
- Murali, S., Govindan, V. K. "Shadow Detection and Removal from a Single Image Using LAB Color Space." Cybernetics and Information Technologies, vol. 13(1) pp. 95-103, 2013. https://doi.org/10.2478/cait-2013-0009
- Roy S. Berns, "Principles of Color Technology" 3rd Edition, John Wiley & Sons, Inc., 2000 https://pdfs.semanticscholar.org/090f/87f92965a376fa311 f2bdf27e295953ac7b2.pdf
- Gong, H., Cosker, D. P. "Interactive Shadow Removal and Ground Truth for Variable Scene Categories." Proceedings of the British Machine Vision Conference, 2014. http://dx.doi.org/10.5244 /C.28.36
- Guo, R., Dai, Q., Hoiem, D. "Paired Regions for Shadow Detection and Removal." IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.35 (12), pp. 2956-2967, 2013. http://doi.org/10.1109/TPA MI.2012.214
- L. Qu, J. Tian, S. He, Y. Tang, and R. W. Lau. "Deshadownet: A multi-context embedding deep network for shadow removal." In CVPR. 2017. http://doi.org/10.1109/cvpr.2017.248
- X. Hu, L. Zhu, C.-W. Fu, J. Qin, and P.-A. Heng. "Direction aware spatial context features for shadow detection." In CVPR, pp.7454-7462. 2018. http://doi.org/10.1109/cvpr.2018.00778
- L. Zhu, Z. Deng, X. Hu, C.-W. Fu, X. Xu, J. Qin, and P.-A. Heng. "Bidirectional feature pyramid network with recurrent attention residual modules for shadow detection." In ECCV, 2018. http://doi.org/10.1007/978-3-030-01231-1_8
- TY Lee, TJ Kim, YJ Lim "Extraction of 3D Building Information using Shadow Analysis from Single High Resolution Satellite Images", Journal of the korean society for geospatial information science vol. 14, No. 2, pp.3-13. 2006. http://www.riss.kr/link?id=A99950696
- KB Seo, KD Song, "Development Algorithms to Predict the Luminous Flux Transfer Rates of Vertical Rectangular Daylight Duct Systems with the Consideration of Direct Sunlight Incidence.", Journal The Korean Society of Living Environmental System, vol.3, no.3, pp.21-34, 1996 http://www.dbpia.co.kr/journal/articleDetail?nodeId=NO DE06546663&language=ko_KR
- Bretagnon, P., "Theory for the motion of all the planets- The VSOP82 solution.", Astronomy and Astrophysics, vol.114, no.2,p.278-288, Oct.1982 http://adsabs.harvard.edu/full/1982A%26A...114..278B
- Z. Wu, L. Su, and Q. Huang, "Cascaded partial decoder for fast and accurate salient object detection." arXiv preprint arXiv:1904.08739, 2019
- J. Hu, L. Shen, and G. Sun. "Squeeze-and-excitation networks." arXiv preprint arXiv:1709.01507, 2017. https://doi.org/10.1109/CVPR.2018.00745
- P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros. "Image-to-image translation with conditional adversarial networks." In CVPR, 2017 https://doi.org/10.1109/cvpr.2017.632
- VWorld, https://www.vworld.kr.