Конкурс: Найди протечку с помощью Python

29.11.2023
Найди протечку с помощью Python

Попробуй создать собственный течеискатель/искатель протечек с помощью машинного обучения. Это проще, чем звучит! Тебе нужен телефон, компьютер и простой водопроводный кран. А еще, конечно, знание языка Python и решительный настрой на победу.

8000

Советы и рекомендации

Любую аварию легче предупредить, чем устранить – это знает каждый инженер. Секрет успеха в своевременной профилактике и диагностике. Здесь на помощь человеку приходят роботы и специально обученный машинный интеллект. Одна из методик неразрушающего контроля – звуковая или шумовая диагностика. Неожиданно раздался шум льющейся воды? Самое время навести порядок с трубами! А если человека рядом нет, сигнал о возможной протечке может дать робот-контролер — надо его только этому научить. Как? С помощью микрофона, водопроводного крана и спектрального анализа данных. Если ты уже владеешь Python, то наверняка справишься.

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

Все участники получат по 1000 баллов, а самых способных кодеров ждут супер-бонусы: 7000, 5000 и 3000 баллов, которые можно обменять на фирменную продукцию «Атомариума»!

СРОКИ ПРОВЕДЕНИЯ КОНКУРСА: до 29 февраля 2024

Нам понадобится: 

  • Акустический датчик – это может быть обычный телефон (микрофон), диктофон или любое другое устройство для записи звука. 
  • Экспериментальная установка — в нашем случае обычный водопроводный кран.
  • Компьютер с установленной и настроенной на работу программой Python.

Алгоритм работы следующий: 

Шаг 1. Выполняем сбор данных с экспериментальной установки. То есть с помощью звукозаписывающего устройства (телефона или диктофона) записываем данные в течение 6 минут: минута записи при закрытом кране (без течи), минута – при открытом (с течью), потом еще 2 минуты без течи и 2 минуты с течью.

Ура, сбор данных осуществлен!

Шаг 2. Загружаем данные с помощью средств языка программирования Python для чтения аудиофайлов Waveform (WAV-файлов). 

Python для работы с аудиофайлами предоставляет модуль pydub — изначально он не встроен в программу, но может быть легко доустановлен: достаточно ввести в командную строку “pip install pydub”. С помощью pydub выполняем предобработку собранных данных. 

Можно также использовать python-библиотеку Librosa для анализа аудиоданных. С ее помощью можно легко построить спектрограмму построить и визуализировать процесс аналитики аудио. 

Выбирай удобный и подходящий тебе вариант. Или придумай свой!

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

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

Шаг 5. Создаем вектор целевой переменной с 0 и 1, где значение 0 – нет течи, то есть звука льющейся воды, а 1 — есть течь, запись звука при открытом кране. Встраиваемый вектор должен быть равен по длине количеству секунд. 

Шаг 6. Самое время сделать спектральный анализ данных. Построй спектр и спектрограммы акустического сигнала. Найди на спектрограмме момент начала и окончания течи и определи точное время. 

Шаг 7. Выдели информативные частоты со спектров. 

Шаг 8. Обучи модель для классификации наличия течи. 

Оцени точность модели на отложенной выборке (на которой не обучалась модель) с помощью встроенных в Python метрик для задачи классификации: например, это может быть f-мера, precision и recall.

Шаг 9. А теперь сделай вывод и оформи отчет о проделанной работе.


Отчет можно подготовить в свободной творческой форме, главное - в формате видео, указав порядок действий и продемонстрировав получившуюся спектрограмму и обучающие команды. 

Оценивать работу будет жюри:

Дмитрий Распопов – эксперт отдела искусственного интеллекта компании Цифрум» (Росатом), старший преподаватель отделения ядерной физики и технологий в НИЯУ МИФИ

Ларионов Денис – начальник отдела искусственного интеллекта компании «Цифрум» (Росатом)

Бегларян Нане – инженер отдела предиктивного анализа отдела искусственного интеллекта компании «Цифрум» (Росатом)

Стань частью сообщества Атомариум!

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