Основные этапы обработки для извлечения признаков на основе микрофотографий

Фон

В своем посте Раскрытие потенциала данных о материалах с помощью Matminer и Pymatgen я обсуждал концепцию тетраэдра материалов — основной основы для разработки материалов для различных технологических применений. Жизненно важными параметрами, занимающими вершины тетраэдра, являются процесс, структура, свойство и производительность.

Структуры характеризуются на основе характерной шкалы длины, которая может варьироваться от нескольких ангстрем (1 ангстрем = 10⁻¹⁰ м) до сотен микрометров (1 микрометр = 10⁶ м). Шкалы длины используются для различения особенностей под микроскопом. С очень мощными микроскопами с высоким разрешением, такими как этот, можно идентифицировать детали размером с атом или даже меньше.

Элементы микронного и субмикронного размера, известные как микроструктуры, фиксируются в виде изображений или микрофотографий с использованием различных типов микроскопов. Эти микроструктуры хранят огромное количество информации, необходимой для понимания свойств и характеристик материалов. Мы можем использовать машинное обучение/глубокое обучение для извлечения важных функций из этих изображений. Типичная микроструктура содержит элементы, которые можно различить по интенсивности или контрасту пикселей. Некоторыми важными особенностями являются границы или интерфейсы, которые разделяют различные домены (также называемые частицами или зернами). Эти домены могут различаться по форме, размеру, ориентации, распределению по размеру и пространственному расположению (собирательно называемому морфологией). Эти особенности влияют на свойства материалов.

Несмотря на то, что эти особенности можно изучить с помощью других методов характеристики материалов, преимуществом микроскопии является визуализация. Поскольку «увидеть — значит поверить», микрофотографии дают более достоверное объяснение поведения материалов. Обработка микрофотографий позволяет выявить качественные и количественные признаки. Скажем, например, если мы хотим провести количественное измерение размера и морфологии частиц, становится необходимой точная идентификация краев. Кроме того, обнаружение краев также помогает исследовать структуру интерфейса между частицами. В некоторых материалах (особенно в сплавах) некоторые элементы могут выделяться на границах раздела, что влияет на такие свойства, как прочность и проводимость.

Обнаружение границ путем наблюдения вручную является утомительной задачей и связано с различными человеческими ошибками. Чтобы свести к минимуму такие ошибки, необходимо автоматизировать такой процесс. Автоматизация процесса требует внедрения надежных алгоритмов цифровой обработки изображений и интеллектуального анализа данных. Теперь, когда я подчеркнул важность цифрового анализа микрофотографий, позвольте мне провести вас через некоторые основные этапы обработки. Для демонстрации я использовал библиотеку на основе Python с открытым исходным кодом scikit-image. Вы также можете изучить OpenCV, PIL для той же цели.

Просмотр изображения и получение формы

Фрагмент кода ниже показывает, как читать изображение и находить его размеры или «форму». Атрибут shape дает размеры изображения в виде кортежа. На текущей микрофотографии это (1800, 1500) — высота и ширина 1800 и 1500 пикселей соответственно. Обратите внимание, что это изображение в градациях серого, поскольку третий элемент в кортеже не упоминается и принимает значение по умолчанию, равное 1.

p = io.imread("Particles.jpg")
p.shape

Общие этапы обработки: шумоподавление, повышение резкости и настройка яркости изображения

Уточнение матрицы изображения для шумоподавления, повышения резкости, обнаружения краев в основном включает операцию свертки с матрицей фильтра/ядра. Операция свертки включает в себя сначала отражение 2D-фильтра (ядра) по горизонтали и вертикали с последующим поэлементным умножением и добавлением матрицы изображения . Обратите внимание, что в случае симметричной матрицы ядра отражение не выполняется. необходимый.

Здесь я собираюсь рассмотреть два фильтра — Gaussian и Median для отображения шумоподавление в изображениях, связанных со сверткой и без нее соответственно.

Линейный фильтр Гаусса работает с матрицей изображения путем свертки. Атрибут «сигма» — это стандартное отклонение в фильтре Гаусса. Более высокое значение сигмы приводит к большей размытости.

Медианная фильтрация является нелинейным процессом. Когда окно фильтра скользит по матрице изображения, в качестве выходного сигнала принимается медианное значение пикселя указанной матрицы. Графическое представление показано для лучшего понимания.

Этот фильтр предпочтительнее фильтра Гаусса при удалении электронных шумов, таких как соль и перец. В то время как сглаживание по Гауссу вызывает размытие краев, сглаживание по медиане сохраняет их.

В отличие от шумоподавления, мы можем увеличить резкость расфокусированного или размытого изображения, чтобы точно определить особенности в нем, используя функцию 'unsharp_mask' в 'модуле фильтров' из skimage. Фрагмент кода вместе с входным (расфокусированное изображение) и выходным (резким) изображениями показаны ниже для сравнения.

Sharpimg = filters.unsharp_mask(p, radius = 20.0, amount = 1.0)
fig, ax = plt.subplots(nrows =1, ncols =2, sharex = True, figsize =(15,15))
ax[0].imshow(p, cmap = 'gray')
ax[0].set_title("Original", fontsize = 10)
ax[1].imshow(Sharpimg, cmap ='gray')
ax[1].set_title("Sharpened",fontsize = 10)

Иногда регулировка яркости также повышает четкость изображения для определения особенностей, и это можно сделать с помощью функции 'adjust_gamma' в 'модуле экспозиции'. для просмотра. Выходное изображение с гамма-коррекцией получается путем применения степенного преобразования.

Пороговое значение для сегментации изображения: создание бинарного изображения

Пороговое значение требуется, когда нам нужно отделить фон изображения от переднего плана на основе интенсивности пикселей. Например, в случае микроструктур суперсплав (материал для реактивных двигателей самолетов, газовых турбин) фоном является основной металл, а передний план составляют выделения, придающие этому типу материала сверхпрочность. Иногда фон может быть просто держателем образца, используемым для загрузки образца для исследования под микроскопом. Изображение, используемое для пороговой обработки, в данном случае показывает четырехгранные частицы на сетке/держателе просвечивающего электронного микроскопа (ПЭМ). Применяются различные типы методов пороговой обработки, чтобы отличить фон (сетку ТЕМ) от частиц. Для данной микрофотографии мы находим, что среднее пороговое значение работает лучше, чем другие методы, четко формируя бинарное изображение, как показано во фрагменте вывода кода.

Вышеупомянутые методы являются одними из предварительных шагов для получения изображения без шумов перед его дальнейшей обработкой для извлечения значимых признаков как качественных, так и количественных. Как упоминалось в начале этого поста, размер частиц является одним из жизненно важных параметров/характеристик, определяющих свойства материала. Чтобы оценить размер частиц по изображению, нам нужно четко определить края частиц. И эта задача упрощается с помощью различных фильтров обнаружения границ. Здесь я расскажу о некоторых из них.

Обнаружение краев с использованием фильтров Робертса, Собеля, Канни

Фильтры Робертса и Собеля представляют собой ядра свертки 2 x 2 и 3 x 3 соответственно. Оба фильтра имеют компоненты x и y для обнаружения горизонтальных и вертикальных границ. Фрагменты кода для операций ядра Sobel вместе с соответствующими выводами показаны ниже.

from skimage.filters import sobel,sobel_v, sobel_h
p_sobel = sobel(p_g, mode='reflect')
p_sobel_v=sobel_v(p_g)
p_sobel_h=sobel_h(p_g)

Фильтр Канни выполняет многозадачную работу за счет сглаживания, аппроксимации градиента операторами Собеля, обнаружения краев с использованием гистерезисной пороговой обработки. Функция canny имеет такие параметры, как сигма для сглаживания по Гауссу, а также низкий и высокий порог.

Фильтр Габора для определения ориентации краев

Этот линейный фильтр фиксирует текстуру или распределение ориентации элементов в микроструктуре. Ориентация распределения определяет свойство однородности материалов. Случайная ориентация частиц/зерен приводит к однородным/изотропным свойствам, тогда как ориентация в определенном направлении, технически называемом предпочтительной ориентацией, приводит к анизотропным свойствам. Компонент комплексной синусоиды фильтра Габора предоставляет информацию, связанную с ориентацией. Выход указанного фильтра имеет как действительную, так и мнимую составляющие. Чтобы узнать больше о фильтрах Gabor, нажмите здесь.

Давайте попробуем создать банк фильтров Габора с ориентациями 0°, 60°, 90° и 120° и применить их к исходной электронной микрофотографии, на которой показаны частицы в разных ориентациях. Я делюсь фрагментом кода вместе с выходными отфильтрованными изображениями ниже. Мы можем ясно видеть ориентацию (выделено желтой пунктирной линией, совпадающей с краями частиц) на соответствующих отфильтрованных изображениях. Обратите внимание, что отображаются реальные компоненты отфильтрованных изображений.

p_gabor =[]
for degree in (0, 60, 90, 120):
    real,imag = filters.gabor(p, frequency=0.05, theta =(degree* (np.pi)/180))
p_gabor.append(real)

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

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

Сводка

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

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

В этом посте я объяснил некоторые основные этапы обработки для качественного извлечения информации, такие как обнаружение краев и ориентаций частиц. Однако полное извлечение данных из микрофотографий также влечет за собой количественную оценку соответствующих признаков, о которых я расскажу в следующем посте.

А пока удачной обработки изображений!!