Быстрое преобразование Хафа

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Быстрое преобразование Хафа (англ. Fast Hough Transform, сокр. БПХ) — модификация преобразования Хафа, позволяющая параметрически идентифицировать прямые (а также с дополнительной модификацией отрезки и четырехугольники) с меньшей вычислительной сложностью за счет использования факта самопересечения рассматриваемых дискретных прямых.

История[править | править код]

Алгоритм впервые был предложен М. Л. Брейди в 1992 году,[1] в дальнейшем переизобретался несколько раз различными авторами.[2][3]

Определение[править | править код]

БПХ-пирамида для изображения . Для удобства отображения выполнена на примере преимущественно горизонтальной прямой

Пусть дано изображение размера . Рассмотрим диадических прямых (прямых специального вида), состоящих из пикселей на изображении каждая (один пиксель в столбце).

Пусть  — интенсивность -го пикселя, принадлежащего диадической прямой, заданной параметрами ;  — Хаф-образ этой диадической прямой.

Образ дискретного преобразование Хафа определяется следующей формулой:

Прямое вычисление всех значений требует операций: перебор по различных значений параметров , , перебор для каждой пары значений .

В свою очередь, алгоритм БПХ, основанный на учёте пересечений отрезков друг с другом, требует действий, на одну прямую необходимо операций (для квадратных изображений ). По теореме, сформулированной Т. М. Ханиповым,[4] невозможно сложить диадические прямые с асимптотически меньшей вычислительной сложностью.

Алгоритм[править | править код]

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

В алгоритме БПХ пиксели прямых произвольного вида дискретно приближаются диадическими прямыми. Пиксели диадического приближения прямой на изображении размера удалены от исходной прямой не более, чем на пикселей.[5]

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

Порождающие диадические паттерны[править | править код]

Диадические паттерны длины 8 отклонения от 0 до 7. Построение паттернов рекурсивно, поэтому все части длины 2 или 4 совпадают между собой

Далее паттерном называется множество пикселей , содержащее по элементу в каждой вертикали изображения. Отклонением паттерна будет называться значение , а координатой — значение . Сдвигом паттерна будет называться множество

Порождающие диадические паттерны ширины и наклона определяются рекурсивно. При паттерн состоит из одного пикселя, а при выражается через .


Диадические прямые[править | править код]

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

Для приближенного вычисления преобразования Хафа требуется найти суммы по всем диадическим прямым на изображении. В этой сумме прямых по точек каждая. За счет рекурсивного перехода это суммирование сводится к подсчету отдельно левых, отдельно правых половин, что позволяет свести вычисление к подсчету сумм по точек каждая.

Рассмотрим бинарные слова, состоящие из чисел 0 и 1. Множество диадических слов определяется рекурсивно. будет называться диадическим словом, если имеет вид или , где  — пустое или диадическое слово. Все диадические слова длины не больше трех: 0, 1, 000, 010, 101, 111.

Для каждого диадического слова рассматривается кумулятивная сумма . Будем говорить, что последовательность пикселей  — диадическая прямая, соединяющая центры пикселей и .

Существует ровно диадических прямых длины . По одной на каждую пару и .

Формальное описание[править | править код]

Алгоритм БПХ устроен следующим образом:[6]

Исходное состояние матрицы — исходное изображение размера . Затем происходит вычисление на -их уровнях по очереди, начиная с первого: на -том уровне матрица в текущем состоянии делится на группы по принципу равенства целой части координаты второй оси после деления на ; получаются подматрицы ; объединим соседние в пары (без пересечений, это возможно, так как размер матрицы — степень двойки) и назовем в этой паре первой ту подматрицу, что расположена на меньших координатах по второй координате в матрице, а другую — второй; вместо первых в каждой паре записывается ее сумма с соответствующей ей второй, а вместо второй — сумму первой и второй с циклическим сдвигом на один влево. Таким образом считается Хаф-образ таких прямых, что для любой пары точек с координатами с этой прямой выполняется , с помощью аппроксимации диадическими прямыми. Для того, чтобы посчитать образ для остальных прямых, достаточно поворачивать изображение и проводить ту же самую операцию, а полученные результаты сложить.

Полученные таким образом на каждом уровне матрицы являются элементами БПХ-пирамиды. Формальное описание БПХ-пирамиды: Нулевым уровнем БПХ-пирамиды является исходное изображение (размером , а последним — Хаф-образ, содержащий суммы по диадическим прямым длины . Для описания -ого уровня пирамиды исходное изображение разбивается на горизонтальные полосы , где  — номер полосы, . Для каждой полосы в -ом уровне БПХ-пирамиды хранятся суммы по всевозможным паттернам полосы, имеющим длину и параметры . Количество таких паттернов для полосы — , поэтому -й уровень пирамиды занимает столько же памяти, сколько исходное изображение.


Инвариантность количества затрачиваемой памяти и возможность хранить каждый уровень в матрице того же размера, что оригинальное изображение, без потери интерпретируемости дает следующее свойство: можно хранить БПХ-пирамиду в форме матрицы с размерностью, на одну большую, чем размерность исходного изображения (по одной оси — количество уровней, ), по остальным — размер изображения).[7]

Программные реализации[править | править код]

Пример реализации на языке python:

import numpy as np
W = 2**5
H = 2**5
img = np.random.random([H, W])

def calc_sums(img, xmin, xmax):
    res = np.zeros([W, xmax-xmin])
    if xmax - xmin == 1:
        res[:, 0] = img[:, xmin]
    else:
        mid = (xmin + xmax) // 2
        ans1 = calc_sums(img, xmin, mid)
        ans2 = calc_sums(img, mid, xmax)
        for x in range(W):
            for shift in range(xmax-xmin):
                res[x, shift] = ans1[x, shift//2] + ans2[(x + shift//2 + shift%2) % W, shift//2]
    return res
res = calc_sums(img, 0, W)


Алгоритм реализован в библиотеке opencv[8] и может быть использован, например, для быстрого нахождения точки схода.[9]

Обобщения на трехмерный случай[править | править код]

БПХ для плоскостей[править | править код]

Решение этой задачи подразумевает использование алгоритма для двумерного случая.

Типизация плоскостей в пространстве

Хаф-образ плоскостей будет так же трехмерным (плоскость задается через три координаты вектора, перпендикулярного ей). Пусть он будет задан параметризацией , где  — координата пересечения плоскости с границей изображения на луче ,  — координата точки пересечения с границей изображения, параллельной лучу в плоскости ,  — разница координат второй и первой точки пересечения плоскости с границами изображения. Первая точка находится в пересечении содержащих границу изображения плоскостей и плоскости, параллельной . Вторая точка — в пересечении содержащих границу изображения плоскостей, параллельных и .

Будем называть плоскость преимущественно-перпендикулярной к оси координат, если нормаль к ней образует с данной осью меньший угол, чем с двумя другими. Будем рассматривать только плоскости, преимущественно-перпендикулярные к оси y. Они разделяются на 4 типа наклонов, как это показано на рисунке 4. Без ограничения общности будем считать, что рассматриваемые плоскости имеют тип I.

Построение Хаф-образа методом перебора плоскостей имеет асимптотическую сложность (количество плоскостей, умноженное на количество операций для суммирования одной плоскости), где m, n, k — размеры изображения в каждой размерности.

Быстрым преобразованием Хафа в данном случае будет следующий алгоритм:

  1. Для каждой плоскости перпендикулярной оси с координатой по этой оси считается быстрое преобразование Хафа, а результат кладется в трехмерное пространство по координатам .
  2. Для каждой плоскости в получившемся трехмерном пространстве перпендикулярной оси с координатой по этой оси считается быстрое преобразование Хафа, а результат кладется в куб по координатам .

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

БПХ для трехмерных прямых[править | править код]

Хаф-образ трехмерной прямой будет четырехмерным (по два параметра на каждую из двух точек на прямой). Пусть он будет задан параметризацией .  — координаты x, y точки на плоскости ,  — координаты x, y точки пересечения прямой с границей изображения, параллельной плоскости .

Построение Хаф-образа методом перебора трехмерных прямых имеет асимптотическую сложность (количество прямых умноженное на количество операций для суммирования одной прямой), где m, n, k — размеры изображения в каждой размерности.

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

Подсчет паттернов длины два требует (количество групп суммируемых плоскостей), умноженное на (сложность проводимых сложений для каждой группы), операций. Подсчет паттернов длины 4 требует операций. Длины паттернов  — , где определяется, как , то есть номер рассматриваемой длины паттерна. Суммируя слагаемых (количество возможных для рассматриваемого изображения длин паттернов) с использованием формулы суммы геометрической прогрессии, получается сложность алгоритма , а сложность на одну прямую . При сложность будет константной.

Сочетание БПХ и принципа четырех русских[править | править код]

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

Этот концепт был закреплен в методе четырех русских. Метод назван в честь первоткрывателей В. Арлазаров, М. Кронрод, Е. Диниц, И. Фараджев.

В оригинальном алгоритме БПХ для трехмерных прямых совершается на каждом из уровней подсчет для прямых определенной длины. С другой стороны можно сделать предпосчет только для первых шагов, а затем производить подсчет для нужных прямых.

Для того, чтобы определить оптимальное количество шагов предпосчета, необходимо решить такое уравнение ( — количество прямых, которое необходимо найти алгоритму):

Слева — количество операций для выполнения предпосчета. Справа — количество операций на нахождение сумм вдоль запрошенных прямых. Пусть необходимо найти все прямые, тогда , тогда решением уравнения будет , а левая и правая части равны , что в меньше, чем без предпосчета. Тем не менее за уменьшение количества операций необходимо заплатить памятью в том же размере, что занимает Хаф-образ (свойство инвариантности занимаемой памяти на каждом уровне подсчета алгоритмом БПХ).

Вычисление суммы по отрезку на изображении[править | править код]

Принцип вычисления основан на использовании значений не только последнего уровня БПХ-пирамиды (то есть непосредственно самого Хаф-образа), но и других уровней БПХ-пирамиды.

Задача делится на две подзадачи:

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

Поиск диадической прямой проходящей через два заданных пикселя[править | править код]

Без ограничения общности считаем, что . Здесь будут рассмотрены только преимущественно вертикальные паттерны с наклоном вправо, то есть и . Также используется -параметризация и значение равное , где  — размер изображения по оси .

Пусть двоичное разложение параметра диадической прямой выглядит как Тогда паттерн может быть записан так ( — округление до ближайшего целого.):

считается из данных задачи.  — число сдвигов рассматриваемого паттерна в полосе , которое также известно. Таким образом необходимо только восстановить биты .

Для восстановления используется «жадный» алгоритм: Все биты сначала равны нулю. Так как , поэтому перебор ведется от большего числа сдвигов к меньшему, от уровня до уровня 0. Если , то соответствующий этому уровню бит устанавливается в 1, а уменьшается на . Шаг повторяется, пока не обратится в 0.

По вычисляется значение параметра . Через этот параметр вычисляется параметр по следующей формуле:

, поэтому сложность алгоритма .[7]

Поиск суммы вдоль отрезка на известной диадической прямой[править | править код]

Способ 1[править | править код]

Пример получения произвольного отрезка диадической прямой

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

Для подсчета суммы по такого типа отрезка длины (его двоичное разложение ) , где  — сумма по паттерну в -ой полосе -ого уровня БПХ=пирамиды для прямой с параметрами .

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

Способ 2[править | править код]

Отрезок может быть составлен из минимального количества паттернов внутри отрезка. Для поиска таких паттернов нужно смотреть уровни БПХ-пирамиды, начиная с последних и заканчивая первыми. Сразу можно отсеять те паттерны, которые не входят в отрезок. Если попадается паттерн полностью лежащий внутри отрезка, то его сумма включается в искомую сумму, а его разбиения на следующих уровнях не рассматриваются. Этот способ более вычислительно сложный, чем первый, так как требует перебора всех паттернов, которых более .

Вычисление суммы по четырехугольнику на изображении[править | править код]

Пример получения дискретного четырехугольника произвольного положения

Аналогично вычислению суммы по отрезку для вычисления суммы по четырехугольнику из промежуточных вычислений Хаф-образа для плоскостей, иначе говоря БПХ-пирамидой для случая плоскостей.

Предполагая, что параметры плоскости на которой находится заданный четырехугольник известны, искомая сумма вычисляется по формуле включения-исключения беря сумму по четырем прямоугольникам, одна вершина которых — угловая вершина диадической плоскости (обозначим ее буквой , а сегменты с этой вершиной угловыми сегментами). Обозначим координаты точек ближней и дальней от вершин заданного четырехугольника через и соответственно. Суммы обозначенных угловых сегментов с вершинами в и берутся со знаком плюс, а суммы тех, что с вершинами в и , берутся со знаком минус.

Чтобы найти сумму по произвольному угловому сегменту, необходимо разбить его на сегменты, присутствующие в БПХ-пирамиде. Необходимо рассмотреть двоичные разложения ширины и высоты сегмента. Аналогично одномерному случаю сегмент разбивается по горизонтали на вертикальных полос и по вертикали не более чем на горизонтальных полос. Их пересечение даст не более чем сегментов, присутствующих в трехмерной БПХ-пирамиде. Таким образом, сложность вычисления суммы по произвольному сегменту составляет операций.[7]

Применения алгоритма БПХ[править | править код]

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

Робастное решение задачи линейной регрессии путем вычисления M-оценок с помощью БПХ[править | править код]

Применяя М-оценки к задаче линейной регрессии, можно получить радиально-базисные функции. Они составляют «непрерывное» изображение, которое в свою очередь дискретизуется в двумерную гистограмму.

Далее выполняеncя свёртка изображения с дискретизованным ядром , соответствующим выбранной М-оценке. На основе полученного вычисляется Хаф-образ с помощью БПХ. Координата максимума в пространстве параметров — и будет являться искомой М-оценкой.

Быстрая линейная бинарная кластеризация[править | править код]

Задача формулируется следующим образом: необходимо найти гиперплоскость, которая разделяет изображение на 2 класса. Изображение представляется в виде нормированной гистограммы изображения .

 — искомая гиперплоскость, делящая изображения на два класса ,  — класс всех элементов гистограммы.

Используемые аддитивные статистики ( — -ая координата ):

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

Наивный алгоритм: Существует дискретных прямых, пересекающих гистограмму с линейным размером . Для каждой из них требуется выполнить операций по вычислению весов, матриц ковариации и, наконец, значений критерия. Таким образом, вычислительная сложность наивного алгоритма составляет операций. Аналогично можно показать, что для трехмерного случая вычислительная сложность алгоритма будет составлять .

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

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

Алгоритм:

  1. вычислим набор изображений, содержащих значения необходимых аддитивных статистик для каждого из элементов входной гистограммы () (6 в двумерном случае, 10 в трехмерном)
  2. вычисление кумулятивной суммы вдоль каждой из осей, получим кортеж изображений. Для любого изображения этого кортежа, относящегося к размерности , сумма по любой гиперплоскости, преимущественно перпендикулярной оси с индексом , равна соответствующей аддитивной статистике, вычисленной по полупространству, включающему начало координат и ограниченному выбранной гиперплоскостью. Зная значение аддитивной статистики для одного полупространства, легко получить значение той же статистики и для второго — вычитанием из статистики, посчитанной по всему изображению.
  3. теперь, вычислив аддитивные статистики по всем разделениям гиперплоскостей, можно считать значения критерия для выбора оптимальной кластеризации.

Если просто суммировать по всем гиперплоскостям то в двумерном случае сложность , в трехмерном . (В -мерном )

Суммирование по гиперплоскостям (прямым в двумерном случае, плоскостям в трехмерном…) можно сделать с помощью БПХ. Это помогает снизить сложность с до для каждого из изображений. То есть теперь сложность в двумерном случае , в трехмерном .

Таким образом, финальный алгоритм:

  1. Кумулятивная суммация
  2. Подсчет аддитивных статистик
  3. БПХ
  4. Поиск максимума в пространстве Хафа

Сложность: время , память .

В двумерном случае более подробно:

  1. Кумулятивная суммация:
  2. Подготовка к вычислению аддитивных статистик:
  3. БПХ:
  4. Поиск максимума в пространстве Хафа:

Итоговая сложность:

В трехмерном случае более подробно:

  1. Кумулятивная суммация:
  2. Подготовка к вычислению аддитивных статистик:
  3. БПХ:
  4. Поиск максимума в пространстве Хафа:

Итоговая сложность:

Другие применения[править | править код]

Далее представлены только некоторые задачи, которые могут быть решены с использованием преобразования Хафа.

  • Отслеживание равномерно движущихся объектов, используя покадровую разность изображений. Эти объекты на своих треках оставляют выраженные прямые линии.[12][13]
  • Детекция точки схода на изображении. Точка схода — это точка на плоскости изображения в которой пересекаются проекции параллельных в трехмерной сцене прямых.[14][15]
  • Томографическое восстановление. Процедуру формирования проекций изображения анализируемого объекта с использованием рентгеновских лучей принято моделировать преобразованиями Хафа и Радона, а получение трехмерной структуры исследуемого объекта часто сводится к решению обратного преобразования Хафа или Радона.[16]
  • Анализ медицинских изображений.[17]
  • В реализации алгоритмов слепой калибровки радиальной дисторсии при условии нахождения прямолинейных объектов на сцене. Через оптимизацию нового функционала Хаф-образа подбираются параметры компенсации радиальной дисторсии.[18]
  • Определение степени сбития камеры. Основано на подсчете БПХ от эпиполярной картины и поиске прямой, на которой лежат точки интересующих прямых на эпиполярной картине.
  • Распознавание рукописного текста.[19]
  • Определение наклона шрифта. Основано на том, что в шрифте есть символы состоящие из прямых отрезков, находящихся под одним углом, вдоль такого угла Хаф-образ будет большее значение.[20]
  • Распознавание штрих-кодов.[21][22]
  • Определение степени сходства форм.[23]
  • Векторизации трехмерных изображения.[24]
  • Детекция треков спутников по изображениям с длинной выдержкой.[25]
  • Обнаружение радиолокационных целей.[26][27]
  • Анализа деформаций подземного профиля.[28]
  • Анализ структуры топологии микросхем по фотографиям.[29]
  • Подсчет количества осей транспортного средства по трекам детектора колес изображений, полученных с камеры, снятой сбоку.[30]
  • Трехмерная реконструкции плоских граней прозрачных минералов по набору изображений.[31]
  • Анализ SAR снимков.[32]

Примечания[править | править код]

  1. Martin L. Brady, Whanki Yong. Fast Parallel Discrete Approximation Algorithms for the Radon Transform // Proceedings of the Fourth Annual ACM Symposium on Parallel Algorithms and Architectures. — New York, NY, USA: ACM, 1992. — С. 91–99. — ISBN 9780897914833. — doi:10.1145/140901.140911.
  2. J.E. Vuillemin. Fast linear Hough transform // International Conference on Application-Specific Systems, Architectures and Processors, Proceedings. — IEEE, 1994. — ISBN 0-8186-6517-3. — ISSN 1063-6862. — doi:10.1109/ASAP.1994.331821.
  3. С.М. Карпенко , Д.П. Николаев , П.П. Николаев , В.В. Постников. Быстрое преобразование Хафа с управляемой робастностью // Искусственные интеллектуальные системы и Интеллектуальные САПР. Труды международной конференции IEEE AIS"04 и CAD-2004. — Физматлит, 2004. — Т. 2, вып. 2. — С. 303—309.
  4. Timur M. Khanipov. Computational complexity lower bounds of certain discrete Radon transform approximations (англ.). — 2018-01-03. Архивировано 15 июля 2020 года.
  5. 1 2 S. M. Karpenko, E. I. Ershov. Fast Hough Transform and approximation properties of dyadic patterns (англ.). — 2017-12-15. Архивировано 9 мая 2019 года.
  6. E. I. Ershov, A. P. Terekhin, D. P. Nikolaev. Generalization of the Fast Hough Transform for Three-Dimensional Images (англ.) // Journal of Communications Technology and Electronics. — 2018-06-01. — Vol. 63, iss. 6. — P. 626–636. — ISSN 1555-6557. — doi:10.1134/S1064226918060074.
  7. 1 2 3 4 K.V. Soshin, D.P. Nikolaev, S.A. Gladilin, E.I. Ershov. Acceleration of Summation Over Segments Using the Fast Hough Transformation Pyramid (англ.) // South Ural State University Mathematical Modelling, Programming & Computer Software : Alevtina V. Keller, Natalia A. Manakova, Georgy A. Svirdyuk, Vladimir I. Zalyapin, Alena A. Zamyshlyaeva. — Chelyabinsk: South Ural State University, 2020. — Т. 13, вып. 1. — С. 129—140. — doi:10.14529/mmp200110. Архивировано 15 июля 2020 года.
  8. OpenCV: opencv2/ximgproc/fast_hough_transform.hpp File Reference. docs.opencv.org. Дата обращения: 9 мая 2019. Архивировано 9 мая 2019 года.
  9. Alexander Krotov. OpenCV Fast Hough Transform example. — 2017-09-05. Архивировано 9 июля 2021 года.
  10. Bulatov K. B., Chukalina M. V., Nikolaev D. P. Fast x-ray sum calculation algorithm for computed tomography (англ.) // ЮУрГУ ММП Вестник. — 2020. — Т. 13, вып. 1. — С. 95—106. — doi:10.14529/mmp200107. Архивировано 13 июля 2021 года.
  11. Е.И. Ершов. Быстрое преобразование Хафа как инструмент анализа двумерных и трехмерных изображений в задачах поиска прямых и линейной кластеризации. — 2018.
  12. A. E. Cowart, W. E. Snyder, W. H. Ruedger. The detection of unresolved targets using the Hough transform // Computer Vision, Graphics, and Image Processing. — 1983. — Т. 21, вып. 2. — С. 222—238.
  13. A. Mitiche, P. Bouthemy. Computation and analysis of image motion: A synopsis of current problems and methods (англ.) // International journal of computer vision. — 1996. — Vol. 19, iss. 1. — P. 29—55.
  14. E. Lutton, H. Maitre, J. Lopez-Krahe. Contribution to the determination of vanishing points using Hough transform (англ.) // IEEE transactions on pattern analysis and machine intelligence. — 1994. — Vol. 16, iss. 4. — P. 430—438.
  15. D. Nikolaev et al. Hough transform: underestimated tool in the computer vision field (англ.) // Proceedings of the 22th European Conference on Modelling and Simulation. — 2008. — P. 238—246.
  16. V. Prun et al. Effective regularized algebraic reconstruction technique for computed tomography (англ.) // Crystallography Reports. — 2013. — Vol. 58, iss. 7. — P. 1063—1066.
  17. Z.-H. Cho, J. P. Jones, M. Singh. Foundations of medical imaging. — Wiley New York, 1993.
  18. I. A. Kunina, S. A. Gladilin, D. P. Nikolaev. Blind compensation of radial distortion in a single image using fast Hough transform (англ.) // Computer Optics. — 2016. — Vol. 40, iss. 3. — P. 395—403.
  19. А. Мозговой. Преобразование Хафа в задачах автоматического распознавания рукописного текста. — 2012. — Вып. 9. — С. 62—64.
  20. E. Limonova, P. Bezmaternykh, D. Nikolaev, V. Arlazarov. Slant Rectification in Russian Passport OCR System Using Fast HoughTransform (англ.) // 9-th International Conference on Machine Vision, ICMV 2016. — SPIE, 2017. — P. 103410P. — doi:10.1117/12.2268725.
  21. В. А. Фурсов, С. А. Бибиков, П. Ю. Якимов. Локализация контуров объектов на изображениях при вариациях масштаба с использованием преобразования Хафа // Компьютерная оптика. — 2013. — Т. 37, вып. 4.
  22. R. Muniz, L. Junco, A. Otero. A robust software barcode reader using the Hough transform (англ.) // International Conference on Information Intelligence and Systems, 1999. Proceedings.. — IEEE, 1999. — P. 313—319.
  23. А. Рубис и др. Морфологическое сравнение по форме точечных паттернов и контурных изображений на основе преобразования Хафа и его модификаций // Вестник компьютерных и информационных технологий. — 2011. — Вып. 7. — С. 9—16.
  24. М. Кудрина [и др.] Векторизация растровых изображений с использованием преобразования Хафа // Труды Международного симпозиума "Надежность и качество". — 2013. — Т. 1.
  25. B. Vandame. Fast Hough transform for robust detection of satellite tracks (англ.) // Mining the Sky. — Springer, 2001. — P. 595—597.
  26. А. Семенов. Обнаружение радиолокационных целей с помощью преобразования Хафа // Наука и образование: научное издание МГТУ им. НЭ Баумана. — 2014. — Вып. 12.
  27. B. Carlson, E. Evans, S. Wilson. Search radar detection and track with the Hough transform. III. Detection performance with binary integration (англ.) // IEEE transactions on Aerospace and Electronic Systems. — 1994. — Vol. 30, iss. 1. — P. 116—125.
  28. А. Долгий, А. Хатламаджиян. Гибридная модель интерпретации деформаций в балластной призме и основной площадке земляного полотна на основе целевого преобразования Хафа и нейронной сети Кохонена // Известия Южного федерального университета. Технические науки. — 2007. — Т. 77, вып. 2.
  29. А. Дудкин, Д. Вершок, А. Селиханович. Выделение контуров на полутоновых изображениях топологических слоев интегральных микросхем // Искусственный интеллект. — 2004. — Вып. 3. — С. 453—458.
  30. А. Григорьев, Т. Ханипов, Д. Николаев. Определение количества осей транспортного средства по видеоряду проезда // 54-й научной конференции МФТИ. — 2011. — Т. 10. — С. 31.
  31. В. Гаганов, А. Игнатенко, М. Ломоносова. Трехмерная реконструкция плоских граней прозрачных минералов по набору изображений с микроскопа // Труды конференции Графикон. — 2008. — С. 227—233.
  32. J. Skingley, A. Rye. The Hough transform applied to SAR images for thin line detection (англ.) // Pattern Recognition Letters. — 1987. — Vol. 6, iss. 1. — P. 61–67.