УДК 004.93
П.А. Шагалова
РАЗРАБОТКА И РЕАЛИЗАЦИЯ АЛГОРИТМА РАСПОЗНАВАНИЯ ТРЕЩИН НА ИЗОБРАЖЕНИЯХ, ПОЛУЧЕННЫХ ПРИ МИКРОСКОПИИ
Нижегородский государственный технический университет им. Р.Е. Алексеева
Цель: Данное исследование посвящено разработке подхода к решению проблемы распознавания трещин на изображениях, полученных при микроскопии.
Методология / подход: Разработанный алгоритм основан на анализе скелета изображения и применении детектора угловых точек.
Результаты: Разработана и протестирована система обнаружения трещин.
Применение: Предложенный подход может быть использован для автоматизации решения задач оптической микроскопии путем анализа изображений.
Оригинальность / значение: Исследования в области обработки изображений, полученных при микроскопии, позволят повысить эффективность исследований материалов.
Ключевые слова: автоматизация, распознавание образов, трещина, микроскопия.
Микроскопический анализ растрескивания материала - инструмент, используемый для исследования его состава и свойств. Такой подход используется для оценки поврежден-ности металла в задаче определения ресурсных характеристик оборудования [1], при изучении механизма взрывного разрушения горных пород [2], в задачах медицинской диагностики (например, при кристаллографии биологической жидкости [3]). Автоматизация распознавания изображений трещин, полученных при микроскопии исследуемого образца, является важной и перспективной областью, позволяющей повысить эффективность исследований материалов.
Каждая задача в прикладных областях имеет свою специфику и требует разработки и применения соответствующих алгоритмов решения. В данной работе предложен подход, применяемый для решения наиболее общих частей задачи распознавания трещин на изображениях. Применение разработанного алгоритма к конкретной задаче требует его настройки подбором значений части параметров алгоритма, а также дополнением его особенностями, свойственными конкретной задаче.
Задача распознавания трещин часто сводится к распознаванию линий на изображении, поэтому одним из основных алгоритмов, применяемых для поиска трещин, является преобразование Хафа. Однако алгоритм Хафа позволяет определить только четкие и прямые трещины. Задача поиска трещин произвольной формы остается открытой и требует иных подходов.
В разработанном алгоритме каждая трещина рассматривается как кривая на плоскости. На изображении кривая определяется множеством пикселей и может быть описана в виде функции координат пикселей, заданной в параметрической форме:
где ^ - [1,2,...,Щ ^- количество пикселей в кривой); х(/) - координаты по оси абсцисс пикселей трещины; у(^) - координаты по оси ординат пикселей трещины. Такой способ описания позволяет осуществить хранение и обработку трещин любого вида.
Также при разработке алгоритма было учтено то, что в большинстве случаев на входном изображении представлена не одна трещина, а целая сеть трещин, соединенных друг с другом. При этом ключевой информацией для определения количества и вида трещин являются точки их соединения. Принимая этот факт во внимание, были сформулированы три основных этапа алгоритма.
(1)
© Шагалова П.А., 2018.
На первом этапе предлагается построить скелет изображения. Скелет изображения, с одной стороны, отражает информацию о трещинах, являющихся искомыми объектами на изображении, а с другой - позволяет рассматривать каждую трещину как функцию, поскольку толщина скелета изображения составляет один пиксель. Построение скелета происходит в три этапа: выполняется бинаризация, применяются операции морфологического открытия и закрытия, исследуется алгоритм утончения. Выбор конкретного алгоритма бинаризации, алгоритма утончения, а также размера фильтра для морфологических операций (при необходимости их применения) определяются спецификой конкретной задачи.
На втором этапе выполняется поиск угловых точек. Угловыми точками называются ключевые точки, в которых сходятся две или более граней (рис. 1).
Рис. 1. Примеры угловых точек
Рис. 2. Структура разработанного программного обеспечения
На третьем этапе скелет разбивается по угловым точкам. В зависимости от особенностей формирования трещин в конкретной задаче выполняется их обработка, например, удаляются мелкие трещины или трещины, угол между которыми составляет 180 град., объединяются в одну.
Реализация разработанного алгоритма выполнена на языке C++ с использованием библиотеки OpenCV. Разработанное программное обеспечение включает три основных модуля: модуль бинаризации, модуль утончения, модуль анализа трещин. Структура разработанного программного обеспечения представлена на рис. 2.
Модуль бинаризации содержит реализацию алгоритма Брэдли - адаптивного алгоритма, при котором исходное изображение разбивается на сектора и для каждого из них рассчитывается величина порога бинаризации по формуле
threshold = Im + t, (2)
где Im - среднее значение яркости пикселей рассматриваемого сектора; t - 15% от среднего значения яркости пикселей.
Кроме того, в алгоритме Брэдли для скорости и удобства проведения вычислений используется интегральное изображение. Таким образом, в модуле бинаризации реализованы функции построения интегрального изображения, разбиения изображения на сектора, вычисления значения порога для каждого сектора и бинаризация.
Для утончения изображения в разработанном программном обеспечении был реализован алгоритм Зонг-Суня [4], предполагающий построение скелета удалением из бинаризованного изображения пикселей, удовлетворяющих условиям, определенным в алгоритме. При реализации данного алгоритма были написаны две функции: первая выполняет проверку условий алгоритма, вторая - скелетизацию изображения.
Рис. 3. Пример начального деления скелета на трещины
Модуль анализа трещин содержит три части: предобработку изображения, поиск угловых точек и постобработку изображения. В процессе предобработки происходит начальное деление скелета на функции (трещины). Крайними точками будем называть пиксели, окрестность которых содержит только один закрашенный пиксель. Связными будем называть два со-
седних закрашенных пикселя. При выполнении процесса выделения каждой очередной функции осуществляется просмотр всех пикселей изображения скелета (слева направо и сверху вниз) до обнаружения крайней точки, затем осуществляется движение по связным пикселям, направление движения при этом определяется порядком обхода окрестности пикселя (рис. 3).
Для анализа трещин с целью выявления их угловых точек был выбран подход, описанный в детекторе, основанном на глобальных и локальных свойствах кривизны [5]. Предложенный в детекторе подход заключается в построении для каждой функции-трещины соответствующей функции кривизны и последующем анализе точек экстремума (рис. 4).
Рис. 4. Пример функции и соответствующая ей функция кривизны
Согласно алгоритму, основанному на глобальных и локальных свойствах кривизны: • для каждой функции-трещины рассчитывается функция кривизны по формуле (3):
К
j Дх(д2у(-Д2х(Ду(
[(Дх/) +(Ду/)2]2
(3)
где х/,у/
- координаты i-го пикселя j-й трещины, Дх-
] _ xi+i'
Ду[
j_yt+i yi-i
j
j
Д2х/ = ^xi+i- i-i Д2у] = Щ+1-Щ-1.
2
2
• выполняется поиск экстремумов каждой функции кривизны;
• точки экстремума являются кандидатами в угловые точки;
• для каждой трещины выполняется расчет значения адаптивного порога
Т(Ц) = К
h +L7 + 1
ti+t-u к
(4)
где R - коэффициент; u - точка экстремума функции кривизны; L1+L2 - ширина окрестности с центром в точке u;
• слабые углы, т.е. точки, значение кривизны в которых меньше порогового, отбрасываются.
Подмодуль поиска угловых точек содержит функцию поиска экстремумов, функцию расчета адаптивного порога и функцию отсеивания ложных углов.
Реализация постобработки изображения включает в себя удаление мелких трещин и объединение трещин, угол между которыми составляет 180 град. (рис. 5).
Рис. 5. Пример разбиения скелета по угловым точкам
-1
2
2
Апробация алгоритма производилась на изображениях микроструктуры поверхности металлов и сплавов, а также биомедицинских изображениях. Для проведения тестирования было отобрано множество из трехсот изображений. В качестве метрик оценки эффективности разрабатываемой системы распознавания трещин с помощью микроскопии были использованы точность (precision) и полнота (recall). Точность работы алгоритма распознавания трещин на изображениях с растрескиванием материала составила 99,2%, полнота 96,7%.
Для определения эффективности разработанного алгоритма было проведено его сравнение на тестовом множестве с реализованным алгоритмом Хафа. Эксперимент показал, что алгоритм Хафа действительно позволяет распознать на изображениях только четкие прямые трещины, при этом показатели точности и полноты решений составляют 96 и 78% соответственно.
В ходе работы был проведен анализ современного состояния проблемы поиска трещин на изображениях, выявивший актуальность задач повышения точности решений. В результате исследований разработан алгоритм распознавания трещин, включающий в себя выделение скелета, поиск угловых точек с последующим разбиением скелета на трещины. Отличительной особенностью представленного в статье алгоритма является возможность поиска трещин любого вида. Проведенные экспериментальные исследования, а также сравнение работы предложенного алгоритма с известными показали его эффективность. Реализованный алгоритм продемонстрировал высокую точность распознавания трещин на изображениях, что позволяет рекомендовать его к применению при решении практических задач оценки по-врежденности поверхностей металлических конструкций или диагностике заболеваний по анализу изображений высохших биологических жидкостей.
Библиографический список
1. Андреева, О.В. Модель накопления поврежденности на изображениях микроструктуры поверхности металлов и сплавов на базе клеточных автоматов // Системы управления и информационные технологии. - 2016. - Т. 66. - № 4-1. - С. 114-117.
2. Кочанов, А.Н. Динамика развития трещины в граните при взрывном воздействии // Физика. -2016. - Т. 21. - №3. - С. 795-797.
3. Шабалин, В.Н. Морфология биологических жидкостей человека / В.Н. Шабалин, С.Н. Шато-хина // Хризостом. - 2001. -304 с.
4. Zhang, T.Y. A fast parallel algorithm for thinning digital patterns / T.Y. Zhang, C.Y. Suen // Commun. - 1984. - V. 27. - №. 3. - P. 236-239.
5. Chen He, X. Corner detector based on global and local curvature / X. Chen He, N. Yung // Optical Engineering. - 2008. - V. 47. - №. 5. - P. 1-12.
Дата поступления в редакцию 10.06.2018
P.A. Shagalova
DEVELOPMENT AND IMPLEMENTATION OF AN ALGORITHM FOR CRACKS RECOGNITION IN MICROSCOPY IMAGES
Nizhni Novgorod state technical university n.a. R.E. Alekseev
Purpose: The study focuses on solving the problem of automation of cracks recognition in images obtained from microscope.
Design / methodology / approach: The proposed theoretical framework is based on the use of image skeletonization and corner detector.
Findings: The design and testing of the system for cracks recognition.
Research limitations / implications: Proposed approach is used for automation of microscopy image analyzing. Originality / value: It is possible to conclusion that research in the field of automation of handling of microscopy images will increase efficiency of materials research.
Key words: automation, image recognition, crack, microscopy.