Даже небольшие погрешности в измерениях скорости судна относительно воды могут привести к большим ошибкам в расчётах ходовых качеств судна и увеличению расхода топлива на десятки тонн в день. О том, как эту проблему решает машинное обучение, рассказываем к старту флагманского курса по Data Science.
Традиционно скорость относительно воды измеряется подводными приборами лагами: для этого с помощью гидродинамического лага оценивается разница давления воды на корпус судна. Используется либо доплеровский сдвиг гидроакустического сигнала (доплеровский гидродинамический лаг), либо сигнал, генерируемый от взаимодействия между возбуждённой катушкой и движущимся водным объектом (электромагнитный лаг).
Эти системы могут быть дорогими в обслуживании и, как правило, подверженными образованию пузырей, турбулентности или других обусловленных движением судна помех.
В Miros разработали систему Wavex с датчиками для точного измерения волн, течения и скорости относительно воды. В этой системе обрабатываются оцифрованные изображения с обычных морских навигационных радаров X-диапазона.
Создателям Wavex удалось избавиться от проблем с помехами и от затрат на обслуживание, связанных с подводными датчиками. Кроме того, за счёт использования сети глубокого обучения для автоматической идентификации радиолокационных изображений, полученных при измерениях в плохих условиях, например с обильными осадками (рис. 1), они повысили качество работы и надёжность Wavex:
В случае ливневых дождей повреждённые части радиолокационного изображения можно не учитывать в измерениях, ограничиваясь только неповреждёнными. В сети, созданной с применением MATLAB® и Deep Learning Toolbox™, осадки и ослабление ветра определяются с точностью более 97 и более 99% соответственно.
В отличие от традиционных алгоритмов обработки изображений (требующих калибровки для различных условий измерения, особенностей геометрии и типов радаров) разработанная в MATLAB сеть глубокого обучения отличается высокой точностью в самых разных сценариях измерений, не нуждаясь в настройке или калибровке.
Обучив и проверив сеть в MATLAB, можно с помощью MATLAB Compiler™ развернуть её в виде автономного приложения в системе Wavex, чтобы почти в реальном времени измерять течение, скорость относительно воды, взвешенные спектры направления волн и интегрированные параметры волны, такие как высота волны (рис. 2):
Радиолокационные измерения состояния моря и воздействия ветра и дождя
Обычная морская антенна радара X-диапазона вращается со скоростью от 15 до 48 об./мин., генерируя оцифрованные изображения, на которых чётко видны профили волны (рис. 3).
В системах Wavex из оцифрованных изображений извлекаются декартовы сечения переноса изображения, а затем обрабатываются с помощью алгоритмов, созданных в MATLAB.
В этих алгоритмах применяется фильтрация шума и выполняются трёхмерные быстрые преобразования Фурье во временных рядах декартовых изображений, создавая трёхмерные спектры волн с информацией о силе, присутствующей при различных волновых числах и частотах. Затем, чтобы оценить течение, скорость хода судна относительно воды, а также взвешенные спектры волн и интегрированные параметры волны, в алгоритмах используются частотно-волночисленные спектры:
При определённых условиях окружающей среды (низкой скорости ветра и ливневых дождях) возникают искажения оцифрованных изображений, что затрудняет извлечение значимой информации (рис. 4).
Наша цель — с помощью глубокого обучения создать сеть, автоматически определяющую декартовы сечения, слишком искажённые, чтобы их можно было использовать для измерений состояния моря:
Применение глубокого обучения для классификации изображений
Первый шаг в применении глубокого обучения в задаче классификации изображений — получение и разметка изображений с сочетаниями этих признаков для обучения сети. С этой целью из шести разных систем Wavex было собрано свыше 7 млн. декартовых сечений изображений за период более чем 10 лет. Сечениям изображений присвоили пять категорий:
без ослабления ветра или осадков;
заметные осадки;
заметное ослабление ветра;
заметное снижение осадков и ослабление ветра;
категория без класса.
Чтобы сократить трудозатраты и сделать разметку возможной на практике, мы провели визуальную оценку в сочетании с автоматической разметкой, взяв доступные данные из других источников, в частности данные о ветре с бортовых датчиков.
У нашей команды был опыт работы с MATLAB и некоторыми классическими темами машинного обучения, но мы не сталкивались с приложениями глубокого обучения. Мы начали с руководства по Deep Learning Toolbox и примеров использования простых свёрточных нейронных сетей для классификации изображений с применением глубокого обучения.
Сначала мы попробовали предварительно обученные модели, но вскоре обнаружили, что, создавая собственные сети глубокого обучения на основе примеров кода, можно добиться лучших результатов.
После экспериментов с разными конфигурациями сети мы остановились на 23-слойной сети. У неё стандартная структура. За слоем входных изображений следуют пять групп с 2-мерным свёрточным слоем в каждой: слой пакетной нормализации, слой с блоком линейной ректификации (ReLU) и слой операции подвыборки с определением максимального значения. В последней группе вместо слоя операции подвыборки используется полносвязный слой. За этой группой следует слой с softmax и выходной слой классификации (рис. 5):
Сначала мы обучили сеть на данных из отдельных систем Wavex, а затем убедились, что в ней точно классифицируются изображения из других систем. Позже, чтобы повысить точность на всех типах радаров и при любых условиях, сеть обучили, используя изображения из всех систем вместе.
Затем мы вносили изменения в сеть, чтобы повысить её точность. Например, пробовали разные размеры для первых свёрточных слоёв, разную глубину сети и разные нормализации на слое входных изображений.
Развёртывание и планы на будущее
Чтобы интегрировать в системы Wavex окончательно обученную сеть и алгоритмы, создать автономное приложение, мы воспользовались компилятором MATLAB. Это позволило быстро перевести разработку и обучение модели в эксплуатационную среду — для автоматизированного контроля качества.
В созданном приложении сканируется каждое декартово сечение изображения. Эти изображения извлекаются из сгенерированных бортовой радиолокационной системой полярных изображений, затем классифицируются, а результаты классификации вместе со всеми другими измерениями сохраняются в базе данных, к которой позже обращаются из программного обеспечения Wavex.
После этой интеграции визуализации MATLAB применялись для проверки работы системы в различных условиях: при использовании автоматического обнаружения осадков и ослабления ветра и при базовом уровне без такого обнаружения.
На рисунке 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
Все курсы