Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Автоматическая сегментация спутниковых снимков на базе модифицированной сверточной нейронной сети UNET

Подготовка данных для обучения

Для каждой области снятой поверхности (определяется по IMAGE_ID) было предоставлено 20 различных изображений (см. таблицу 1). Наибольшее разрешение было у панхроматического снимка, но оно немного варьировалось между изображениями. Поэтому было принято решение привести все снимки к формату 3360 на 3360. Число 3360 было выбрано из следующих соображений:

  • 1) В качестве базовой нейронной сети была выбрана UNET, которая была модифицирована под наши задачи с входной размерностью 20х224х224, а 3360 = 224*15.
  • 2) Число 224 часто используется как сторона квадрата для большого числа известных свёрточных нейросетей, например VGG16 [10] и ResNet. Для этих сетей есть веса, подготовленные на большом наборе данных из ImageNet [11]. Таким образом, подготовленные данные можно будет использовать для экспериментов и с этими сетями.

Все доступные изображения для одной области были преобразованы к виду 3360x3360 и склеены в одну большую 3-мерную матрицу с размерами: 20x3360x3360. Полигоны также были спроецированы на изображение-маску размером 3360x3360. Значение 1 в маске означает наличие искомого объекта по координатам данного пиксела, 0 - соответственно отсутствие.

Тренировочные данные готовились отдельно для каждого из 10 классов сегментации (см. таблицу 2). Для подготовки тренировочного набора для отдельного класса эта 3-мерная матрица и маска были разделены на 225 непересекающихся частей с размерами 20х224х224 и 224х224 соответственно.

Таблица №3

Распределение классов по изображениям. Красным отмечены ячейки, если на картинке есть хотя бы один полигон для заданного класса. Число в ячейке - процент площади изображения занятой полигонами данного класса.

Class

1

2

3

4

5

6

7

8

9

10

IMAGE_ID

6040_2_2

-

-

-

0.95

18.74

-

-

-

-

-

6120_2_2

20.66

2.04

4.25

8.65

4.43

10.29

-

0.28

0.007

0.156

6120_2_0

1.79

0.72

0.85

4.40

5.63

79.63

-

-

0.013

0.004

6090_2_0

-

0.03

-

0.40

10.11

28.25

-

0.31

-

0.001

6040_1_3

-

-

-

0.20

18.74

3.66

-

-

-

-

6040_1_0

-

-

-

1.44

8.01

-

-

-

-

-

6100_1_3

8.77

2.73

2.21

12.25

6.20

2.69

-

0.68

0.011

0.045

6010_4_2

-

-

-

1.95

12.34

-

-

-

-

-

6110_4_0

2.40

0.57

1.84

2.80

5.74

80.81

-

1.42

0.013

0.001

6140_3_1

5.20

1.43

3.42

2.52

5.88

57.42

-

0.46

0.004

0.035

6110_1_2

13.13

2.86

0.41

4.18

3.31

49.80

-

0.15

-

0.006

6100_2_3

8.22

1.41

1.21

9.60

7.53

-

-

0.06

0.014

0.066

6150_2_3

-

0.60

-

3.02

13.52

80.71

-

-

-

-

6160_2_1

-

-

-

2.80

10.27

-

-

-

-

-

6140_1_2

12.92

2.45

0.35

4.14

3.10

49.62

-

0.14

-

0.008

6110_3_1

4.55

1.25

3.63

2.82

5.41

57.64

-

0.55

0.018

0.025

6010_4_4

-

-

-

-

22.86

-

-

-

-

-

6170_2_4

-

0.001

-

2.50

7.78

49.56

-

0.008

-

-

6170_4_1

-

-

-

0.13

20.23

-

-

-

-

-

6170_0_4

-

0.001

-

0.19

24.90

-

-

0.01

-

-

6060_2_3

0.13

0.30

-

3.03

8.45

93.61

-

-

-

0.000

6070_2_3

1.55

0.30

0.81

-

16.05

-

10.63

0.05

-

0.005

6010_1_2

-

0.06

-

1.33

4.56

-

-

-

-

-

6040_4_4

-

-

-

1.89

2.91

-

-

-

-

-

6100_2_2

3.18

0.81

1.19

3.72

7.61

44.34

1.88

0.05

0.010

0.024

Данные были распределены неравномерно, что хорошо видно на таблице номер 3. Часть классов отсутствовала на большинстве картинок (например, быстрая вода (7 класс)), а часть классов имело очень маленькую площадь полигонов относительно общей площади изображения. Поэтому тренировочные изображения готовились отдельно для каждого класса. После первого этапа, когда были добавлены все непересекающиеся изображения размером 20х224х224, в каждый класс были добавлены дополнительные изображения с ненулевой маской. Получены они были методами плавающего окна вокруг ненулевой маски. Пример отдельного тестового изображения (20 слоев показаны как отдельные изображения) для нейронной сети приведен на рис.4, и маска для него на рис.5.

Тестовый пример для обучения нейронной сети размерности 20х224х224

Рис.4. - Тестовый пример для обучения нейронной сети размерности 20х224х224

Пример маски, полученной из полигонов для класса деревьев

Рис.5. - Пример маски, полученной из полигонов для класса деревьев

В процессе анализа тренировочного набора был обнаружен ряд проблем, которые затрудняли обучение.

  • 1) Классы быстрой и медленной воды не всегда хорошо отличимы друг от друга даже визуально. По быстрой воде также было предоставлено очень мало тестовых данных. В идеале эти классы следовало объединить. Часть участников обучали эти классы в рамках единой модели и затем разделяли их эвристическими методами.
  • 2) Классы 9 и 10 были несколько искусственно разделены на большие и малые машины, дополнительно разметка по ним оставляла желать лучшего. В класс 10 также попали посторонние объекты, такие как мусорные баки.
  • 3) Часть изображений в разных частотных диапазонах были немного смещены друг относительно друга.

Сеть UNET требует распределение яркости пикселей близкое к нормальному, поэтому требовалось посчитать арифметическое среднее и стандартное отклонение значений пикселов. Мы использовали один набор коэффициентов для всего тензора, а не 20 отдельных нормирующих коэффициентов для каждого слоя.

Мы не производили фильтрацию пикселов с краёв гистограммы для картинок. Судя по всему это приводит к потери части важной информации.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 
Предметы
Агропромышленность
Банковское дело
БЖД
Бухучет и аудит
География
Документоведение
Естествознание
Журналистика
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Математика, химия, физика
Медицина
Менеджмент
Недвижимость
Педагогика
Политология
Право
Психология
Религиоведение
Социология
Статистика
Страховое дело
Техника
Товароведение
Туризм
Философия
Финансы
Экология
Экономика
Этика и эстетика
Прочее