SagiK-Repository / AI_Deep_Learn

0 stars 0 forks source link

[논문] Machine Learning Based Plant Disease Detection Using EfficientNet B7 #1

Closed SAgiKPJH closed 4 months ago

SAgiKPJH commented 4 months ago

EfficientNet B7을 사용한 머신러닝 기반 식물 질병 감지

초록

식물 질병은 식물의 성장과 생산에 영향을 미칩니다. 디지털 이미지 처리를 통해 식물 질병을 파악할 수 있으며, 최근에는 딥러닝이 식물 질병을 효율적으로 식별하기 위해 디지털 이미지 처리에서 많은 진전을 이루었습니다. 이 논문은 전처리, 모델 선택, 탐지 네트워크의 세 가지 데이터 단계를 중심으로 EfficientNet을 사용하여 식물 질병을 찾아냅니다. 모델은 캐니 엣지 검출 알고리즘을 사용하여 식물 질병 데이터 세트에서 학습되고 테스트되었습니다. 모델은 기존의 CNN 기반 모델보다 97.2%의 정확도로 질병을 감지합니다.

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 엣지 탐지 알고리즘은 잎의 엣지를 탐지하는 데 사용되며, 탐지된 영역/엣지는 제안된 모델에 입력됩니다. 이는 멀티스텝 알고리즘을 기반으로 이미지 엣지를 인식하는 일반적인 엣지 탐지 방법입니다.

  1. 노이즈 감소: 엣지 탐지는 이미지 노이즈에 민감하므로, 5 × 5 가우시안 필터를 사용하여 노이즈를 제거합니다.
  2. 이미지의 강도 기울기 찾기: 부드럽게 처리된 이미지는 소벨 커널을 사용하여 수평 및 수직으로 필터링되어 첫 번째 미분(Gx, Gy)을 생성합니다. 이 두 이미지는 각 픽셀의 기울기와 방향을 보여줍니다.
  3. 라운딩: 항상 엣지에 수직이 되도록 수직, 수평 또는 대각선 각도로 반올림됩니다.
  4. 비최대 억제: 기울기 크기와 방향을 수집한 후, 불필요한 픽셀을 제거하기 위해 이미지를 철저히 스캔합니다. 각 픽셀은 기울기 방향에서 지역 최대값을 검사합니다.
  5. 히스테리시스 임계값 설정: 이 단계는 엣지를 결정합니다. 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%의 정확도로 다른 제안된 모델 및 기존 모델보다 잎을 더 잘 탐지하는 것으로 나타났습니다.