Дорожная дефектовка

Совместно с ведущим научно-производственным объединением России НПО Регион выполнены работы по разработке программного обеспечения для автоматического распознавания дорожных дефектов.

Computer vision
Deep learning
Torch
CUDA

2015

Совместно с

Коротко о главном

Задача

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

Решение

  • ПО для создания обучающих выборок
  • ПО для обучения модели распознавания дефектов на основе Torch, C++, CUDA
  • Алгоритм быстрого распознавания видео моделью со скоростью, близкой к FrameRate
  • Веб-панель для мониторинга и управления кластером GPU: обучение моделей, запуск распознавания дефектов, просмотр результатов
  • Уже автоматически распознано более 6000 км. дорог

Длинные дороги, большие проблемы

Как говорится, в России есть две основные проблемы, и одна из них — это дороги. Согласно Википедии, общая протяженность российской сети автодорог составляет 1 396 000 км. По протяженности дорожной сети Россия занимает пятое место в мире. С учетом протяженности и не всегда благоприятных климатических условий, задача поддержания хорошего состояния всей сети автодорог России, мягко говоря, является нетривиальной. Важно понимать, что данная проблема требует системного решения. Инвестирование в большое количество разрозненных ремонтных работ — это борьба с симптомами, а не лечение болезни.

Системный подход предполагает, что в начале мы должны понять проблему: в каком состоянии наши дороги, какие дороги требуют ремонта в первую очередь? Приведем пример: пусть имеются две дороги, которые требуют ремонта. Проводится детальная диагностика, и в результате делается вывод, что стоимость ремонта обоих участков примерно одинакова на текущий момент. Другой вывод по результатам диагностики может состоять в том, что через год на ремонт первой дороги потребуется в десять раз больше средств, чем на ремонт второй. Такое развитие событий может быть предсказано в результате детального анализа структуры и характера повреждений дорожного полотна. Таким образом, в условиях ограниченных ресурсов диагностика является краеугольным камнем.

Рис 1. Дорожная лаборатория
Рис 2. Пример видеокадра с лаборатории

Диагностика дорожного покрытия

В настоящее время диагностика дорожного покрытия проводится следующим образом. По исследуемому участку дороги проезжает машина, оборудованная различными измерительными приборами (в простейшем случае — аппаратурой видеосъемки). Показания датчиков фиксируются по мере движения автомобиля и позже обрабатываются операторами в ручном режиме. Как результат, получаем некоторый «паспорт» дороги, по которому делается заключение о характере, масштабах и срочности ремонтных работ.

В описанном методе диагностики есть одно узкое место: «ручная» обработка данных измерительных приборов. Для простоты, остановимся на обработке видеоизображения дорожного полотна. В данном случае, задача операторов состоит в ручной оцифровке дефектов дорожного покрытия. Т.е. вооружившись клавиатурой, мышью и специализированным программным обеспечением, операторам необходимо указать (читай — обвести) все дефекты, встречающиеся на исследуемом участке дороге. Представить, как люди обводят заплатки и выбоины на дорогах, еще можно, но как обвести все трещины и другие мелкие дефекты?

Решений по сути два: либо оценивать дефекты «грубо», серьезно ухудшая при этом качество диагностики, либо искать дефекты автоматически, используя современные методы машинного обучения — раздела области искусственного интеллекта.


Дорожная лаборатория снимает дорогу
На выходе получаем видеокадры съемки
Операторы приступают к размечанию кадров
Отчет по состоянию дороги отправляется заказчику
Схема 1. Процесс ручного распознавания дефектов

Построение модели

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

Рис 3. Дорожная дефектовка трещин: до и после
Рис 4. Дорожная дефектовка заплаток: до и после

Далее, имея данные и архитектуру модели, запускается процесс обучения, состоящий в подборе параметров модели так, чтобы полученная модель наилучшим образом «объясняла» имеющиеся в нашем распоряжении данные. После того как модель обучена, мы можем использовать ее для ответов на вопросы типа: есть ли дефекты на заданном видео-фрагменте? Если есть, то какие именно и где они расположены?

Технологии

Особенностью нейросетевых моделей является выполнение ими большого количества параллельных вычислений. Данная особенность не позволяет эффективно использовать нейросетевые модели на современных CPU, которые оптимизированы под последовательные вычисления. С другой стороны, графические процессоры (GPU) от компании NVIDIA специально спроектированы для эффективной работы параллельных вычислений. Как правило, скорость обучения и распознавания модели, работающей на GPU, в 50-100 раз выше, чем скорость функционирования той же модели на CPU.

Интеграция

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

Рис 5. Внутренняя страница веб-клиента


Уровни распределения процесса обучения:

  • Уровень №1: распределение на специальных подмножествах данных. Например, дорожная дефектовка: отдельная модель для каждой группы объектов (автомобили, дорожное полотно, трещины, заплатки и ямы, и т.д.)
  • Уровень №2: распределение на различном наборе гиперпараметров (идет подбор гиперпараметров самой модели и ее процесса обучения)
  • Уровень №3: обучение конкретной модели на GPU (NVidia Cuda)

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

Рис 6. Интерфейс приложения по работе с обучающими выборками и результатами распознавания


Для полного управления всем процессом был создан веб-клиент, который позволяет:

  • Полностью отслеживать состояние кластера машин и просматривать статусы всех выполненных и активных задач
  • Просматривать созданные обучающие выборки
  • Запускать процесс обучения модели с возможностью гибкой настройки всех параметров
  • Запускать процесс распознавания интересующих дорог и просматривать результаты

Видео-примеры распознанных трещин

Следующий проект

Рекомендательная система