Добавить в корзинуПозвонить
Найти в Дзене

Обучаю нейросеть на рулонах (ред.)

План: 1 Подготовка базы данных Будем использовать бинарное распознавание. В качестве тестовой модели подготовим изображения рулонов с соломой и сеном расположенных в поле. Снимки сделаны на БПЛА Geoscan 201M (Камера SONY A6000) с высоты около 250 метров. В идеале использовать изображения размером 256*256 пикселей. Именно такой размер имеет тайл в WMS и можно будет брать изображения из каталога и индексировать. Для начала посмотрел уроки по машинному обучению: В видео показывается порядок подготовки dataset-a. Видео дало небольшое понимание процесса. Для обучения используют большое кол-во размеченных снимков. Чем больше, тем лучше получится обучить модель. Необходимо собрать датасет где 70% изображений пойдут для обучения, 15% для проверки и 15% для целей тестирования. Для начала, в качестве образца, можно попробовать использовать датасет с www.kaggle.com https://www.kaggle.com/datasets/ichhadhari/leaf-images
болезни винограда агрокультуры (связанные категории) Есть 3 варианта подготов
Оглавление

План:

  1. Подготовка базы данных (изображений)
  2. Получение весов нейросети
  3. Испытания
  4. Запуск сервиса по распознанию снимков
  5. Интеграция с БПЛА (опционально)

1 Подготовка базы данных

Будем использовать бинарное распознавание.

В качестве тестовой модели подготовим изображения рулонов с соломой и сеном расположенных в поле. Снимки сделаны на БПЛА Geoscan 201M (Камера SONY A6000) с высоты около 250 метров.

В идеале использовать изображения размером 256*256 пикселей. Именно такой размер имеет тайл в WMS и можно будет брать изображения из каталога и индексировать.

Для начала посмотрел уроки по машинному обучению:

В видео показывается порядок подготовки dataset-a. Видео дало небольшое понимание процесса.

Для обучения используют большое кол-во размеченных снимков. Чем больше, тем лучше получится обучить модель.

Необходимо собрать датасет где 70% изображений пойдут для обучения, 15% для проверки и 15% для целей тестирования.

Для начала, в качестве образца, можно попробовать использовать датасет с www.kaggle.com

https://www.kaggle.com/datasets/ichhadhari/leaf-images
болезни винограда агрокультуры (связанные категории)

Есть 3 варианта подготовки датасета:

Вариант 1. Dataset при помощи скриншотов.

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

Рулоны
Рулоны
Сенокос
Сенокос

Вариант 2. Разметка программой

Есть специализированные программы. Их можно посмотреть в этом видео.

Я для для разметки выбрал label-studio.

Её необходимо установить через виртуальное окружение пайтона в отдельную папку.

PS D:\Soft\LabelStudio> py -m venv env
PS D:\Soft\LabelStudio> env\Scripts\activate
pip install -U label-studio

Ждем установки и командой label-studio запускаем программу

Автоматически открывается страница с программой.
Настраиваем:
Создаем новый проект. В настройках выбираем удобную для разметки схему.
Импортируем фото для разметки. Создаем категории. В нашем случае рулоны (roll) и поле (field)

Начинаем размечать...

label-studio
label-studio

*теория*
Для обучения нейросети необходимы снимки с небольшим расширением. Иначе программе будет сложно их анализировать. В последующем необходимо будет разбить снимки на более мелкие фрагменты для анализа. Как вариант сделать это при помощи инструментов GDAL для картографии. Или тем же самым opencv по рамкам из label-studio

Вариант 3. Использование нарезанных изображений (тайлов)

Этот вариант оптимальный. Изображения уже нарезаны по 256*256 пикселей и не требуют дополнительной обработки.
Но на таких изображениях идет случайная обрезка и их еще нужно найти среди тысяч тайлов. Их удобно будет анализировать.

Это можно сделать при помощи карты на базе leaflet.js
Но в изображения можно будет сразу поместить метаданные о высоте,, дате и содержимом снимка.

Для анализа нам понадобятся снимки с 19-20 масштабом. 18-й для этого маловат.

Экспериментируем с картой

Вот с таким масштабом будут выглядеть рулоны со спутниковых снимков. Но качество у них будет хуже. БПЛА позволяет приблизить в 4 раза (масштаб 20)

Рулоны при 18 масштабе (как на гугл картах)
Рулоны при 18 масштабе (как на гугл картах)
Масштаб 20. Разрешение около 100%. Высота съемки 250 метров
Масштаб 20. Разрешение около 100%. Высота съемки 250 метров
Масштаб 22. Видны пиксели
Масштаб 22. Видны пиксели

Дополнительно:

Статья о классификациях