Распознавание сгоревших территорий с помощью OpenCV

Обсуждение материалов сайта: вопросы, замечания, предложения
Ответить
updates-bot
Bot
Сообщения: 276
Зарегистрирован: 03 фев 2008, 23:13
Репутация: 3

Распознавание сгоревших территорий с помощью OpenCV

Сообщение updates-bot » 08 апр 2011, 10:08

Обсуждение статьи "Распознавание сгоревших территорий с помощью деревьев решений и OpenCV"

http://gis-lab.info/qa/burnedarea-opencv.html

gamm
Гуру
Сообщения: 2534
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 517
Ваше звание: программист
Откуда: Казань

Re: Распознавание сгоревших территорий с помощью OpenCV

Сообщение gamm » 08 апр 2011, 19:50

Используя ансамбль деревьев решений, мы нашли 95% случившихся пожаров, но при этом 66% территорий, классифицированных как сгоревшие, относятся к несгоревшим по данным MCD45,
судя по картинке, эрозия/деляция слишком грубый инструмент, потому площадь завышена. Лучше попробовать Марковские поля в стиле работ Besag, они в CV должны быть (ICM). Тогда будет использоваться не 0/1, а вероятность, и картинка должна быть получше.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Статьи: 31
Проекты: 4/1
Репутация: 32
Откуда: Ukraine

Re: Распознавание сгоревших территорий с помощью OpenCV

Сообщение Voltron » 08 апр 2011, 20:01

В статье описанна поканальная загрузка данных из одноканальных растров. А можно ли как-то загружать многоканальные, например, ландсат (6 каналов)? Знаю как это сделать при помощи дополнительных библиотек, но может можно обойтись только openCV?

Аватара пользователя
ilysenkov
Новоприбывший
Сообщения: 3
Зарегистрирован: 08 апр 2011, 18:55
Статьи: 1
Репутация: 0
Откуда: Nizhny Novgorod
Контактная информация:

Re: Распознавание сгоревших территорий с помощью OpenCV

Сообщение ilysenkov » 08 апр 2011, 21:09

Если данные в формате GeoTIFF, то сейчас средствами OpenCV можно прочитать только 1-канальные и 3-канальные изображения. Поэтому для загрузки исходные данные нужно разбить на каналы и читать их по очереди.

Аватара пользователя
ilysenkov
Новоприбывший
Сообщения: 3
Зарегистрирован: 08 апр 2011, 18:55
Статьи: 1
Репутация: 0
Откуда: Nizhny Novgorod
Контактная информация:

Re: Распознавание сгоревших территорий с помощью OpenCV

Сообщение ilysenkov » 22 апр 2011, 22:06

В статье при тренировке одного дерева решений использовались значения параметров по умолчанию. Но оказалось, что в этом случае на этих данных дерево слишком сильно обрезается по глубине. Если использовать параметры

Код: Выделить всё

use_1se_rule = false;
 truncate_pruned_tree = false;
то это улучшит качество распознавания одного дерева решений и оно будет уже сравнимо с качеством классификации ансамбля: ошибка омиссии будет равна 0.03, а комиссии — 0.73.

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: Распознавание сгоревших территорий с помощью OpenCV

Сообщение syroezhka » 28 окт 2011, 12:12

Если позволите пару замечаний:
1.
Для учёта результатов классификации соседних пикселей можно использовать операции математической морфологии
Вы поочереди используете эрозию и дилатацию. Гораздо эфективней пользоваться морфологическим Замыканием (morphological close) и Размыканием (morphological open)(по вашей ссылке о них написано). Они есть последовательной комбинацией базовых операций.
2.
Например, можно использовать библиотеку GDAL — про это подробно написано в статье Использование GDAL для привязки растровых материалов.
Привязывать по точкам растровый вариант классификации это мягко говоря не удобно. Гораздо легче с помощью того же GDAl (или другого ПО) взять информацию о привязке из геотегов GeoTIFF классифицируемого файла и записать их в world и prj файлы названные так же как и результат классификации.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Статьи: 31
Проекты: 4/1
Репутация: 32
Откуда: Ukraine

Re: Распознавание сгоревших территорий с помощью OpenCV

Сообщение Voltron » 28 окт 2011, 14:00

syroezhka писал(а):Вы поочереди используете эрозию и дилатацию. Гораздо эфективней пользоваться морфологическим Замыканием (morphological close) и Размыканием (morphological open)(по вашей ссылке о них написано). Они есть последовательной комбинацией базовых операций.
Не автор статьи, но за совет спасибо.
syroezhka писал(а):Привязывать по точкам растровый вариант классификации это мягко говоря не удобно. Гораздо легче с помощью того же GDAl (или другого ПО) взять информацию о привязке из геотегов GeoTIFF классифицируемого файла и записать их в world и prj файлы названные так же как и результат классификации.
А о привязке по точкам и речи быть не может. Я понимаю, что в статье описана привязка по точкам, но не забываем, что GDAL это не только утилиты командной строки, но и библиотека с развитым API. Это API позволяет буквально в несколько строк скопировать данные о привязке из одного файла в другой. За примером далеко ходить не надо — посмотрите на DTclassifier. Там как раз результаты привязываются через GDAL (не по точкам!)

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: Распознавание сгоревших территорий с помощью OpenCV

Сообщение syroezhka » 28 окт 2011, 18:14

Морфологические операции - это вообще потрясающий инструмент. Комбинируя их различным способом можно решать огромное количество задач. Например:
Чистка мусора – размыкание (morphological open): сначала эрозия, потом дилатация.
Соединение отстоящих пикселов в группы - замыкание (morphological close): сначала дилатация, затем эрозия.
Выделение границ - дилатация минус эрозия
Построение скелетона - но оно уже более сложно выражается.
У Гонсалеса и Вудса в «Цифровой обработке изображений» целый раздел им посвящен.

Ответить

Вернуться в «Материалы сайта»