В конкретном классе детекторов наши данные поступают в виде пар точек в двух измерениях, и мы хотим выстроить эти точки в линии.
Данные зашумлены и сгруппированы в одном направлении, но не в другом. Мы не можем гарантировать попадание в каждую ячейку, даже когда каждый элемент детектора работает, поэтому возможны пропуски.
Наша текущая цепочка анализа выглядит так
- Отрегулируйте попадания для калибровки отдельных элементов детектора
- Найти кластеры
- Грубые линии подгонки к кластерам
- Соедините кластеры в более длинные линейные структуры
- ...
Этот вопрос касается шага (3).
Для этого шага мы использовали преобразование Хафа, и оно работает хорошо, но, поскольку мы пытаемся перейти от испытательного стенда к моделированию полномасштабного проекта, оно становится неприемлемо медленным.
Я ищу более быстрый путь.
Для тех, кого интересует фактический вариант использования, здесь есть камера для проекции времени с жидким аргоном.
regression
computer-vision
pattern-recognition
dmckee --- котенок экс-модератора
источник
источник
Ответы:
Существует вероятностная версия преобразования Хафа (PHT), которая работает быстрее. Как описано Bradski & Kaehler в их книге OpenCV:
Библиотека OpenCV представляет реализацию для PHT.
Есть и другие альтернативы. Нетрудно создать распределенную версию преобразования Хафа. Просто разбейте свою точку на меньшие порции и используйте инфраструктуру MapReduce, чтобы суммировать все аккумуляторы. Другая идея состоит в том, чтобы выполнить грубую версию преобразования Хафа, используя пространство параметров с низким разрешением. Выберите своих лучших кандидатов и выполните более точную итерацию, используя пространство параметров с более высоким разрешением. Может быть, это идея FHT Гэндальфа.
источник
Мой коллега нашел быстрое преобразование Хафа в библиотеке Гэндальфа , которая выглядит очень многообещающе, но может потребовать много усилий для интеграции, поэтому я ищу другие подходы.
Реализация Gandalf интересна: они вычисляют пространство аккумулятора рекурсивным способом, как если бы они проходили через четырехугольник или окт-дерево. Регионы без особой плотности выбрасываются на ходу.
источник