OpenCV LK Глубина оптического потока (Z)

Я вычисляю оптический поток (OF) с помощью функции OpenCV calcOpticalFlowPyrLK для точек, которые я отслеживал ранее. Это работает как надо. Теперь я пытаюсь получить относительную глубину Z.

Для этого я попытался использовать следующие 2 уравнения для u и v:

     (Tz*x - Tx*f)           (Tz*y - Ty*f)
u =  ______________      v = _____________
Z                     Z

Я пропустил вращательную часть уравнения, потому что я предполагаю, что у меня есть чистый перевод.
Решил оба уравнения сверху для Z и попытался вычислить Z со значениями (координатами) i, полученными на предыдущем шаге вычисления КА.

  • Для переменных x, y я использовал координаты изображения из image1.
  • Для u и v я использовал точки, полученные из расчета OF -> отслеживаемые точки на изображении2.
  • Например, скажем, x = 413, y = 210, u = 415, v = 210, Tx = -0,9, Ty = -0,176, Tz = -0,3846, f = 640

Моя проблема в том, что я получаю 2 разных значения Z в результате.
На мой взгляд, глубина должна быть одинаковой для обоих?

Я искал больше информации о том, как я могу решить свою проблему, и нашел хороший бумага за исключением того, что я думаю, что они смешали Farnback и LK в своих анализах производительности.
Насколько я понимаю математика, лежащая в основе уравнения (4, стр. 4), это то же самое, что и уравнение выше, только в матричном представлении. Я попытался это решить, а также с вышеупомянутыми значениями, и я получил матрицу 2×2 в качестве результата. Не знаю, что я должен делать с 4 значениями Z?!

Надеюсь, кто-то может объяснить, что я делаю неправильно, и направить меня в правильном направлении, чтобы я смог получить правильное значение Z (глубину) из OF. Спасибо!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector