Библиотека Python для вычисления пространственных производных оптического потока - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь вычислить инварианты дифференциальной скорости изображения (например, скручивание, расхождение, деформация и т. Д.) Из видео с использованием OpenCV в Python. Для этого мне нужно вычислить пространственные производные в направлениях x, y оптического потока. К сожалению, кажется, что OpenCV предоставляет только API для вычисления оптического потока, а не его производные.

Существуют ли какие-либо библиотеки Python для вычисления пространственных производных оптического потока? Я нашел этот вопрос, который был несколько похож Оптический поток Лукаса Канаде, Вектор направления код, который человек написал для вычисления пространственных производных, но если бы это было возможно, я бы предпочел библиотеку, а не сам писать код. Любые предложения будут оценены!

1 Ответ

0 голосов
/ 27 октября 2011

Вот как я это вижу (я немного работал с оптическим потоком):

Вы хотите вычислить отдельные частные производные поля оптического потока; один для направления x и один для y.

Я бы попытался решить проблему следующим образом:

  • Разделите ваш массив / матрицу потока на две матрицы: x и y flow.
  • Для каждого из них вы можете пойти по наивному пути и просто сделать простую разницу: derivative = current_state - last_state. Но этот подход очень грязный, так как производная будет чувствительна к малейшей ошибке.
  • Чтобы противостоять этому, вы можете аппроксимировать один кусок ваших точек данных (может быть, целую строку?) С помощью кривой регрессии, которая легко дифференцируется, как полином.

Просто дифференцируйте эту приблизительную кривую, и все готово.

Вы также можете просто сгладить отдельные матрицы и сделать наивное различие, которое должно быть намного быстрее, чем аппроксимирующие точки данных, но должно быть более терпимым к ошибкам.

...