Алгоритм измерения скорости движущихся объектов на видео

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

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

Изменить:

В моем случае камера всегда неподвижна, а машина движется слева направо и движется с постоянной скоростью.

Какой метод я уже искал?

Когда машина движется, я перемещаю объект (эталонный объект) перед камерой с известной скоростью. Затем на видео присутствуют оба движущихся объекта, один с известными, а другой с неизвестными. путем соответствующей калибровки я могу определить скорость автомобиля. Но я ищу решение, в котором мне не нужно перемещать эталонный объект.


person gpuguy    schedule 25.05.2012    source источник
comment
Это очень сложный вопрос. Вам нужно будет подумать, движется ли камера или неподвижно, и какие ограничения присутствуют. Если автомобиль всегда движется слева направо на фиксированном расстоянии, это более легкая проблема (сколько пикселей он перемещает за кадр). Если бы автомобиль мог двигаться в любом направлении (например, в сторону камеры), вам потребовалась бы некоторая трехмерная информация. Не могли бы вы дать дополнительную информацию о ваших конкретных ограничениях и о том, какие методы вы уже рассматривали?   -  person Chris    schedule 25.05.2012


Ответы (1)


Если ваша камера неподвижна, и ваша машина движется слева направо на фиксированном расстоянии, тогда вы сможете отслеживать машину в последовательности и определять, насколько быстро она движется (в пикселях на кадр). Затем вам понадобится одноразовый этап калибровки, на котором вы определите коэффициент преобразования в мили в час, например, вы можете вычислить, что 100 пикселей на кадр = 30 миль в час, чтобы затем вы могли измерить скорость в пикселях на кадр и умножить на 30/100.

Если вы не знаете расстояние до машины (или, скорее, если расстояние непостоянно), этот метод не будет работать, так как более близкий объект будет перемещаться по изображению быстрее, чем более удаленный объект, даже если они движутся. с той же скоростью в реальном выражении.

person Chris    schedule 25.05.2012
comment
Что вы имеете в виду под фиксированным расстоянием? - person gpuguy; 26.05.2012
comment
Я имею в виду, что во время отслеживания автомобиль не приближается (намного) ближе или дальше от камеры, это означает, что любое наблюдаемое движение будет коррелировано со скоростью в любой точке изображения. Если автомобиль движется к камере с постоянной скоростью, по мере приближения он будет становиться больше и тем больше пикселей будет проходить за кадр. Я предлагаю провести несколько экспериментов и выяснить, что работает в вашем случае. - person Chris; 28.05.2012