Дешифрирование минералов по цвету. Выбор софта
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 21 янв 2020, 19:59
- Репутация: 0
- Откуда: Россия
Дешифрирование минералов по цвету. Выбор софта
Привет! Мне нужна программа, которая работает с графическими файлами (например, с форматами PNG, BMP, JPG) на которых изображены снимки образцов горных пород (шлифы, сделанные на микроскопе). Программа должна дешифрировать различные минералы, которые находятся в образце, по цвету, который минерал имеет на снимке (то есть по значениям параметров RGB). Каждый минерал имеет один цвет на палитре, точнее небольшой интервал параметров RGB. Например, минерал#1 от бледнокрасного до интенсивно красного; минерал#2 от бледнозеленого до интенсивно зеленого и т.д. Все эти параметры вводятся пользователем. То есть (чтобы было понятно), программа должна выполнять функцию усложненной волшебной палочки из Photoshop . Она должна автоматически выделять на снимке все пятна с заданным интервалом параметров RGB (цвета) и присваивать ему название минерала (введенные пользователем). На выходе это должен быть раскрашенный снимок с легендой определенных минералов, все неопределенное – покрашено одним цветом «ошибки» или «не удалось установить минерал».
При этом по своей сути, эта задача близка к задачам выполнения обучаемой классификации для космоснимков земной поверхности ДЗЗ. Отличий два:
-нет привычной геопривязки снимка (поскольку каждый снимок образца горных пород очень маленький, не больше ширины предметного стекла микроскопа).
- для каждого пикселя его принадлежность к какому-либо минералу определяется его цветом (числа R,G,B), а не спектральной кривой, как это есть в дешифрировании снимков ДЗЗ при помощи специальных софтов (ENVI, например).
Однако, может быть, именно софт, работающий с космоснимками можно использовать напрямую для решения этой задачи? Или есть готовый софт, который решает прямо такую задачу?
Если ничего нет, то какова может быть архитектура написания такой программы с нуля? Полезные библиотеки, примеры?
P.S. Это рабочая (не учебная) задача.
При этом по своей сути, эта задача близка к задачам выполнения обучаемой классификации для космоснимков земной поверхности ДЗЗ. Отличий два:
-нет привычной геопривязки снимка (поскольку каждый снимок образца горных пород очень маленький, не больше ширины предметного стекла микроскопа).
- для каждого пикселя его принадлежность к какому-либо минералу определяется его цветом (числа R,G,B), а не спектральной кривой, как это есть в дешифрировании снимков ДЗЗ при помощи специальных софтов (ENVI, например).
Однако, может быть, именно софт, работающий с космоснимками можно использовать напрямую для решения этой задачи? Или есть готовый софт, который решает прямо такую задачу?
Если ничего нет, то какова может быть архитектура написания такой программы с нуля? Полезные библиотеки, примеры?
P.S. Это рабочая (не учебная) задача.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Дешифрирование минералов по цвету. Выбор софта
первое не имеет отношения к классификации (можете поставить любую систему координат), а второе неверно.bluefich писал(а): ↑21 янв 2020, 20:08Отличий два:
-нет привычной геопривязки снимка (поскольку каждый снимок образца горных пород очень маленький, не больше ширины предметного стекла микроскопа).
- для каждого пикселя его принадлежность к какому-либо минералу определяется его цветом (числа R,G,B), а не спектральной кривой, как это есть в дешифрировании снимков ДЗЗ при помощи специальных софтов (ENVI, например).
Вам нужен метод максимального правдоподобия (ML - maximum likelihood), и желательно снимки делать аппаратом, который порождает не jpeg, а нормальный снимок, и имеет хорошую цветопередачу, стабильность, и больше 8 битов на пиксель. И использовать для съемки правильное освещение. Дальше все как обычно - если у вас действительно один цвет: обводите на снимке нужные области, ставите классы, запускаете обучение, потом классификацию. На сайте гислаба есть пример для плагина QGIS (DT classifier, но он использует не ML, а дерево решений). ML есть в GRASS, который подключен к QGIS
-
- Активный участник
- Сообщения: 107
- Зарегистрирован: 16 июл 2015, 15:21
- Репутация: 35
- Откуда: Санкт-Петербург
Re: Дешифрирование минералов по цвету. Выбор софта
Готовый софт: QGIS, Grass, Saga-GIS (в котором кнопками и мышкой можно разметить картинки и сделать обучаемую классификацию даже по RGB).
Полезные библиотеки: scikit-image, scikit-learn.
Полезные библиотеки: scikit-image, scikit-learn.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Дешифрирование минералов по цвету. Выбор софта
тут проблема не столько в RGB, сколько в том, чтобы этот RGB был сопоставим на разных снимках, для этого нужно обеспечить либо идеально одинаковые условия съемки (что требует специального оснащения), либо "атмосферную коррекцию", что требует помещения на каждый снимок цветового эталона (и стабильного равномерного освещения, без бликов, и т.д). И это все при макросъемке, что создает дополнительные проблемы ...
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 21 янв 2020, 19:59
- Репутация: 0
- Откуда: Россия
Re: Дешифрирование минералов по цвету. Выбор софта
Спасибо за советы !
Также я пытаюсь решить данную задачу при помощи плагина Mask . Это хороший подход к решению задачи ?
Также я пытаюсь решить данную задачу при помощи плагина Mask . Это хороший подход к решению задачи ?
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 21 янв 2020, 19:59
- Репутация: 0
- Откуда: Россия
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 21 янв 2020, 19:59
- Репутация: 0
- Откуда: Россия
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Дешифрирование минералов по цвету. Выбор софта
установить nextgis qgis, купить подписку, доп.функциональность включая этот плагин разблокируется
https://nextgis.ru/nextgis-qgis
https://nextgis.ru/nextgis-qgis
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 21 янв 2020, 19:59
- Репутация: 0
- Откуда: Россия
Re: Дешифрирование минералов по цвету. Выбор софта
Максим, сколько стоит подписка, если цель пока только попробовать этот плагин, подходит ли он для решения этой специфической задачи? В первом посте обозначено, что снимок для дешифрирования является шлифом породы. То есть он очень маленький и у него нет геопривязки.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Дешифрирование минералов по цвету. Выбор софта
Вам ГИС не особо нужна, убедитесь для начала, что у вас условия съемки стабильные, и несколько сделанных в разное время снимков одного шлифа одинаковые.
Потом научитесь рисовать поверх снимка полигоны (в QGIS или еще где), чтобы задавать эталоны, и растеризовать их в новый слой (типы этих полигонов, если они векторные), это можно делать в QGIS, задав произвольную систему координат, и привязав в ней снимок (с пикселями вместо метров).
А все остальное можно спокойно делать в R или Python, там все бесплатно, достаточно немного знать тот или второй язык.
Т.е. для того, чтобы все делать, вам достаточно научиться рисовать растр с полигонами образцов, вплоть до того, что просто рисовать поверх ваших снимков в Paint, запомнив RGB, которым рисовали для каждого типа.
Пришлите пару-другую снимков с заданными таким образом эталонами, я постараюсь посмотреть (быстро не обещаю). Снимки лучше делать не jpeg, а TIFF, и нужны повторные снимки, чтобы оценить воспроизводимость. Штуки три повтора одного шлифа, и штуки три типов эталонов на нем, на каждый штуки три полигонов, репрезентативных.
Потом научитесь рисовать поверх снимка полигоны (в QGIS или еще где), чтобы задавать эталоны, и растеризовать их в новый слой (типы этих полигонов, если они векторные), это можно делать в QGIS, задав произвольную систему координат, и привязав в ней снимок (с пикселями вместо метров).
А все остальное можно спокойно делать в R или Python, там все бесплатно, достаточно немного знать тот или второй язык.
Т.е. для того, чтобы все делать, вам достаточно научиться рисовать растр с полигонами образцов, вплоть до того, что просто рисовать поверх ваших снимков в Paint, запомнив RGB, которым рисовали для каждого типа.
Пришлите пару-другую снимков с заданными таким образом эталонами, я постараюсь посмотреть (быстро не обещаю). Снимки лучше делать не jpeg, а TIFF, и нужны повторные снимки, чтобы оценить воспроизводимость. Штуки три повтора одного шлифа, и штуки три типов эталонов на нем, на каждый штуки три полигонов, репрезентативных.
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 21 янв 2020, 19:59
- Репутация: 0
- Откуда: Россия
Re: Дешифрирование минералов по цвету. Выбор софта
это некоторые образцыgamm писал(а): ↑21 фев 2020, 20:05Пришлите пару-другую снимков с заданными таким образом эталонами, я постараюсь посмотреть (быстро не обещаю)
https://drive.google.com/drive/folders/ ... sp=sharing
эталон
- Вложения
-
- example.png (986.39 КБ) 7999 просмотров
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Дешифрирование минералов по цвету. Выбор софта
Я сделал привязку (как попало, они в разные стороны разлетелись). Теперь их можно открыть в QGIS, и нарисовать эталоны. У эталонов в поле базы задать тип, числом. Картинки мне не нужны, я сам рисовать не буду, я программист, а не геммолог или петролог
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 21 янв 2020, 19:59
- Репутация: 0
- Откуда: Россия
Re: Дешифрирование минералов по цвету. Выбор софта
0Я открыла снимки с привязкой в QGIS. Что сделать для эталона? Нарисовать поверх растра векторный полигональный шейп файл, где обозначить номером минерал каждого цвета? В самом растре я не могу внести никаких обозначений. И на всем снимке целиком нужно выделить эталоны (по которым будет проводиться дешифрирование). Или достаточно обрисовать так кусочек для образца?
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Дешифрирование минералов по цвету. Выбор софта
да. Растр трогать не нужно. Нарисовать несколько полигонов, представительных (нужно отобразить все многообразие возможных цветов, важнее большая выборка, чем маленький "чистый" кусочек). Поскольку нам нужен только цвет, границы обводить не нужно, можно хоть прямоугольниками рисовать. Если нужен не только цвет, но и текстура (прожилки, переходы цвета, и пр.), то лучше, если полигоны будут достаточно большими.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 23 гостя