Обобщенное преобразование Хафа - Generalised Hough transform
В обобщенное преобразование Хафа (GHT), представлен Дана Х. Баллард в 1981 году - модификация Преобразование Хафа используя принцип сопоставление шаблонов.[1] Преобразование Хафа было первоначально разработано для обнаружения аналитически определенных форм (например, линия, круг, эллипс так далее.). В этих случаях мы знаем форму и стремимся выяснить ее местоположение и ориентацию на изображении. Эта модификация позволяет использовать преобразование Хафа для обнаружения произвольного объекта, описываемого его моделью.
Проблема нахождения объекта (описываемого моделью) на изображении может быть решена путем определения положения модели на изображении. С помощью обобщенного преобразования Хафа проблема определения положения модели трансформируется в задачу поиска параметра преобразования, который отображает модель в изображение. По значению параметра преобразования можно определить положение модели на изображении.
Первоначальная реализация GHT использовала информацию о краях для определения сопоставления ориентации краевой точки с контрольной точкой формы. В случае двоичное изображение где пиксели могут быть как черными, так и белыми, каждый черный пиксель изображения может быть черным пикселем желаемого рисунка, создавая тем самым локус реперных точек в пространстве Хафа. Каждый пиксель изображения голосует за соответствующие ему опорные точки. Максимальные точки пространства Хафа указывают возможные опорные точки узора на изображении. Этот максимум может быть найден путем сканирования пространства Хафа или решения расслабленная система уравнений, каждый из которых соответствует черному пикселю.[2]
История
Мерлин и Фарбер[3] показали, как использовать алгоритм Хафа, когда желаемые кривые не могут быть описаны аналитически. Это был предшественник алгоритма Балларда, который был ограничен перевод и не учел вращение и масштаб изменения.[4]
Алгоритм Мерлина-Фарбера непрактичен для данных реального изображения, так как в изображении с большим количеством краевых пикселей он обнаруживает много ложных срабатываний из-за повторяющегося расположения пикселей.
Теория обобщенного преобразования Хафа
Чтобы обобщить алгоритм Хафа на неаналитические кривые, Баллард определяет следующие параметры для обобщенной формы: а = {у, s, θ} где у это ссылка происхождение для формы, θ его ориентация, а s = (sИкс, су) описывает два ортогональный масштабные коэффициенты. Алгоритм может вычислить лучший набор параметров для данной формы из данных краевых пикселей. Эти параметры не имеют равного статуса. Исходное местоположение ссылки, у, описывается в терминах таблицы шаблонов, называемой таблицей R возможных ориентаций краевых пикселей. Расчет дополнительных параметров s и θ затем выполняется прямым преобразованием этой таблицы. Ключевым обобщением произвольных форм является использование информации о направлении. При любой форме и фиксированной контрольной точке на ней вместо параметрической кривой информация, предоставляемая граничными пикселями, сохраняется в форме R-таблицы на этапе преобразования. Для каждой граничной точки на тестовом изображении свойства точки ищутся в R-таблице, и опорная точка извлекается, а соответствующая ячейка в матрице, называемой матрицей аккумуляторов, увеличивается. Ячейка с максимальным количеством «голосов» в матрице Аккумулятора может быть возможной точкой существования фиксированной привязки объекта на тестовом изображении.
Создание R-стола
Выберите точку отсчета у для формы (обычно выбирается внутри формы). Для каждой граничной точки Икс, вычислить ɸ (х), то градиент направление и г = у - х как показано на изображении. Магазин р как функция ɸ. Обратите внимание, что каждый индекс ɸ может иметь много значений р. Можно либо сохранить разницу координат между фиксированной точкой отсчета и точкой края. ((Иксc - Иксij), (yc - уij)) или как радиальное расстояние и угол между ними (рij , αij) . Сделав это для каждой точки, R-таблица будет полностью представлять объект шаблона. Кроме того, поскольку фаза генерации обратима, мы можем использовать ее для локализации вхождений объектов в других местах изображения.
я | ɸя | рɸя |
---|---|---|
1 | 0 | (р11, α11) (р12, α12)… (р1n, α1n) |
2 | Δɸ | (р21, α21) (р22, α22)… (р2м, α2м) |
3 | 2Δɸ | (р31, α31) (р32, α32)… (р3k, α3k) |
... | ... | ... |
Локализация объекта
Для каждого краевого пикселя Икс на изображении найдите градиент ɸ и увеличиваем все соответствующие точки х + г в массиве аккумуляторов А (инициализируется максимальным размером изображения), где r - запись таблицы, индексированная ɸ, т.е. г (ɸ). Эти точки входа дают нам каждую возможную позицию для ориентира. Хотя некоторые ложные точки могут быть вычислены, учитывая, что объект существует на изображении, максимум будет в контрольной точке. Максима в А соответствуют возможным экземплярам формы.
Обобщение масштаба и ориентации
При фиксированной ориентации формы, массив аккумулятора был двумерный в опорной точке координат. Для поиска фигур произвольной ориентации θ и масштабировать s, эти два параметра добавляются к описанию формы. Аккумуляторный массив теперь состоит из четырех измерений, соответствующих параметрам (у, с, θ). R-таблица также может использоваться для увеличения этого большего размерного пространства, поскольку различные ориентации и масштабы соответствуют легко вычисляемым преобразованиям таблицы. Обозначить конкретный R-стол для формы S от R (ɸ). Простые преобразования этой таблицы позволят ей обнаруживать масштабированные или повернутые экземпляры одной и той же формы. Например, если фигура масштабируется с помощью s и это преобразование обозначается Тs.тогдаТs[R (ɸ)] = sR (ɸ) т.е. все векторы масштабируются на s. Кроме того, если объект повернут на θ и это преобразование обозначается Тθ, тогдаТθ[R (ɸ)] = Rot {R [(ɸ-θ) mod2π], θ}т.е. все индексы увеличиваются на - θ по модулю 2π соответствующие векторы р находятся, а затем поворачиваются на θЕще одно свойство, которое будет полезно при описании композиции обобщенных преобразований Хафа, - это изменение точки отсчета. Если мы хотим выбрать новую точку отсчета ỹ такой, что у-ỹ = г то модификация R-таблицы определяется выражением R (ɸ) + z, т.е. z добавляется к каждому вектору в таблице.
Альтернативный способ использования пар рёбер
Пара краевых пикселей может использоваться для уменьшения пространства параметров. Используя R-таблицу и свойства, как описано выше, каждый краевой пиксель определяет поверхность в четырехмерном накопительном пространстве а = (у, s, θ). Два краевых пикселя с разной ориентацией описывают одну и ту же поверхность, повернутую на одинаковую величину относительно θ. Если эти две поверхности пересекаются, точки их пересечения будут соответствовать возможным параметрам. а для формы. Таким образом, теоретически возможно использовать две точки в пространстве изображения, чтобы уменьшить геометрическое место в пространстве параметров до одной точки. Однако трудности нахождения точек пересечения двух поверхностей в пространстве параметров сделают этот подход неприменимым для большинства случаев.
Составные формы
Если форма S имеет составную структуру, состоящую из частей S1, S2, .. SN и опорные точки для фигур S, S1, S2, .. SN находятся у, у1, у2, .. упсоответственно, то для коэффициента масштабирования s и ориентация θ, обобщенное преобразование Хафа рs(ɸ) дан кем-то . Проблема с этим преобразованием заключается в том, что выбор ссылки может сильно повлиять на точность. Чтобы преодолеть это, Баллард предложил сглаживать полученный аккумулятор с помощью составного сглаживающего шаблона. Составной шаблон сглаживания H (у) дается как составная свертка индивидуальных шаблонов сглаживания деталей. . Тогда улучшенный Аккумулятор дает Аs = A * H и максимумы в Аs соответствует возможным экземплярам формы.
Пространственная декомпозиция
Замечая, что глобальное преобразование Хафа может быть получено суммированием локальных преобразований Хафа непересекающейся подобласти, Хизер и Янг[5] предложил метод, который включает рекурсивное подразделение изображения на фрагменты изображения, каждое со своим собственным пространством параметров и организованное в виде квадродерево структура. Это приводит к повышению эффективности поиска конечных точек линейных сегментов и повышенной устойчивости и надежности при извлечении строк в шумных ситуациях при небольшом увеличении затрат на память.
Реализация
В реализации используются следующие уравнения:[6]
Комбинируя приведенные выше уравнения, мы получаем:
Построение R-стола
- (0) Преобразуйте изображение образца формы в изображение края с помощью любого обнаружение края алгоритм как Детектор Canny Edge
- (1) Выберите опорную точку (например, (Иксc, yc))
- (2) Нарисуйте линию от опорной точки до границы
- (3) вычислить ɸ
- (4) Сохраните контрольную точку (Иксc, yc) как функция ɸ в R (ɸ) Таблица.
Обнаружение:
- (0) Преобразуйте изображение образца формы в изображение края, используя любой алгоритм обнаружения краев, например Детектор Canny Edge.
- (1) Инициализируйте таблицу аккумуляторов: A [xcmin. . . Иксcmax] [ycmin. . . уcmax]
- (2) Для каждой граничной точки (х, у)
- (2.1) Использование угла наклона ɸ, извлечь из R-таблицы все (α, г) значения, проиндексированные под ɸ.
- (2.2) Для каждого (а, г), вычислить возможные опорные точки:
- Иксc = х + г cos (α)
- уc = y + r sin (α)
- (2.3) Увеличение счетчиков (голосование):
- ++ A ([[xc]] [yc])
- (3) Возможные положения контура объекта задаются локальными максимумами в A [xc] [yc].
- Если A [xc] [yc]> T, то контур объекта находится на (Иксc, yc)
Общий случай:
Предположим, объект претерпел некоторое вращение ϴ и равномерное масштабирование s:
- (x ’, y’) -> (x ’’, y ’’)
- x "= (x’cos (ϴ) - y’sin (ϴ)) s
- y "= (x’sin (ϴ) + y’cos (ϴ)) s
- Замена x ’на x" и y ’на y":
- Иксc = x - x "или xc = x - (x’cos (ϴ) - y’sin (ϴ)) s
- уc = y - y "или yc = y - (x’sin (ϴ) + y’cos (ϴ)) s
- (1) Инициализируйте таблицу аккумуляторов: A [xcmin. . . Иксcmax] [ycmin. . . уcmax] [qмин . . .qМаксимум] [sмин . . . sМаксимум]
- (2) Для каждой граничной точки (х, у)
- (2.1) Используя его угол наклона ɸ, получить все (α, г) значения из R-таблицы
- (2.2) Для каждого (α, г), вычислить возможные опорные точки:
- х '= r cos (α)
- y ’= r sin (α)
- за(ϴ = ϴмин; ϴ ≤ ϴМаксимум; ϴ ++)
- за(s = sмин; s ≤ sМаксимум; s ++)
- Иксc = x - (x’cos (ϴ) - y’sin (ϴ)) s
- уc = y - (x’sin (ϴ) + y’cos (ϴ)) s
- ++ (A [xc] [yc] [ϴ] [s])
- за(s = sмин; s ≤ sМаксимум; s ++)
- (3) Возможные положения контура объекта задаются локальными максимумами в A [xc] [yc] [ϴ] [s]
- Если A [xc] [yc] [ϴ] [s]> T, то контур объекта находится на (Иксc, yc), претерпел ротацию ϴ, и был масштабирован s.
Преимущества и недостатки
Преимущества
- Он устойчив к частичным или слегка деформированным формам (то есть устойчив к распознаванию при окклюзии).
- Он устойчив к наличию дополнительных структур на изображении.
- Устойчив к шуму.
- Он может найти несколько экземпляров фигуры за один проход обработки.
Недостатки
- Он требует значительных вычислений и памяти, которые становятся острыми, когда необходимо учитывать ориентацию объекта и масштаб.
Связанных с работой
Баллард предложил использовать информацию об ориентации края, что снизило стоимость вычислений. Было предложено много эффективных методов GHT, таких как SC-GHT (использование наклона и кривизны в качестве локальных свойств).[7]Дэвис и Ям[8] также предложил расширение работы Мерлина для согласования ориентации и масштабного инварианта, которое дополняет работу Балларда, но не включает использование Балларда информации об уклоне кромки и составных структур.
Смотрите также
- Преобразование Хафа
- Рандомизированное преобразование Хафа
- Преобразование радона
- Соответствие шаблонов
- Схема распознавания объекта
использованная литература
- ^ Д.Х. Баллард, "Обобщение преобразования Хафа для обнаружения произвольных форм", Распознавание образов, Том 13, № 2, стр.111-122, 1981
- ^ Jaulin, L .; Базель, С. (2013). Извлечение формы изображения с использованием интервальных методов (PDF). In Proceedings of Sysid 2009, Сен-Мало, Франция.
- ^ Merlin, P.M .; Фарбер, Д. Дж. (Январь 1975 г.). «Параллельный механизм обнаружения кривых на изображениях». Транзакции IEEE на компьютерах. С-24 (1): 96–98. Дои:10.1109 / т-с.1975.224087. ISSN 0018-9340.
- ^ Л. Дэвис, «Иерархические обобщенные преобразования Хафа и обобщенные преобразования Хафа на основе линейных сегментов», Техасский университет компьютерных наук, ноябрь 1980 г.
- ^ J.A. Хизер, Сюэ Донг Ян, «Пространственная декомпозиция преобразования Хафа», 2-я канадская конференция по компьютерному зрению и зрению роботов, 2005 г.
- ^ Баллард и Браун, раздел 4.3.4, Сонка и др., раздел 5.2.6
- ^ А. А. Кассим, Т. Тан, К. Х. Тан, «Сравнительное исследование эффективных методов обобщенного преобразования Хафа», Вычисление изображений и изображений, том 17, выпуск 10, страницы 737-748, август 1999 г.
- ^ Л. Дэвис и С. Ям, «Обобщенное преобразование типа хаф для распознавания формы». Техасский университет компьютерных наук, TR-134, февраль 1980 г.
внешняя ссылка
- Реализация в OpenCV обобщенного преобразования Хафа http://docs.opencv.org/master/dc/d46/classcv_1_1GeneralizedHoughBallard.html
- Учебник и реализация обобщенных преобразований Хафа http://www.itriacasa.it/generalized-hough-transform/default.html
- Практическая реализация обобщенного преобразования Хафа http://www.irit.fr/~Julien.Pinquier/Docs/Hough_transform.html
- Реализация обобщенных преобразований Хафа на ПЛИС, цифровая библиотека IEEE http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5382047&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5382047
- Реализация в MATLAB обобщенного преобразования Хафа http://www.mathworks.com/matlabcentral/fileexchange/44166-generalized-hough-transform