Использование метода кросс-корреляции для определения скоростей

Во время обучения мне посчастливилось приобщиться к методу кросс-корреляции. В университете в этот момент был заказ на разработку системы сбора и обработки данных с достаточно специфического объекта. В качестве одного из видов измерений на объекте применялась обработка видеосигнала.

Получаемый видеосигнал оценивал состояние тепловых потоков в помещении. Благодаря конвективному теплообмену частицы пыли в помещении совершали вихревое перемещение, которое и отслеживала камера.


Чтобы выделить частицы в помещении использовался лазер с линзой, раскладывающей лазерный луч в вертикальную плоскость. Полученный луч подсвечивал в пространстве частицы водяной пыли(распыляемой спец устройством). Перпендикулярно плоскости частиц устанавливался штатив видеокамеры(таким образом получен кадр выше). Использовалась камера с высокой частотой съемки, чтобы полученные соседние кадры были достаточно последовательны в отношении к скорости движения частиц пыли.

Имея на руках исходные данные можно получить скорость группы частиц по которым рисуется карта скоростей среза вихревого потока частиц. Для этого используется метод кросс-корреляции.

Кросс-корреляция

Это достаточное простое преобразование, которое имеет большие перспективы практического применения. Необязательно вдаваться в глубины преобразований, достаточно понять принцип. Я постараюсь его донести.

Перед тем как воспользоваться методом требуется подготовить полученные кадры:

1. кадр переводиться в градации серого
2. производиться фильтрация

Результатом вышеуказанных действий в идеале должна являться плоскость с расположенными на них точками.
Полученные кадры являются матрицами, которые уже легко можно использовать при кросс-корреляции.

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

Допустим мы имеем два кадра:


Ну а теперь матемагия:
1. производим над обеими матрицами быстрое преобразование Фурье (БПФ или FFT).
2. над базовой матрицей производим комплексное сопряжение (умножаем на "-1" комплексное слагаемое(еще помню:))
3. полученные матрицы перемножаем
4. производим процедуру обратного быстрого преобразования Фурье (Inverse FFT)

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

Зная время между кадрами можно получить величину скорости.

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

Плюсы:
1.чистая математика, думаю библиотеки имеются в наличие в сети
2.возможность следить за группами объектов
3.группа объектов может перемещаться в пространстве друг относительно друга, это не страшно, фурье проглотит
4.возможность отслеживать объекты распознанные благодаря OpenCV

Минусы:
Для достоверности измерений. В случае достаточно стохастических перемещений, рекомендуется измерять группы от 5 до 12 объектов (пруф-линка не будет, со слов передаю)

Пользуясь случаем выражаю признательность Юрасу Станиславу Федоровичу, за полученные знания.
При желании могу скинуть файл и инструкции, как это чудо запустить в LabView 8.6.
  • +3
  • 31 января 2012, 20:29
  • aivanov

Комментарии (7)

RSS свернуть / развернуть
+
+1
Спасибо! Отличная статья!
немного поправил теги :)
avatar

admin

  • 31 января 2012, 20:41
+
+1
Здравствуйте! Очень интересная информация, пишу сейчас исследовательскую работу, очень мало информации по этому методу в исследуемом мной направлении, оказалось очень кстати. Нужны и файл, и инструкция, как запустить, если можно.)
avatar

m_korol

  • 12 мая 2012, 19:26
+
0
свяжусь с вами завтра вечером
avatar

aivanov

  • 12 мая 2012, 21:15
+
0
Хорошо! Буду ждать
avatar

m_korol

  • 13 мая 2012, 09:03
+
0
Здравствуйте))) хотела бы попросить вас файл и инструкцию как запустить в labview))) если это возможно буду очень признательна_))))
avatar

julija170823

  • 25 мая 2014, 03:15
+
0
Добрый день! Пришлите пожалуйста файл и инструкции для LabView, буду очень благодарен.
avatar

Martin

  • 10 сентября 2015, 09:41
+
0
скажите, а нет литературы почитать и может практических материалов как это всё работает?
avatar

Begemot911

  • 25 ноября 2018, 22:14

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.