Korean Institute of Information Technology
[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 19, No. 9, pp.23-28
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 30 Sep 2021
Received 22 Jul 2021 Revised 06 Sep 2021 Accepted 09 Sep 2021
DOI: https://doi.org/10.14801/jkiit.2021.19.9.23

합성곱 신경망 인식률 개선을 위한 이미지 전처리에 대한 연구

김진*
*중원대학교 컴퓨터공학과 교수
A Study on Image Preprocessing to Improve the Recognition Rate of Convolutional Neural Networks
Jin Kim*

Correspondence to: Jin Kim Dept. of Computer Engineering, Jungwon University, 85, Munmu-ro, Goesan-eup, Goesan-gun, Chungbuk, 367-700, Republic of Korea Tel.: +82-43-830-8967, Email: martin@jwu.ac.kr

초록

합성곱 신경망(CNN, Convolutional Neural Network)은 학습 과정을 통하여 커널의 가중치를 최적화함으로써 해당 영상에 대한 최적의 특징 맵(Feature map)을 생성한다. 그러므로 신경망 모델의 입력 크기(Input shape)에 최적화 된 데이터 셋을 이용할 때 최적의 학습률이 나올 것을 기대할 수 있다. 그러나 공개 데이터 셋을 이용하거나 연구자가 직접 이미지를 수집할 경우 입력 크기가 맞지 않을 수 있다. 본 논문에서는 합성곱 신경망의 인식률을 높이기 위하여 여러 단계의 이미지 전처리 방법에 대하여 시험하여 결과를 도출하였다. 데이터 셋에 대하여 전처리 전/후에 대한 인식률을 비교한 결과 전처리 후의 결과가 5.73% 정확도가 개선되었다. 이를 통하여 학습 이미지에 대한 전처리 방법이 인식률 향상에 중요한 영향을 미치는 것을 알 수 있었다.

Abstract

A convolutional neural network(CNN) produces an optimal feature map for that image by optimizing the weights of the kernel through the learning process. Therefore, it can be expected that the optimal learning rate will be achieved when utilizing datasets optimized for input shape of neural network models. However, using public datasets or collecting images directly by researchers may not be suitable for the input shape. In this paper, several steps of image pre-processing methods were tested to increase the recognition rate of convolutional neural networks. As a result of comparing the recognition rate before and after pre-processing for the datasets, the result after pre-processing improved the accuracy by 5.73%. Through this, it was found that the pre-processing method for the learning image had an important effect on improving recognition rates.

Keywords:

convolutional neural network, feature map, input shape, pre-processing, background padding

Ⅰ. 서 론

최근 합성곱 신경망(CNN, Convolution Neural Network)[1]을 이용한 이미지 처리에 대한 연구가 활발히 진행 중이며 많은 분야에서 응용을 하고 있다[2]-[4]. 합성곱 층(Convolution layer)과 풀링 층(Pooling layer), 완전연결 층(Fully connected layer)으로 구성되며 영상 분석을 위하여 커널의 가중치 최적화를 통하여 특징 맵(Feature map)을 생성한다. 그러므로 신경망 모델의 입력 크기(Input shape)에 최적화된 데이터 셋을 이용할 때 최적의 학습률이 나올 것을 기대할 수 있다. 그러나 공개 데이터 셋을 이용하거나 연구자가 직접 이미지를 수집할 경우 입력 크기가 맞지 않을 수 있다.

일반적으로 합성곱 신경망의 경우 이미지의 너비와 높이 비율이 같은 경우가 많다. Minist[5]는 28*28, CIFAR-10[6]은 32*32, CUB_200-2011[7]는 224*224, YOLOv3[8]는 448*448이다. 그러나 공개 데이터 셋이나 수집한 이미지들의 너비와 높이 비율이 같지 않는 경우가 있다. 이 때 전처리 과정 없이 그대로 신경망 입력 데이터로 사용할 경우 이미지의 왜곡이 발생할 수 있다.

또한 이미지 자체는 크지만 ‘이미지 안에서 학습하고자 하는 사물’(이하, 목적 객체라 함)은 상대적으로 크기가 작을 수 있다. 이럴 경우 목적 객체의 특징 맵이 섬세하게 생성되지 않을 것이므로 데이터 셋의 숫자에 비하여 인식률은 크게 개선되지 않을 수 있다. 또한 실물 이미지에는 목적 객체뿐만 아니라 다양한 배경에 속한 사물(나뭇가지, 바위, 건물, 사람 등)들이 있다. 이 경우 이미지의 배경까지 같이 학습되어 특징 맵에 포함될 수 있다는 단점이 있다. 이미지에서 목적 객체를 제외한 배경 사물이 많을수록 신경망 모델은 이러한 복잡한 배경까지 학습하여 결과적으로 인식률 저하를 초래할 수 있다.

근접촬영으로 학습하고자하는 객체에 대하여 ‘큰 해상도의 이미지’(목적 객체 비율이 큰 이미지)를 다량으로 확보할 수 있는 경우에는 문제가 되지 않겠지만, 야생동물(짐승, 새, 곤충 등)과 같이 근접촬영이 어려운 경우 학습에 최적화된 이미지를 구하기 어려운 경우가 발생한다. 기업이나 공공기관의 경우에는 예산을 확보하여 학습 데이터 셋을 새로 구축할 수도 있겠지만 일반 연구자의 경우에는 비용문제로 새로운 데이터 셋을 확보하기가 쉽지는 않을 것이다.

본 논문에서는 새의 품종을 분류하기 위하여 인터넷 크롤링 이미지에서 목적 객체만 검출하여 새로운 데이터 셋을 만들었다. 이 때 검출된 이미지의 변형을 방지하기 위하여 너비·높이 비율을 그대로 유지하면서 딥러닝 모델의 입력 크기에 맞도록 확대/축소와 같은 전처리를 하였다. 그리고 너비·높이 비율을 유지하는 과정에서 딥러닝 모델의 입력 크기보다 작은 부분에 대해서는 패딩(Padding)을 추가하여 크기를 같게 만들었다.

학습 이미지에 대한 전처리가 합성곱 신경망 인식률 개선에 어느 정도 영향을 미치는지 검증하기 위하여 caltech.edu에서 제공하는 CUB-200-2011 데이터 셋으로 테스트하였다. 크롤링 이미지를 그대로 학습하여 테스트하였을 때 87.41%의 정확도가 나왔으며, 이미지 전처리 후 학습 및 테스트하였을 때 93.14%의 정확도로 전처리 없이 학습하였을 때 보다 5.73% 높은 정확도를 얻을 수 있었다.


Ⅱ. 관련 연구

2.1 합성곱 신경망

기존의 비전 기반(Vision-based) 이미지 연구에서 에지를 추출하기 위하여 커널에 대한 다양한 연구가 있었으며, 오늘날 딥러닝에서는 학습과정을 통하여 자동으로 커널을 최적화 시켜주는 것이 합성곱 신경망이다[1].

그림 1은 원본 이미지(a)에 대한 수평 에지 커널과 수직 에지 커널을 적용하였을 때의 특징 맵을 보여주고 있다. (b)와 (c)를 보면 학습하고자 하는 새의 에지뿐만 아니라 배경부분(나뭇가지) 에지까지 특징 맵에 포함되어 있는 것을 볼 수 있다.

Fig. 1.

Horizontal and vertical edge feature map, (a) Original image, (b) Horizontal feature map, (c) Vertical feature map

그림 2는 합성곱 신경망 논문의 일부분이다. 여기서 INPUT 이미지에 대하여 특징 맵을 생성하는 과정이 합성곱 연산과정임을 알 수 있다. 그림 2의 경우 배경이 단색이지만 실물 이미지에서는 배경 부분에 다양한 사물들이 포함될 수 있다. 이 때 학습하고자 하는 객체뿐만 아니라 배경 사물도 특징 맵에 포함될 수 있다는 사실을 알 수 있다. 물론 학습을 반복(Epochs)하면서 커널의 가중치들이 조정되고 목적 객체에 대한 최적의 특징 맵이 생성될 것이다. 그러나 학습 과정에서 배경에 있는 사물의 모든 특징이 필터링 된다고는 할 수 없을 것이다.

Fig. 2.

Part of a convolutional neural network[1]

합성곱 신경망에서 합성곱 층과 함께 중요한 부분이 최댓값 풀링 층(MaxPooling2D layer)이다. 풀링 층에서는 합성곱 층에서 생성한 특징 맵에 있는 픽셀 중 특징이 될 수 있는 값을 추출하는데 최댓값 풀링과 평균 풀링이 있으며 최댓값 풀링의 경우 픽셀 값 중에서 최댓값을 취하게 된다. 일반적으로 최댓값 풀링을 많이 사용한다.

2.2 객체 검출

이미지 처리에서 분류와 함께 중요한 이슈가 검출이다. 지금까지 객체 검출을 위한 다양한 딥러닝 모델들이 발표되었으며 R-CNN, Fast R-CNN, Faster R-CNN, YOLO가 대표적인 모델들이라 할 수 있다.

본 논문에서는 객체검출에 대한 내용이 주요 논제가 아니므로 앞에서 언급한 모델들에 대해서 자세한 내용은 다루지 않는다. 다만 본 논문에서 이미지 전처리를 하는 과정에서 목적 객체(Bird)를 검출하고, 검출된 바운딩 박스 영역을 이미지로 저장하는 과정에서 YOLOv3 모델을 사용하였다.

YOLOv3는 R-CNN, Fast R-CNN, Faster R-CNN[9]에 비하여 빠른 실시간 객체 검출 알고리즘이다. 주어진 이미지에 대하여 다수의 바운딩 박스를 생성한 후 각각의 바운딩 박스에 대하여 객체의 예측 확률 및 검출 된 객체의 위치와 크기 정보를 제공한다.

다수의 검출 객체 중에서 예측 확률이 높은 것을 선택하고, 바운딩 박스 위치 및 크기 정보를 이용하여 검출된 객체의 이미지를 추출할 수 있다. 이 때 그림 3(a)에서 보는 바와 같이 같은 객체에 대하여 다수의 바운딩 박스가 생성될 수 있는데 ‘Non maximum suppression’을 통하여 중복을 제거 할 수 있다[10][11]. (b)는 같은 객체에 대한 중복된 바운딩 박스를 제거한 모습이다.

Fig. 3.

YOLOv3 detection bounding box example


Ⅲ. 이미지 전처리

합성곱 신경망 인식률 개선을 위한 이미지 전처리 순서는 다음과 같다.

① YOLOv3 모델을 사용하여 데이터 셋의 모든 이미지 각각에 대하여 목적 객체를 검출한다. 이 때 YOLOv3 모델이 학습한 모든 클래스에 대한 객체가 검출되는데, 그림 3의 경우 사람과 자동차 클래스에 대하여 다수의 객체가 검출되었다.

② 한 장의 이미지에서 검출된 객체들을 탐색하여 학습하고자 하는 목적 객체에 대한 정확도가 가장 높은 바운딩 박스를 선택하고, 바운딩 박스 위치와 크기 정보를 이용하여 바운딩 박스 영역을 이미지로 저장한다. 이 단계에서는 바운딩 박스의 가로·세로 크기가 제각각이므로 저장되는 이미지의 크기도 제각각이다.

그림 4는 원본 이미지(좌)와 ② 단계에서 추출된 이미지(우)이다. (a)와 (f)의 원본 이미지의 경우(좌) 배경부분에 복잡한 가지들이 많아 노이즈로 학습될 가능성이 많은 반면 오른쪽의 추출된 이미지에서는 이런 부분이 제거되었다. (c)의 경우 좌측의 원본이미지를 분류할 때는 문제가 되지 않지만, 두 객체가 하나의 특징 맵으로 학습 될 수 있으므로 오른쪽처럼 하나만 추출되는 것이 학습에 유리하다고 볼 수 있다. (d)와 (e)의 경우 원본 이미지의 비상하는 객체의 크기가 배경에 비하여 너무 작아 학습이 어렵다고 볼 수 있는데 오른쪽 추출 이미지는 원본에 비하여 객체가 크게 드러나 있다.

Fig. 4.

Original(left) and extracted images(right)

③ 추출한 이미지의 크기를 딥러닝 모델의 입력 크기로 재구성해야 한다. 이 때 이미지 변형을 방지하기 위하여 너비·높이 비율을 유지하면서 확대 또는 축소해야 한다. 그리고 이미지 확대·축소 시 이미지 보간법을 적용하는데 본 논문에서는 Opencv를 사용하였으므로, 이미지 확대 시 'INTER_CUBIC', 축소 시 'INTER_AREA'를 적용하였다.

④ 이미지의 너비·높이 크기가 딥러닝 모델 입력 크기보다 작은 부분에 패딩으로 채워준다. 이 때 추출한 이미지가 중앙에 배치되도록 한다.

그림 5는 YOLOv3 모델로 추출한 이미지를 합성곱 신경망 모델의 입력크기에 맞게 확대·축소한 이미지이다. 이미지의 너비·높이 비율이 같은 경우 특별한 처리가 필요치 않으나 대부분의 이미지는 딥러닝 모델 입력 크기보다 너비 또는 높이가 크거나 작다. 그러므로 딥러닝 모델 입력 크기에 맞도록 패딩으로 채워야 한다. 이 때 흰색으로 채울지 검은색으로 채울지 선택해야 하는데 2.1에서 설명한 바와 같이, 본 논문에서도 최댓값 풀링을 사용하므로 검은색(RGB 값 0, 0, 0)으로 배경을 채워준다.

Fig. 5.

Enlarged/reduced image to model input size

그림 6은 추출한 이미지 부족한 배경 부분에 ④ 단계에서 제로 패딩하여 크기를 맞춘 그림이다.

Fig. 6.

Image with zero padding applied to the background


Ⅳ. 실험 및 평가

표 1은 본 논문의 실험 환경이다. 딥러닝 학습 모델은 ResNet50을 사용하였으며, 학습 데이터는 인터넷 크롤링 이미지에서 추출한 18,512개의 이미지를 사용하였다. 검증과 테스트에는 ImageNet에서 공개한 새 품종 분류를 위한 CUB_200_2011을 사용하였다. 학습에 사용한 데이터 셋의 새 품종별 구성은 표 2와 같다.

Deep learning experiment environment

Data set images configuration

추출한 이미지를 딥러닝 모델 입력 크기에 맞게 확대·축소하는 과정에서 너비와 높이 비율을 같게 하다보면 부족한 부분이 생긴다. 이 때 부족한 영역을 패딩으로 채울 때 추출 이미지 배치와 배경을 다양한 조건으로 테스트하였다.

그림 7은 다양한 조건으로 테스트한 이미지 예시이다. (a)는 이미지 중앙 배치 + 검은색 패딩, (b)는 이미지 중앙 배치 + 흰색 패딩, (c)는 이미지 원점 배치 + 검은색 패딩, (d)는 이미지 원점 배치 + 흰색 패딩한 모습이다. 그리고 과적합을 방지하고 최적의 가중치로 테스트하기 위하여 텐서플로 callbacks 함수를 사용하였다. 검증 데이터 손실률에 대하여 EarlyStopping과 ModelCheckpoint를 적용하여 테스트 데이터의 정확도를 구하였다.

Fig. 7.

Image placement and padding for testing

표 3그림 7과 같은 다양한 조건으로 실험한 결과이다. 배경 확대 시 추출한 이미지를 중앙에 배치하는 것이 상·하·좌·우 어느 한 쪽에 치우친 것보다 정확도가 높은 것을 알 수 있다. 그리고 흰색 패딩보다 검은색 패딩이 정확도가 높은 것을 알 수 있다. 전체적으로 볼 때 추출한 이미지의 배치 위치나 패딩 색에 상관없이 전처리를 하는 것이 하지 않은 것보다 정확도가 높은 것을 알 수 있다.

Data set test results


Ⅴ. 결론 및 향후 과제

합성곱 신경망으로 이미지 분석 모델을 만들 때 인식률을 높이기 위하여 이미지에서 배경부분을 최소로 하는 것이 성능 개선에 필요하다는 것을 실험을 통하여 검증하였다. 이 때 기존 이미지의 너비와 높이 비율을 그대로 유지하는 것이 좋으며, 딥러닝 모델 입력 크기보다 부족한 부분에 대해서는 검은색으로 패딩하는 것이 흰색 패딩보다 좋다는 것을 알 수 있었다.

본 논문에서는 새 품종 분류를 위하여 인터넷 크롤링 이미지에서 객체를 검출하여 새로운 데이터 셋을 만들었다. 검출 이미지를 같은 비율로 확대/축소하여 딥러닝 학습 모델에 최적화하였고 부족한 부분에 대해서는 패딩을 하여 크기를 맞추었다. 테스트 결과 전처리를 하지 않았을 때 보다 5.73% 정확도가 개선되어 이미지 전처리에 대한 효과를 검증하였다.

References

  • Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, "Gradient-based Learning Applied to Document Recognition", Proceedings of the IEEE, Vol. 86, No. 11, pp. 2278-2324, Nov. 1998. [https://doi.org/10.1109/5.726791]
  • Jae-Jung Kim and Chang-Bok Kim, "Implementation of Robust License Plate Recognition System using YOLO and CNN", Journal of Korean Institute of Information Technology, Vol. 19, No. 4, pp. 1-9, Apr. 2021. [https://doi.org/10.14801/jkiit.2021.19.4.1]
  • Jae Myung Kim, Gyu Ho Choi, Jin Su Kim, and Sung Bum Pan, "User Recognition using Electromyogram 2D Spectrogram Images based on CNN", Journal of Korean Institute of Information Technology, Vol. 19, No. 1, pp. 107-117, Jan. 2021. [https://doi.org/10.14801/jkiit.2021.19.1.107]
  • P. Chhikara, P. Singh, P. Gupta, and T. Bhatia, "Deep Convolutional Neural Network with Transfer Learning for Detecting Pneumonia on Chest X-Rays", Advances in Bioinformatics, Multimedia, and Electronics Circuits and Signals : Advances in Intelligent Systems and Computing, Vol. 1064, pp. 155-168, Oct. 2019. [https://doi.org/10.1007/978-981-15-0339-9_13]
  • http://yann.lecun.com/exdb/mnist/, [accessed: Jul. 21, 2021]
  • https://www.cs.toronto.edu/~kriz/cifar.html, [accessed: Jul. 21, 2021]
  • http://www.vision.caltech.edu/visipedia/CUB-200-2011.html, [accessed: Jul. 21, 2021]
  • https://pjreddie.com/darknet/yolo/, [accessed: Jul. 21, 2021]
  • Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks", IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 39, No. 6, pp. 1137-1149, Jun. 2017. [https://doi.org/10.1109/TPAMI.2016.2577031]
  • Rasmus Rothe, Matthieu Guillaumin, and Luc Van Gool, "Non-maximum suppression for object detection by passing messages between windows", Asian Conference on Computer Vision, Singapore, Singapore, pp. 290-306, Nov. 2014. [https://doi.org/10.1007/978-3-319-16865-4_19]
  • Jan Hosang, Rodrigo Benenson, and Bernt Schiele, "Learning Non-Maximum Suppression", Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition(CVPR), Honolulu, Hawaii, pp. 4507-4515, Jul. 2017. [https://doi.org/10.1109/CVPR.2017.685]
저자소개
김 진 (Jin Kim)

2013년 2월 : 충북대학교 컴퓨터공학과(공학박사)

2013년 ~ 현재 : 중원대학교 컴퓨터공학과 조교수

관심분야 : 정보보호, 딥러닝

Fig. 1.

Fig. 1.
Horizontal and vertical edge feature map, (a) Original image, (b) Horizontal feature map, (c) Vertical feature map

Fig. 2.

Fig. 2.
Part of a convolutional neural network[1]

Fig. 3.

Fig. 3.
YOLOv3 detection bounding box example

Fig. 4.

Fig. 4.
Original(left) and extracted images(right)

Fig. 5.

Fig. 5.
Enlarged/reduced image to model input size

Fig. 6.

Fig. 6.
Image with zero padding applied to the background

Fig. 7.

Fig. 7.
Image placement and padding for testing

Table 1.

Deep learning experiment environment

System Windows 10, tensorflow, Geforce GTX1060
Pre-trained model ResNet50
Train data 23,611 crawled images
18,512 extracted images
val., test data CUB_200_2011 516 images

Table 2.

Data set images configuration

Bird breed Crawled
images
Extracted
images
CUB200
2011
Black footed albatross 4,430 3,579 52
Laysan albatross 3,883 3,106 58
Sooty albatross 676 557 54
Groove_billed Ani 4,430 3,751 56
Crested auklet 1,076 830 42
Least auklet 994 796 40
Parakeet auklet 1,929 1,338 51
Rhinoceros auklet 4,099 2,667 47
Brewer blackbird 1,666 1,518 58
Red_winged blackbird 428 370 58
Total 23,611 18,512 516

Table 3.

Data set test results

Image location Padding type Accuracy(%)
First Second Average
Images
centering
(a) Black padding 93.25 93.02 93.14
(b) White padding 91.70 91.86 91.78
Images not
centering
(c) Black padding 91.86 91.86 91.86
(d) White padding 89.15 88.76 88.96
Original images 87.60 87.21 87.41