Korean Institute of Information Technology
[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 20, No. 4, pp.25-30
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 30 Apr 2022
Received 26 Feb 2022 Revised 18 Apr 2022 Accepted 21 Apr 2022
DOI: https://doi.org/10.14801/jkiit.2022.20.4.25

CNN을 사용한 공간 데이터 분류 방법

오병우*
*국립금오공과대학교 컴퓨터공학과 교수
A Method of Spatial Data Classification using CNN
Byoung-Woo Oh*

Correspondence to: Byoung-Woo Oh Department of Computer Engineering, Kumoh National Institute of Technology, South Korea Tel.: +82-54-478-7531, Email: bwoh@kumoh.ac.kr

초록

본 논문에서는 모바일 환경, 디지털 트윈 등의 기반 기술로서 중요성이 증대되고 있는 공간 데이터를 딥러닝 기술을 사용하여 분류하기 위한 방법을 제안한다. 공간 데이터 분류를 위한 딥러닝 기술로는 CNN을 사용한다. 학습을 위한 데이터셋은 공간 데이터를 전처리하여 구축한다. 데이터셋을 훈련 및 검증하기 위한 학습 모델은 컨볼루션 레이어와 완전 연결 레이어로 구성한다. 컨볼루션 레이어는 VGG16의 컨볼루션 레이어를 채택하고 전이 학습을 사용한다. 완전 연결 레이어는 Flatten 레이어, ReLU 함수, Dropout 레이어, Softmax 함수로 구성한다. 본 논문에서 제안한 공간 데이터 분류 방법을 연속수치지형도에 대해 적용한 실험을 수행하여 99.1%의 검증 정확도를 확인할 수 있었다.

Abstract

This paper proposes a method for classifying spatial data, which is increasingly important as a base technology for mobile environments and digital twins, using deep learning technology. CNN is used as a deep learning technology for spatial data classification. A dataset for learning is constructed by preprocessing spatial data. The learning model for training and validating the dataset consists of a convolution layer and a fully connected layer. The convolution layer adopts the convolution layer of VGG16 and uses transfer learning. The fully connected layer consists of a Flatten layer, a ReLU function, a Dropout layer, and a Softmax function. An experiment in which the spatial data classification method proposed in this paper was applied to Korea national map was performed, and verification accuracy of 99.1% was obtained.

Keywords:

CNN, spatial data, shapefile, VGG16, transfer learning

Ⅰ. 서 론

최근 딥러닝 기술은 활발히 연구되고 우수한 성능을 인정받아서 생활과 밀접한 다양한 분야에서 데이터를 분석하기 위해 널리 활용되고 있다[1]. 딥러닝 모델은 기존의 신경망 모델보다 많은 수의 레이어를 사용하며, 종류로는 CNN, RNN, GAN, Transformer 등이 있다[2].

딥러닝 모델의 종류별로 유용한 활용 분야가 정해지는데 그중에서 CNN은 이미지를 분석하는데 특화되어 있다. CNN을 활용하여 의료 영상, 얼굴 사진 등을 분석하는 다양한 연구가 진행되고 있다[3].

인류의 터전이 되는 도시, 농지, 인구, 환경 용량 등에 대한 공간적인 분석도 생활과 직결되어 있어서 중요성이 높으므로 다양하게 연구되고 있다[4][5]. 현재까지 대부분의 공간 분석 연구는 위성 영상, 항공 사진, 지도 이미지를 기반으로 컬러값에 기반해 분석한다[6][7].

공간을 표현하는 방법에는 이미지를 사용하는 방법 이외에도 좌표의 집합으로 지형지물을 표현하는 공간 데이터가 있으며 주로 국가 기관에서 제작하여 배포한다. 기존에는 전국을 사각형 그리드로 분할하여 도엽 단위의 단순 지도 출력 목적의 공간 데이터를 배포하였다.

연속수치지형도는 진일보한 형태의 공간 데이터로서 도엽에 의한 절단면 없이 주제별로 연속된 공간 데이터를 표현할 수 있다. 본 논문에서는 국토지리정보원에서 제공하는 원본 연속수치지형도를 CNN을 사용하여 분류하기 위한 방법에 대해 제안한다.

연속수치지형도를 학습시키기 위한 전처리 과정을 제안하고, 분류 성능을 높일 수 있는 방법을 적용하여 학습 모델을 정의한다. 본 논문에서 제안하는 분류 방법은 도로가 발달한 지역, 소규모 주거 공간이 밀집한 지역, 아파트가 주로 분포되어 있는 지역, 주거 공간이 아닌 산악 지역 등과 같은 공간 데이터 분석에 활용할 수 있다.

본 논문의 구성은 다음과 같다. 2장은 관련 연구로서 공간 데이터 저장을 위해 사용되는 Shapefile과 딥러닝 아키텍쳐 중 하나인 VGG16에 대해 기술한다. 3장에서는 본 논문에서 제안하는 공간 데이터 분류 방법에 대해 자세하게 설명한다. 마지막으로 4장에서는 결론으로 논문을 마무리한다.


Ⅱ. 관련 연구

2.1 공간 데이터 저장을 위한 Shapefile

공간(Spatial) 데이터는 지도를 그리기 위한 각 지형지물(Feature)의 모양을 2차원 유클리드 공간에서 점, 선, 면의 기하(Geometry) 데이터로 저장한다. 점 기하 데이터는 한 개의 좌표인 (x, y)로 간단히 표현하는 것이 가능하다.

반면에, 선 및 면은 여러 개의 좌표로 표현되는데 좌표의 개수가 일정하지 않고 지형지물의 모양에 따라 결정되는 가변 길이 벡터 형태의 기하 데이터로 표현되어 처리하기 복잡한 특성을 갖는다.

지형지물의 기하 데이터를 제외한 일반 속성은 처리하기 용이한 고정 길이인 특성이 있으며 비공간(Aspatial 또는 non-spatial) 데이터라고 불린다. 예를 들면, 건물의 이름, 종류, 높이, 주소 등은 비공간 데이터이다.

공간 데이터라는 단어는 지형지물의 모양에 대한 기하 데이터를 의미하는 협의의 의미로 쓰일 때도 있고, 기하 데이터와 비공간 데이터를 통칭하여 광의의 의미로 쓰일 때도 있다.

공간 데이터를 저장하고 교환하기 위해서는 ESRI사에서 개발한 Shapefile 포맷이 가장 일반적으로 사용된다[8]. Shapefile 포맷은 실제(De facto) 표준으로서 공간 데이터를 처리하는 다양한 분야에서 널리 사용되고 있다.

Shapefile 포맷은 공간 데이터를 저장하기 위한 “*.shp” 파일, 비공간 데이터를 저장하기 위한 “*.dbf” 파일, 인덱스를 저장하기 위한 “*.shx” 파일로 구성된다. 본 논문에서는 국토지리정보원에서 제작 및 배포하는 Shapefile 포맷의 연속수치지형도를 원본 공간 데이터로 사용한다.

2.2 VGG16 및 전이 학습

다양한 딥러닝 모델 중에서 CNN은 이미지 분석을 위해 광범위하게 사용되고 있다. 그중에서 대용량의 ImageNet 데이터를 가지고 학습된 VGG(Visual Geometry Group)16은 이미지 분류(Classification)에 있어서 우수한 정확도를 제공한다 [9].

VGG16에서 16은 레이어의 개수로서 13개의 컨볼루션 레이어 및 3개의 완전 연결(Fully connected) 레이어로 구성된다. 본 논문에서는 공간 데이터를 효율적으로 분석하기 위해서 사전에 학습된 VGG16 컨볼루션 레이어(13개)의 가중치를 사용하는 전이 학습(Transfer learning) 방법을 채택한다.


Ⅲ. CNN을 사용한 공간 데이터 분류

본 논문에서 연속수치지형도의 공간 데이터 분류를 위해 CNN을 적용하기 위한 과정은 공간 데이터 선정 단계, 공간 데이터로부터 데이터셋을 생성하는 단계, 생성된 데이터셋을 가지고 학습시키는 단계로 나눌 수 있다.

3.1 공간 데이터 선정

공간 데이터를 분류하기 위해서 국가공간정보포털을 통해 국토지리정보원에서 배포하는 연속수치지형도 중에서 도로, 등고선, 건물 데이터를 사용한다. 국가공간정보포털에 2020년 7월 27일에 등록된 NGII_CDM_*.zip에 포함된 Shapefile을 사용한다.

연속수치지형도는 전국에 대한 데이터를 포함하고 있는 방대한 데이터이므로 본 논문에서는 서울 지역을 중심으로 크롭한 부분 집합을 사용한다.

전국 도로, 등고선, 건물 데이터에 대해 서울 지역 부근의 영역 질의를 통해 객체를 선별하여 도로, 등고선, 건물 주제별로 각각의 Shapefile 포맷으로 저장하고 이를 사용하여 데이터셋을 생성한다.

3.2 데이터셋 생성

딥러닝을 위한 데이터셋을 생성하기 위해서는 선정된 공간 데이터를 가공하는 과정이 필요하다. 그림 1은 공간 데이터를 사용하여 훈련 데이터 및 검증 데이터로 구성되는 데이터셋을 생성하는 과정을 보여준다.

Fig. 1.

Training and validation data generation process

본 논문에서는 데이터셋을 생성하고 학습 및 분류하기 위한 과정을 파이썬 언어를 사용하여 개발한다.

(1) 전체 이미지 생성

서울 지역 부근의 도로 및 등고선 Shapefile에 대해서는 각 주제별로 모든 객체를 읽어서 각각의 PNG 형식의 이미지 파일로 출력한다.

전체 지도는 흰색 배경에 공간 객체가 검은색으로 출력된다. 도로 이미지는 25,389×20,517 크기의 115MB 파일이 생성되고, 등고선 이미지는 25,389×18350 크기의 56.6MB 파일이 생성된다.

건물 Shapefile은 비공간 데이터 중에서 ‘KIND’ 애트리뷰트를 참조하여 값에 따라서 별도의 이미지 파일로 분리하여 생성한다.

‘KIND’ 애트리뷰트 값이 일반주택을 의미하는 ‘BDK001’인 객체들과 아파트를 의미하는 ‘BDK003’인 객체들을 별도의 이미지로 저장한다. 일반주택 이미지는 25,389×17,643 크기의 86.6MB 파일이 생성되고, 아파트 이미지는 25,389×17,674 크기의 24.2MB 파일이 생성된다.

(2) 학습을 위한 데이터셋 생성

도로, 등고선, 일반주택, 아파트 네 종류의 각 주제별 전체 이미지 파일로부터 랜덤하게 416 x 416 픽셀 크기의 영역을 선택하여 데이터셋을 생성한다.

각 주제별로 1,000개씩의 이미지를 생성하고 그중의 80%인 800개는 훈련(Training) 데이터로 사용하고 나머지 200개는 검증(Validation) 데이터로 사용한다. 주제는 도로, 등고선, 일반주택, 아파트의 네 종류이므로 총 4,000개의 데이터셋을 생성한다.

전체 이미지 파일로부터 랜덤하게 영역을 선택하다 보면 공간 객체가 전혀 포함되지 않거나 너무 적게 포함되어 특성이 충분하지 않아서 훈련에 적합하지 않은 경우가 발생할 수 있다. 예를 들어, 랜덤하게 선택된 영역이 한강에 속한다면 아파트 객체는 포함될 수 없다.

너무 적게 포함된 경우에도 훈련 데이터로는 적합하지 않으므로 이런 경우를 배제하기 위한 방법이 필요하다. 본 논문에서는 랜덤하게 선택된 영역의 모든 픽셀을 얻은 후에 컬러값이 100보다 작거나 같은 픽셀의 개수가 1,000개보다 작으면 다른 랜덤 영역을 선택하도록 개발한다.

전체 지도의 배경은 흰색이고 공간 객체는 검은색이므로 안티 앨리어싱으로 회색이 출력되는 것을 포함하여 최소 1,000개 픽셀은 필요하다고 지정한다. 416×416 크기인 이미지의 전체 173,056개의 픽셀 중에서 적어도 1,000개의 픽셀이 컬러값을 가지므로 비율로는 0.6% 이상이다.

그림 2는 생성된 훈련 데이터의 예제를 보여준다.

Fig. 2.

Examples of the generated training data

3.3 공간 데이터 학습

본 논문에서는 사전에 일반 사진으로 학습되어 있는 VGG16을 기반으로 이전 단계를 통해 생성된 공간 데이터를 학습하는 전이 학습 방법을 사용한다. 데이터셋 생성 단계를 통해 생성된 도로, 등고선, 일반주택, 아파트의 4개 카테고리 데이터에 대해 학습한다.

개발 환경으로는 Google CoLab의 GPU 기반 텐서플로우에서 케라스를 사용한다. 데이터셋은 케라스의 ImageDataGenerator를 사용하여 픽셀의 컬러값을 0과 1사이의 값으로 변환하고 이미지 크기는 224×224 픽셀로 변환해서 학습 모델에 적용하기 위해 준비한다.

학습 모델은 순차(Sequential) 모델을 생성하고 전이 학습을 위해 사전에 ImageNet으로 학습된 VGG16의 컨볼루션 레이어를 처음에 추가한다. 이 때 VGG16의 컨볼루션 레이어는 학습되지 않도록 지정한다. 그 이후에 완전 연결 레이어는 케라스의 레이어들을 사용하여 재구성한다.

먼저 Flatten 레이어를 추가하여 1차원 배열로 변경하고, ReLU(Rectified Linear Unit) 함수를 통해 뉴런을 활성화한 뒤에, 과적합(Overfitting)을 방지하기 위하여 Dropout 레이어를 사용하고, 마지막으로 4개 카테고리의 이미지를 분류하기 위해 Softmax 함수를 사용한다.

표 1은 3,200개의 훈련 데이터 및 800개의 검증 데이터에 대해 정의된 학습 모델을 통해 10번의 epoch를 수행한 훈련 손실값(Loss), 훈련 정확도(Acc), 검증 손실값(Val_loss), 그리고 검증 정확도(Val_acc)를 보여준다.

Accuracy and loss results

그림 3은 학습한 결과에 대한 정확도 및 손실값을 그래프로 보여준다.

Fig. 3.

Result of learning

본 논문에서 제안한 VGG16 기반의 전이 학습을 사용한 공간 데이터 학습의 검증 정확도는 99.1%로서 정의된 학습 모델의 우수한 성능을 보여준다.


Ⅳ. 결 론

본 논문에서는 CNN을 사용하여 연속수치지형도의 공간 데이터를 분류하기 위한 모델을 구현하였다. 연속수치지형도의 벡터 형태의 가변 길이 기하 데이터로 저장된 공간 데이터를 래스터 형태의 이미지로 렌더링하여 데이터셋을 생성하고 이를 CNN을 사용해 학습하는 방법을 제안하였다.

생성된 데이터셋을 학습하기 위한 방법으로는 VGG16의 컨볼루션 레이어를 활용한 전이 학습을 사용하였다. 완전 연결 레이어는 ReLU 및 Softmax 함수를 사용하였고, Dropout 레이어를 추가하여 과적합을 방지하였다.

대용량의 ImageNet 데이터를 가지고 사전에 학습된 VGG16의 가중치를 사용하고 효과적인 완전 연결 레이어를 구성함으로써 99.1%의 높은 검증 정확도를 얻어서 제안한 방법이 공간 데이터를 분류하기에 적합함을 보였다.

기존에 주로 사용되던 위성 및 항공 사진뿐만 아니라 제안한 방법은 Shapefile 포맷으로 제공되는 벡터 형태의 다양한 공간 데이터에 대해서도 높은 검증 정확도로 분류 가능하다는 의의가 있다. 이를 활용하면 소규모 주거 공간, 대규모 아파트 주거 공간, 비주거 산악 지역 등을 분류할 수 있다.

향후 연구 방향으로는 공간 데이터의 다양한 주제별 레이어를 추가로 학습하여 다양한 특성을 분류하는 연구가 가능하고, 여러 주제별 레이어가 통합된 지도에 대해 공간 및 비공간 데이터를 모두 활용하여 종합적인 특성을 분류하는 연구도 가능하다.

Acknowledgments

이 연구는 금오공과대학교 학술연구비로 지원되었음 (2019104078)

References

  • Y. Li, "Research and application of deep learning in image recognition", Proc. of IEEE 2nd Int. Conf. on Power, Electronics and Computer Applications, pp. 994-999, Jan. 2022. [https://doi.org/10.1109/ICPECA53709.2022.9718847]
  • M. Polsinelli, L. Cinque, and G. Placidi, "A light CNN for detecting COVID-19 from CT scans of the chest", Pattern recognition letters, Vol. 140, pp. 95-100, Dec. 2020. [https://doi.org/10.1016/j.patrec.2020.10.001]
  • M. Sajjad, S. Zahir, A. Ullah, Z. Akhtar, and K. Muhammad, "Human behavior understanding in big multimedia data using CNN based facial expression recognition", Mobile Networks and Applications, Vol. 25, pp. 1611–1621, Aug. 2020. [https://doi.org/10.1007/s11036-019-01366-9]
  • T. Kattenborn, J. Leitloff, F. Schiefer, and S. Hinz, "Review on convolutional neural networks(CNN) in vegetation remote sensing", ISPRS Journal of Photogrammetry and Remote Sensing, Vol. 173, pp. 24–49, Mar. 2021. [https://doi.org/10.1016/j.isprsjprs.2020.12.010]
  • W. Zhang, P. Tang, and L. Zhao, "Remote sensing image scene classification using CNN-CapsNet", Remote Sensing, Vol. 11, No. 5, 494, Feb. 2019. [https://doi.org/10.3390/rs11050494]
  • H. Gao, B. Cheng, J. Wang, K. Li, J. Zhao, and D. Li, "Object classification using CNN-Based fusion of vision and LIDAR in autonomous vehicle environment", IEEE Transactions on Industrial Informatics, Vol. 14, No. 9, pp. 4224-4231, Sep. 2018. [https://doi.org/10.1109/TII.2018.2822828]
  • H. Li, J. Liu, and X. Zhou, "Intelligent map reader: a framework for topographic map understanding with deep learning and gazetteer", IEEE Access, Vol. 6, pp. 25363-25376, May 2018. [https://doi.org/10.1109/ACCESS.2018.2823501]
  • ESRI Shapefile Technical Description, https://www.esri.com/content/dam/esrisites/sitecore-archive/Files/Pdfs/library/whitepapers/pdfs/shapefile.pdf, . [acessed: Jan. 21, 2022]
  • K. Simonyan and A. Zisserman, "Very deep convolutional networks for large-scale image recognition", Proc. of Int. Conf. on Learning Representations, arXiv:1409.1556, , Apr. 2015.
저자소개
오 병 우 (Byoung-Woo Oh)

1993년 2월 : 건국대학교 전자계산학과(공학사)

1995년 2월 : 건국대학교 전자계산학과(공학석사)

1999년 2월 : 건국대학교 전자계산학과(공학박사)

1999년 6월 ~ 2004년 2월 : 한국전자통신연구원 텔레매틱스연구단 선임 연구원

2004년 3월 ~ 현재 : 국립금오공과대학교 컴퓨터공학과 교수

관심분야 : 공간 데이터베이스, GIS, 위치 기반 서비스

Fig. 1.

Fig. 1.
Training and validation data generation process

Fig. 2.

Fig. 2.
Examples of the generated training data

Fig. 3.

Fig. 3.
Result of learning

Table 1.

Accuracy and loss results

Epoch Loss Acc Val_loss Val_acc
1 0.2509 0.9109 0.1066 0.9513
2 0.0804 0.9734 0.0458 0.9837
3 0.0540 0.9837 0.0393 0.9862
4 0.0397 0.9859 0.0174 0.9950
5 0.0338 0.9878 0.0204 0.9887
6 0.0311 0.9903 0.0046 0.9987
7 0.0290 0.9931 0.0264 0.9900
8 0.0348 0.9906 0.0170 0.9925
9 0.0221 0.9941 0.0267 0.9937
10 0.0211 0.9953 0.0237 0.9912