УДК 004.932.721
М.М. Гордеев, А.Н. Санников, М.Е. Бушуева
ОПТИМИЗАЦИЯ АЛГОРИТМА ОБРАБОТКИ ИЗОБРАЖЕНИЙ «HOUGH TRANSFORM» С ИСПОЛЬЗОВАНИЕМ OPENCV
Нижегородский государственный технический университет имени Р.Е. Алексеева
Задача обнаружения концентрических окружностей - одна из актуальных задач цифровой обработки изображений. Существующий алгоритм Хафа имеет ряд недостатков, связанных с обработкой изображений, отличающихся резкой сменой цветовой гаммы фона, большим зашумлением и яркостью. Рассматриваемый в данной статье модифицированный алгоритм позволяет выявлять минимальные окружности, что значительно увеличит применяемость данного метода. В статье приводится описание модификации, а также результаты тестирования алгоритма на разных выборках, доказывающие его работоспособность и эффективность.
Ключевые слова: обнаружение объектов-окружностей, распознавание образов, цифровая обработка изображений.
Введение
В настоящее время, исходя из потребности определения на изображениях простых фигур, количество приложений с использованием компьютерного зрения стремительно растет. Одним из наиболее распространенных алгоритмов для обработки изображений является преобразование Хафа. «Hough Transform» - это алгоритм, предназначенный для обнаружения прямых и кривых линий на полутоновых или цветных изображениях, частными случаями которых являются эллипсы и окружности. Данный алгоритм уже применяется для определения линий горизонта, распознавания контуров зданий, нахождения дорожной разметки, однако наиболее широкое применение данное преобразование получило в медицине. С помощью «Hough Transform» стало возможным диагностирование циркулирующих опухолевых клеток, которые до недавнего времени вызывали летальный исход человека почти со сто процентной вероятностью. Активно используется данный метод и для выявления диабетической ретинопатии на ранних стадиях, что позволяет задержать резкое падение зрения у людей, страдающих сахарным диабетом. Исходя из вышесказанного, исследование выбранной области является крайне актуальным в наше время.
Обобщенное преобразование Хафа
Преобразование Хафа используется для обнаружения объектов, описываемых как аналитическими уравнениями, так и их моделями. Задача нахождения того или иного объекта на изображении может быть выполнена вычислением позиции модели и преобразуется в задачу определения параметров преобразования, которые отображают положение модели.
В простейшем случае преобразование Хафа представляет собой линейное преобразование для поиска прямых, которые могут быть заданы уравнением (1) и может быть вычислена для любой пары точек (x, y), находящихся в системе координат рассматриваемого изображения. В формуле (1) m - коэффициент наклона прямой, b - точки пересечения.
у = тх + Ъ (1)
Основываясь на данном утверждении, прямая может быть представлена в виде точки с координатами (b, m) в пространстве параметров. Однако возникает проблема: вертикальные прямые имеют бесконечные значения для параметров и, соответственно, для удобства вычислений прямую представляют с помощью длины радиус-вектора, являющимся ближайшим к
© Гордеев М.М., Санников А.Н., Бушуева М.Е., 2018.
началу координат точки, принадлежащем прямой, г, и углом между этим вектором и осью координат - 0. Таким образом, уравнение примет вид (2) и может быть преобразовано в выражение (3). Такое пространство, связанное с каждой прямой на изображении парой (г, 0), получило название пространством Хафа [6].
У
(cos8\ ,, г ч ,„.
г = xcos0 + ysinO (3)
Рассмотрим задачу обнаружения объекта произвольной формы, заданного эталонным изображением. В этом случае важно, что расстояние R от текущего пикселя границы до ее центра является функцией Я(ф) от угла ф радиус-вектора, направленного от точки контура к центру. Причем понятие «центр» соответствует некой условной точке локализации O (рис. 1). Предполагается, что ее выбор является неединственным, а положение рядом с центром тяжести периметра объекта минимизирует ошибки, обусловленные неточностью оценки ориентации края.
Для определения простых форм функция Я(ф) может быть описана аналитически. Однако для большинства форм это невозможно. Тем не менее, Ballard доказал, что для запоминания информации о форме можно использовать специальные просмотровые таблицы (lookup-table), содержащие дискретные значения R(0) для различных значений углов. Соответственно, алгоритм состоит из этапов обучения детектора Хафа путем составления LUT по эталонному изображению и этапа обнаружения объекта на тестовом изображении путем голосования контурных точек с использованием этой LUT. Если же рассматривать обнаружение объекта произвольной формы в условиях, когда объект кроме перемещения еще и вращается в плоскости изображения, то в данном случае радиус-вектор в краевой точке является функцией относительного угла между направлением градиента и направлением радиуса-вектора.
Рис 1. Графическое представление обобщенного преобразования Хафа
Постановка задачи
Цель данного исследования заключается в оптимизации существующего алгоритма Хафа и его адаптации для поиска наиболее мелких объектов-окружностей путем обработки ядер меньшего размера с заданными коэффициентами.
Для достижения поставленной цели необходимо решить следующие основные задачи. 1. Обойти проблему разрастания трехмерного накопителя (небольшого зашумления).
2. Решить проблему «центра-кандидата» - так как для каждого центра выбирается только одна окружность, то в случае существования концентрических окружностей, сделать так, чтобы использовалась не только одна из них [1].
3. Выполнить контурный анализ.
Рассмотрим реализацию исходного алгоритма. Точки, лежащие на одной окружности можно представить формулой (1).
(х - а)2 + (у- Ъ)2 = И2 (4)
В формуле (4): (а; Ь) - координаты центра окружности; Я - радиус данной окружности. Тогда семейство окружностей будет задаваться формулой (5).
Р(а, Ъ, Я, х, у) = (х- а)2 + (у - Ъ)2 - Я2 (5)
Как видно из формулы (2), для нахождения заданных окружностей необходимо задавать три параметра, а именно координаты центра окружности и ее радиус, что приводит к увеличению пространства Хафа. Данный процесс негативно сказывается на скорости работы алгоритма, уменьшая его быстродействие. Для того чтобы исключить данный аспект, для поиска окружностей применяется градиентный метод Хафа [2].
Одним из основных этапов градиентного метода Хафа является определение границ (ребер) - таких кривых, вдоль которых происходит резкое изменение яркости или других видов неоднородностей. Выделяют следующие случаи возникновения краев:
• изменение освещенности;
• изменение цвета;
• изменение глубины сцены (ориентации поверхности).
Таким образом, запоминается расположение каждой ненулевой точки на изображении краев. Центры-кандидаты затем выбираются из тех точек накопителя, величины которых выше заданного порога и, одновременно, больше всех непосредственных соседей; сортируются в порядке убывания их величины в накопителе так, что центры с наибольшим количеством пикселей выбираются первыми. Далее для каждого центра, анализируются все ненулевые пиксели в соответствии с их расстоянием от центра. Обрабатывая от наименьших расстояний до наибольших радиусов, выбирается единственный радиус, который лучше всего подходит ненулевым пикселям. Центр сохраняется, если он имеет достаточное количество ненулевых пикселей на краях изображения и, если расстояние от любого ранее выбранного центра удовлетворяет заданному значению [3, с. 250].
Описание модифицированного алгоритма
Учитывая специфику поставленной задачи, был реализован алгоритм компьютерного зрения с использованием библиотеки OpenCV, адаптированный для поиска на изображениях окружностей минимального размера. Рассмотрим его подробнее. На начальном этапе осуществляется предварительная обработка изображения - сглаживание, которое обеспечивает устранение шума на поступившем на вход изображении. При этом используется тип сглаживания - CV_GAUSSIAN - свертка изображения с гауссовым ядром размера 5x5 по умолчанию, если пользователем не задан иной параметр.
Перед началом основного цикла алгоритма применяется градация серого для изображения. Задается тип CV_8CU1(8-битный, беззнаковый, 1-канальный). Используем полезный метод хранения и сравнения графических объектов - контурный анализ. При его проведении полагается, что контур содержит необходимую информацию о форме объекта, однако внутренние точки в рассмотрение не берутся. Важность использования контурного анализа заключается в слабой устойчивости к помехам, что дает возможность успешно получить изображение на контрастном фоне с отсутствием помех. Получить контуры помогает детектор Кенни. После его обработки мы имеем бинарное изображение, где границы объектов четко определяют сформированные совокупности пикселей.
Чтобы манипулировать полученным контуром, нужно его закодировать, используя цепной код Фримена. Он применяется для представления границы в виде совокупности отрезков, заданных кодами направления и длин на основе 4- или 8-связной решетки. При нахождении контуров на двоичном изображении выбирается режим поиска CV_RETR_LIST - размещение найденных контуров сортированным списком и метод аппроксимации (CV_CHAIN_APPROX _SIMPLE), сжимающий горизонтальные, вертикальные и диагональные сегменты. После эк-вализации контуров, что обеспечивает инвариантность к масштабу, выполняется перебор всех найденных контуров и отбор по максимальной схожести к шаблону. Ключевой признак - площадь (наиболее минимальная). Отобранные окружности вместе с радиусом и последовательностью 2D-точек передаются функции, которая отрисовывает данные объекты на уже новом изображении, подающемся отфильтрованным на выход алгоритма. Функция меню отвечает за проверку заданных параметров и тип изображения, а также запускает его на последовательную обработку данными операциями в четко установленном порядке.
Тестирование
Для реализации разработанного алгоритма была написана программа в среде Visual Studio 2015 на языке С++ для 64-разрядной операционной системы Windows, которая принимает на вход изображение, обрабатывает заданные пользователем параметры и осуществляет поиск окружностей, подавая на выход отфильтрованное изображение. Для проведения тестирования и сравнительного анализа модифицированного алгоритма с исходным были выбраны различные изображения, разделенные по представленной ниже классификации (табл. 1):
Таблица 1
Результаты тестирования
Использование исходного алгоритма
Использование модифицированного _алгоритма_
Тестирование зашумленного изображения на темном фоне
Тестирование дорожной разметки и городского пейзажа
Окончание табл. 1
Тестирование в области медицины
Результаты
В ходе исследования были получены следующие результаты.
1. За счет свертки исходного изображения с гауссовым фильтром удалось адаптировать алгоритм к чувствительности шумов (на темном фоне при свете фонарей он продолжает находить мелкие объекты-окружности так же эффективно (рис. 3).
2. В ходе экспериментального тестирования установлено, что пороговое значение оказывает слабое воздействие на результат работы алгоритма, а уменьшение размера гауссова ядра, наоборот, дает наиболее точное приближение к действительным границам и контурам изображения (рис. 7).
3. Были найдены ключевые пересечения на изображениях. Причем если в исходном алгоритме это линии соприкосновения окружностей достаточно большого радиуса, то в модифицированном - четкая грань контрастных объектов разной яркости.
Заключение
Создано приложение, в основе которого лежит обнаружение мелких деталей на объектах, имеющих форму окружностей. Специфичная его черта - предварительная операция свертки исходного двумерного изображения с ядром перед использованием модифицированного алгоритма. Это способствует получению оптимального решения задачи поиска границ объектов на изображениях.
Реализован на языке С++ адаптированный к задаче распознавания алгоритм компьютерного зрения с наличием выбора для пользователя исходных параметров. В результате тестирования было установлено наилучшее сочетание параметров модифицированного алгоритма, обеспечивающего более высокий процент распознавания деталей определенной формы.
Библиографический список
1. Hough, P.V.C. Methods, Means for Recognizing Complex Patterns / U.S., Patent 3069654, 1962. P. 188.
2. Ballard D. H., Ballard D.H. Generalizing the Hough transform to detect arbitrary shapes \ Dslash Pattern Recognition. - 1981. - 13(2). - P. 111-122.
3. Risse, Т. Hough Transform for line Recognition: Complexity of Evidence Accumulation, Cluster Detection. Computer Vision, Graphics, Image Processing. - 1989. - № 46. - P. 327-345.
4. Arefi, H. Levels of detail in 3D building reconstruction from lidar data / H. Arefi, J. Engels, M. Hahn, H. Mayer. - Stuttgart: Stuttgart University of Applied Sciences; Munich: Bundeswehr University Munich, 2008. - 490 с.
5. Samuel, A. Inverso. Computer Vision: Ellipse Detection Using Randomized Hough Transform [Электронный ресурс]. - URL: http://www.saminverso.com/res/vision/. (дата обращения 03.09.2018).
6. Гайдуков, Н.П. Применение преобразования Хафа для распознавания текста / Н.П. Гайдуков, Е.О. Савкова [Электронный ресурс] // Информатика и компьютерные технологии-2012. - URL: http://ea.donntu.org/handle/123456789/15585. (дата обращения 03.09.2018).
7. Калинкина, Д. Проблемы подавления шума на изображениях и видео и различные подходы к ее решениям» / Д. Калинкина, Д. Ватонин // Компьютерная графика и мультимедиа: сетевой журнал. - 2005. - №°3 (2). - URL: http://cgm.computergraphics.ru/content/view/ 74. (дата обращения 03.09.2018).
Дата поступления в редакцию: 16.10.2018
M.M. Gordeev, A.N. Sannikov, M.E. Bushueva
OPTIMIZE THE IMAGE PROCESSING ALGORITHM «HOUGH TRANSFORM» BY USING OPENCV
Nizhny Novgorod state technical university n. a. R.E. Alekseev
Purpose: Optimization of HAF algorithm to adapt it for the search of the smallest objects and further use in various fields of activity including medicine.
Design/methodology/approach: The methodological approach is to convert the original HAF algorithm into a modified version corresponding to the criteria described in the article.
Research limitations/implications: As a result of testing a solution is obtained for finding smaller concentric circles as compared with the original algorithm, which makes it possible to determine more clearly the contour lines of images of varying degrees of brightness, noisiness and color gamut of the background.
Key words: detection of objects-circles, pattern recognition, digital image processing.