Бизнес-проблема и обзор:

Это тематическое исследование патологии растений 2020 года — выявление больного листа яблони. Болезни листьев вызывают бактерии, грибы и вирусы. Эти болезни могут поражать листья и вызывать появление пятен, полную гибель и опадение листьев, что влияет на здоровье растения. Данные состоят из четырех типов изображений: здоровый лист, ржавчина яблони, вызываемая грибком Gymnosporangium juniperi-virginianae, парша яблони, вызываемая грибком-аскомицетом Venturia inaequalis, и последний вид — лист, содержащий два больше болезней. В настоящее время урожайность сельскохозяйственных культур находится на должном уровне с точки зрения качества и количества из-за многих причин качества почвы, загрязнения, удобрений и т. д., что приводит к потере дохода и качества поля. Фермеры не знают о болезнях, их причинах и способах решения. Таким образом, использование неправильных фунгицидов может увеличить затраты на выращивание, но не улучшить выздоровление от болезней. Чтобы найти болезнь у фермеров, нужно терять время и ресурсы, такие как тестирование, почва и листья. Вместо этого мы можем создать модель, которая может предсказать болезни листьев или их здоровье.

Использование глубокого обучения:

Для этой проблемы предсказательная модель CNN добавляет больше ценности и помогает фермеру очень легко обнаружить болезнь. Модели настраивают модели CNN и передают изучение моделей предварительной сборки, таких как vgg19, resnet50, начало и т. д.

Следует отметить некоторые ограничения:

  1. требование средней задержки
  2. ошибка может дорого обойтись

Источник ваших данных и проблемы:

Данные и проблема связаны с конкурсом в Kaggle Link

метрика, которая используется для оценки, – этоROC AUC.

Существующие подходы:

Существующее решение1: ссылка

В этом документе говорится, что они использовали сеть ResNet50, предварительно обученную с точной настройкой сетевых весов, которые они получили в тесте 97% от оценки AUC. и они упомянули, что есть некоторые дублированные изображения.

Существующее решение 2: ссылка

В этой статье они использовали методы Effectivenetb7 и Effectivenetb7 с полууправлениемшумные студенты и некоторые методы увеличения изображения. Показатели точности Effectivenetb7 96% и с разницей 0,15

Существующее решение 2: ссылка

В приведенном выше блоге они использовали EfficientNetB4 с трансферным обучением, что привело к почти 94% AUC с некоторыми методами увеличения изображения. они также упомянули, что большая часть класса предсказана на основе цветовых пятен листьев.

Мои улучшения существующего решения:

  1. Изучая документы и блоги, трансферное обучение с предварительно обученными моделями работало хорошо, поэтому попробуйте еще несколько предварительно обученных моделей.
  • ВГГ-16/19
  • Реснет50
  • Началоv3
  • Эффективная сеть

2. С апсэмплингом младшего класса

3. Заболевание листа полностью зависит от цвета пятен. Итак, преобразование изображения в фокусировку других цветов больше, чем зеленого. может это может помочь для лучшего и легкого предсказания. Так как все болезни зеленого цвета имеют пятна разного цвета.

Исследовательский анализ данных (EDA)

Существует папка для изображений, в которой имя файла находится в идентификаторе изображения, и этот класс указан в четырех столбцах здоровое мульти_заболевание, ржавчина и парша 1 означает да, а 0 - нет, если в одном столбце строки есть один остальные 3 будут равны нулю

Особенность класса:

1. мы обнаружили, что общее изображение в наборе обучающих данных равно 1821.

среди них,

2. все классы изображений листовой ржавчины более 622

3. аналогично, парша листьев с 592 и здоровые листья с 516

4. Последний класс, который является листом Multiple_diseases 91, делает этот набор данных несбалансированным.

Пример изображения каждого класса:

Наблюдение с приведенных выше изображений

1. лист здоровья: зеленый цвет, полная форма

2. Лист ржавчины: наличие желтых пятен на листе и форме также хорошо

3. Лист парши: наличие коричневых пятен на листе и форме также хорошо

4. множественные заболевания: на нем есть желтые и коричневые пятна, а форма листа не очень хорошая, что означает, что большая часть листа съедена грибками или бактериями.

Высота и ширина изображения

0.5th percentile of width :  2048.0 
1th percentile of width :  2048.0 
3th percentile of width :  2048.0 
5th percentile of width :  2048.0 
10th percentile of width :  2048.0
80 th percentile of heigth :  1365.0 
90 th percentile of heigth :  1365.0 
95 th percentile of heigth :  1365.0 
97 th percentile of heigth :  1365.0 
99 th percentile of heigth :  1365.0 
99.5 th percentile of heigth :  1365.0

наблюдение:

1. ширина из pdf и процентиль 100 имеют 2048, только первые 1% изображений имеют 1365

2. высота из pdf и процентиль 99 имеет 1365, только последний 1% изображений имеет 2048

3. таким образом мы можем перемасштабировать все изображения в (1365*2048)

4. Все размеры класса изображения (высота и ширина) выглядят одинаково

Среднее значение RGB для изображений PDF-графики

наблюдения:

1. средний красный канал выглядит лучше по сравнению с другими графиками

2. означает синий канал, все классы перекрываются

3. средний зеленый канал, все классы перекрываются

Уменьшение размера:

тсне

наблюдение:

1. мы масштабировали изображение до 256*256

2. применив tsne, мы можем наблюдать, что есть небольшие кластеры и сильно перекрываются

Удаление зеленого цвета с изображения

наблюдение:

1. мы убрали зеленый цвет с изображения

2. затем применил tsne мы видим, что он выглядел лучше, чем выше

тренировать и тестировать сплит

мы разделяем 75 и 25 обучаем и тестируем

Предварительная обработка данных

мы использовали технику увеличения изображения из пакета Keras

Генератор данных изображения

только для изображений поезда не для тестовых изображений

Здесь мы сделали поворот изображения, общий диапазон, диапазон масштабирования, горизонтальное отражение, диапазон сдвига по ширине, диапазон сдвига по высоте

Моделирование

  1. Базовая модель

это моя архитектура

ВГГ-19

Реснет50

НачалоV2

Начало-ResNet-V2

Удаление зеленого цвета с изображения

Дополнительное увеличение данных\

Конечный результат всех моделей

Обзор моделей

1. Эти модели тренируются с разделением 75–25

2. Все предварительно обученные модели не доработаны

Наблюдение

  1. my_model имеет наивысший балл, но не смогла предсказать второстепенный класс (лист с несколькими заболеваниями)

2. Vgg19 предсказывает второстепенный класс, но сильно переобучается

3. InceptionV2 предсказывает второстепенный класс, он сильно переобучен

4. ResNet50 не прогнозирует второстепенный класс

5. Inception-ResNet-V2 предсказывает второстепенный класс и оценку — это хорошо, это переобучение

6. тонкая настройка работала лучше, чем в прошлой модели

7. удаление зеленого цвета не помогает

8. гипертюнинг уменьшил переобучение

Оценка Kaggle:

Развертывание модели:

Я создал приложение и модель Streamlit, интегрированные с Streamlit, и развернул их в экземпляре AWS ec2.

В этом приложении модель хранится в кэш-памяти. Первоначально это может занять много времени после загрузки модели (500 МБ), затем прогнозирование каждого изображения будет быстрым

как работает это приложение:

  1. Пользователи должны загрузить яблочный лист
  2. нажмите на кнопку предсказания
  3. это приводит к предсказанному классифицированному классу

Видео проекта:

Будущая работа :

  1. переобучение моделей трансферного обучения на всех уровнях и гипернастройка последних настраиваемых слоев. с хорошими вычислительными ресурсами
  2. Используя два классификатора, один должен предсказать, болен лист или нет. если он болен, то предскажите тип заболевания как парша или ржавчина или множественное заболевание

Ссылки:

  1. https://www.kaggle.com/c/диабетическая-ретинопатия-обнаружение/данные
  2. https://bsapubs.onlinelibrary.wiley.com/doi/full/10.1002/aps3.11390
  3. https://www.mdpi.com/2077-0472/11/7/617/htm
  4. https://medium.com/@dhirajkumarsahu.999/plant-disease-detection-926ca83b4aa8

Мои URL:

ЛинкедИн

Гитхаб