Korean Institute of Information Technology

Home

The Journal of Korean Institute of Information Technology - Vol. 19 , No. 7

[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 19, No. 7, pp. 19-25
Abbreviation: Journal of KIIT
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 31 Jul 2021
Received 09 Jul 2021 Revised 20 Jul 2021 Accepted 23 Jul 2021
DOI: https://doi.org/10.14801/jkiit.2021.19.7.19

웹 검색을 이용한 새 품종 분류를 위한 전이학습에 대한 연구
김진*
*중원대학교 컴퓨터공학과 교수

A Study on the Deep Transfer Learning for Bird Breed Classification using Web Search
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


초록

최근 딥러닝을 통하여 이미지 분류 및 객체 검출 등에 대한 연구가 활발히 진행되고 있다. 또한 특정 부류에 사전 학습된 딥러닝 모델의 신경망 기능을 그대로 유지하거나 일부 변경하여 새로운 신경망 학습에 사용하는 전이학습에 대한 연구도 활발히 진행되고 있다. 그러나 이미지 학습을 위해서는 많은 양의 데이터 셋이 필요하지만 원하는 종류 및 수량의 이미지를 확보하기는 어렵다. 본 논문에서는 새의 품종 분류를 위하여 구글 웹사이트 크롤링을 통하여 대량의 이미지를 수집하였고, 여러 단계별 전처리를 통하여 학습에 사용 가능한 이미지를 선별하였다. 그리고 ImageNet으로 사전 학습한 ResNet50 모델을 사용하여 새의 품종을 분류하는 미세 조정 방식 전이학습을 수행하였다. 또한 새 품종 분류를 위한 데이터 셋인 CUB_200-2011 데이터 셋을 이용하여 학습한 모델을 테스트하였으며 87.87%의 정확률로 검색 이미지에 대한 신뢰도를 얻을 수 있었다.

Abstract

Recently, research on image recognition and object extraction has been actively carried out through deep learning. In addition, research on transfer learning, which is used for new neural network learning by maintaining or partially changing the neural network function of a deep learning model pre-trained in a specific field, is also being actively conducted. However, although a large number of datasets are required for image learning, it is difficult to obtain desired quantities of images. In this paper, a large number of images were collected through Google and bird-related professional website crawling for bird breed classification, and images that can be used for learning were selected through various preprocessing. Then, using the ResNet50 model pre-trained with ImageNet, fine-tuning transfer learning was performed to classify bird breeds. In addition, the trained model was tested using the CUB_200-2011 data set, which is a data set for classifying new breeds, and the reliability of the search image was obtained with an accuracy of 87.87%.


Keywords: deep learning, transfer learning, bird breed recognition, web crawling, ResNet50, ImageNet

Ⅰ. 서 론

오늘날 그래픽카드의 처리 속도 향상 및 대중화, 텐서플로, 파이토치 등의 라이브러리 발전과 더불어 이미지 분류 및 객체 검출 분야에서 많은 발전을 거듭하고 있다.

과거 Minist, Fashion Mnist, CIFAR과 같은 28*28, 35*35 픽셀처럼 작은 크기의 이미지 데이터 셋을 기반으로 이루어진 연구가 오늘날에는 큰 사이즈의 이미지를 분류하고 이미지 내 객체를 빠르게 검출하는 수준에 이르고 있다[1]-[3]. 그리고 IT관련 기업이나 대학교 등에서 공개한 다양한 데이터 셋이 있으며 그 추세는 갈수록 늘어나고 있다. ImageNet[4], Radiant MLHub[5], COIL100[6], Visual Genome[7], Google’s Open Images[8], Labelled Faces in the Wild[9], Stanford Dogs Dataset[10], Indoor Scene Recognition[11], SVHN[12], STL-10[13], UMDFaces Dataset[14], Oxford-IIIT Pet Dataset[15] 등 다양한 오픈소스 이미지 셋이 있다. 그러나 대부분의 데이터 셋은 어떤 특정분야의 연구를 위한 목적으로 만들었기 때문에 저마다의 특징을 가지고 있어서 아무리 많은 데이터 셋이 있다고 하더라도 모든 연구 목적에 충분하다고는 할 수 없을 것이다.

그리고 Airplane, Automobile, Bird, Cat, Deer, Dog, Frog, Horse, Ship, Truck을 포함하는 CIFAR-10 데이터 셋과 같이 대분류 카테고리에 대한 연구가 주를 이루었다고 한다면 최근에는 중, 소분류에 대한 연구로 그 범위가 세분화 되고 있다[16]. 이러한 이미지 딥러닝에서 충분한 양의 데이터 셋 확보가 관건이라고 할 수 있지만 일반 연구자의 입장에서 자신이 필요로 하는 특정 종류의 충분한 이미지를 수집하기는 어려운 게 사실이다.

또한 이미지 학습에서 주를 이루는 부분이 컨볼루션 신경망(CNN)으로 많은 횟수의 연산을 필요로 한다[17]. 그러므로 과거에는 28*28, 35*35픽셀과 같은 작은 이미지로 학습을 하였는데 최근에는 큰 이미지에 대한 학습으로 확대되면서 연산량에 따른 장시간 학습이 개인 연구자에게는 어려운 걸림돌이 될 수 있다. 이에 대한 대안으로 대두되는 방법이 전이학습(Transfer learning) 모델을 이용하는 것이다[18].

본 논문에서는 새의 품종을 분류하는 딥러닝 모델을 만들기 위하여 텐서플로가 제공하는 ImageNet으로 사전 학습된 모델 ResNet50을 사용하였다[18]. 그리고 학습 과정에 필요한 대량의 이미지를 확보하기 위하여 웹 검색을 이용하였다. 구글 이미지 검색 크롤링을 통하여 23,600장의 이미지를 수집하였고, 여러 단계의 전처리를 통하여 학습에 사용할 수 있는 이미지를 선별하여 학습에 이용하였다.

또한 크롤링 이미지의 정확도를 테스트하기 위하여 caltech.edu에서 새 품종 분류를 위하여 제공하는 데이터 셋 Caltech-UCSD Birds-200-2011을 이용하여 테스트 한 결과 높은 정확률을 보임으로써 크롤링 이미지에 대한 신뢰도를 확인할 수 있었다[16]. 그리고 새의 부류에 따라 정확률에 차이가 있음을 확인 할 수 있었으며, 정확률에 대한 차이는 새의 생태습성으로 인한 이미지 데이터 셋의 복잡한 배경 차이로부터 비롯되었음을 확인할 수 있었다.


Ⅱ. 관련 연구
2.1 웹 검색

웹 검색은 프로그램을 이용하여 자동화된 방법으로 웹을 탐색하여 목적하는 데이터를 획득하는 일련의 작업을 말한다. 특히 검색엔진의 경우 여러 사이트로부터 갱신되는 데이터의 최신 상태를 유지하기 위하여 주기적으로 사이트를 방문하며 업데이트 내용을 갱신하게 된다.

그림 1은 웹 크롤러 기본 아키텍처이다[19]. 일반적으로 웹 검색 시스템은 Frontier, Fetcher, Parser로 구성이 되며, Frontier에서는 검색할 사이트 리스트를 관리하며 Fetcher에게 넘겨주는 역할을 한다. Fetcher는 해당 URL에 대하여 웹서버로 request를 보내고 서버로부터 html 소스코드를 response 받는다. 이것을 Parser가 분석하여 원하는 데이터 또는 새로운 URL을 가져오는 일련의 작업을 반복하게 된다. 웹 검색은 www 태동 시 부터 지금까지 꾸준하게 연구되고 있으며, 다양한 목적을 위해 수많은 종류의 크롤러가 개발되고 있다.[20][21]


Fig. 1. 
Basic web crawler architecture

본 논문에서는 웹 검색이 주목적이 아니므로 여기서 말하는 시스템 수준의 웹 검색까지는 하지 않았다.

그러나 데이터 셋을 얻기 어려운 상황에서 검색을 통하여 정확도가 높은 데이터를 획득하기 위해서는 웹 검색 기술을 잘 활용하는 것도 한 가지 방법이 될 것이다.

2.2 전이학습

전이학습은 특정 부류에 학습된 신경망 모델의 일부 기능을 유지하거나 약간의 변형을 가하여 새로운 데이터에 대한 신경망 학습에 재사용 하는 지도학습(Supervised learning) 방법이다. 일반적으로 이미지 학습을 위한 딥러닝 모델의 경우 전반부에는 대부분 CNN(Convolutional Neural Networks) 레이어가 있으며, 이 CNN 레이어는 커널과 합성곱층(Covolutional layer), 풀링층(Pooling layer)으로 구성되어 특징 맵(Feature map)을 생성하는 역할을 하게 된다. 이 때 다양한 종류의 커널을 통하여 다양한 특징 맵의 생성이 가능하게 되는데, 커널의 기본 구성은 이미지의 선형성과 패턴 그리고 이미지 형상 등의 특징 맵을 생성하도록 되어 있으며 학습을 통하여 최적의 특징 맵을 만들도록 커널이 수정되는 것이 CNN 부분의 학습이다. 그리고 딥러닝 모델의 뒷부분에는 선형 레이어를 사용하여 특징 맵으로부터 레이블이 매칭되도록 weights를 학습하는 것이 후반부의 학습이다[17].

그러므로 전이학습의 효과를 높이기 위해서는 합성곱층과 풀링층의 학습결과를 유지할 수 있도록 사전학습 모델(Pre-trained model)이 사용한 데이터 셋과 전이학습에서 사용하는 데이터 셋 사이에 유사성이 있어야 한다. 즉 학습 데이터가 유사할 경우 사전학습 모델에서 생성한 CNN 레이어가 전이학습 하고자 하는 데이터 셋에도 잘 적용되기 때문이다. 아래 그림 2는 텐서플로 케라스에서 제공하고 있는 전이학습에 이용할 수 있는 사전 학습된 딥러닝 모델 리스트 일부이다[22].


Fig. 2. 
Part of pre-trained DL model for Keras

머신러닝의 경우 인위적으로 특징을 생성하여 학습모델에 적용시킴으로써 딥러닝에 비해서 상대적으로 적은 수의 학습 데이터가 필요하다. 그러나 인위적으로 생성한 특징이 잘못 적용되거나 부적합한 것일 수 도 있으며 특징이 변경되는 경우 새로 학습시켜야 하는 단점이 있다. 반면 딥러닝의 경우 특징 맵 생성부터 학습까지 모든 부분을 프로그램이 수행하므로 머신러닝에 비해서 상대적으로 학습 데이터가 많이 필요하게 된다. 또한 CNN 연산 자체가 많은 수의 합성곱 연산과 풀링 연산을 필요로 하므로 하드웨어적인 리소스를 많이 필요로 하며 학습시간도 그만큼 많이 소요된다.

그러므로 덩치가 큰 딥러닝 모델을 처음부터 학습시킬 경우 많은 하드웨어 자원과 시간을 필요로 하므로 사전학습 모델을 재사용하여 새로운 데이터 셋 학습에 적용할 경우 하드웨어 리소스나 시간절약을 기대할 수 있다. 또한 사전학습 모델이므로 처음부터 학습시키는 모델보다 학습 데이터 량이 현저히 적어도 높은 정확률을 기대할 수 있는 장점이 있다.


Ⅲ. 웹 검색 및 이미지 전처리

본 논문에서는 ImageNet으로 사전 학습된 모델 ResNet50을 이용하여 새의 품종을 분류하는 전이학습 모델을 만들었다. CUB_200-2011은 새의 품종 분류를 위한 데이터 셋으로, 새 200여종에 대하여 11,788장의 이미지를 제공하고 있다. 그러나 종류가 200 가지나 되어 각 클래스별 이미지는 평균 59장에 불과하다. 데이터 셋 만으로 전이학습을 할 경우 약 75%의 정확률이 나오지만, 본 논문에서는 웹 검색을 통하여 이미지를 확보하고 검증하는 것이 목표이므로 크롤링을 통하여 이미지를 추가 하였다. 웹 크롤링 환경은 표 1과 같다.

Table 1. 
Web crawling environments and breeds
System windows10, selenium, Chrome webdriver
Bird breed
10 kineds
Black footed albatross, Laysan albatross, Sooty albatross, Groove_billed Ani, Crested auklet, Least auklet, Parakeet auklet, Rhinoceros auklet, Brewer blackbird, Red_winged blackbird

수집한 이미지에서 학습에 사용하기 부적합한 이미지를 제거하기 위하여 YOLOv3를 이용하여 필터링을 수행하며, 시나리오는 다음과 같다.

① 새를 학습한 모델을 이용하여 수집한 이미지 중 새가 아닌 이미지 삭제.

크롤링 이미지의 개수가 수 천 개 이상 많을 때 하나씩 수작업으로 이미지를 선별하기는 현실적으로 비효율적이다. 그러므로 새를 분류할 수 있는 모델을 만들어 자동으로 필터링을 수행하는 것이 효과적이다. 그림 3은 새가 아닌 것으로 필터링 된 이미지이다.


Fig. 3. 
Images without birds

② 한 마리 이상의 새가 있는 이미지 삭제

필터링에서 새로 분류된 것 중 여러 마리가 모여 있는 이미지가 있을 수 있다. 비록 새로 분류되었다고 하더라도 여러 마리의 새가 하나의 특징으로 학습되게 되면 오히려 잡음 역할을 할 수 있으므로 학습용으로는 적절하지 않다. 그림 4는 새로 분류되었으나 여러 마리가 있어서 필터링 된 이미지이다.


Fig. 4. 
Images with multiple birds

③ 새를 포함하는 바운딩 박스의 크기가 1600픽셀(40*40픽셀) 이하의 이미지 삭제

학습 이미지(224*224픽셀)에서 객체의 크기가 현저히 작을 때는 비록 새로 분류되었다고 하더라도 삭제한다. 특히 원거리에서 촬영된 이미지의 경우 사람 육안으로도 품종을 가리기 어렵다. 이런 경우 학습 데이터로는 적절하지 않으므로 삭제하는 것이 바람직하다. 이 때 이미지의 크기에 대한 임계값이 정해져 있는 것은 아니지만 본 논문에서는 학습 이미지의 약 1/5을 필터링 대상으로 분류하였다. 그림 5는 새로 분류되었지만 이미지에 비하여 객체의 크기가 현저히 작아서 학습 데이터로는 부적합하므로 필터링 된 이미지이다.


Fig. 5. 
Images of a bird very small in size

④ SHA-256 해시값으로 크롤링 이미지와 검증 이미지 중에서 같은 이미지 삭제

크롤링으로 수집한 이미지 중에서 검증용로 사용하는 이미지와 중복되는 것이 발생할 수 있다. 이럴 경우 제대로 된 정확률을 얻을 수 없다. 그러므로 학습용과 검증용 이미지 중복에 대한 전수조사를 해시값으로 비교하여 필터링 하였다. 검사결과 표 2에 있는 ‘필터링 ④’와 같이 중복 이미지는 없는 것으로 나타났다.

Table 2. 
Changes in the quantity of crawling images by filtering step
Bird breed Crawling count Filtering ① Filtering ② Filtering ③ Filtering ④ Filtering ⑤ Final count
Black footed albatross 4,430 295 312 199 0 417 3,207
Laysan albatross 3,883 230 284 199 0 1089 2,081
Sooty albatross 676 27 32 19 0 91 507
Groove_billed Ani 4,430 168 215 16 0 388 3,643
Crested auklet, 1,076 120 194 88 0 141 533
Least auklet 994 107 182 55 0 85 565
Parakeet auklet 1,929 178 291 121 0 204 1,135
Rhinoceros auklet 4,099 384 867 191 0 678 1,979
Brewer blackbird 1,666 24 61 42 0 106 1,433
Red_winged blackbird 428 7 11 27 0 22 361
Total 23,611 1,540 2,449 957 0 3,221 15,444

⑤ 사람이 최종적으로 확인

여러 단계의 필터링 과정을 수행했더라도 예상치 못한 예외 사항이 생길 수 있다. 그래서 최종적으로 눈으로 보면서 걸러내지 못한 이미지가 없는지 한 번 더 살펴볼 필요가 있다.

그림 6은 최종적으로 사람 눈으로 필터링 한 이미지 들이다. 가장 큰 특징은 실물 사진이 아니라 그림속의 새를 그대로 인식한다는 것과 새 모양의 장신구를 새로 인식하는 것 그리고 새의 일부만 있는 사진으로 학습용 데이터로 쓰기에는 부적당한 것들을 필터링 하였다.


Fig. 6. 
Images filtered by human eye


Ⅳ. 실험 및 평가

표 2는 시나리오 단계별 크롤링 이미지의 필터링 개수 변화를 나타내며, 표 3은 본 논문에서 제시한 크롤링 이미지 검증을 위한 실험 환경이다. 표 2에서 ‘필터링 ①, ②’는 필터링 모델인 YOLOv3의 객체 검출 정확도에 의존하는 부분으로 본 논문에서는 논외로 한다.

Table 3. 
Deep learning experiment environment
System windows 10, tensorflow, Geforce GTX1060
Pre_trained model ResNet50
Train data 15,444 crawled images
Val., test data CUB_200_2011 543 images

‘필터링 ③’에서는 이미지 크기 임계값을 조금 더 크게 설정할 필요가 있다. 특히 ‘필터링 ⑤’ 단계에서 숫자가 많은 것은 ‘필터링 ①, ②, ③’단계에서 세밀하게 필터링하지 못한 원인도 있지만 해상도가 낮은 이미지(오래전 사진, 흔들린 사진, 어두운 사진, 새보다 주변 배경이 더 드러나는 사진, 미성숙 사진, 극히 일부분만 있는 사진)를 대량으로 제거한 이유도 있다.

필터링 한 최종 데이터 셋을 ResNet50으로 학습 한 후 CUB_200_2011 데이터 셋을 검증 및 테스트한 결과 87.87% 정확률이 나왔다. 평균 정확률은 이렇게 나왔지만 각 품종별로 테스트를 하면 정확률의 차이가 큰 것을 확인 할 수 있다. 그 이유는 표 1과 같이 최종 학습 데이터 셋에서 부류 간 이미지 개수의 차이가 큰 것을 확인할 수 있다. 그러므로 이미지의 개수에 따라 정확률에 영향을 주는 것을 알 수 있다. 그림 7은 딥러닝 학습과정에 대한 정확률과 손실률 그래프이다. Train accuracy: 0.9930, validation accuracy: 0.9225, test accuracy: 0.8787. 학습 시 validation loss에 대하여 조기종료(callbacks.Earlystopping)을 설정하였으며 최종적으로 에포크(Epoch) 10에서 종료하였다.


Fig. 7. 
Model test result graph


Ⅴ. 결론 및 향후 과제

4차 산업혁명과 더불어 기업, 공공기관, 대학, 산업체 등에서 다양한 데이터 셋을 공개하고 있지만 대부분의 데이터 셋은 기관의 특수한 목적이나 응용서비스 개발 방향에 종속 되어 있어 일반 연구자의 특수한 연구목적에 부합하는 데이터 셋을 구하기가 쉽지는 않다. 이러한 경우 비용을 지불하고 데이터 셋을 구할 수도 있지만 비용을 지불하더라도 구하기 어려운 경우도 있다. 이런 경우 웹 검색을 통하여 필요로 하는 데이터 셋을 직접 구축할 수도 있다.

본 논문에서는 새의 품종 분류를 위하여 전이학습용 이미지 확보 방안으로 웹 검색을 이용하여 23,600장의 이미지를 확보할 수 있었다. 또한 수집한 이미지를 다단계 필터링 과정으로 학습용 이미지를 선별하였다. ImageNet으로 사전학습 된 ResNet50 모델을 이용하여 선별한 이미지를 학습시키고, 새의 품종 분류를 위한 데이터 셋인 CUB_200-2011을 테스트 분류하여 87.87% 정확률을 얻을 수 있었으며, 이를 통하여 검색하여 수집한 이미지에 대한 신뢰도를 확인 할 수 있었다.

단순한 검색 기능이 아니라 시맨틱(Semantic) 웹 검색 기술로 검색 결과에 대한 정확도를 높이는 것을 본 논문의 향후 과제로 한다.


References
1. http://yann.lecun.com/exdb/mnist [accessed: Jul. 06, 2021]
2. https://github.com/zalandoresearch/fashion-mnist [accessed: Jul. 06, 2021]
3. https://www.cs.toronto.edu/~kriz/cifar.html [accessed: Jul. 06, 2021]
4. https://image-net.org [accessed:: Jul. 06, 2021]
5. https://www.mlhub.earth/index.html [accessed: Jul. 06, 2021]
6. https://www1.cs.columbia.edu/CAVE/software/softlib/coil-100.php. [accessed: Jul. 06, 2021]
7. http://visualgenome.org/ [accessed: Jul. 06, 2021]
8. https://storage.googleapis.com/openimages/web/index.html. [accessed: Jul. 06, 2021]
9. http://vis-www.cs.umass.edu/lfw/. [accessed: Jul. 06, 2021]
10. http://vision.stanford.edu/aditya86/ImageNetDogs/. [accessed: Jul. 06, 2021]
11. http://web.mit.edu/torralba/www/indoor.html [accessed::Jul. 06, 2021]
12. http://ufldl.stanford.edu/housenumbers/. [accessed: Jul. 06, 2021]
13. https://cs.stanford.edu/~acoates/stl10/. [accessed: Jul. 06, 2021]
14. http://umdfaces.io/. [accessed: Jul. 06, 2021]
15. https://www.robots.ox.ac.uk/~vgg/data/pets/. [accessed: Jul. 06, 2021]
16. http://www.vision.caltech.edu/visipedia/CUB-200-2011.html. [accessed: Jul. 06, 2021]
17. 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.
18. Sinno Jialin Pan and Qiang Yang, "A Survey on Transfer Learning", IEEE Transactions on Knowledge and Data Engineering, Vol. 22, No. 10, pp. 1345-1359, Oct. 2010.
19. Gang Lin, Yanchun Liang, Xiaoyang Fu, Guangshun Chen, and Shaocan Cai, "Design of a Daily Brief Business Report Generator based on Web Scraping with KNN Algorithm", Journal of Physics: Conference Series, Vol. 1345, No. 5, online, Sep. 2019.
20. Hyuntae Kim, Junhyung Byun, Yoseph Na, and Yuchul Jung, "Implementation of Efficient Distributed Crawler through Stepwise Crawling Node Allocation", JAITC, Vol. 10 No. 2, pp. 15-31, Dec. 2020.
21. Seung-Hyeon Kim, Gyu-Tae Kim, Seung-Yoon Kim, Seong-Hwan Park, and Sung-Young Kim, "Used-books Trading Web Application Using Crawling", The Proceedings of the 2021 KIIT Summer Conference, Jeju, Korea, pp. 585-587, Jun. 2021.
22. https://keras.io/api/applications/ [accessed: Jul. 06, 2021]

저자소개
김 진 (Jin Kim)

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

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

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