Веб-приложение, которое включает в себя различные недавно запущенные приложения для обработки изображений, такие как SRGAN, Auto Encoder/Decoder, Image Captioning, Plant Dieses Identifications.

Введение

  • Методы обработки изображений используют фильтры для улучшения изображения. Их основное применение — преобразование контрастности, яркости, разрешения и уровня шума изображения.
  • Контурирование, повышение резкости изображения, размытие, тиснение и обнаружение краев являются типичными функциями обработки изображений.
  • Кроме того, Data Explore → Augmentation -> Train -> Review — отличная задача, и я хочу сделать это и узнать, как реализовать такое приложение обработки изображений.

Мотивация

  • Работа с недавно разработанными технологиями — довольно сложная задача, и мы, как ИТ-инженеры, любим это делать.
  • Изучение скрытых/актуальных тем машинного обучения или искусственного интеллекта — неплохая задача.
  • Ганс и другое приложение для обработки изображений

Цели проекта

  • Образовательная база
  • Исследовательская база
  • Производственная база
  • Учебная база

Описание Проекта

  • В этом проекте мы собираемся внедрить сверхвысокое разрешение с использованием автокодировщиков и SRGans, обнаружения болезней растений, генератора подписей к изображениям и т. д.
  • Модель будет обучаться на основе чьей-то исследовательской работы или описания конкурса Kaggle.
  • Основной целью проекта является исследование и изучение обработки изображений.
  • Интерфейс для веб-приложения оптимизирован, а серверная часть будет написана на python.

Углубленное исследование

Супер-разрешение с использованием Gan

  • Это было разработано разработчиками Twitter(работающими профессионалами)(Paper Link)
  • Он имеет очень хорошую архитектуру, включает в себя генератор и дискриминатор с vgg.
  • Пытался реализовать это с помощью Google Collab, но это кажется невозможным с производительностью графического процессора.
  • Б/у ISR.Train

Архитектура СРГАН

Реализация TensorFlow «Фотореалистичное сверхвысокое разрешение одиночного изображения с использованием генеративно-состязательной сети»

Полученные результаты

ISR (сверхвысокое разрешение изображения)

Из-за отсутствия высокопроизводительного ПК я не смог обучить свою модель, поэтому я решил использовать API под названием ISR, где нам нужно передать некоторые параметры и фотографии, чтобы получить соответствующее выходное изображение.

Во время моего локального обучения изображений я использовал набор данных div2k, доступный на kaggle, с изображениями с высоким разрешением около 0,8k, но во время обучения он не давал надлежащего результата, и нам нужно тренировать модель, например, от 40 до 50 часов. поэтому я решил перейти на ISR и отдать данные в API

Итак, вот пример кода, который включает API и возвращает изображение.

Пользовательский интерфейс SRGan

Обнаружение болезней растений

  • Набор данных Kaggle
  • Работайте с изображениями, такими как изменение формы, увеличение и т. д.
  • Время обучения — 10/12 часов (300 эпох)
  • 16 классов, плотнет121
  • Val Ошибка — 0,085 Точность — 95%

Выявление болезней растений с помощью какой-либо автоматической техники выгодно, так как требует большого объема работы по мониторингу в большом хозяйстве сельскохозяйственных культур, а также на самой ранней стадии выявляет симптомы болезней, то есть там, где они появляются на листьях растений. Любая техника или метод преодоления этой проблемы и получения предупреждения до того, как растения будут заражены, поможет фермерам эффективно выращивать сельскохозяйственные культуры или растения как в качественном, так и в количественном отношении. Таким образом, выявление болезней растений играет очень важную роль в сельском хозяйстве.

Для этой задачи я использовал набор данных «PlanVillage». Этот набор данных содержит репозиторий изображений здоровья растений с открытым доступом, позволяющий разрабатывать мобильные средства диагностики заболеваний. Набор данных содержит 54 309 изображений. Изображения охватывают 14 видов сельскохозяйственных культур: яблоко, черника, вишня, виноград, апельсин, персик, болгарский перец, картофель, малина, соя, тыква, клубника и помидор. Он содержит изображения 17 заболеваний глазного дна, 4 бактериальных заболеваний, 2 заболеваний плесенью (оомицетов), 2 вирусных заболеваний и 1 заболевания, вызванного клещом. 12 видов сельскохозяйственных культур также имеют изображения здоровых листьев, не пораженных болезнью.

Во время обучения обучение заняло довольно много времени, но, поскольку у меня есть GPU в моей учетной записи kaggle, это было около 10/12 часов обучения с 300 эпохами. при этом мы получили точность 95% и ошибку проверки 0,085.

Вот пользовательский интерфейс WebApp

Супер-разрешение с использованием автоэнкодера

Поскольку только для небольшой исследовательской цели я решил сделать модель для сверхвысокого разрешения изображения, но теперь с автоэнкодером.

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

В целях обучения мы использовали набор данных автомобилей с высоким разрешением, доступный на GitHub, который содержит изображения с высоким разрешением 8k и то же самое с изображениями с низким разрешением.

Размер исходных изображений 250 х 250 пикселей. Однако для обработки этих изображений на обычном компьютере потребуется много вычислительной мощности. Поэтому мы уменьшим размер всех изображений до 80 х 80 пикселей.

Мы собираемся обучать нашу модель с помощью набора данных, содержащего более 8000 изображений автомобилей.

Подписи к изображениям с помощью машинного обучения

  • Набор данных Kaggle, содержащий 8 000, 30 000 и 180 000 изображений соответственно.
  • Время обучения 8/10 часов на графическом процессоре kaggle, но очень низкая производительность
  • Ссылка на GitHub для набора данных: https://github.com/jbrownlee/Datasets/releases/download/Flickr8k/Flickr8k_Dataset.zip
  • Набор данных Flicker8k
  • Обычно используемая библиотека: Numpy, Tensorflow

Подпись к изображению – это процесс генерирования текстового описания из заданного изображения на основе объектов и действий на изображении.

Основная идея субтитров к изображениям заключается в объединении и использовании концепций Компьютерного зрения и Обработки естественного языка. Эта задача создания подписей к изображениям состоит из двух логических моделей, а именно: модель на основе изображения и модель на основе языка. Первая отвечает за извлечение функции из данного изображения, в то время как последнее переводит функции и объекты, предоставленные моделью на основе изображения, в естественное предложение.

Сверточная нейронная сеть (CNN) выполняет обработку изображений и работу, связанную с извлечением признаков, в то время как, с другой стороны, рекуррентная нейронная сеть (RNN) впоследствии создает необходимое текстовое описание (заголовки), используя возможности, изученные CNN.

Эта общая модель/архитектура обычно называется моделью кодировщик-декодер.

Чтобы построить модель, которая генерирует правильные подписи, нам требуется набор изображений с подписями. Некоторыми из таких известных наборов данных являются Flickr8k, Flickr30k и MS COCO (180k). Эти наборы данных содержат 8 000, 30 000 и 180 000 изображений соответственно. В этом посте я буду использовать набор данных Flickr8k из-за ограниченных вычислительных ресурсов и меньшего времени обучения. Каждое изображение в этом наборе данных снабжено пятью подписями от разных людей, поскольку существует возможность описать одно и то же изображение по-разному. Наличие разных заголовков также позволяет модели лучше обобщать.

Вот несколько скриншотов веб-приложения обработки изображений

Спасибо за чтение этого блога

Если вы хотите получить доступ к коду, пожалуйста, проверьте его на моем github.

Спасибо