Конкурс: Найди протечку с помощью Python
Попробуй создать собственный течеискатель/искатель протечек с помощью машинного обучения. Это проще, чем звучит! Тебе нужен телефон, компьютер и простой водопроводный кран. А еще, конечно, знание языка Python и решительный настрой на победу.
Любую аварию легче предупредить, чем устранить – это знает каждый инженер. Секрет успеха в своевременной профилактике и диагностике. Здесь на помощь человеку приходят роботы и специально обученный машинный интеллект. Одна из методик неразрушающего контроля – звуковая или шумовая диагностика. Неожиданно раздался шум льющейся воды? Самое время навести порядок с трубами! А если человека рядом нет, сигнал о возможной протечке может дать робот-контролер — надо его только этому научить. Как? С помощью микрофона, водопроводного крана и спектрального анализа данных. Если ты уже владеешь 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. А теперь сделай вывод и оформи отчет о проделанной работе.
Отчет можно подготовить в свободной творческой форме, главное - в формате видео, указав порядок действий и продемонстрировав получившуюся спектрограмму и обучающие команды.
Оценивать работу будет жюри:
Дмитрий Распопов – эксперт отдела искусственного интеллекта компании Цифрум» (Росатом), старший преподаватель отделения ядерной физики и технологий в НИЯУ МИФИ
Ларионов Денис – начальник отдела искусственного интеллекта компании «Цифрум» (Росатом)
Бегларян Нане – инженер отдела предиктивного анализа отдела искусственного интеллекта компании «Цифрум» (Росатом)