Методы обработки изображения для выделения заранее определенных меток и маркеров
Автор: М. В. Лапин
Источник: Труды молодых ученых Алтайского государственного университета. – 2019. – № 16. – С. 170-173.
Аннотация
В работе представлены методы перевода изображения в градации серого, бинаризации и выделения границ на изображении. Описан процесс пространственной фильтрации. Проведено сравнение операторов Робертса, Превитта и Собеля. Описан метод Канни, алгоритм подавления не-максимумов, алгоритм двойной пороговой фильтрации и трассировки областей неоднозначности. Проведен разбор алгоритма преобразования Хаффа.
Ключевые слова: обработка изображений, выделение границ, метод Канни, пространственная фильтрация, преобразование Хаффа.
В машинном зрении и дополненной реальности представлен класс задач, связанных с обнаружением заранее известных меток на изображении. Сюда можно отнести QR-коды, задачи позиционирования, классификации, трекинга объектов и т. д. При этом для обнаружения маркеров с входным изображением необходимо предварительно выполнить несколько операций:
- представить изображение в черно-белом формате;
- провести бинаризацию (если требуется);
- провести поиск контуров на изображении;
- провести аппроксимацию контуров;
- осуществить поиск маркеров;
- преобразовать координаты для чтения метки.
В представленной работе рассмотрены основные алгоритмы подготовки изображения для детектирования меток.
Перевод изображения в градации серого
Для перевода изображения в градации серого воспользуемся формулой:

Данный метод дает меньшее количество шумов и учитывает особенности восприятия цвета человеческим глазом.
Выделение границ на изображении
С помощью пространственной фильтрации исходного изображения определенными матрицами вычисляются приближенные значения производных по вертикали и горизонтали: Gx и Gy.
Для каждого пикселя вычисляется приближенное значение величины градиента G и направление градиента θ

Пусть область 3×3 представляет собой значение яркости в окрестности некоторого элемента изображения (рис. 1).

Рисунок 1 – Окрестность элемента изображения
Для выделения границ оператором Робертса используются маски размером 2×2:

Данный оператор не имеет четко выраженного центрального элемента, что негативно отражается на результате выполнения фильтрации, но имеет высокую скорость обработки изображения [1].
Для выделения границ оператором Превитта используются маски размером 3×3 [2]:

Оператор Собеля также использует маски размером 3?3. Принцип фильтрации похож на оператор Превитта. Отличие заключается в использовании большего весового коэффициента для средних элементов для уменьшения эффекта размытия, который используется для подавления шумов [3]:

Оператор Собеля в сравнении с другими операторами ярко выделяет границы, а также сглаживает шумы (рис. 2).

Рисунок 2 – Сравнение операторов Собеля, Превитта и Робертса
Выделение границ Канни
Алгоритм Канни состоит из следующих пяти шагов:
- Сглаживание. Использование размытия для удаления шумов.
- Поиск градиентов. Границы отмечаются там, где градиент принимает максимальное значение (используется оператор Собеля).
- Подавление не-максимумов. С использованием матрицы направлений градиента и матрицы значений величины градиента толстые линии преобразуются в линии шириной в 1 пиксель
- Двойная пороговая фильтрация. Алгоритм Канни использует два пороговых значения фильтрации: если яркость пикселя выше верхней границы — он принимает максимальное значение (граница считается достоверной), если ниже – пиксель подавляется, точки со значением, попадающим в диапазон между порогов, принимают фиксированное среднее значение (они будут уточнены на следующем этапе).
- Трассировка области неоднозначности. Итоговые границы определяются путем подавления всех краев, не связанных с определенными (сильными) границами. Упрощенно задача сводится к выделению групп пикселей, получивших на предыдущем этапе промежуточное значение, и отнесению их к границе (если они соединены с одной из установленных границ) или их подавлению (в противном случае). Пиксель добавляется к группе, если он соприкасается с ней по одному из восьми направлений [4, с. 12].
Преобразование Хаффа
Преобразование Хаффа позволяет находить на двуцветном изображении плоские кривые, заданные параметрически, например прямые, окружности, эллипсы и т.п.
Прямую на плоскости можно задать следующим образом:

где R – длина перпендикуляра, опущенного на прямую из начала координат, θ – угол между перпендикуляром к прямой и осью Оx.
Через каждую точку (x, y) изображения можно провести несколько прямых, т.е. каждой точке (x, y) изображения соответствует набор точек в фазовом пространстве (R, θ), образующий синусоиду. По самой яркой точке можно определить уравнение прямой [5, с. 396].
Поиск меток обнаружения
После преобразования Хаффа имеются все данные для обнаружения метки на изображении. Для этого у метки имеются специальные маркеры — FP (Find Pattern). Так, например, FP QR-кода и Aztec-кода представляет собой концентрический квадрат, состоящий из трех вложенных квадратов. Соотношение вложенных квадратов всегда одинаковое и равно 3:5:7. Маркер MaxiCode представляет собой шесть вложенных окружностей. Для нахождения данных маркеров можно применить метод сканирующей прямой: сначала сканирование ведется по всем горизонтальным линиям кадра для поиска областей с правильным соотношением перемежения цвета. Затем проводится вертикальное сканирование и находятся центры FP.
Альтернативный метод обработки изображения
У представленного выше алгоритма есть существенный минус: если метка занимает не всю площадь кадра, то производится множество лишних действий, в ходе которых обрабатываются «фоновые» области изображения, что сказывается на производительности. Рассмотрим метод поиска QR-кода. Для уменьшения затрат на обработку ненужных областей необходимо после этапа перевода изображения в двуцветное состояние произвести размытие такой степени, что QR-код превращается в пятно прямоугольной формы. Для этого применим фильтр Гаусса, который дает более равномерное размытие. Элементы матрицы фильтра Гаусса заполняются по формуле:

где (x, y) – позиция элемента в матрице, σ – степень размытия. Параметр σ следует выбирать эмпирическим путем так, чтобы не было ложных срабатываний детектора границ внутри кода и в то же время код не сливался с другими элементами изображения
Затем с помощью детектора границ вырезаем из всего изображения область, содержащую только QR-код, преобразуем координаты и в дальнейшем работаем только с ней (рис. 3). Благодаря этому шагу уменьшается количество обрабатываемых пикселей и количество ложных срабатываний при поиске маркеров. Таким образом время на обработку изображения уменьшается.

Рисунок 3 – Этапы альтернативного метода
Для каждой задачи необходимо подбирать свои алгоритмы обработки изображения, исходя из параметров системы; так, например, предлагаемый альтернативный метод работает, только если вокруг метки есть область контрастного цвета. Но если метка занимает меньше 40% всего изображения, данный метод может снизить время поиска на 30-40%.
Библиографический список
- Оператор Робертса // Wikipedia. URL: https://ru.wikipedia.org/wiki/Оператор_Робертса.
- Оператор Прюитт // Wikipedia. URL: https://ru.wikipedia.org/wiki/Оператор_Прюитт
- Оператор Собеля // Wikipedia. URL: https://ru.wikipedia.org/wiki/Оператор_Собеля.
- Живрин Я.Э., Алкзир Н.Б. Методы определения объектов на изображении // Молодой ученый. 2018. №7.
- Кунина И.А. Слепая компенсация радиальной дисторсии на одиночном изображении с использованием быстрого преобразования Хафа // Компьютерная оптика. 2016. Т. 40, №3