Анализ данных, проверка гипотез предметной области.
- Анализ данных, исследование;
- Анализ полученных данных из исследования, их выборка;
- Проверка гипотез предметной области.
Набор изображений и соответствующих масок для изображений.
Для анализа данных были выбраны следующие исследования:
Текстурные (статические) характеристики:
- Среднее значение изображений и масок. Это среднее значение интенсивности пикселей в изображении или маске. Оно позволяет оценить общую яркость изображения.
- Дисперсия изображений и масок. Измеряет, насколько значения интенсивности пикселей отклоняются от среднего значения. Высокая дисперсия указывает на большую изменчивость в изображении.
- Стандартное отклонение изображений и масок. Это корень квадратный из дисперсии. Стандартное отклонение также показывает изменчивость значений пикселей, но в тех же единицах, что и сами значения.
- Характеристики Laws изображений и масок. Предназначены для извлечения текстурных признаков из изображений с использованием свертки с ядрами Laws. Эти ядра помогают выявить различные текстурные характеристики, такие как линии, края и другие текстурные элементы.
- Признаки изображения и маски: контраст, энтропия, однородность, энергия. Контраст измеряет степень различия между яркостями пикселей в изображении. Энергия (или текстурная энергия) измеряет однородность текстуры изображения. Однородность (или инвертированная контрастность) измеряет, насколько равномерно распределены значения яркости в изображении. Энтропия измеряет уровень неопределенности или случайности в изображении.
- Матрица взаимной встречаемости пикселей изображения и маски. Это матрица, которая показывает, как часто пары пикселей с определенными значениями встречаются рядом друг с другом. Она используется для анализа текстуры и может помочь в классификации изображений.
Построение гистограмм яркости и кумулятивной яркости изображения. Они позволяют анализировать распределение интенсивностей пикселей в изображении.
Сегментация:
- Алгоритм водораздела изображений. Это метод сегментации, который рассматривает изображение как топографическую карту, где яркость пикселей соответствует высоте. Алгоритм "находит" водоразделы, чтобы выделить области с различной яркостью.
- Алгоритм k-means изображений. Это метод кластеризации, который делит пиксели изображения на k кластеров на основе их цветовых значений. Он минимизирует внутрикластерные расстояния, что позволяет выделить однородные области.
- Алгоритм разрастания регионов изображений. Это метод сегментации, который начинает с одного или нескольких "семян" (пикселей) и последовательно добавляет соседние пиксели, которые соответствуют определенным критериям (например, схожести цвета).
Сравнение изображений:
- Intersection. Это мера, которая показывает, сколько пикселей совпадает между двумя изображениями или масками. Это может быть полезно для оценки схожести.
- Over. Это отношение пересечения к объединению двух изображений. Оно показывает, насколько хорошо одно изображение перекрывает другое.
- Precision. Это мера точности, которая показывает, сколько из предсказанных положительных пикселей действительно являются положительными.
- Recall. Это мера полноты, которая показывает, сколько из истинных положительных пикселей было правильно предсказано.
- L1 метрика. Измеряет расстояние между двумя точками в пространстве, суммируя абсолютные разности их координат. В контексте изображений это может использоваться для оценки различий между значениями пикселей двух изображений.
- Проведен просмотр заданного датасета, выборка характеристик для исследования характеристик и масок.
- Вычислены текстурные характеристики для пробных изображений и масок.
- Проведена сегментация для пробных изображений.
- Построены гистограмма яркости и кумулятивная гистограмма яркости для пробных изображений.
- Далее - анализ датасета.
- Для изображений вычислены текстурные характеристики и сегментация.
- Для масок вычислены текстурные характеристики.
- Проведены соответствующие сравнения для: изображения и маски, изображение с алгоритмом водораздела и маски, изображение с алгоритмом kmeans и маски.
- Проведена итерация датасета с вычислением вышеперечисленных характеристик, составлен новый датасет со всеми параметрами.
В данном разделе описана теория по вышеперечисленным характеристикам. Текстурные (статические) характеристики:
- Среднее значение изображения. Вычисляется с помощью суммирования яркости всех пикселей изображения и деления на их количество. Этот процесс позволяет определить центральную яркость изображения. Результатом будет одно значение, которое отображает средний уровень светлоты изображения. Например, если среднее равно 120, это может указывать на то, что в изображении преобладают оттенки серого, находящиеся в области между черным и белым. Осуществляется на Python с помощью функции np.mean.
- Дисперсия изображения. Показывает, насколько сильно значения яркости пикселей отклоняются от среднего значения. Для этого сначала вычисляется разница каждого пикселя от среднего, эта разница возводится в квадрат, а затем усредняется. Высокая дисперсия указывает на большее расхождение, что может свидетельствовать о наличии деталей и текстуры в изображении. Например, высокая дисперсия (значение выше 1000) может свидетельствовать о сильно текстурированном изображении, в то время как низкая (значение меньше 100) указывает на более однородное. Осуществляется на Python с помощью функции np.var.
- Стандартное отклонение изображения. Вычисляется как корень квадратный из дисперсии. Оно использует тот же принцип, что и дисперсия, но возвращает значение, которое имеет ту же единицу измерения, что и исходные данные (в данном случае, яркость пикселей). Это значение помогает легче интерпретировать разброс данных. Низкое стандартное отклонение (например, меньше 10) говорит о том, что яркости пикселей очень близки друг к другу, тогда как высокое значение (например, выше 30) указывает на большое разнообразие в яркостях. Осуществляется на Python с помощью функции np.std.
- Характеристики Laws изображений. Предназначены для извлечения текстурных признаков из изображений с использованием свертки с ядрами Laws. Эти ядра помогают выявить различные текстурные характеристики, такие как линии, края и другие текстурные элементы. Cоздаем набор фильтров (ядра) на основе заранее определенных векторов, которые представляют различные текстурные паттерны. Затем применяем эти фильтры к изображению, используя свертку, чтобы выделить текстурные особенности. В процессе свертки вычисляется среднее значение абсолютных значений результата, что позволяет оценить "энергию" текстуры, соответствующую каждому фильтру. В результате мы получаем вектор признаков, где каждый элемент представляет собой значение энергии, полученное с помощью одного из фильтров. Эти значения могут быть использованы для анализа текстуры изображения, например, для классификации или сегментации.
- Признаки изображения. Контраст измеряет степень различия между яркостями пикселей в изображении. Он показывает, насколько сильно различаются значения яркости между соседними пикселями. Энергия (или текстурная энергия) измеряет однородность текстуры изображения. Высокое значение энергии указывает на то, что текстура более однородная. Однородность (или инвертированная контрастность) измеряет, насколько равномерно распределены значения яркости в изображении. Высокое значение однородности указывает на то, что значения яркости близки друг к другу. Энтропия измеряет уровень неопределенности или случайности в изображении. Высокая энтропия указывает на более сложную текстуру.
- Матрица взаимной встречаемости пикселей изображения. Показывает, как часто пары пикселей с определенными значениями яркости встречаются в заданных направлениях и на заданных расстояниях.
Гистограммы. Вычисляем гистограммы яркости и кумулятивной яркости изображения. Они позволяют анализировать распределение интенсивностей пикселей в изображении. Вычисляем гистограмму для одного из цветовых каналов (например, синего) изображения, подсчитывая количество пикселей для каждого уровня интенсивности. Затем используем полученную гистограмму для вычисления кумулятивной гистограммы, которая показывает, сколько пикселей имеет интенсивность меньше или равную каждому значению. В результате работы методов мы получаем два массива: один для гистограммы, который показывает распределение интенсивностей пикселей, и другой для кумулятивной гистограммы, который демонстрирует накопленное количество пикселей по уровням интенсивности.
Сегментация:
- Алгоритм Kmeans изображений. Используется для сегментации изображения, разделяя его на k-кластеров на основе цветовых значений пикселей. Это позволяет выделить различные области изображения. Изображение преобразуется в градации серого, и значения пикселей reshaped в одномерный массив. Затем применяется алгоритм Kmeans, который инициализирует k-центров кластеров и итеративно обновляет их, минимизируя расстояние между пикселями и центрами кластеров. В результате каждый пиксель получает метку, указывающую, к какому кластеру он принадлежит. В результате получаем сегментированное изображение, где каждый пиксель окрашен в цвет, соответствующий его кластеру.
- Алгоритм водораздела изображений. Метод сегментации Watershed используется для разделения объектов в изображении, основываясь на топологии изображения. Он позволяет выделить границы между различными объектами. Изображение преобразуется в градации серого, и затем применяется бинарное пороговое значение для выделения объектов. Вычисляется расстояние до ближайших границ, что позволяет определить "водоразделы" между объектами. Затем используется алгоритм Watershed для маркировки различных областей на основе расстояния. В результате получаем маркеры, указывающие на границы между различными сегментами изображения.
- Алгоритм разрастания регионов изображений. Используется для выделения однородных областей в изображении, основываясь на заданных условиях однородности. Начальная точка (seed point) выбирается в области, которую необходимо сегментировать. Алгоритм проверяет соседние пиксели и добавляет их в маску, если они соответствуют критериям однородности по сравнению с пикселем начальной точки. Процесс повторяется до тех пор, пока не будут обработаны все подходящие пиксели. В результате получаем маску, указывающую на сегментированные области изображения.
Сравнение изображений:
- Intersection (пересечение). Вычисляет пересечение между двумя изображениями. Это значение показывает, сколько пикселей в обоих изображениях имеют одинаковые (или близкие) значения яркости. В контексте сегментации изображений это может использоваться для оценки того, насколько хорошо маска (например, сегментированное изображение) совпадает с оригинальным изображением. создает новый массив, где для каждого пикселя берется минимальное значение между соответствующими пикселями изображений. Затем суммируем все значения в этом новом массиве, что дает общее количество "пересекающихся" пикселей. Получаемое значение представляет собой сумму минимальных значений пикселей между двумя изображениями. Это значение может варьироваться от 0 (если нет пересечения) до максимального значения, которое зависит от диапазона значений пикселей (например, 0 до 255 для 8-битных изображений).
- Over (объединение). Вычисляет объединение двух изображений. Это значение показывает, сколько пикселей имеют хотя бы одно ненулевое значение в обоих изображениях. В контексте сегментации это может использоваться для оценки общей области, охватываемой как оригинальным изображением, так и маской. создает новый массив, где для каждого пикселя берется максимальное значение между соответствующими пикселями в изображениях. Затем суммируем все значения в этом новом массиве, что дает общее количество "объединяющихся" пикселей. Получаемое значение представляет собой сумму максимальных значений пикселей между двумя изображениями. Это значение также может варьироваться от 0 до максимального значения, которое зависит от диапазона значений пикселей.
- Precision (точность). Вычисляет точность, которая показывает, насколько правильно предсказанные положительные значения (TP) по сравнению с общим количеством предсказанных положительных значений (TP + FP). Получаемое значение варьируется от 0 до 1. Если precision равно 1, это означает, что все предсказанные положительные значения были правильными. Если 0, это означает, что все предсказанные положительные значения были ложными.
- Recall (полнота). Вычисляет полноту, которая показывает, насколько хорошо модель обнаружила все истинные положительные значения (TP) по сравнению с общим количеством истинных положительных значений (TP + FN). Результат варьируется от 0 до 1. Если recall равно 1, это означает, что модель обнаружила все истинные положительные значения. Если 0, это означает, что модель не обнаружила ни одного истинного положительного значения.
- L1_metric. Вычисляет среднюю абсолютную ошибку, которая показывает среднее абсолютное отклонение между истинными значениями и предсказанными значениями. Это полезно для оценки качества предсказаний в задачах регрессии или для сравнения изображений. Значение — это среднее значение абсолютных разностей между пикселями двух изображений. Чем меньше это значение, тем ближе предсказанное изображение к истинному.
В ходе анализа данных были изучены и вычислены текстурные характеристики, сегментация изображения и сравнение изображений. Анализ датасета и вычисление вышеперечисленных характеристик для итерации датасета. В результате был получен новый датасет с характеристиками изображений и масок датасета. Результат записывается в файл .xlsx.
- https://ojskrede.github.io/inf4300/notes/week_02/#laws
- https://disk.yandex.ru/d/xP4QrgFL2TWCKg
- https://www.geeksforgeeks.org/fuzzy-clustering-in-r/
- https://disk.yandex.ru/d/mHyn0uNh2zXF5w
- https://disk.yandex.ru/d/KsrPpulNQpid6g
- https://disk.yandex.ru/d/n70aQsZoAbGe7w
- https://disk.yandex.ru/i/k27vkbA1KIqmrg
- https://disk.yandex.ru/d/0bG1i3LOC6Q3rQ