Pull to refresh
1
0
Send message
«Чёткие» пацанчики строят гистограмму за O(N) ))))
Читайте внимательнее описание и комментарии и вы поймете где именно вы со сложности O(M*N*N) перепрыгните на сложность O(M*N)
А теперь помедленнее и поподробнее, что вы имели ввиду)
Вот вот, вы в разрешение упирались, а можно было смотреть сразу в разрезе расстояний) а какие точки использовать, какие не использовать — все что я понял какого то революционного подхода нет)
Смотрите, по Хафу у вас есть фиксированный набор смещений, все, мы уперлись в то что нужно много считать. Хотим найти смещений с точностью 1 ед нужно выполнить 1000 вычислений, с шагом 0.5 ед нужно выполнить 2000 вычислений.
А по данной схеме, вы за одно вычисления определили все расстояния. Т.е. мы берем линию с нулевым смещением и определяем расстояния всех точек до этой линии с этим нулевым смещением. Далее мы просто смотрим на каком расстоянии больше всего точек сконцентрировано => то расстояние на котором расположена линия. Итого 1 вычисление + вспомогательные вычисления по определению того самого расстояния, на котором больше всего точек.
Когда не можете понять, берете и пробуете) Получаете картинку с 3 рисунка)
Я уверен именно так и вычисляется) Просто привел вывод формулы)
«единственный способ, который пришел в голову» тут согласен) просто это не совсем Хаф был) Скажите как написать корректно и литературно, исправлю)
В выводе я как раз указал на то, что точки должны быть максимально раскиданы пространственно, тогда все будет работать стабильно. Если точки будут рядом друг с другом, естественно две линии будет детектировать проблематично.
Но в случае если мы знаем про особенность что линии у нас близко расположены друг другу мы можем навешать новые ограничительные условия и использовать особенность данной задачи.
Классический Хаф тоже будет проблематично детектировать две близко расположенные линии.
По поводу скорости распознавания, то данная схема должна работать веселее) Из за того что не нужно перебирать разные варианты расстояний.
Было бы классно если сразу ссылку дали где про него читать, и что именно имеется ввиду.

На Хафа похоже) и он и использовался в начале) никто не спорит, но далее используются преимущества конкретной задачи, а именно, то что детектируем линии. Допустим мы перебираем сетку из 100 углов и 100 смещений, получаем расчёт расстояний для 10000 вариаций линий, а в данном случае мы рассчитываем вариации расстояний для 100 вариантов линий, а далее на базе полученных смещений, ищем то, на котором имеется максимальное количество приблизительно одинаковых расстояний. Чувствуете изменение сложности вычислений?)

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

В Хафе расстояния тоже перебираются по фиксированной сетке, а тут более плавно)

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

В случае с искаженным облаком точек, то да, естественно ICP) Но ICP это итерационный алгоритм с вытекающими минусами.
2

Information

Rating
Does not participate
Registered
Activity