1. 서 론
농작물 질병 탐지(Crop Disease Detection)는 병충해 확산을 막고 생산성을 높여 농가의 수익을 보호하는 중 요한 역할을 하고 있다[8]. 최근에는 이미지 기반 자동화 탐지 기술[14]과 합성곱 신경망 네트워크(convolutional neural network, CNN) 기반 딥러닝 기술을 적용하여 정 확한 질병 진단을 조기에 가능하게 하는 방향으로 발전 하고 있다[5, 8, 10, 11, 13].
CNN을 활용한 기존 농작물 분류 연구는 이미지 분류 를 위해 학습된 일반적인 CNN 구조를 확장하여 질병에 감염된 농작물 잎의 이미지를 학습하고, 질병 분류모델 을 생성하여 농작물 질병 검출 정확도를 계산하거나 또 는 기존 CNN 구조 중에서 우수한 성능을 보이는 구조가 무엇인지 그 성능을 비교하는 방식으로 진행되고 있다 [6]. Picon et al.[8]은 ResNet 구조를 사용하여 모바일 기 기로 촬영된 농작물의 질병분류에 CNN 기법을 적용하 였고, Ferentinos[3]은 58종의 질병을 담고 있는 농작물 데이터세트에 대하여 99.5%의 정확도로 VGG 구조가 가 장 우수하다는 결과를 제시하고 있다.
신규로 질병분류기를 구축하는 것은 많은 양의 데이 터와 컴퓨팅 자원이 필요하기 때문에, 농작물의 질병분 류에 대한 기존 연구에서는 대부분 사전 학습된 모델 (pretrained model)을 기초 모델(base model)로 활용하여 전이학습을 통해 질병분류기를 구축하였다[1, 8, 10, 11, 14]. 기존 연구에서는 사전 학습된 기초모델을 활용하여 질병분류기를 구축하고 분류 정확도를 바탕으로 모델의 성능을 측정하였으며, CNN이 학습 데이터에 포함된 농 작물의 질병에 대한 분류에 우수한 성능을 나타냄을 확 인할 수 있다.
최근 연구에서는 학습 데이터에 포함되지 않은 미학 습 농작물의 질병진단이나 기존 농작물의 미학습 질병에 CNN 전이 학습을 적용한 시도가 있었고 활용 가능성을 입증하였다[6]. 다만, 신규 농작물 또는 신규 질병진단에 활용 가능한 농작물 질병분류기를 개발할 때 적합한 CNN 모델을 선택하기 위한 기준은 제시되지 않았다.
본 연구에서는 미학습 농작물 및 질병을 진단하는 분 류 성능을 포함하여 농작물 분류기의 성능 기준을 제시 하고, 지금까지 제안된 다양한 CNN 이미지 분류기의 성 능을 비교 분석하고자 한다. 이후 내용은 다음과 같다. 제2장에서는 기존 CNN 모델의 성능을 비교하기 위한 농작물 질병분류기의 구축 방법을 소개하고, 농작물 질 병분류기의 성능 평가 기준을 제안한다. 제3장에서는 구 축된 농작물 질병분류기들의 성능을 비교 분석하고 결론 과 추후 연구는 제4장에서 제시하고자 한다.
2. 연구방법
2.1 연구목적
이미지 분류기의 성능 평가 기준으로 분류 정확도를 사용하는 것이 일반적이다. 그러나 농작물의 종류가 2,500 여종에 이르고 농작물별 질병의 종류도 매우 다양 하다. 더불어 과거에 보지 못한 새로운 질병이 계속해서 발생하는 등 기존의 질병분류기가 모든 농작물의 상태를 진단하고 질병을 분류하는 것은 현실적으로 불가능하다. 따라서 질병분류기의 현실적인 활용 가능성 및 확장성을 고려할 때 미학습 신규 농작물에 대해 질병 여부를 진단 하는 능력 역시 질병분류기가 가져야 할 주요 특성으로 간주되어야 한다.
본 연구는 사전 훈련된 CNN 모델(pre-trained model) 을 기초 모델로 활용하여 농작물의 질병분류기(Crop disease classifier, CDC)를 구축하고 각각의 성능을 비교 분 석함으로써, 농작물 질병분류기를 구현함에 있어 가장 효과적인 CNN 기초 모델이 무엇인지 규명하고자 한다. 성능을 비교하는 주요 기준은 다음과 같다.
-
◦학습된 농작물의 질병분류 정확도 : 학습된 농작물의 질병분류에 대한 테스트 정확도(다중분류 정확도, 농 작물의 질병 종류 분류)
-
◦미학습 신규 농작물의 질병진단 정확도 : 학습에서 사 용하지 않은 신규 농작물에 대한 질병진단의 정확도 (이진분류 정확도, 신규 농작물의 상태를 정상 또는 질 병 상태로 분류)
본 연구에서 성능 비교에 활용하고자 하는 사전 훈련 된 모델 및 간략한 설명은 <Table 1>에 제시되어 있다. <Table 1>에 제시된 사전 훈련된 모델을 농작물 질병분 류기 구축의 기본이 되는 모델이라는 의미에서 「기초 모 델(base-model)」이라고 지칭한다. <Table 1>에 나열된 7 가지의 기초 모델들은 이미지분류의 성능을 높이기 위해 제안된 CNN 기반의 모델들로써, ImageNet 데이터세트 [7]를 기반으로 학습되었으며, ILSVRC 대회에서 우승하 였거나 ImageNet 이미지 데이터 분류에서 월등한 성능을 보인 모델들이다.
2.2 농작물 질병분류기 구조
<Table 1>에 제시된 기초 모델들은 레이블된 이미지 1,400만 개와 클래스 1,000개로 이루어진 ImageNet 데이 터세트에서 학습되었기 때문에 이를 그대로 농작물 질병 분류에 적용할 수는 없다. 따라서 본 연구에서는 기초 모 델을 이용한 CDC를 <Figure 1> (a)와 같이 구축한다.
본 연구에서 구축한 CDC 모델은 기초 모델에 완전연 결(fully connected, FC) layer를 3개 추가한 것으로, 각각 의 FC layer 사이에는 과적합(overfitting)을 막기 위한 dropout(rate=0.1)[4, 15]과 batch normalization layer[4]를 추가하였다. 최상단의 FC layer의 unit 개수는 정상 (healthy) 상태를 포함한 질병 종류의 개수이다. 본 연구 에서 사용한 PlantVillage 데이터세트에는 14종의 작물에 대해 정상 상태를 포함한 총 38개의 질병 클래스가 존재 하며, 이중 신규작물로 간주하는 1종의 2개 클래스(정상/ 질병)를 제외한 36종의 클래스가 분류 대상이다.
또한, 본 연구에서는 기초 모델을 활용하여 신규 분류 기를 구축하는 전이학습에서 일반적으로 사용하는 미세 조정(fine-tuning)을 사용하지 않고 기초 모델의 전체 layer를 동결(freezing)하여 CDC를 훈련하였다. 이는 본 연 구가 농작물 질병분류기 자체의 성능 향상보다는 질병분 류기 구축 시 사용되는 기초 모델 간의 성능을 동일 조건 하에서 비교분석하는 것이 목적이기 때문이다. 즉, 서로 다른 Architecture로 구성된 기초 모델에서 미세조정을 허용하고 미세조정의 범위를 임의로 선택하는 것은 특정 기초 모델에 유리하게 작용할 여지가 있기 때문이다.
이어서 기 구축된 CDC를 기반으로 신규 농작물의 질 병 여부를 진단할 수 있는 이진 질병진단기(binary CDC, bCDC)를 구축하였으며, <Figure 1> (b)에 도식화하여 나 타내었다. 입력된 농작물 이미지에 대한 CDC의 출력은 각 36개 클래스에 대한 소프트맥스 값이며, 이는 해당 이미지가 36개의 정상 또는 질병 클래스 중 하나에 포함 될 확률값으로 이해할 수 있다. bCDC는 이러한 출력 결 과를 기반으로 각 이미지의 질병 여부를 진단하는(이진 분류) FC layer를 추가하는 것으로 구성한다.
bCDC 구축 시에는 미세조정을 사용하여 CDC의 일부 상위 layer(상위 3개의 FC layer)의 가중치 업데이트를 허 용하였다. CDC와는 달리 bCDC의 경우 각 기초 모델에 상관없이 최상위 layer들이 동일한 Architecture를 가지고 있기 때문에 미세조정이 특정 기초모델에 유리하게 작용 할 여지가 없으며, 모델의 분류 성능을 높여줄 수 있다.
2.3 질병분류기의 학습 및 성능평가 방법
CDC 및 bCDC의 학습 및 성능 평가를 위한 전체 과 정은 <Figure 2>에 도식화되어 있다.
먼저, 구축된 CDC를 학습시키기 위해 전체 이미지를 기존 농작물(existing crops: 13종 / 36 클래스)과 신규 농 작물(new crop: 1종 / 2 클래스)로 분할하고, 기존 농작물 은 학습과 검증, 테스트 세트로 분할하여 CDC의 학습 (Training CDC)과 성능 평가(Testing CDC)에 활용하였다.
또한 기존 농작물(exiting crops)로 bCDC를 학습 시켜 농작물의 질병 여부를 진단할 수 있는 이진 분류기를 구 축(Training bCDC)하였으며, 이렇게 학습된 bCDC가 신 규 농작물의 질병진단에 대해 어느 정도 성능을 나타나 는지(Testing bCDC) 확인하였다.
즉, 7개의 기초 모델을 적용한 CDC를 각각 구축하여, <Figure 2>의 ① testing CDC 과정에서 「학습된 농작물의 질병분류 정확도」를 계산하며, ② testing bCDC 과정을 통해 「미학습된 신규 농작물의 질병진단 정확도」를 파악하였다.
3. 성능 비교
3.1 실험 환경 및 데이터
본 연구에서 사용하는 데이터는 공개적으로 이용이 가능하며, 농작물 질병 관련 연구에서도 널리 활용되는 PlantVillage(https://plantvillage.psu.edu)의 농작물 잎 이미 지를 활용한다. 실제 데이터 수집은 Kaggle[2]을 통하여 이루어졌다.
Kaggle에서 수집한 PlantVillage 데이터세트는 데이터 증강(data augmentation)을 사용한 총 17,572개의 농작물 잎 이미지로 구성되어 있고, 총 14종의 농작물에 대해 정상 상태를 포함한 총 38개의 질병 클래스로 분류되어 있다(<Table 2> 참조).
데이터세트는 각 농작물에 대한 정상 이미지와 질병 종류별 이미지들로 구성되어 있다. 예를 들어, <Table 2> 의 사과(Apple)의 경우 정상(healthy class) 이미지와 질병 (disease classes) 3종에 대한 이미지들로 구성되어 있다. 일반적인 머신러닝 절차[4]에 따라 전체 데이터를 분할 하여 학습 및 테스트 데이터를 8:2의 비율로 구성하였고, 학습데이터는 다시 8:2로 분할하여 모델의 훈련 및 검증 에 사용하였다.
본 연구에서는 신규 농작물 이미지에 대한 분류기 성 능을 측정하기 위해 신규 농작물 이미지 데이터를 필요 로 한다. 신규 농작물에 이미지 데이터를 추가하는 대신 <Figure 2>에 소개한 데이터를 기존 농작물과 신규 농작 물로 구분하여 분석을 실시하고자 한다. 전체 데이터를 기존 및 신규 농작물로 구분하기 위하여 한 종의 농작물을 선택하여 신규 농작물로, 선택되지 않은 농작물을 기존 농작물로 간주하고 총 4개의 시나리오를 구성하였다. 클 래스별 데이터 수의 불균형에 따른 정확도의 왜곡현상을 방지하기 위하여 클래스별로 이미지 개수가 비슷한 농작 물을 선택하여 각 시나리오의 신규 농작물로 선정하였 다. 시나리오별 신규 농작물의 종류와 정상 또는 질병 이 미지의 개수는 <Table 3>과 같다.
본 연구에서는 CDC 및 bCDC 구축을 위해, 기초 모델 및 시나리오별로 학습 데이터세트를 활용해 30 epochs 동안 학습하였다. 실험 환경은 AMD EPYC 7302(16코어, 2.8GHz) CPU, 64GB RAM, NVIDIA RTX3090(10,496 CUDA 코어, 24GB 메모리) GPU로 구성하였다.
<Table 4>에는 각 기초 모델별로 시나리오별 epoch당 평균 학습 시간이 제시되어 있다. CDC와 bCDC의 epoch 당 전체 평균 학습시간은 각각 114.20초와 118.46초로 큰 차이가 나타나지 않는다.
3.2 학습된 농작물의 질병분류 정확도
앞서 정의한 첫 번째 성능 지표인 학습된 농작물에 대 한 질병분류 정확도를 평가하기 위해 기초 모델 및 시나 리오별로 테스트 데이터에 대한 정확도를 측정하였고, 그 결과를 <Table 5>에 제시하였다.
<Table 5>에서 보듯이 각 기초모델별 CDC의 질병분 류 정확도는 시나리오에 따라 93.80%에서 98.49%의 범 위를 보이고, 평균 96.17% 정확도를 보이고 있다. 특히 <Table 5>에서 정확도 값이 굵게 표기된 DenseNet201, MobileNetV2, ResNet152V2 기반의 CDC가 높은 성능을 나타내는 것을 확인할 수 있다.
3.3 미학습된 신규 농작물의 질병진단 정확도
두 번째 성능 지표인 미학습 신규 농작물의 질병진단 에 대해 bCDC가 어느 정도 성능을 보이는지 확인하기 위하여 각 기초 모델 및 시나리오 별로 진단 정확도를 측정하였고, 그 결과를 <Table 6>에 제시하였다. 시나리 오 별로 상위 3개의 정확도 값이 굵게 표기되어 있다.
미학습 신규 작물에 대한 질병진단 정확도는 87.35% 에서 96.04% 사이의 범위를 가지며 전체적으로 92.73% 의 평균을 보여, 학습된 농작물의 질병분류 정확도에 비 해 평균 3.44%p가 낮은 것을 확인할 수 있다.
<Table 6>에서 보듯이 각 시나리오에 따라 기초모델 의 성능 순위에 차이가 발생하고 있다. 이는 기초 모델별 로 질병진단의 정확도가 높은 신규 작물이 다르다는 것 을 의미한다. 그러나 평균적으로 볼 때 DenseNet201 기 반의 bCDC가 94.16%로 가장 높은 진단 정확도를 보이 고 있으며, 모든 신규 작물별에 대해 93% 이상의 정확도 를 보이는 유일한 기초 모델임을 감안할 때 범용적인 질 병진단 도구로 가장 적합하다고 할 수 있다.
4. 결 론
농작물은 그 종류가 매우 많고 새로운 질병이 지속적 으로 출현하는 문제로 인해, 농작물 질병분류기는 일반 적인 분류기와는 다른 성능 지표가 필요하다. 이에 따라 본 연구에서는 효과적인 농작물 질병분류기가 가져야할 주요 성능지표로 학습된 농작물에 대한 질병분류 정확도 와 미학습 신규 농작물에 대한 질병진단 정확도를 제안 하였다. 그리고 이러한 기준을 근거로 현재까지 ImageNet 이미지 데이터 분류에서 월등한 성능을 보인 7 개의 사전 훈련된 모델을 기반으로 질병분류기 및 질병 진단기를 구축하고 그 성능을 비교·분석하였다.
실험결과 질병분류에 높은 성능을 보이는 모델들과 질병진단에 높은 성능을 보인 모델들은 각기 다름을 알 수 있었다. 이는 높은 질병분류 성능이 높은 질병진단 성 능을 보장하는 것이 아님을 의미하며, 농작물 질병분류 기의 성능 평가시 질병분류와 질병진단 성능이 함께 고 려되어야 함을 의미한다고 하겠다. 질병분류의 경우 실 험 시나리오에 상관없이 정확도가 높은 모델들이 일정한 데 반해 질병진단의 경우에는 시나리오에 따라 높은 정 확도를 보이는 모델이 각기 달랐다. 이는 기초 모델별로 신규 농작물의 종류에 따라 질병진단 능력에 차이가 있 음을 의미한다.
본 실험의 결과를 종합해 보면, 7개의 기초모델 중 DenseNet201 기반의 모델이 질병분류 및 질병진단에서 평균적으로 가장 높은 정확도를 보여 범용적인 농작물 질병분류기로 가장 적합함을 확인할 수 있었다.
본 연구에서는 데이터 수집의 어려움으로 인해 공개 적으로 이용 가능한 PlantVillage 데이터 세트를 활용하 였는데, 이 데이터 세트는 포함된 작물의 종류 및 그 수 가 제한적이고 국내의 작물 재배 실정과는 차이가 있다. 향후 국내 실정에 맞는 농작물을 대상으로 효과적인 질 병분류기를 규명하고 하이퍼파라미터 최적화 등을 통해 모델 성능을 개선하는 연구를 진행하고자 한다.