Рассчитать фактическую скорость, используя оптический поток - PullRequest
0 голосов
/ 07 февраля 2011

Как узнать реальную скорость объекта в реальном мире, используя информацию оптического потока, полученную из двух изображений?Кто-нибудь может мне помочь?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

, как уже сказали комментаторы, нам нужно больше информации о вашей проблеме.В основном: Да, по изображению можно рассчитать скорость реального мира

Но все это зависит от следующих факторов:

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

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

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

Поскольку, если у вас есть эта информация:

x m = y px

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

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

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

Возможно, это поможет вам в вашей проблеме ... ноКонечно, это зависит от ваших настроек и желаемой цели ... Вам нужно будет предоставить больше информации ...

1 голос
/ 16 июля 2013

Этот метод довольно длинный, но короткий:

Что вы можете сделать, это установить значение, которое определяет расстояние от объекта до камеры.

Затем захватите первый кадр и сохраните его где-нибудь.

Захватить последний кадр и сохранить его где-нибудь.

Применить порог к обоим кадрам.

Обрезать все пиксели слева от первого кадра, а затем сделать то же самое для второго кадра.

Для подробного руководства, я думаю, эта статья может вам помочь.

http://morefunscience.blogspot.in/2012/05/calculating-speed-using-webcam.html

...