Я пытаюсь реализовать навигацию по потоку, как описано в http://grail.cs.washington.edu/projects/crowd-flows/, но я не могу понять, как должна обрабатываться функция плотности на рисунке 4 статьи радиус единицы.
Кто-нибудь когда-либо реализовывал это и может предоставить больше информации?
Это часть вопроса:
Кажется, что их алгоритм использует только 4 ячейки, указывающие на нижний левый угол блока, так что это какое-то ядро, которое нужно применять несколько раз?
Спасибо.
Ответы:
Нет, это не «ядро, которое нужно применять несколько раз». Вы просто применяете формулы, как написано, один раз.
Это довольно странное правило, и оно не очень четко описано. Позвольте мне немного уточнить это:
Сначала найдите четыре ячейки, общий угол которых находится ближе всего к блоку. Единица внесет ненулевое количество плотности только в эти ячейки. Назовите эти ячейки A, B, C и D как на рисунке 4 (b).
Пусть Δx и Δy - горизонтальное и вертикальное расстояние единицы от центра ячейки A, измеренное в единицах ширины / высоты одной ячейки.
Пусть ρ A = min (1 − Δx, 1 − Δy) λ , ρ B = min (Δx, 1 − Δy) λ , ρ C = min (Δx, Δy) λ и ρ D = min (1 − Δx, Δy ) λ , как описано в статье.
Пусть единица вносит ρ A плотность в ячейку A, ρ B плотность в ячейку B, ρ C плотность в ячейку C и ρ D плотность в ячейку D.
Как я уже сказал, правило довольно странное, и у меня нет для него очевидной геометрической интерпретации. Однако он удовлетворяет ожидаемым свойствам, которые:
Когда единица находится точно в середине любой ячейки X, то (независимо от того, какой из A, B, C или D мы выбираем X), она вносит 1 λ = 1 единицу плотности в ячейку X и 0 единиц плотности в любая другая клетка.
Когда единица находится точно в углу четырех ячеек, она вносит (1/2) λ единиц плотности в каждую из четырех ячеек (и ни в какую другую ячейку, по определению).
Однако обратите внимание, что при использовании этого правила общая величина плотности, вносимая единицей во все ячейки, не является постоянной, даже если λ = 1. В частности, когда единица находится точно в средней точке границы между двумя ячейками, он вносит (1/2) λ единиц плотности в эти две ячейки, и ничего в любую другую ячейку. Таким образом, называние результирующего значения «плотностью» кажется немного вводящим в заблуждение.
Изменить: Другой способ написания формул для ρ A , ρ B , ρ C и ρ D , которые могут сделать симметрию определений более очевидной, заключается в определении d X = max (| x - x X |, | y - y X |) как расстояние от шахматной доски до единицы (x, y) от центра ячейки X в точке (x X , y X ), измеренное по ширине / высоте ячейки. Тогда для любой клетки X,
источник