식물 질병은 식물의 성장과 생산에 영향을 미칩니다. 디지털 이미지 처리를 통해 식물 질병을 파악할 수 있으며, 최근에는 딥러닝이 식물 질병을 효율적으로 식별하기 위해 디지털 이미지 처리에서 많은 진전을 이루었습니다. 이 논문은 전처리, 모델 선택, 탐지 네트워크의 세 가지 데이터 단계를 중심으로 EfficientNet을 사용하여 식물 질병을 찾아냅니다. 모델은 캐니 엣지 검출 알고리즘을 사용하여 식물 질병 데이터 세트에서 학습되고 테스트되었습니다. 모델은 기존의 CNN 기반 모델보다 97.2%의 정확도로 질병을 감지합니다.
키워드: 식물 질병 · 딥러닝 · 머신러닝 · 분류 · 분할 · 탐지
1 서론
농사는 농부들이 돈을 버는 중요한 방법 중 하나입니다. 농부들은 다양한 작물을 재배할 수 있지만, 질병은 식물의 성장을 어렵게 할 수 있습니다. 식물 질병은 농산물이 유용하거나 판매하기 쉽게 되지 못하는 큰 이유 중 하나입니다. 새로운 기술의 도움으로 70억 명 이상의 사람들을 먹일 수 있는 충분한 식량을 생산할 수 있습니다. 기후 변화, 수분 매개체의 감소, 식물 질병 등으로 인해 식물의 안전은 여전히 위험에 처해 있습니다. 농부들은 생산을 위해 최상의 작물을 선택하려고 노력하지만 많은 질병이 영향을 미칩니다 [18]. 농업에서는 식물의 문제를 가능한 한 빨리 파악하는 것이 필수적입니다. 이는 작물의 피해를 줄이고, 생산 비용을 낮추며, 고품질의 작물을 생산하여 농부들에게 이익을 가져다줍니다 [11]. 기존 데이터에 따르면 질병은 작물 생산을 10%에서 95%까지 감소시키는 것으로 분석되었습니다. 현재 감염된 식물을 손으로 제거하거나 기계적으로 심거나 살충제를 사용하는 등 여러 가지 방법으로 식물 질병을 제거할 수 있습니다 [4].
식물의 문제를 파악하는 간단한 방법은 농업 전문가에게 물어보는 것입니다. 그러나 수동으로 감염을 파악하는 것은 오랜 시간이 걸리고 구현하기 어렵습니다. 살충제는 이러한 질병에 대한 예방 및 회복을 위해 사용할 수 있지만, 과도한 사용은 작물 수확량, 환경 및 사람의 건강에 해로울 수 있습니다. 이러한 것을 사용하기 전에 정확한 양을 계산하고 특정 시간 내에 사용해야 합니다 [16].
식물 및 감염병은 디지털 이미징 및 머신러닝 알고리즘을 사용하여 질병이 퍼지기 전에 적시에 감지하고 회복할 수 있도록 분리할 수 있습니다. 식물 질병을 자동으로 진단하는 것은 농부들이 이미지 처리 및 딥러닝을 사용하는 최첨단 기술을 통해 큰 밭을 파악하고 감시하는 데 유용할 수 있기 때문에 중요합니다. 식물은 사람들이 먹는 것의 80% 이상을 차지하며, 인도와 같은 많은 나라에서는 경제가 주로 농업에 기반을 두고 있습니다. 따라서 원인을 파악하고 질병을 적시에 감지하여 즉각적으로 회복하고, 모든 사람이 저렴하고 깨끗하며 건강한 음식을 먹을 수 있도록 하는 것이 중요합니다 [7].
전통적인 방법은 덜 효과적이기 때문에 식물 질병을 식별하기 위해 자동적이고 빠르며 정확하고 비용 효율적인 방법이 필요합니다. 많은 농업 응용 프로그램은 질병 식별을 위해 잎, 꽃, 과일의 이미지를 캡처하기 위해 디지털 카메라를 사용합니다. 이미지 처리 및 분석 기술을 통해 분석을 위한 유용한 정보가 추출됩니다. 정밀 농업 데이터는 농부들이 높은 농업 생산성을 위해 최적의 결정을 내리는 데 도움을 줍니다. 이 연구는 이미지 분석 및 기계 지능을 활용하여 잎 질병의 쉽고 자동적이며 정확한 식별을 달성하기 위한 다양한 식물 질병 진단 접근 방식을 탐구합니다 [5]. 잎 색 변화 및 반점과 같은 질병의 조기 징후 감지는 자동 질병 식별을 통해 작물 수확량을 향상시킵니다.
머신러닝은 더 많은 데이터가 수집되고 사용됨에 따라 스스로 변하고 개선되는 알고리즘을 연구합니다. 머신러닝 기술은 수집된 데이터(“훈련 데이터”라고 함)에 모델을 학습시켜 무엇을 해야 할지 지시받지 않고도 스스로 예측하거나 결정을 내릴 수 있도록 사용됩니다. 머신러닝 알고리즘은 의학, 이메일 필터링, 음성 인식, 컴퓨터 비전 등 단일 알고리즘으로 모든 작업을 수행하기 어려운 여러 분야에서 사용할 수 있습니다. 머신러닝 알고리즘은 지도 학습, 비지도 학습, 강화 학습으로 분류될 수 있습니다 [?]. 지도 학습은 레이블이 있는 데이터 세트를 사용하여 모델이나 알고리즘이 결과를 예측하도록 가르치는 과정입니다. 분류는 데이터가 레이블을 예측할 수 있는 잘 알려진 모델입니다. 이는 이메일이 스팸인지 또는 종양이 암인지와 같은 다양한 응답을 기대합니다 [1]. 서포트 벡터 머신(SVM), 나이브 베이즈, 랜덤 포레스트, K-NN, 판별 분석 등은 잘 알려진 분류 방법 중 일부입니다 [12]. 회귀 기술은 입력과 출력에 대한 레이블을 사용하여 훈련됩니다. 연속 값을 사용하여 한 변수가 다른 변수에 미치는 영향을 측정하여 그들이 어떻게 연결되어 있는지 결정합니다 [?]. 예측 예로는 전력 사용량 예측 및 알고리즘 기반 거래가 있습니다. 선형 회귀, 릿지, LASSO, 의사 결정 나무, 신경망 회귀, KNN, SVM은 회귀 알고리즘의 잘 알려진 예입니다 [9].
2 문헌 검토
M.P. Vaishnave [10]의 제안에 따르면, 수확량 감소의 주요 요소 중 하나는 질병 공격이다. 땅콩 식물은 곰팡이, 바이러스, 토양 병원체로 인해 발생하는 질병에 취약하다. 이 논문에서는 땅콩 잎 질병을 자동으로 분류하고 분류하는 소프트웨어의 결정 방식을 보여준다. 이 전략을 사용하면 작물의 수확량이 증가한다. 이미지 캡처, 이미지 전처리, 분할, 특징 추출, K 최근접 이웃(KNN) 분류기와 같은 과정이 포함된다. KNN 분류는 SVM 분류기 대신 사용되며 현재 알고리즘의 성능을 향상시킨다.
농업은 인도 경제의 중요한 부분으로, Debasish Das [?]는 그의 cite-singh2019comparative 기사에서 이를 언급했다. 이 연구의 주요 목표는 잎 조직에 영향을 미칠 수 있는 다양한 질병을 규명하는 것이다. 분류의 정확성을 높이기 위해 여러 특징 추출 전략이 시도되고 검증되었다. 지원 벡터 머신(SVM), 랜덤 포레스트, 로지스틱 회귀와 같은 통계적 방법이 다양한 잎 질병을 분류하는 데 사용되었다. 세 분류기의 결과를 비교하면 지원 벡터 머신이 가장 우수한 것으로 나타났다. 연구 결과는 모델이 실제 상황에 적용될 수 있음을 보여준다.
이 검토에서는 Shruti [2]가 식물 질병 인식을 위한 다섯 가지 다른 기계 학습 분류 알고리즘에 대한 비교 연구를 검토했다. 다른 분류기와 비교하여 SVM 분류기가 질병 분류에 자주 사용된다고 저자들은 언급했다. 연구 결과는 CNN 분류기가 더 많은 질병을 정확하게 식별하는 데 우수함을 나타낸다.
Prasanna Mohanty [8]는 최근 연구에서 식물 질병 감지를 위한 방법으로 컨볼루션 신경망(CNN) 훈련을 제안했다. CNN 모델은 14종의 식물에서 건강한 식물과 병든 식물을 구별하도록 훈련되었다. 테스트 세트 데이터에 기반한 모델의 정확도는 99.35%로 결정되었다. 신뢰할 수 있는 인터넷 소스에서 얻은 이미지에 적용했을 때 모델은 31.4%의 정확도를 달성한다. 이는 무작위 선택에 기반한 간단한 모델이 달성한 정확도보다 우수하지만, 더 다양한 훈련 데이터 수집을 통해 정확도를 개선할 수 있다.
Sharada P. Mohanty [2]는 작물 질병과 이를 신속하게 식별하는 방법에 대해 설명했다. 전 세계적으로 증가하는 스마트폰 사용자와 심층 학습을 통해 가능해진 컴퓨터 비전의 최근 발전은 스마트폰을 통한 질병 진단의 길을 열었다. 우리는 통제된 환경에서 촬영한 손상된 식물 잎과 건강한 식물 잎 54,306장의 공공 데이터 세트를 사용하여 14종의 작물과 26종의 질병을 인식하도록 심층 컨볼루션 신경망을 훈련시켰다. 훈련된 모델이 보류된 테스트 세트에서 99.35%의 정확도를 달성할 때 이 전략은 실행 가능하다. 표 1은 이 섹션에서 논의된 다양한 분류 기술을 사용한 모든 검토된 기술 간의 정확도 비교를 보여준다.
3 문제 진술
기계 학습 접근 방식을 사용한 식물 질병 감지: 다양한 기술/알고리즘을 적용하고 그 효율성을 분석하며, 이를 비교하여 최적의 방법을 정의한다.
4 방법론
우리는 EfficientNets [6]을 사용하여 식물 질병 감지 모델을 개발했으며, 이 모델이 식물 질병 데이터셋 [3]에서 우수한 성능을 보이는 것을 관찰했다. 모델의 방법론은 아래의 하위 섹션에서 설명된다.
KNN (K-최근접 이웃)
K-평균 알고리즘은 데이터셋을 사전 정의된, 겹치지 않는 서로 다른 하위 그룹(클러스터)으로 분할하려고 시도하는 반복 알고리즘이다. 각 데이터 포인트는 하나의 그룹에만 속한다. 이는 중심 기반 알고리즘 또는 거리 기반 알고리즘으로, K-평균에서는 각 클러스터가 중심점과 연관된다.
SVM (서포트 벡터 머신)
서포트 벡터 머신(SVM)은 분류와 회귀를 위한 지도 학습 알고리즘이다. 회귀 문제에도 사용할 수 있지만, 주로 분류에 가장 적합하다. SVM 알고리즘의 목적은 N차원 공간에서 데이터 포인트를 명확하게 분류하는 초평면을 찾는 것이다.
4.1 구현된 알고리즘
컨볼루션 신경망(ConvNet/CNN)은 입력 이미지에 중요도(학습 가능한 가중치와 편향)를 부여하여 이미지의 다양한 측면/객체를 인식하고 이를 상호 구별할 수 있는 딥러닝 알고리즘입니다. ConvNet에서 필요한 전처리는 다른 분류 알고리즘에 비해 훨씬 적습니다. 기존의 방법에서는 필터가 수작업으로 설계되지만, ConvNet은 충분한 훈련을 통해 이러한 필터/특징을 학습할 수 있습니다.
4.2 데이터 전처리
탐색적 데이터 분석(EDA)은 데이터에 대한 초기 조사를 수행하여 패턴을 발견하고, 이상치를 식별하며, 가설을 테스트하고, 요약 통계 및 그래픽 표현을 통해 가정을 점검하는 과정입니다. 이는 전처리 단계에서 중요한 단계입니다. 잎 이미지는 R-G-B 채널로 각각 분리되어 분포되며, 녹색 부분이나 건강한 영역은 낮은 파란색 값을 가지지만, 갈색 부분은 높은 파란색 값을 가집니다. 이는 파란색 채널이 식물 질병을 감지하는 데 중요한 역할을 할 수 있음을 시사합니다.
Red 채널 값은 대체로 정규 분포를 따르지만, 약간 오른쪽으로 치우친(양의 왜도) 분포를 보입니다. 이는 Red 채널 값이 낮은 값(약 100) 주변에 더 집중되어 있음을 나타냅니다. 이미지 간의 평균 Red 값의 변동이 큽니다. Green 채널은 이미지의 고대비 영역을 포함하고 있어, 미세 동맥류가 명확히 보입니다. Blue 채널은 세 가지 색상 채널 중 가장 균일한 분포를 가지며, 왜도가 최소화되어 약간 왼쪽으로 치우친 왜도를 보입니다. Blue 채널은 데이터셋 내 이미지 간에 큰 변동을 보입니다.
4.3 모델 선택
기본 네트워크의 성능은 모델의 측정값에 크게 의존합니다. 따라서 성능을 더욱 향상시키기 위해 AutoML MNAS 프레임워크를 사용하여 신경망 아키텍처 검색을 수행하여 새로운 기본 네트워크를 개발하고 있습니다. 이는 정확성과 효율성을 개선합니다. 이러한 검색은 성능(FLOPS)을 더욱 향상시키기 위해 진행되고 있습니다. 생성된 구조는 모바일 역병목 컨볼루션(MBConv)을 사용하며, 이는 MobileNetV2 및 MnasNet과 유사합니다. 그러나 이러한 구조는 향상된 FLOP 예산 덕분에 훨씬 더 큽니다. 이후에는 초기 네트워크의 범위를 확대하여 EfficientNets라는 모델 계열을 발견합니다. EfficientNets는 전이 학습을 위해 여덟 개의 다른 데이터베이스에서도 테스트되었습니다. EfficientNets는 CIFAR-100(91.7%) 및 Flowers(98.8%)와 같은 여덟 개의 데이터 세트 중 다섯 개에서 현대적인 정확도를 달성했으며, 이는 몇 가지 매개변수 설정(최대 21배의 매개변수 감소)만으로 이루어졌습니다. 이는 EfficientNets가 전이 학습에도 잘 작동함을 시사합니다. 우리는 EfficientNets가 모델 성능에서 상당한 향상을 제공할 것으로 기대하며, 결과적으로 컴퓨터 비전 관련 향후 작업의 새로운 기반이 될 것입니다.
우리의 EfficientNets 성능은 ImageNet에서 호스팅되는 다른 CNN과 비교됩니다. EfficientNet 모델은 현재 사용 가능한 CNN보다 더 높은 정확도와 더 나은 성능을 달성할 수 있습니다. 이는 파라미터 크기와 FLOPS를 조정하여 이루어집니다. 예를 들어, 고정밀 시스템에서 우리의 EfficientNet-B7은 ImageNet에서 최대 1/97.1%의 정확도를 달성하며, 동시에 Gpipe보다 8.4배 더 컴팩트하고 CPU 정밀도에서 6.1배 더 우수합니다. 우리의 EfficientNet-B4는 널리 사용되는 ResNet-50과 동일한 FLOPS 수를 사용하지만, ResNet-50의 76.3%에서 82.6%로 최대 정확도를 1에서 6.3% 향상시킵니다.
4.4 Canny 엣지 탐지 알고리즘을 이용한 이미지 처리
Canny 엣지 탐지 알고리즘은 잎의 엣지를 탐지하는 데 사용되며, 탐지된 영역/엣지는 제안된 모델에 입력됩니다. 이는 멀티스텝 알고리즘을 기반으로 이미지 엣지를 인식하는 일반적인 엣지 탐지 방법입니다.
노이즈 감소: 엣지 탐지는 이미지 노이즈에 민감하므로, 5 × 5 가우시안 필터를 사용하여 노이즈를 제거합니다.
이미지의 강도 기울기 찾기: 부드럽게 처리된 이미지는 소벨 커널을 사용하여 수평 및 수직으로 필터링되어 첫 번째 미분(Gx, Gy)을 생성합니다. 이 두 이미지는 각 픽셀의 기울기와 방향을 보여줍니다.
라운딩: 항상 엣지에 수직이 되도록 수직, 수평 또는 대각선 각도로 반올림됩니다.
비최대 억제: 기울기 크기와 방향을 수집한 후, 불필요한 픽셀을 제거하기 위해 이미지를 철저히 스캔합니다. 각 픽셀은 기울기 방향에서 지역 최대값을 검사합니다.
히스테리시스 임계값 설정: 이 단계는 엣지를 결정합니다. minVal과 maxVal이 필요합니다. 강도 기울기가 maxVal을 초과하는 엣지는 엣지로 간주되며, mineral 이하의 엣지는 제거됩니다. 이 두 임계값 사이에 있는 픽셀은 이웃에 따라 엣지 또는 비엣지로 분류됩니다. "확실한 엣지" 픽셀에 가까우면 엣지로 간주되고, 그렇지 않으면 무시됩니다. 이 다섯 단계는 이미지 엣지의 2차원 이진 맵(0 또는 255)을 제공합니다. 잎은 Canny 엣지를 보여줍니다.
5. 결과
모델은 식물 질병 데이터셋 에서 훈련 및 테스트되었습니다. 이 데이터셋은 71.7%의 여러 질병(녹병 및 병든 잎)을 가진 불건전한 잎을 포함하고 있으며, 28.3%는 건강한 잎으로 구성되어 있습니다. 데이터셋의 80%는 설계된 모델을 훈련하는 데 사용되었고, 20%는 테스트에 사용되었습니다. 그림 1에서 건강한 잎은 완전히 초록색이며 갈색/노란색 반점이나 흉터가 전혀 없음을 볼 수 있습니다. 건강한 잎은 병변이나 녹병이 없습니다.
그림 2에서 "scab"이 있는 잎은 잎 전체에 걸쳐 상당한 갈색 자국과 얼룩이 있습니다. Scab는 "과일, 잎, 또는 뿌리에 껍질 같은 반점을 만드는 곰팡이나 박테리아에 의해 발생하는 다양한 식물 질병"입니다. 잎 전체에 걸친 갈색 자국은 이러한 박테리아/곰팡이 감염의 징후입니다. 진단되면, scab는 화학적 또는 비화학적 방법을 사용하여 치료할 수 있습니다.
그림 3에서 "rust"가 있는 잎은 잎 전체에 여러 갈색-노란색 반점이 있습니다. Rust는 "특히 곡물과 기타 풀에서 발생하는 질병으로, 영향을 받은 잎 블레이드와 초에 녹색 포자 농포가 생기는 것이 특징이며 여러 녹병 곰팡이에 의해 발생합니다". 노란색 반점은 "녹병 곰팡이"라고 불리는 특정 유형의 곰팡이에 의한 감염의 징후입니다. 녹병도 진단되면 여러 화학적 및 비화학적 방법으로 치료할 수 있습니다.
그림 4에서 잎은 갈색 자국과 노란색 반점을 포함한 여러 질병의 증상을 보입니다. 이러한 식물들은 위에 설명된 질병 중 하나 이상의 질병을 가지고 있습니다.
모든 제안된 연구 모델은 Python의 TensorFlow로 구현되었습니다. 또한, 모델 훈련은 Kaggle을 사용하여 다음 사양으로 진행되었습니다: GPU Tesla P100-PCI-E-16GB, 컴퓨팅 능력: 6.0, 16GB GPU RAM.
EfficientNet은 그림 5, 6, 7, 8 및 9에서 설명된 바와 같이 높은 정확도로 잎의 질병을 예측합니다. 빨간색 막대는 보이지 않으며, 확률이 매우 극단적으로 분포되어(하나는 매우 높고 나머지는 낮음) 모델이 이러한 예측을 높은 신뢰도로 수행하고 있음을 나타냅니다. 반지도 학습 가중치가 이 모델을 EfficientNet과 차별화하는 요소로 보입니다. 다시 말해, 마지막 네 번째 잎인 "multiple_diseases"에 빨간색과 파란색 막대가 더 두드러진 것은, 여러 질병을 가진 잎이 녹병 및 병변 증상을 보일 수 있어 모델을 약간 혼란스럽게 만들기 때문일 것입니다.
그림 10에서, 모델이 훈련 데이터에서 달성한 정확도는 97.2%이며, 테스트 데이터에서는 90%입니다. 훈련 메트릭스는 매우 빠르게 안정화되지만 12,13 에포크 후에야 안정화되기 시작합니다(이는 DenseNet과 유사합니다). 이는 검증 데이터가 보지 못한 데이터이며 훈련 데이터보다 예측하기 더 어렵기 때문에 예상되는 결과입니다
6. 향후 연구
이 논문은 합성곱 신경망인 EfficientNet-B7을 사용하여 질병 탐지 모델을 개발하고, K-평균 및 SVM 기법을 적용하여 다른 모델과 비교하였습니다. 제안된 모델의 정확도는 교차 검증을 통해 가장 높은 점수를 기록했습니다. 이 모델은 질병에 걸린 식물을 높은 정밀도로 예측하여 치료에 대한 불필요한 비용을 피할 수 있도록 합니다. 조사 결과, 제안된 모델은 테스트 데이터셋에서 EfficientNet-B7을 사용하여 90%의 높은 정확도를 제공하며, 훈련 데이터셋에서는 97.2%의 정확도로 다른 제안된 모델 및 기존 모델보다 잎을 더 잘 탐지하는 것으로 나타났습니다.
EfficientNet B7을 사용한 머신러닝 기반 식물 질병 감지
초록
식물 질병은 식물의 성장과 생산에 영향을 미칩니다. 디지털 이미지 처리를 통해 식물 질병을 파악할 수 있으며, 최근에는 딥러닝이 식물 질병을 효율적으로 식별하기 위해 디지털 이미지 처리에서 많은 진전을 이루었습니다. 이 논문은 전처리, 모델 선택, 탐지 네트워크의 세 가지 데이터 단계를 중심으로 EfficientNet을 사용하여 식물 질병을 찾아냅니다. 모델은 캐니 엣지 검출 알고리즘을 사용하여 식물 질병 데이터 세트에서 학습되고 테스트되었습니다. 모델은 기존의 CNN 기반 모델보다 97.2%의 정확도로 질병을 감지합니다.
키워드: 식물 질병 · 딥러닝 · 머신러닝 · 분류 · 분할 · 탐지
1 서론
농사는 농부들이 돈을 버는 중요한 방법 중 하나입니다. 농부들은 다양한 작물을 재배할 수 있지만, 질병은 식물의 성장을 어렵게 할 수 있습니다. 식물 질병은 농산물이 유용하거나 판매하기 쉽게 되지 못하는 큰 이유 중 하나입니다. 새로운 기술의 도움으로 70억 명 이상의 사람들을 먹일 수 있는 충분한 식량을 생산할 수 있습니다. 기후 변화, 수분 매개체의 감소, 식물 질병 등으로 인해 식물의 안전은 여전히 위험에 처해 있습니다. 농부들은 생산을 위해 최상의 작물을 선택하려고 노력하지만 많은 질병이 영향을 미칩니다 [18]. 농업에서는 식물의 문제를 가능한 한 빨리 파악하는 것이 필수적입니다. 이는 작물의 피해를 줄이고, 생산 비용을 낮추며, 고품질의 작물을 생산하여 농부들에게 이익을 가져다줍니다 [11]. 기존 데이터에 따르면 질병은 작물 생산을 10%에서 95%까지 감소시키는 것으로 분석되었습니다. 현재 감염된 식물을 손으로 제거하거나 기계적으로 심거나 살충제를 사용하는 등 여러 가지 방법으로 식물 질병을 제거할 수 있습니다 [4].
식물의 문제를 파악하는 간단한 방법은 농업 전문가에게 물어보는 것입니다. 그러나 수동으로 감염을 파악하는 것은 오랜 시간이 걸리고 구현하기 어렵습니다. 살충제는 이러한 질병에 대한 예방 및 회복을 위해 사용할 수 있지만, 과도한 사용은 작물 수확량, 환경 및 사람의 건강에 해로울 수 있습니다. 이러한 것을 사용하기 전에 정확한 양을 계산하고 특정 시간 내에 사용해야 합니다 [16].
식물 및 감염병은 디지털 이미징 및 머신러닝 알고리즘을 사용하여 질병이 퍼지기 전에 적시에 감지하고 회복할 수 있도록 분리할 수 있습니다. 식물 질병을 자동으로 진단하는 것은 농부들이 이미지 처리 및 딥러닝을 사용하는 최첨단 기술을 통해 큰 밭을 파악하고 감시하는 데 유용할 수 있기 때문에 중요합니다. 식물은 사람들이 먹는 것의 80% 이상을 차지하며, 인도와 같은 많은 나라에서는 경제가 주로 농업에 기반을 두고 있습니다. 따라서 원인을 파악하고 질병을 적시에 감지하여 즉각적으로 회복하고, 모든 사람이 저렴하고 깨끗하며 건강한 음식을 먹을 수 있도록 하는 것이 중요합니다 [7]. 전통적인 방법은 덜 효과적이기 때문에 식물 질병을 식별하기 위해 자동적이고 빠르며 정확하고 비용 효율적인 방법이 필요합니다. 많은 농업 응용 프로그램은 질병 식별을 위해 잎, 꽃, 과일의 이미지를 캡처하기 위해 디지털 카메라를 사용합니다. 이미지 처리 및 분석 기술을 통해 분석을 위한 유용한 정보가 추출됩니다. 정밀 농업 데이터는 농부들이 높은 농업 생산성을 위해 최적의 결정을 내리는 데 도움을 줍니다. 이 연구는 이미지 분석 및 기계 지능을 활용하여 잎 질병의 쉽고 자동적이며 정확한 식별을 달성하기 위한 다양한 식물 질병 진단 접근 방식을 탐구합니다 [5]. 잎 색 변화 및 반점과 같은 질병의 조기 징후 감지는 자동 질병 식별을 통해 작물 수확량을 향상시킵니다.
머신러닝은 더 많은 데이터가 수집되고 사용됨에 따라 스스로 변하고 개선되는 알고리즘을 연구합니다. 머신러닝 기술은 수집된 데이터(“훈련 데이터”라고 함)에 모델을 학습시켜 무엇을 해야 할지 지시받지 않고도 스스로 예측하거나 결정을 내릴 수 있도록 사용됩니다. 머신러닝 알고리즘은 의학, 이메일 필터링, 음성 인식, 컴퓨터 비전 등 단일 알고리즘으로 모든 작업을 수행하기 어려운 여러 분야에서 사용할 수 있습니다. 머신러닝 알고리즘은 지도 학습, 비지도 학습, 강화 학습으로 분류될 수 있습니다 [?]. 지도 학습은 레이블이 있는 데이터 세트를 사용하여 모델이나 알고리즘이 결과를 예측하도록 가르치는 과정입니다. 분류는 데이터가 레이블을 예측할 수 있는 잘 알려진 모델입니다. 이는 이메일이 스팸인지 또는 종양이 암인지와 같은 다양한 응답을 기대합니다 [1]. 서포트 벡터 머신(SVM), 나이브 베이즈, 랜덤 포레스트, K-NN, 판별 분석 등은 잘 알려진 분류 방법 중 일부입니다 [12]. 회귀 기술은 입력과 출력에 대한 레이블을 사용하여 훈련됩니다. 연속 값을 사용하여 한 변수가 다른 변수에 미치는 영향을 측정하여 그들이 어떻게 연결되어 있는지 결정합니다 [?]. 예측 예로는 전력 사용량 예측 및 알고리즘 기반 거래가 있습니다. 선형 회귀, 릿지, LASSO, 의사 결정 나무, 신경망 회귀, KNN, SVM은 회귀 알고리즘의 잘 알려진 예입니다 [9].
2 문헌 검토
M.P. Vaishnave [10]의 제안에 따르면, 수확량 감소의 주요 요소 중 하나는 질병 공격이다. 땅콩 식물은 곰팡이, 바이러스, 토양 병원체로 인해 발생하는 질병에 취약하다. 이 논문에서는 땅콩 잎 질병을 자동으로 분류하고 분류하는 소프트웨어의 결정 방식을 보여준다. 이 전략을 사용하면 작물의 수확량이 증가한다. 이미지 캡처, 이미지 전처리, 분할, 특징 추출, K 최근접 이웃(KNN) 분류기와 같은 과정이 포함된다. KNN 분류는 SVM 분류기 대신 사용되며 현재 알고리즘의 성능을 향상시킨다.
농업은 인도 경제의 중요한 부분으로, Debasish Das [?]는 그의 cite-singh2019comparative 기사에서 이를 언급했다. 이 연구의 주요 목표는 잎 조직에 영향을 미칠 수 있는 다양한 질병을 규명하는 것이다. 분류의 정확성을 높이기 위해 여러 특징 추출 전략이 시도되고 검증되었다. 지원 벡터 머신(SVM), 랜덤 포레스트, 로지스틱 회귀와 같은 통계적 방법이 다양한 잎 질병을 분류하는 데 사용되었다. 세 분류기의 결과를 비교하면 지원 벡터 머신이 가장 우수한 것으로 나타났다. 연구 결과는 모델이 실제 상황에 적용될 수 있음을 보여준다.
이 검토에서는 Shruti [2]가 식물 질병 인식을 위한 다섯 가지 다른 기계 학습 분류 알고리즘에 대한 비교 연구를 검토했다. 다른 분류기와 비교하여 SVM 분류기가 질병 분류에 자주 사용된다고 저자들은 언급했다. 연구 결과는 CNN 분류기가 더 많은 질병을 정확하게 식별하는 데 우수함을 나타낸다.
Prasanna Mohanty [8]는 최근 연구에서 식물 질병 감지를 위한 방법으로 컨볼루션 신경망(CNN) 훈련을 제안했다. CNN 모델은 14종의 식물에서 건강한 식물과 병든 식물을 구별하도록 훈련되었다. 테스트 세트 데이터에 기반한 모델의 정확도는 99.35%로 결정되었다. 신뢰할 수 있는 인터넷 소스에서 얻은 이미지에 적용했을 때 모델은 31.4%의 정확도를 달성한다. 이는 무작위 선택에 기반한 간단한 모델이 달성한 정확도보다 우수하지만, 더 다양한 훈련 데이터 수집을 통해 정확도를 개선할 수 있다.
Sharada P. Mohanty [2]는 작물 질병과 이를 신속하게 식별하는 방법에 대해 설명했다. 전 세계적으로 증가하는 스마트폰 사용자와 심층 학습을 통해 가능해진 컴퓨터 비전의 최근 발전은 스마트폰을 통한 질병 진단의 길을 열었다. 우리는 통제된 환경에서 촬영한 손상된 식물 잎과 건강한 식물 잎 54,306장의 공공 데이터 세트를 사용하여 14종의 작물과 26종의 질병을 인식하도록 심층 컨볼루션 신경망을 훈련시켰다. 훈련된 모델이 보류된 테스트 세트에서 99.35%의 정확도를 달성할 때 이 전략은 실행 가능하다. 표 1은 이 섹션에서 논의된 다양한 분류 기술을 사용한 모든 검토된 기술 간의 정확도 비교를 보여준다.
3 문제 진술
기계 학습 접근 방식을 사용한 식물 질병 감지: 다양한 기술/알고리즘을 적용하고 그 효율성을 분석하며, 이를 비교하여 최적의 방법을 정의한다.
4 방법론
우리는 EfficientNets [6]을 사용하여 식물 질병 감지 모델을 개발했으며, 이 모델이 식물 질병 데이터셋 [3]에서 우수한 성능을 보이는 것을 관찰했다. 모델의 방법론은 아래의 하위 섹션에서 설명된다.
KNN (K-최근접 이웃)
K-평균 알고리즘은 데이터셋을 사전 정의된, 겹치지 않는 서로 다른 하위 그룹(클러스터)으로 분할하려고 시도하는 반복 알고리즘이다. 각 데이터 포인트는 하나의 그룹에만 속한다. 이는 중심 기반 알고리즘 또는 거리 기반 알고리즘으로, K-평균에서는 각 클러스터가 중심점과 연관된다.
SVM (서포트 벡터 머신)
서포트 벡터 머신(SVM)은 분류와 회귀를 위한 지도 학습 알고리즘이다. 회귀 문제에도 사용할 수 있지만, 주로 분류에 가장 적합하다. SVM 알고리즘의 목적은 N차원 공간에서 데이터 포인트를 명확하게 분류하는 초평면을 찾는 것이다.
4.1 구현된 알고리즘
컨볼루션 신경망(ConvNet/CNN)은 입력 이미지에 중요도(학습 가능한 가중치와 편향)를 부여하여 이미지의 다양한 측면/객체를 인식하고 이를 상호 구별할 수 있는 딥러닝 알고리즘입니다. ConvNet에서 필요한 전처리는 다른 분류 알고리즘에 비해 훨씬 적습니다. 기존의 방법에서는 필터가 수작업으로 설계되지만, ConvNet은 충분한 훈련을 통해 이러한 필터/특징을 학습할 수 있습니다.
4.2 데이터 전처리
탐색적 데이터 분석(EDA)은 데이터에 대한 초기 조사를 수행하여 패턴을 발견하고, 이상치를 식별하며, 가설을 테스트하고, 요약 통계 및 그래픽 표현을 통해 가정을 점검하는 과정입니다. 이는 전처리 단계에서 중요한 단계입니다. 잎 이미지는 R-G-B 채널로 각각 분리되어 분포되며, 녹색 부분이나 건강한 영역은 낮은 파란색 값을 가지지만, 갈색 부분은 높은 파란색 값을 가집니다. 이는 파란색 채널이 식물 질병을 감지하는 데 중요한 역할을 할 수 있음을 시사합니다.
Red 채널 값은 대체로 정규 분포를 따르지만, 약간 오른쪽으로 치우친(양의 왜도) 분포를 보입니다. 이는 Red 채널 값이 낮은 값(약 100) 주변에 더 집중되어 있음을 나타냅니다. 이미지 간의 평균 Red 값의 변동이 큽니다. Green 채널은 이미지의 고대비 영역을 포함하고 있어, 미세 동맥류가 명확히 보입니다. Blue 채널은 세 가지 색상 채널 중 가장 균일한 분포를 가지며, 왜도가 최소화되어 약간 왼쪽으로 치우친 왜도를 보입니다. Blue 채널은 데이터셋 내 이미지 간에 큰 변동을 보입니다.
4.3 모델 선택
기본 네트워크의 성능은 모델의 측정값에 크게 의존합니다. 따라서 성능을 더욱 향상시키기 위해 AutoML MNAS 프레임워크를 사용하여 신경망 아키텍처 검색을 수행하여 새로운 기본 네트워크를 개발하고 있습니다. 이는 정확성과 효율성을 개선합니다. 이러한 검색은 성능(FLOPS)을 더욱 향상시키기 위해 진행되고 있습니다. 생성된 구조는 모바일 역병목 컨볼루션(MBConv)을 사용하며, 이는 MobileNetV2 및 MnasNet과 유사합니다. 그러나 이러한 구조는 향상된 FLOP 예산 덕분에 훨씬 더 큽니다. 이후에는 초기 네트워크의 범위를 확대하여 EfficientNets라는 모델 계열을 발견합니다. EfficientNets는 전이 학습을 위해 여덟 개의 다른 데이터베이스에서도 테스트되었습니다. EfficientNets는 CIFAR-100(91.7%) 및 Flowers(98.8%)와 같은 여덟 개의 데이터 세트 중 다섯 개에서 현대적인 정확도를 달성했으며, 이는 몇 가지 매개변수 설정(최대 21배의 매개변수 감소)만으로 이루어졌습니다. 이는 EfficientNets가 전이 학습에도 잘 작동함을 시사합니다. 우리는 EfficientNets가 모델 성능에서 상당한 향상을 제공할 것으로 기대하며, 결과적으로 컴퓨터 비전 관련 향후 작업의 새로운 기반이 될 것입니다.
우리의 EfficientNets 성능은 ImageNet에서 호스팅되는 다른 CNN과 비교됩니다. EfficientNet 모델은 현재 사용 가능한 CNN보다 더 높은 정확도와 더 나은 성능을 달성할 수 있습니다. 이는 파라미터 크기와 FLOPS를 조정하여 이루어집니다. 예를 들어, 고정밀 시스템에서 우리의 EfficientNet-B7은 ImageNet에서 최대 1/97.1%의 정확도를 달성하며, 동시에 Gpipe보다 8.4배 더 컴팩트하고 CPU 정밀도에서 6.1배 더 우수합니다. 우리의 EfficientNet-B4는 널리 사용되는 ResNet-50과 동일한 FLOPS 수를 사용하지만, ResNet-50의 76.3%에서 82.6%로 최대 정확도를 1에서 6.3% 향상시킵니다.
4.4 Canny 엣지 탐지 알고리즘을 이용한 이미지 처리
Canny 엣지 탐지 알고리즘은 잎의 엣지를 탐지하는 데 사용되며, 탐지된 영역/엣지는 제안된 모델에 입력됩니다. 이는 멀티스텝 알고리즘을 기반으로 이미지 엣지를 인식하는 일반적인 엣지 탐지 방법입니다.
5. 결과
모델은 식물 질병 데이터셋 에서 훈련 및 테스트되었습니다. 이 데이터셋은 71.7%의 여러 질병(녹병 및 병든 잎)을 가진 불건전한 잎을 포함하고 있으며, 28.3%는 건강한 잎으로 구성되어 있습니다. 데이터셋의 80%는 설계된 모델을 훈련하는 데 사용되었고, 20%는 테스트에 사용되었습니다. 그림 1에서 건강한 잎은 완전히 초록색이며 갈색/노란색 반점이나 흉터가 전혀 없음을 볼 수 있습니다. 건강한 잎은 병변이나 녹병이 없습니다.
그림 2에서 "scab"이 있는 잎은 잎 전체에 걸쳐 상당한 갈색 자국과 얼룩이 있습니다. Scab는 "과일, 잎, 또는 뿌리에 껍질 같은 반점을 만드는 곰팡이나 박테리아에 의해 발생하는 다양한 식물 질병"입니다. 잎 전체에 걸친 갈색 자국은 이러한 박테리아/곰팡이 감염의 징후입니다. 진단되면, scab는 화학적 또는 비화학적 방법을 사용하여 치료할 수 있습니다.
그림 3에서 "rust"가 있는 잎은 잎 전체에 여러 갈색-노란색 반점이 있습니다. Rust는 "특히 곡물과 기타 풀에서 발생하는 질병으로, 영향을 받은 잎 블레이드와 초에 녹색 포자 농포가 생기는 것이 특징이며 여러 녹병 곰팡이에 의해 발생합니다". 노란색 반점은 "녹병 곰팡이"라고 불리는 특정 유형의 곰팡이에 의한 감염의 징후입니다. 녹병도 진단되면 여러 화학적 및 비화학적 방법으로 치료할 수 있습니다.
그림 4에서 잎은 갈색 자국과 노란색 반점을 포함한 여러 질병의 증상을 보입니다. 이러한 식물들은 위에 설명된 질병 중 하나 이상의 질병을 가지고 있습니다.
모든 제안된 연구 모델은 Python의 TensorFlow로 구현되었습니다. 또한, 모델 훈련은 Kaggle을 사용하여 다음 사양으로 진행되었습니다: GPU Tesla P100-PCI-E-16GB, 컴퓨팅 능력: 6.0, 16GB GPU RAM.
EfficientNet은 그림 5, 6, 7, 8 및 9에서 설명된 바와 같이 높은 정확도로 잎의 질병을 예측합니다. 빨간색 막대는 보이지 않으며, 확률이 매우 극단적으로 분포되어(하나는 매우 높고 나머지는 낮음) 모델이 이러한 예측을 높은 신뢰도로 수행하고 있음을 나타냅니다. 반지도 학습 가중치가 이 모델을 EfficientNet과 차별화하는 요소로 보입니다. 다시 말해, 마지막 네 번째 잎인 "multiple_diseases"에 빨간색과 파란색 막대가 더 두드러진 것은, 여러 질병을 가진 잎이 녹병 및 병변 증상을 보일 수 있어 모델을 약간 혼란스럽게 만들기 때문일 것입니다.
그림 10에서, 모델이 훈련 데이터에서 달성한 정확도는 97.2%이며, 테스트 데이터에서는 90%입니다. 훈련 메트릭스는 매우 빠르게 안정화되지만 12,13 에포크 후에야 안정화되기 시작합니다(이는 DenseNet과 유사합니다). 이는 검증 데이터가 보지 못한 데이터이며 훈련 데이터보다 예측하기 더 어렵기 때문에 예상되는 결과입니다
6. 향후 연구
이 논문은 합성곱 신경망인 EfficientNet-B7을 사용하여 질병 탐지 모델을 개발하고, K-평균 및 SVM 기법을 적용하여 다른 모델과 비교하였습니다. 제안된 모델의 정확도는 교차 검증을 통해 가장 높은 점수를 기록했습니다. 이 모델은 질병에 걸린 식물을 높은 정밀도로 예측하여 치료에 대한 불필요한 비용을 피할 수 있도록 합니다. 조사 결과, 제안된 모델은 테스트 데이터셋에서 EfficientNet-B7을 사용하여 90%의 높은 정확도를 제공하며, 훈련 데이터셋에서는 97.2%의 정확도로 다른 제안된 모델 및 기존 모델보다 잎을 더 잘 탐지하는 것으로 나타났습니다.