이 프로젝트는 클래스 불균형 문제를 극복하고 최소한의 라벨링 데이터만을 사용하여 토마토 잎의 병해를 효과적으로 분류하기 위한 새로운 방법론을 제안한다. YOLOv8 모델을 기반으로 한 재귀적 학습 방식을 통해, 학습 데이터의 예측 결과를 다시 학습 데이터로 활용함으로써 데이터 불균형 문제를 보다 근본적으로 해결하였다. 특히, 가장 적은 데이터를 가진 클래스인 잎마름역병 병해에서 기존 대비 12.9% 향상된 결과를 확인할 수 있었다.
- 클래스 불균형 해결
- 기존 데이터 증강 및 샘플링 방법과 달리, 실제 라벨 데이터 활용을 극대화하여 클래스 불균형 문제에 대응
- 재귀적 학습 방식
- YOLOv8 모델을 사용하여 학습 데이터에 대한 예측 결과를 다시 학습에 활용, 점진적으로 클래스 개수를 증가
- 고정확도 달성
- 본 방법론을 통해 98.92%의 높은 정확도로 토마토 잎 병해를 분류
- 실용적 응용 가능성
- 이 연구는 다른 작물의 병해 분류에도 적용될 수 있는 방법론을 제시
EfficientNet-B0 모델을 사용한 실험에서는 다양한 설정에 따라 이미지의 테스트 정확도와 클래스별 정확도를 평가하였다.
- Base 설정: 원본 이미지에서 97.66%의 정확도를 달성하였으며, 잎 추출 이미지에서는 93.63%의 정확도를 보였다.
- Base + Leaf Crop 설정: 잎 이미지만을 추출하여 학습한 결과, 원본 이미지에 대한 정확도는 소폭 감소하였으나, 잎 추출 이미지에서는 정확도가 98.60%로 증가하였다. 이는 이미지 분할을 통한 학습이 성능 향상에 기여할 수 있음을 보여준다.
- YOLOv8 R3 + Leaf Crop: 이 설정은 원본 및 잎 추출 이미지 모두에서 가장 높은 정확도(98.92%)를 달성하며, 재귀적 학습 방법론이 예측 모델 성능에 중요한 영향을 미칠 수 있음을 확인하였다.
- 성능 저하 관찰: YOLOv8 R4 설정 이후, 성능 저하가 관찰되었는데, 이는 재귀적 학습의 반복이 증가함에 따라 특정 기준에 따른 이미지 삭제 및 조정이 필요함을 시사한다.
- 잎 추출 이미지에서의 학습: 잿빛 곰팡이병과 잎마름역병에서 낮은 성능을 보인 'Base' 설정에 비해, 잎 이미지를 학습한 설정이 효과적으로 성능을 향상시켰다.
- 특정 병해 탐지에서의 향상: 재귀적 학습 방법론을 적용한 설정은 특히 데이터가 적은 병해에서 성능이 크게 향상되었으며, 이는 병해 탐지에 있어서 재귀적 학습 방법론이 매우 효과적일 수 있음을 시사한다.
실험 설정 | 원본 이미지 (EfficientNet) | 잎 추출 이미지 (EfficientNet) |
---|---|---|
Base | 97.66% | 93.63% |
Base + Leaf Crop | 97.59% | 98.60% |
YOLOv8 R1 + Leaf Crop | 97.12% | 97.78% |
YOLOv8 R2 + Leaf Crop | 97.94% | 98.88% |
YOLOv8 R3 + Leaf Crop | 97.94% | 98.92% |
YOLOv8 R4 + Leaf Crop | 97.38% | 98.45% |
YOLOv8 R5 + Leaf Crop | 97.08% | 98.67% |
YOLOv8 R6 + Leaf Crop | 86.02% | 98.08% |
병해 | Base | Base+Leaf Crop | YOLOv8 R1+Leaf Crop | YOLOv8 R2+Leaf Crop | YOLOv8 R3+Leaf Crop |
---|---|---|---|---|---|
정상 | 97.11% | 99.40% | 99.55% | 99.76% | 99.76% |
흰가루병 | 95.58% | 97.01% | 96.19% | 97.35% | 97.76% |
잿빛곰팡이병 | 84.63% | 98.25% | 95.63% | 99.04% | 98.69% |
황화잎말이바이러스병 | 98.54% | 99.27% | 100.00% | 99.27% | 99.27% |
잎곰팡이병 | 95.41% | 99.08% | 99.08% | 97.25% | 99.08% |
잎마름역병 | 29.03% | 87.10% | 96.77% | 100.00% | 93.55% |
이 결과들은 YOLOv8 모델과 EfficientNet-B0를 결합한 재귀적 학습 방법론이 토마토 잎 병해 분류에 효과적임을 보여주며, 특히 클래스 불균형이 심한 상황에서도 높은 정확도를 달성할 수 있음을 입증한다.
- Python 3.11
- PyTorch 2.1.1
- 기타 필요한 패키지는
Dockerfile
참조
git clone https://github.com/junhyuk0708/KoTomatoLeafDiseaseClassifier.git
- 클래스 불균형, 재귀적 학습, YOLOv8, EfficientNet, 토마토 병해