Алгоритм Лукаса — Канаде — широко используемый в компьютерном зрении дифференциальный локальный метод вычисления оптического потока.

Основное уравнение оптического потока содержит две независимые переменные и не может быть однозначно решенной. Алгоритм Лукаса — Канаде решает неоднозначность за счет использования информации о соседних пикселей на в каждой точке. Метод основан на предположении, что в локальном окрестности каждого пикселя значение оптического потока одинаково, таким образом таким образом можно записать уравнение оптического потока для всех точек в окрестности и решить систему уравнений методом наименьших квадратов.

Описание алгоритма

Предположим, что смещение точек между двумя кадрами — относительно мало. Рассмотрим пиксель p, тогда в соответствии с алгоритмом Лукаса — Канаде, оптический поток должен быть одинаков для всех точек, которые находятся в окне с центром в точке p. А именно, вектор оптического потока в точке p должно быть решением уравнения

Алгоритм Лукаса - Канаде

где

Алгоритм Лукаса - Канаде — Пиксели внутри окна,
Алгоритм Лукаса - Канаде — Частные производные изображения Алгоритм Лукаса - Канаде по координатам x, y и времени t, вычисленные в точке Алгоритм Лукаса - Канаде .

Это уравнение может быть записано в матричном виде:

Алгоритм Лукаса - Канаде ,

где

Алгоритм Лукаса - Канаде

Систему уравнений которую мы получили будем решать методом наименьших квадратов. Таким чаном получаем систему уравнений 2 × 2:

Алгоритм Лукаса - Канаде ,

откуда:

Алгоритм Лукаса - Канаде ,

да — транспонированная матрица. Имеем:

Алгоритм Лукаса - Канаде

Взвешенное окно

В методе наименьших квадратов все n точек "/> в окне несут одинаковое влияние. Однако более логично учитывать ближе к p пиксели с большим весом. Для этого используется взвешенный метод наименьших квадратов,

Алгоритм Лукаса - Канаде

или

Алгоритм Лукаса - Канаде

где — диагонально матрица n × n, содержит веса, которые будут присвоены пикселям "/>. Получаем следующую систему уравнений:

Алгоритм Лукаса - Канаде

Для определения обычно используется нормальное распределение расстояния между "/> и p.