Как и зачем измерять скорость судна при помощи ML

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Даже небольшие погрешности в измерениях скорости судна относительно воды могут привести к большим ошибкам в расчётах ходовых качеств судна и увеличению расхода топлива на десятки тонн в день. О том, как эту проблему решает машинное обучение, рассказываем к старту флагманского курса по Data Science.


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

Эти системы могут быть дорогими в обслуживании и, как правило, подверженными образованию пузырей, турбулентности или других обусловленных движением судна помех.

В Miros разработали систему Wavex с датчиками для точного измерения волн, течения и скорости относительно воды. В этой системе обрабатываются оцифрованные изображения с обычных морских навигационных радаров X-диапазона.

Создателям Wavex удалось избавиться от проблем с помехами и от затрат на обслуживание, связанных с подводными датчиками. Кроме того, за счёт использования сети глубокого обучения для автоматической идентификации радиолокационных изображений, полученных при измерениях в плохих условиях, например с обильными осадками (рис. 1), они повысили качество работы и надёжность Wavex:

Рисунок 1. Профиль волны, повреждённый осадками в верхней половине радиолокационного изображения
Рисунок 1. Профиль волны, повреждённый осадками в верхней половине радиолокационного изображения

В случае ливневых дождей повреждённые части радиолокационного изображения можно не учитывать в измерениях, ограничиваясь только неповреждёнными. В сети, созданной с применением MATLAB® и Deep Learning Toolbox™, осадки и ослабление ветра определяются с точностью более 97 и более 99% соответственно. 

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

Обучив и проверив сеть в MATLAB, можно с помощью MATLAB Compiler™ развернуть её в виде автономного приложения в системе Wavex, чтобы почти в реальном времени измерять течение, скорость относительно воды, взвешенные спектры направления волн и интегрированные параметры волны, такие как высота волны (рис. 2): 

Рисунок 2. Пример пользовательского интерфейса Wavex с измерениями ветра, волны и скорости относительно воды
Рисунок 2. Пример пользовательского интерфейса Wavex с измерениями ветра, волны и скорости относительно воды

Радиолокационные измерения состояния моря и воздействия ветра и дождя

Обычная морская антенна радара X-диапазона вращается со скоростью от 15 до 48 об./мин., генерируя оцифрованные изображения, на которых чётко видны профили волны (рис. 3). 

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

В этих алгоритмах применяется фильтрация шума и выполняются трёхмерные быстрые преобразования Фурье во временных рядах декартовых изображений, создавая трёхмерные спектры волн с информацией о силе, присутствующей при различных волновых числах и частотах. Затем, чтобы оценить течение, скорость хода судна относительно воды, а также взвешенные спектры волн и интегрированные параметры волны, в алгоритмах используются частотно-волночисленные спектры:

Рисунок 3. Оцифрованное изображение извлечённых декартовых сечений, полученное с морского навигационного радара X-диапазона
Рисунок 3. Оцифрованное изображение извлечённых декартовых сечений, полученное с морского навигационного радара X-диапазона

При определённых условиях окружающей среды (низкой скорости ветра и ливневых дождях) возникают искажения оцифрованных изображений, что затрудняет извлечение значимой информации (рис. 4).

Наша цель — с помощью глубокого обучения создать сеть, автоматически определяющую декартовы сечения, слишком искажённые, чтобы их можно было использовать для измерений состояния моря:

Рисунок 4. Оцифрованные радиолокационные изображения, сделанные в условиях осадков (верхнее) и снижения скорости ветра (нижнее)
Рисунок 4. Оцифрованные радиолокационные изображения, сделанные в условиях осадков (верхнее) и снижения скорости ветра (нижнее)

Применение глубокого обучения для классификации изображений

Первый шаг в применении глубокого обучения в задаче классификации изображений — получение и разметка изображений с сочетаниями этих признаков для обучения сети. С этой целью из шести разных систем Wavex было собрано свыше 7 млн. декартовых сечений изображений за период более чем 10 лет. Сечениям изображений присвоили пять категорий: 

  • без ослабления ветра или осадков; 

  • заметные осадки;

  • заметное ослабление ветра; 

  • заметное снижение осадков и ослабление ветра;

  • категория без класса. 

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

У нашей команды был опыт работы с MATLAB и некоторыми классическими темами машинного обучения, но мы не сталкивались с приложениями глубокого обучения. Мы начали с руководства по Deep Learning Toolbox и примеров использования простых свёрточных нейронных сетей для классификации изображений с применением глубокого обучения. 

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

После экспериментов с разными конфигурациями сети мы остановились на 23-слойной сети. У неё стандартная структура. За слоем входных изображений следуют пять групп с 2-мерным свёрточным слоем в каждой: слой пакетной нормализации, слой с блоком линейной ректификации (ReLU) и слой операции подвыборки с определением максимального значения. В последней группе вместо слоя операции подвыборки используется полносвязный слой. За этой группой следует слой с softmax и выходной слой классификации (рис. 5):

Рисунок 5. Структура сети для классификации радиолокационных изображений
Рисунок 5. Структура сети для классификации радиолокационных изображений

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

Затем мы вносили изменения в сеть, чтобы повысить её точность. Например, пробовали разные размеры для первых свёрточных слоёв, разную глубину сети и разные нормализации на слое входных изображений.

Развёртывание и планы на будущее

Чтобы интегрировать в системы Wavex окончательно обученную сеть и алгоритмы, создать автономное приложение, мы воспользовались компилятором MATLAB. Это позволило быстро перевести разработку и обучение модели в эксплуатационную среду — для автоматизированного контроля качества.

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

После этой интеграции визуализации MATLAB применялись для проверки работы системы в различных условиях: при использовании автоматического обнаружения осадков и ослабления ветра и при базовом уровне без такого обнаружения. 

На рисунке 6 показан пример насыщенного событиями периода, когда при применении обнаружения на основе глубокого обучения данные корректно размечаются, а различные ситуации выделяются точно. Это позволяет оптимизировать обработку данных и повысить точность потока информации для пользователя:

Рисунок 6.  Диаграммы измерений высоты волны, выполненных с обнаружением на основе глубокого обучения (синяя линия) и без обнаружения на основе глубокого обучения (красная линия) снижения осадков и ослабления ветра
Рисунок 6.  Диаграммы измерений высоты волны, выполненных с обнаружением на основе глубокого обучения (синяя линия) и без обнаружения на основе глубокого обучения (красная линия) снижения осадков и ослабления ветра

Автономное приложение с использованием глубокого обучения сейчас тестируется в эксплуатационной среде систем Wavex на нескольких кораблях. Команда разработчиков испытывает применение аналогичных подходов глубокого обучения при классификации изображений и сигналов в различных новых приложениях.

Начать погружение в науку о данных или прокачать ваши навыки вы сможете на наших курсах:

  • Профессия Data Scientist (24 месяца)

  • Курс «Machine Learning и Deep Learning» (6 месяцев)

Выбрать другую востребованную профессию.

Краткий каталог курсов и профессий

Data Science и Machine Learning

  • Профессия Data Scientist

  • Профессия Data Analyst

  • Курс «Математика для Data Science»

  • Курс «Математика и Machine Learning для Data Science»

  • Курс по Data Engineering

  • Курс «Machine Learning и Deep Learning»

  • Курс по Machine Learning

Python, веб-разработка

  • Профессия Fullstack-разработчик на Python

  • Курс «Python для веб-разработки»

  • Профессия Frontend-разработчик

  • Профессия Веб-разработчик

Мобильная разработка

  • Профессия iOS-разработчик

  • Профессия Android-разработчик

Java и C#

  • Профессия Java-разработчик

  • Профессия QA-инженер на JAVA

  • Профессия C#-разработчик

  • Профессия Разработчик игр на Unity

От основ — в глубину

  • Курс «Алгоритмы и структуры данных»

  • Профессия C++ разработчик

  • Профессия Этичный хакер

А также

  • Курс по DevOps

  • Все курсы

Источник: https://habr.com/ru/company/skillfactory/blog/652209/


Интересные статьи

Интересные статьи

Очень часто при работе мы обращаем внимание на то, что все люди знают, что такое распознавание речи, но не знают, что такое Voice Activity Detector (VAD) или детектор речи. А ведь именно VAD на с...
Всем привет!Неоднократно сталкивался в ИТ-сообществе с мнением, что разработчикам бы работу работать, а не “вот это вот все”. Под “этим всем” скрываются видео и круглые столы от менеджмента, разъясняю...
Привет!Недавно начал экспериментировать с процедурной генерацией и получил некоторые наработки, с которыми и хотелось бы поделится. Примеры я буду показывать на движке Godot, однако при надобности код...
Более чем год назад мы публично представили нашу открытую и бесплатную платформу lsFusion. Многие тогда задавали нам вопрос : зачем мы создавали свой собственный язык, ве...
На выставке CES 2020, которая прошла в минувшем январе, компания Kingston продемонстрировала новые твердотельные накопители формата M.2, получившие имя KC2000. Данные SSD ориентированы на энтузиа...