ZlodeiBaal
@ZlodeiBaal

Пространственно-временная фильтрация (регрессионный анализ) в OpenCV

Появился такой вопрос, в который я сходу не могу въехать, но может кто-нибудь тут знает. Появилась необходимость быстро реализовать регрессионный анализ видеопотока для выделения в нём движущихся относительно фона объектов. Сам фон — нестационарный, но постоянный: камера брыкается туда-сюда с шагом порядка десятка пикселей. В принципе эта задача практически идеально решается, если есть процедура регрессионного анализа. Но под рукой на том языке на котором я пишу её нет. Писать с нуля — влом, она большая. Хочется решить через OpenCV. Функции оптического потока(LK) не подходят — они, к сожалению, имеют низкую точность, слишком много высоких шумов после вычитания. Функции из разряда «UpdateMotionHistory» не подходят тем более — там стационарный фон.
Неужели в OpenCV нет функции, которая вычитает два изображения друг из друга ища оптимальный сдвиг и поворот, максимизируя корреляцию?? Или я неправильно использую что-то из вышеперечисленного?
  • Вопрос задан
  • 3957 просмотров
Пригласить эксперта
Ответы на вопрос 2
Akson87
@Akson87
Ну как-бы Лукас-Канаде делает именно то, что Вы описали, ищет корреляцию в окне для нескольких хороших точек. Посмотрите еще раз в сторону оптического потока, для этой задачи он должен дать весьма хорошую точность. Возможно Вы когда экспериментировали с ним, выбрали точки неудачно или параметры. Как найдете движение всех точек, можно попробовать найти движение, которое соответствует фону.
Ответ написан
@victor1234
IT: Компьютерное зрение, linux, с++
Если вам еще актуально, замечу, что в OpenCV есть функции для выделения фона , которые как раз приспособлены для тез случаев, когда он переодическ меняется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы