Оптоволоконный микрофон

Идея
Использовать технологию распределенных оптических микрофонов для контроля протяженных объектов: трубопроводы, железные дороги, контроль периметров наземных объектов и т.п.
Задача
К нам обратился разработчик оптоволоконного оборудования, которое позволяет получать информацию звуковую информацию от оптоволокна длиной до 40 км.
Оборудование работает так. Каждые 10 миллисекунд прибор отправляет короткий когерентный лазерный импульс в оптоволокно. Импульс рассеивается на дефектах оптоволокна, часть рассеянного света возвращается в обратном направлении. Чем дальше вдоль волокна расположена точка рассеяния, тем позже вернется обратный сигнал. В результате прибор фиксирует график мощности рассеянного сигнала вдоль волокна. Следующий импульс отправляется на 10 миллисекунд позже. За это время оптоволокно слегка смещается в пространстве за счет звуковых колебаний, совсем как чувствительная мембрана в обычном микрофоне. Из-за смещения оптоволокна картина рассеяния следующего импульса слегка отличается от картины рассеяния предыдущего импульса. Вот эту разницу и фиксирует прибор. И так 1000 раз в секунду.
На выходе мы имеем поток данных как если бы каждые 10 метров оптоволокна были цифровым микрофоном с сигналами до 1 Кгц. Поток данных с прибора при этом составляет 1Gbit.
В этом потоке данных шумят пешеходы, животные, автомобили, поезда, пролетающие вертолеты и прочие источники шумов. Нам нужно было создать систему, которая из этого потока данных позволяет понять, какой объект шумит, и на каком расстоянии источник шума.
Особенности физической реализации технологии является высокий уровень шумов в потоке данных. При этом человек видит нужные объекты в потоке данных, представленном в виде спектрограммы, развернутой по времени. Нужно было создать программное решение, которое позволяет в режиме реального времени обрабатывать поток данных, эффективно определяя тип источников.
Решение
1. Использовали GPU как способ параллельной обработки потоковых сигналов. Процессорных мощностей просто не хватило.
2. Разделили задачи детектирования сигнала и определения типа сигнала. Попытка обработать вычислительно сложными алгоритмами весь поток данных даже на GPU привело к тому, что мы смогли обработать данные только с 2-4 км оптоволокна. Мы натренировали каскад Хаара, заточенный специально для детектирования полезного сигнала. На этом этапе вычленялась небольшая доля областей, в которых определялось наличие полезного сигнала.
3. Last but not least. Последний и самый сложный этап. Определение типа сигнала. Здесь мы применили нашу разработку Auto Machine Learning System. Эта наша система, которая позволяет провести десятки и сотни тысяч экспериментов по созданию алгоритмов классификации, когда заранее не понятно, какие именно классы алгоритмов покажут наибольшую точность при заданных ограничениях на вычислительную сложность алгоритма.
Здесь пришлось попотеть как нам, так и Заказчику. Для эффективной тренировки алгоритмов распознавания пришлось собрать и пометить различными типами объектов многие терабайты данных. И только после этого приступить к экспериментам по тренировке распознающих алгоритмов.
Первые тысячи экспериментов показали, наибольший потенциал в нашей задаче у многослойных (глубоких) сверточных нейронных сетей.
На следующем подходе из всех классов алгоритмов мы оставили только нейронные сети и дальше работали только с нейронными сетями, экспериментируя только с их топологией.
Глубокие многослойные нейронные сети хорошо приспособлены видеть паттерны в изображениях, аудио и видео потоке. И в нашем случае нейронные сети научились распознавать и различать наличие паттернов в исходном сигнале – будь то идущий пешеход, работающий автомобиль или работающий бульдозер и многое другое.
Технологии
Python, Tensor Flow, Scikit learn
MySQL, jQuery, JavaScript
php, Codeigniter, Html5/css3
Команда
Руководитель проекта, Machine Learning Arcitector, 2 Data Scientist, Android разработчик, QA специалист
Срок
4 месяца
Результат
Мы создали систему, которая в реальном времени видит нужные объекты потоке данных с распределенного оптоволоконного микрофона с точностью 90-95% с низким уровнем ложного срабатывания от естественных помех, таких как ветер или стационарных помех, таких как постоянно работающее оборудование.
Мы слышим идущего вдоль трубопровода человека или едущий автомобиль, слышим попытку сверлить трубу и умеем считать колесная пары, которые стучат в поезде как «та-дам-та-дам».