Определение профиля поверхностной волны по видеозаписи в канале с прозрачными стенками
Автор: В.В. Баханов, В.И. Казаков, Д.Д. Разумов, М.Б. Салин
Журнал: Научное приборостроение @nauchnoe-priborostroenie
Рубрика: Физика приборостроения
Статья в выпуске: 1, 2026 года.
Бесплатный доступ
Измерение отклонения поверхности воды в лабораторных экспериментах стандартным методом с помощью струнного волнографа позволяет получить информацию только о временных характеристиках поверхностных волн. В данной работе предлагается метод распознавания с помощью видеозаписи профиля волны — зависимости отклонения поверхности воды от времени и координаты. Для работы метода необходимо, чтобы профиль волны был визуально наблюдаем, например, через прозрачную стенку лабораторной установки. Для реализации метода необходимы только видеокамера и источники света под водой. Разработан алгоритм определения отклонения поверхности воды, создано соответствующее программное обеспечение. Демонстрируется хорошее визуальное соответствие (алгоритм распознает то, что видит глаз человека) и совпадение по спектру с сигналом использованных в экспериментах волнографов.
Поверхностные волны, компьютерное зрение, камера обскура, дискретный оператор Лапласа от гауссова сглаживания, дилатация
Короткий адрес: https://sciup.org/142247132
IDR: 142247132 | УДК: 535.8, 551.466.4, 551.46.086
Video recognition of surface wave profile in a channel with transparent walls
In laboratory experiments with waves on the surface of water, measuring the height at a single point is not always sufficient, for example when using a string wave recorder. The paper proposes a method for analyzing the wave profile - the relationship between height, time, and position. For this method to be effective, the wave profile must be visible, for instance, through a transparent wall or from above the water's surface. Additional equipment required for this method includes a video camera, underwater lights, and a measuring tape. A good match is achieved (the algorithm recognizes what the human eye can see) and there is a match in the waveform spectrum.
Текст научной статьи Определение профиля поверхностной волны по видеозаписи в канале с прозрачными стенками
Изучение поверхностного волнения важно не только как интересная научная задача, но и имеет практическую значимость, потому что данные о волнении необходимы во многих прикладных областях, таких как кораблестроение, гидролокация, прогнозирование погоды и климата. Активно развиваются радиолокационные, оптические и контактные методы измерения параметров поверхностного волнения. Бесконтактные методы измерения волнения оптическими средствами используются как в лабораторных [1, 2], так и в естественных условиях [3, 4].
В определенных случаях, при специальной постановке эксперимента, алгоритм определения положения поверхности воды можно реализовать простым сравнением яркости с пороговым значением. В работе [3] вода засвечивается лазерным ножом в темном помещении или в темное время суток. Так как вода рассеивает лазерное излучение намного заметнее, чем воздух, все, что ниже границы воды, — светлое, а выше — темное. В работе [2] отдельно стоящий канал приподнят, и есть возможность наблюдать через ближнюю боковую стенку всю толщу воды и границу раздела, при диффузной подводной подсветке граница воды отделяет светлую область от темной.
Когда яркостная картина более сложная, границу воды можно пытаться обнаружить алгоритмом "edge" распознавания краев. В работе [1] используется распознавание с помощью поиска макси- мумов производных по направлениям от яркости. Однако на выходе алгоритма обнаружения краев получается бинарное изображение, где единица — это все краевые точки. При этом требуются дополнительные условия, чтобы исключить лишние точки: в качестве границы будут распознаны также элементы конструкции установки, блики, капли воды и загрязнения на стенке бассейна.
В данной работе для определения границы раздела воздух – вода используется похожий подход: сначала применяется алгоритм обнаружения краев, затем проводится сравнение яркости изображения с пороговыми значениями для получения дополнительных условий на принадлежность точки границе воздух – вода.
ЭКСПЕРИМЕНТАЛЬНАЯ УСТАНОВКА
В ветроволновом канале большого термостратифицированного опытового бассейна ИПФ РАН была собрана установка для исследования трансформации поверхностного волнения на неоднородном течении. Для создания течения с одной стороны канала под поверхностью воды на глубине 5-7 см располагался инжектор течений, с другой — всасывающий клапан. Для создания поверхностных волн в канале использовался волно-продуктор, расположенный на расстоянии 6 м от инжектора течений. Характеристики поверхностного волнения измерялись несколькими калиброванными струнными волнографами и созданной для этого эксперимента оптической установкой.
Рис. 1. Кадр из видео (обрезан по вертикали) в эксперименте с поверхностными волнами частоты 2 Гц без течения.
Белым цветом обозначены расстояния между объектами, черной рамкой обведена обрабатываемая область, показанная на рис. 4
Сразу отметим, что данная установка и отработанные с ее помощью алгоритмы измерения смещения водной поверхности могут использоваться в других лабораторных экспериментах, где есть возможность видеофиксации изображения поверхности воды.
Видеокамера JVC Everio GZ-HM200 снимала две метровые секции канала c частотой 25 кадров в секунду, разрешением 1920 × 1080 пикселей, увеличение минимальное. Камера была предварительно откалибрована путем съемки сетки 10 × 10 см с известного расстояния, угловое разрешение Δ φ = 0.02352° / пиксель, дисторсия отсутствовала — изображение сетки не искажалось.
Для измерений описываемым способом нужно знать расстояние до измеряемой волны и угол зрения камеры на спокойную воду. Высота камеры над уровнем воды в канале — 105 см, расстояние по горизонтали от камеры до передней стенки канала — 275 см, ширина канала — 70 см, расстояние между болтами крепления стенки канала — 10 см. Для наглядности размеры отмечены на кадре из видео на рис. 1.
Задача состояла в том, чтобы с помощью машинного зрения на каждом кадре обвести "захлест" волн на задней стенке канала. Исследовались необрушивающиеся волны. По матрице изображения нужно получить однозначную функцию границы воды в пикселях yp(xp), а затем пере- считать размеры распознанной функции yp(xp) в реальные размеры в метрах y(x), где y — вертикальная координата, а x — координата вдоль канала.
ПРЕОБРАЗОВАНИЕ КООРДИНАТ
Схема оптической установки и упрощенная модель видеокамеры в виде камеры-обскуры изображены на рис. 2.
Так как дисторсия отсутствует, то можно пользоваться моделью камеры-обскуры [5], координаты изображения точки в пикселях на матрице пропорциональны ее пространственным координатам относительно камеры:
xp = xc yp = yc
fp zc , fp zc ,
где где x с , y с , и z c — пространственные координаты точки, проецируемой на матрицу камеры (точка А на рис. 2), относительно камеры (начало координат в объективе, ось z c проходит через объектив и центр кадра); x p и y p — измеряемые в пикселях горизонтальные и вертикальные координаты точки на матрице относительно центра кадра (точка В на рис. 2); f p — расстояние от объектива до матрицы.
Рис. 2. Схема оптической установки с камерой-обскурой.
Точка A на задней стенке канала отображается в точку В на матрице камеры
Для удобства выразим f p в пикселях через известное угловое разрешение f p = ctg(Δ φ ) = = 2436 пикс.
Координаты относительно камеры связаны с координатами x и y на задней стенке бассейна:
X = X c , У с = y cos V, Z c = Г - y sin V, (2) где r 0 = 3.6 м — расстояние от камеры до уровня спокойной воды на задней стенке по центру кадра, φ — угол между осью z c и нормалью к стенке (совпадает с углом наклона камеры к горизонту). Тогда координаты на стенке бассейна можно вычислить, зная координаты пикселя на матрице следующим образом:
r.
x = r^ x„ = 1.477 f p
y
мм пикс
---0— yp, = 1.544 f cos ϕ p
x p ,
мм пикс
y p .
кадровывается в набор bmp-изображений с помощью FFmpeg [6]. Затем выбирается обрабатываемая область изображения и для нее подбирается набор параметров, числовых порогов. Область изображения (рис. 3, а) преобразуется в градации серого — матрицу натуральных чисел от 0 до 255 I ( x n , y n ). К ней применяется стандартный алгоритм обнаружения краев [7]. На рис. 3, б, белым цветом отмечены краевые пиксели, распознанные с помощью алгоритма "edge" MatLab, используется метод LoG (Laplassian of Gaussian).
Метод обнаружения краев заключается в свертке изображения с некоторым ядром, матрицей фильтра H . В методе LoG в качестве матрицы фильтра H берется дискретный оператор Лапласа от гауссова сглаживания:
H = LoG( X m , У т ) =
—
4 πσ
—
Полтора миллиметра — разрешение, достаточное для измерения поверхностных волн в этом эксперименте: амплитуда колебаний вол-нопродуктора — 10 мм, частота — от 1.4 до 3 Гц, соответственно длины волн — от 17 до 70 см (при отсутствии течения).
РАСПОЗНАВАНИЕ КРАЕВ
Алгоритм распознавания профиля работает с растровыми изображениями. Сначала видео рас-
2 . 2 A
X m + У т |
2 ^ 2 J
exp
xm + ym I l 2^2 J
где квадратные скобки означают взятие целой части, σ — параметр сглаживания в пикселях, x m и y m — целочисленные координаты в пикселях в пределах ±[3σ].
Далее ищутся нули или максимумы результата свертки I * H . В LoG делается поиск нулей, но вместо строгого равенства надежнее найти пиксели, в которых модуль свертки меньше некоторого малого порогового значения thr edge .
Рис. 3. Иллюстрация к алгоритму распознавания поверхности воды.
а — обрабатываемая область изображения (матрица I ); б — края (матрица B edge ), распознанные методом LoG с порогом thredge = 4×10-4, сглаживание σ = 3; в — точки изображения, ярче порогового значения thr light = 120; г — точки изображения, темнее порогового значения thr dark = 80; д — маска яркости (матрица B bright ) после дилатации и трансляции; е — точки краев, попадающие в маску яркости (матрица B ); ж — выбранные в цикле точки границы yp , xp на фоне изображения
В результате попиксельного сравнения (5) получается бинарная матрица B edge ( x n , y n ) из значений 0 или 1, где 1 означает, что пиксель является краевым:
B edge = (| I * H| < thr edge ) . (5)
Альтернативные стандартные методы обнаружения краев, основанные на поиске максимумов после свертки с фильтром дискретного оператора производной по направлению, с нашей точки зрения, менее подходят для данной задачи, так как с бóльшей вероятностью обнаруживают края именно в заданном направлении. Например, при использовании операторов Собеля и Превитта изображение краев получается из вертикальных и горизонтальных линий, для оператора Кэнни еще добавляются линии под 45 ° . Наклон необру-шивающихся волн меняется плавно и обычно не превышает 30 ° (для волн Стокса это доказано [8]). Возможно, оператор, специально сконструированный для поиска линий с наклонами к горизонту в некотором небольшом диапазоне, в этой задаче будет работать лучше, чем оператор Лапласа от гауссова сглаживания.
МАСКА ЯРКОСТИ
Обнаруженная на предыдущем этапе граница — это матрица из 0 и 1, где столбцы — вертикальные координаты пикселей на изображении, строки — горизонтальные координаты. В одном столбце может быть несколько единиц, а нам нужна однозначная функция. Необходимо исключить как можно больше лишних единиц, краев, не лежащих на границе воздуха и воды.
Во-первых, все процедуры делаются в ограниченном по вертикали диапазоне. Во-вторых, из-за фокусировки подводной подсветки поверхностью воды гребни волн — светлые, а впадины — темные. На рис. 3, в, отмечены пиксели ярче порогового значения thr light = 120, а на рис. 3, г — темнее значения thr dark = 80. Пороговые значения являются входными параметрами метода и на данном этапе разработки алгоритма подбираются экспериментально. Поиск краев на рис. 3 имеет смысл делать от впадины до гребня поверхностной волны, поэтому поиск светлых пикселей делается в интервале по высоте выше спокойной границы воды до максимальной предполагаемой величины гребня, аналогично поиск темных — в интервале ниже спокойной воды до максимальной величины впадины.
Граница воды проходит под светлыми областями над гребнями и под темными областями у впадин. Даже при правильно выставленном пороге темные или светлые области могут быть разрежены, поэтому стоит их "размазать", сделав сплошными, и сдвинуть вниз (рис. 3, д). Бинарную матрицу, маску яркости, которая выступает в качестве дополнительного условия на область, где могла бы проходить граница воды, можно записать как:
B bright = ( ( ( I ^ thr light )U ( 1 < thr dark ) ) ® s )y , (6) где ⊕ обозначает морфологическую операцию дилатации [3], s — структурный элемент (здесь — прямоугольник из единиц 8 x 4), нижний индекс означает трансляцию на вектор v (здесь [0, 4] — сдвиг вниз на четыре пикселя).
ВЫБОР ТОЧЕК ГРАНИЦЫ ВОДЫ
Для сужения области поиска краевых пикселей, которые действительно являются границей воды, применяется логическое "И" (7) между краями, обнаруженными методом LoG (5) и маской яркости (6). На рис. 3, е, изображен результат этой операции, т.е. те белые пиксели из рис. 3, б, которые попадают в белую область на рис. 3, д:
B = B edge П B bright . (7)
На следующем этапе выполняется цикл for , число шагов которого равно числу столбцов в матрице B (т.е. длине изображения по горизонтали), внутри цикла есть несколько условий if. Будем последовательно перебирать столбцы B , начиная с первого (либо с последнего), пока не встретится столбец, сумма чисел в котором равна единице, тогда происходит первая запись в массивы yp и xp вертикальных и горизонтальных координат границы воды. Мы записываем в массив xp номер столбца, а в массив yp — положение единицы в столбце. Возьмем следующий столбец и найдем сумму чисел в нем. Если она больше или равна единице, то это потенциальный кандидат на запись в массив: будем записывать в xp номер этого столбца и в yp положение единицы, когда она единственная, либо то положение точки границы, для которого модуль разницы с последним элементом в массиве yp наименьший. Запись не производится, если точка-кандидат дает слишком большой скачок координаты (взят порог больше трех пикселей, yp[j+1] - yp[j] > 3) и слишком большую производную (выбран порог модуля производной 0.3,
|(yp[j+1] - yp[j]) / (xp[j+1] - xp[j])| > 0.3).
В результате заполняются два массива yp и xp вертикальных и горизонтальных координат границы воды. На рис. 3, ж, белые линии сформированы отобранными по описанному выше алгоритму краевыми пикселями из рис. 3, д. При этом некоторые области поверхности воды оказались пропущены, потому что или "edge" не нашел края (такое бывает, когда границу плохо видно на глаз), или в этой области недостаточно яркости для прохождения порога яркости, или точки отброшены при проходе по горизонтали алгоритмом как не удовлетворяющие вышеописанным критериям.
Граница области поверхности воды восстанавливается в пропущенных местах с помощью интерполяции Акимы [9], которая в данном случае лучше сплайн-интерполяции, т.к. более устойчива к выбросам. Также, чтобы избавиться от выбросов, слева и справа за краями кадра добавляется по две точки на уровне спокойной воды. На рис. 4 изображена интерполированная на всей наблюдаемой камерой области поверхность воды на фоне задней стенки канала.
На рис. 5 представлена высота поверхности воды в зависимости от времени и горизонтальной координаты, пересчитанная из пикселей в сантиметры по формулам (3). На рис. 5, а, показаны ре- зультаты обработки эксперимента с поверхностными волнами частотой 2 Гц, без течения; на рис. 5, б, — результаты обработки эксперимента с поверхностными волнами частотой 1.4 Гц при наличии неоднородного течения. Картина для поверхностных волн без течения (рис. 5, а) регулярна: бегущие в одну сторону вершины волн - светлые параллельные наклонные линии. Заметны искажения, вызванные особенностью обработки в районе х = 0 см и x = 42 см, где задняя стенка загорожена балкой канала и волнографом соответственно. Белые и черные тонкие горизонтальные линии появляются при неправильной обработке области кадра алгоритмом, когда он "срывается" в блик на воде или на стенке канала.
Для длинных поверхностных волн на неоднородном течении (рис. 5, б) заметна трансформация их фазовой скорости — меняется наклон светлых линий с координатой, на бегущие влево волны также накладывается отраженная бегущая вправо волна меньшей амплитуды, что приводит к формированию узлов — провалов почти до нуля вдоль светлой наклонной линии.
Рис. 4. Интерполированная поверхность воды на фоне задней стенки канала (черно-белая линия).
Рис. 5. Пример результата обработки видео алгоритмом.
а — волны λ = 40 см, частота 2 Гц, без течения; б — волны λ = 70 см (самые длинные из воспроизводимых в эксперименте), частота 1.4 Гц, в присутствии неоднородного течения. Высота отклонения поверхности воды на стенке канала в сантиметрах показана в градациях серого на плоскости (горизонтальная координата – время); ноль — посередине между секциями канала, ось х направлена вправо, волны бегут справа налево
Для сигнала струнного волнографа и высоты смещения водной поверхности у задней стенки канала, полученной с помощью оптической установки, была вычислена спектральная плотность мощности (СПМ) по фрагменту записи длительностью 100 с в середине эксперимента методом периодограммы Уэлча (Welch) с окном 10 с перекрытием окон 15/16. Сравнение спектров для тех же экспериментов, что и на рис. 5, представлено на рис. 6. Метод демонстрирует близкое совпадение пиков СПМ по частоте, ширине и амплитуде. Мы предполагаем, что подъема в спектре волнения, оцененного по видео, в области 0 Гц можно избежать, если использовать штатив со стабилизацией.
Прямое сравнение высоты водной поверхности, измеренной в одной и той же точке двумя методами, к сожалению, сделать не получилось, т.к. струна волнографа была натянута посередине канала и сам волнограф загораживал заднюю стенку. Тем не менее на рис. 7 на одном графике изображены осциллограммы, полученные двумя методами в близких точках для опыта с поверхностными волнами частотой 2 Гц без течения.
Рис. 6. Спектральные плотности мощности поверхностного волнения в точке, полученные при обработке видео и по записи сигнала волнографа.
Параметры экспериментов (а) и (б) такие же, как на рис. 5
Рис. 7. Сравнение осциллограмм волнения в точке, измеренной струнным волнографом и полученной по обработке видео для эксперимента "поверхностные волны частотой 2 Гц, без течения" (см. рис. 5, а; 6, а)
ЗАКЛЮЧЕНИЕ
Разработан легко реализуемый метод дистанционного оптического измерения параметров поверхностных волн для лабораторных экспериментов. В отличие от стандартных методов измерения с помощью струнных волнографов, данный метод позволяет определять не только временные характеристики поверхностных волн, но и пространственные. Это становится принципиальным в экспериментах, в которых дисперсионное соотношение между периодом и длиной поверхностных волн становится сложным, например, вследствие воздействия неоднородных течений или нелинейности поверхностных волн.
Применение подхода в целом может быть намного шире, чем для конкретного канала и волн с конкретными параметрами в этом канале, снятых конкретной камерой. Подход заключается в:
-
1) калибровке камеры и измерении расстояния до объекта видеосъемки;
-
2) выделении границ на кадре одной из разновидностей стандартного метода обнаружения краев "edge" ;
-
3) введении дополнительных условий на точки границы, здесь — это ограничение по вертикали и канал яркости (для естественных условий, таких как захлест волн на вертикальной стенке пирса, можно попробовать использовать канал цвета);
-
4) применении логики выбора точек, принадлежащих границе воздух - вода;
-
5) использовании интерполяции.
Финансирование
Исследование поддержано грантом Российского научного фонда № 24-27-00363,
В исследованиях использовано оборудование "Уникальной научной установки Комплекс крупномасштабных геофизических стендов ИПФ РАН".