Страница 1 из 1
Дешифрирование минералов по цвету. Выбор софта
Добавлено: 21 янв 2020, 20:08
bluefich
Привет! Мне нужна программа, которая работает с графическими файлами (например, с форматами PNG, BMP, JPG) на которых изображены снимки образцов горных пород (шлифы, сделанные на микроскопе). Программа должна дешифрировать различные минералы, которые находятся в образце, по цвету, который минерал имеет на снимке (то есть по значениям параметров RGB). Каждый минерал имеет один цвет на палитре, точнее небольшой интервал параметров RGB. Например, минерал#1 от бледнокрасного до интенсивно красного; минерал#2 от бледнозеленого до интенсивно зеленого и т.д. Все эти параметры вводятся пользователем. То есть (чтобы было понятно), программа должна выполнять функцию усложненной волшебной палочки из Photoshop . Она должна автоматически выделять на снимке все пятна с заданным интервалом параметров RGB (цвета) и присваивать ему название минерала (введенные пользователем). На выходе это должен быть раскрашенный снимок с легендой определенных минералов, все неопределенное – покрашено одним цветом «ошибки» или «не удалось установить минерал».
При этом по своей сути, эта задача близка к задачам выполнения обучаемой классификации для космоснимков земной поверхности ДЗЗ. Отличий два:
-нет привычной геопривязки снимка (поскольку каждый снимок образца горных пород очень маленький, не больше ширины предметного стекла микроскопа).
- для каждого пикселя его принадлежность к какому-либо минералу определяется его цветом (числа R,G,B), а не спектральной кривой, как это есть в дешифрировании снимков ДЗЗ при помощи специальных софтов (ENVI, например).
Однако, может быть, именно софт, работающий с космоснимками можно использовать напрямую для решения этой задачи? Или есть готовый софт, который решает прямо такую задачу?
Если ничего нет, то какова может быть архитектура написания такой программы с нуля? Полезные библиотеки, примеры?
P.S. Это рабочая (не учебная) задача.
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 21 янв 2020, 20:59
gamm
bluefich писал(а): ↑21 янв 2020, 20:08
Отличий два:
-нет привычной геопривязки снимка (поскольку каждый снимок образца горных пород очень маленький, не больше ширины предметного стекла микроскопа).
- для каждого пикселя его принадлежность к какому-либо минералу определяется его цветом (числа R,G,B), а не спектральной кривой, как это есть в дешифрировании снимков ДЗЗ при помощи специальных софтов (ENVI, например).
первое не имеет отношения к классификации (можете поставить любую систему координат), а второе неверно.
Вам нужен метод максимального правдоподобия (ML - maximum likelihood), и желательно снимки делать аппаратом, который порождает не jpeg, а нормальный снимок, и имеет хорошую цветопередачу, стабильность, и больше 8 битов на пиксель. И использовать для съемки правильное освещение. Дальше все как обычно - если у вас действительно один цвет: обводите на снимке нужные области, ставите классы, запускаете обучение, потом классификацию. На сайте гислаба есть пример для плагина QGIS (DT classifier, но он использует не ML, а дерево решений). ML есть в GRASS, который подключен к QGIS
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 24 янв 2020, 10:51
nikost
Готовый софт: QGIS, Grass, Saga-GIS (в котором кнопками и мышкой можно разметить картинки и сделать обучаемую классификацию даже по RGB).
Полезные библиотеки: scikit-image, scikit-learn.
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 24 янв 2020, 20:20
gamm
nikost писал(а): ↑24 янв 2020, 10:51
даже по RGB
тут проблема не столько в RGB, сколько в том, чтобы этот RGB был сопоставим на разных снимках, для этого нужно обеспечить либо идеально одинаковые условия съемки (что требует специального оснащения), либо "атмосферную коррекцию", что требует помещения на каждый снимок цветового эталона (и стабильного равномерного освещения, без бликов, и т.д). И это все при макросъемке, что создает дополнительные проблемы ...
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 19 фев 2020, 20:14
bluefich
Спасибо за советы !
Также я пытаюсь решить данную задачу при помощи плагина Mask . Это хороший подход к решению задачи ?
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 19 фев 2020, 20:20
bluefich
nikost писал(а): ↑24 янв 2020, 10:51
Полезные библиотеки: scikit-image, scikit-learn.
как именно можно использовать библиотеки ?
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 19 фев 2020, 22:38
bluefich
gamm писал(а): ↑21 янв 2020, 20:59
На сайте гислаба есть пример для плагина QGIS (DT classifier, но он использует не ML, а дерево решений). ML есть в GRASS, который подключен к QGIS
как инсталлировать плагин QGIS DTclassifier? Этого плагина нет в списке плагинов и его нельзя установить из софта.
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 19 фев 2020, 22:55
Максим Дубинин
установить nextgis qgis, купить подписку, доп.функциональность включая этот плагин разблокируется
https://nextgis.ru/nextgis-qgis
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 21 фев 2020, 19:20
bluefich
Максим, сколько стоит подписка, если цель пока только попробовать этот плагин, подходит ли он для решения этой специфической задачи? В первом посте обозначено, что снимок для дешифрирования является шлифом породы. То есть он очень маленький и у него нет геопривязки.

Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 21 фев 2020, 20:05
gamm
Вам ГИС не особо нужна, убедитесь для начала, что у вас условия съемки стабильные, и несколько сделанных в разное время снимков одного шлифа одинаковые.
Потом научитесь рисовать поверх снимка полигоны (в QGIS или еще где), чтобы задавать эталоны, и растеризовать их в новый слой (типы этих полигонов, если они векторные), это можно делать в QGIS, задав произвольную систему координат, и привязав в ней снимок (с пикселями вместо метров).
А все остальное можно спокойно делать в R или Python, там все бесплатно, достаточно немного знать тот или второй язык.
Т.е. для того, чтобы все делать, вам достаточно научиться рисовать растр с полигонами образцов, вплоть до того, что просто рисовать поверх ваших снимков в Paint, запомнив RGB, которым рисовали для каждого типа.
Пришлите пару-другую снимков с заданными таким образом эталонами, я постараюсь посмотреть (быстро не обещаю). Снимки лучше делать не jpeg, а TIFF, и нужны повторные снимки, чтобы оценить воспроизводимость. Штуки три повтора одного шлифа, и штуки три типов эталонов на нем, на каждый штуки три полигонов, репрезентативных.
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 24 фев 2020, 20:06
bluefich
gamm писал(а): ↑21 фев 2020, 20:05
Пришлите пару-другую снимков с заданными таким образом эталонами, я постараюсь посмотреть (быстро не обещаю)
это некоторые образцы
https://drive.google.com/drive/folders/ ... sp=sharing
эталон

Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 24 фев 2020, 21:20
gamm
Я сделал привязку (как попало, они в разные стороны разлетелись). Теперь их можно открыть в QGIS, и нарисовать эталоны. У эталонов в поле базы задать тип, числом. Картинки мне не нужны, я сам рисовать не буду, я программист, а не геммолог или петролог
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 27 фев 2020, 20:51
bluefich
0Я открыла снимки с привязкой в QGIS. Что сделать для эталона? Нарисовать поверх растра векторный полигональный шейп файл, где обозначить номером минерал каждого цвета? В самом растре я не могу внести никаких обозначений. И на всем снимке целиком нужно выделить эталоны (по которым будет проводиться дешифрирование). Или достаточно обрисовать так кусочек для образца?
Re: Дешифрирование минералов по цвету. Выбор софта
Добавлено: 28 фев 2020, 08:05
gamm
bluefich писал(а): ↑27 фев 2020, 20:51
Нарисовать поверх растра векторный полигональный шейп файл, где обозначить номером минерал каждого цвета?
да. Растр трогать не нужно. Нарисовать несколько полигонов, представительных (нужно отобразить все многообразие возможных цветов, важнее большая выборка, чем маленький "чистый" кусочек). Поскольку нам нужен только цвет, границы обводить не нужно, можно хоть прямоугольниками рисовать. Если нужен не только цвет, но и текстура (прожилки, переходы цвета, и пр.), то лучше, если полигоны будут достаточно большими.