/mipt

Primary LanguageHTMLApache License 2.0Apache-2.0

Система автоматического обнаружения и анализа трещин

Описание проблемы

Проблема трещин в материалах это довольно распространенное явление, причиной которого может служить множество факторов

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

  • Температурные воздействия: Резкие изменения температуры могут вызывать расширение и сжатие материалов. При этом происходят внутренние напряжения, которые могут привести к появлению трещин.

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

  • Усталость материала: При повторном нагружении материал может испытывать усталостные разрушения. Постепенное накопление микротрещин может привести к образованию трещин большего размера.

  • Неправильная установка или монтаж: Неправильное соединение материалов или некачественный монтаж могут создать условия для появления трещин.

  • Естественный износ: Время и естественные процессы старения могут привести к постепенному разрушению материалов и появлению трещин.

Данная проблема является является довольно распространенной и может приводить к различным негативным последствиям

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

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

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

  • Увеличение распространения трещин: Микротрещины могут постепенно расширяться под воздействием нагрузок или циклов нагрева-охлаждения. Это может привести к увеличению размеров трещин и ухудшению общего состояния конструкции со временем.

  • Разрушение и аварии: Если трещины важных компонентов или конструкций не обнаруживаются и не ремонтируются своевременно, они могут привести к полному разрушению или аварии. Например, трещины в мостовых конструкциях или крылах самолета могут вызвать серьезные происшествия.

  • Дорогостоящий ремонт и замена: Если трещины обнаруживаются на поздних стадиях, их ремонт или замена может быть сложной и дорогостоящей процедурой. Это может привести к значительным расходам на ремонт и простои в процессе восстановления систем и конструкций.

Существующие способы обнаружения трещин

Существуют различные способы обнаружения трещин в материалах

  • Визуальный осмотр: Это базовый метод, при котором трещины и дефекты ищутся непосредственно визуально. Оператор внимательно исследует поверхность материала, ищет видимые трещины, пятна или другие аномалии.

  • Магнитный контроль: Этот метод применяется для обнаружения трещин в металлических материалах. Он основан на использовании магнитного поля, которое изменяется при наличии трещин или других дефектов. При применении магнита или электромагнитной обмотки к поверхности материала можно обнаружить магнитные аномалии, указывающие на наличие трещин.

  • Ультразвуковой контроль: В этом методе используется эхолот (ультразвуковой прибор), который излучает ультразвуковые волны через материал. При наличии трещины волны отражаются обратно, и на основе анализа эхосигнала можно обнаружить трещины и определить их размеры и местоположение.

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

  • Вихретоковый контроль: Этот метод используется для обнаружения трещин и дефектов на поверхности проводящих материалов. При прохождении переменного магнитного поля через проводник возникают вихревые токи, и наличие трещин изменяет эти токи. Измерение изменений вихревых токов позволяет обнаружить трещины и оценить их характеристики.

Автоматическое обнаружение и анализ трещин в различных типах материалов

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

Конечные потребители

  • Специалисты по неразрушающему контролю. Проверка без внешнего воздействия на исследуемый объект. Автоматизированное рабочее место для оценки и анализа полученных изображений. Поиск трещин и оценка износа каркасов зданий. Снижение трудозатрат при обработке большого объема информации Пример - наружный осмотр многоэтажной гостиницы с использованием дронов.

  • Автоматизированный контроль качества. Отбраковка продукции. Пример - контроль качества производства плитки.

  • Геоинформационные системы. Накопление статистики о дорожных трещинах с целью выявления потенциально опасных участков местности. Пример - детекция изменений в нижележащим грунте за счет увеличения количества трещин или их размеров на дороге.

  • Научные исследования. Исследования изменений структуры материалов под воздействием разных типов нагрузок для определение потенциально слабых мест в конструкциях на основе исследуемого материала. Пример - сопоставление типа и силы воздействия с появлением трещин в материале.

Технологическая демонстрационная версия

Используемые технологии

Для реализации были выбраны следующие технологии

  • DeepCrack: архитектура для сегментации трещин.

  • DeepSegmentor: имплементация на PyTorch и готовые веса для модели.

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

  • OpenCV: компьютерная библиотека для загрузки, предобработки изображения и анализа результатов работа DeepSegmentor.

  • ASP.NET Blazor: фреймворк для реализации web интерфейса демонстрационной версии.

  • Язык программирования C#.

Возможности

Демонстрационная версия позволяет найти трещину на тестовом изображении участка дороги с асфальтовым покрытием и проанализировать ее. В результате анализа возможно получить

  • контур трещины

  • зоны для каждой трещины в отдельности

  • примерный процент поврежденной поверхности

Ограничения

Выбранные технологии позволяют автоматизировать только визуальный осмотр. Для поддержки остальных типов входных изображений необходимо провести дополнительное обучение (fine tuning) либо обучение сети другой архитектуры. При этом как интерфейс так и само приложения имеет возможность модернизации для поддержки новых типов сетей и весов.

Преимущества выбранного метода

  • Автоматический процесс анализа изображения и конструирования признаков. Также позволяет находить неявные связи избегая при этом ручного анализа данных.

  • Адаптивность к шуму, освещенности и параметрам анализируемого изображения.

  • Возможность дополнительного обучения для распознавания новых типов изображений а также потенциальной поддержки неизвестных ранее типов изображений за счет структурной схожести дефектов.

  • Масштабируемость за счет поддержки графических ускорителей и параллелизации вычислений во встроенной среде выполнения onnxruntime.

  • Возможность замены одних моделей другими а также возможность создания комбинации моделей для улучшения качества распознавания или поддержки мультимодальных входных данных (например аудио акустический метод + видео визуальный метод).

Рабочий интерфейс

Технологическая демонстрационная версия представляет собой интерактивное web-приложение.

Демонстрация работы доступна на видеохостинге youtube:

https://youtu.be/JRqa7npqdaw

Исходный код

Исходный код расположен в репозитории github по адресу

https://github.com/dront78/mipt

Технические детали и структура проекта

Проект создан на основе кроссплатформенного фреймворка ASP.NET 6.0 компании Microsoft на основе шаблона Blazor server

dotnet new blazorserver

Основные изменения по сравнению с шаблоном по умолчанию включают

  • каталог Data

    • DetectService.cs

      Асинхронный сервис для анализа изображения.

    • Model.cs

      Конвейер (pipeline) детектора трещин на основе модели DeepCrack.

    • Processor.cs

      Вспомогательный класс для отрисовки результатов детекции.

  • каталог Pages

    • Detect.razor

      Интерактивная web-страница для загрузки изображения и демонстрации результатов детекции.

  • Dockerfile

    Файл для создания контейнера Docker с приложением готовым к развертыванию и выполнению.

  • Измененное оформление и стили МФТИ Deep Learning School.

Технические детали интеграции нейронной сети

Веса для модели DeepSegmentor получены из публичных источников с помощью команды

gdown --id 12-iXK656aGUIWCtN9gb0Ko7qotyn9ZcI -O latest_net_G.pth

и преобразованы в формат ONNX с помощью встроенного pytorch конвертера

with torch.no_grad():
    net.eval()
    opset_version = 11
    dummy_input = torch.randn((1, 3, 384, 544), device="cpu")
    torch_script_graph, unconvertible_ops = torch.onnx.utils.unconvertible_ops(
        net, dummy_input, opset_version=opset_version)
    print(set(unconvertible_ops))

    onnx_filename = '%s_net_%s.onnx' % (epoch, name)
    onnx_path = os.path.join(self.save_dir, onnx_filename)
    torch.onnx.export(net, dummy_input, onnx_path, opset_version=opset_version, input_names=['input'],
                    output_names=['side_output1', 'side_output2', 'side_output3', 'side_output4', 'side_output5', 'fused'],
                    verbose=True,
                    do_constant_folding=False,
                    keep_initializers_as_inputs=True)
    checker.check_model(onnx_path, True)
    print('done')

Полученный файл сохранен wwwroot/model/model.onnx

Модель работает со входными RGB изображениями 3x544x384 пикселя передающимися в нормализованном виде на вход input и возвращает результат детекции в виде массива размерностью 1x544x384 с результатом детекции.

Для решения задачи детекции были дополнительно написаны функции Normalize, Sigmoid и MinMaxScale для работы с моделью, а также Scale, CenterCrop и DrawContours для работы со входным и выходным изображениями. Указанные функции доступны в исходном коде репозитория github и снабжены комментариями.

Датасеты

Развертывание

Демонстрационная версия продукта упакована в docker контейнер и размещена по адресу. https://hub.docker.com/repository/docker/dront78/mipt/general

Работоспособность модели можно проверить с помощью

docker run -p 8080:8080 dront78/mipt

после чего открыть http://127.0.0.1:8080 страницу в бразуере, если проверка происходит на локальном компьютере.

Демонстрация работы в среде Play with Docker опубликована на видеохостинге YouTube

https://youtu.be/JRqa7npqdaw

Сборка контейнера осуществляется с помощью Dockerfile находящегося в корневой папке проекта

dotnet publish -c Release
docker build .

Заключение и выводы

Проделанная работа показывает возможности машинного обучения по автоматизации процесса детектирования и анализа трещин в материалах. Для демонстрации технологии была выбрана доступная публично модель DeepSegmentor. Модель была преобразована в ONNX формат, что позволяет адаптировать и использовать ее в различных средах исполнения от настольных компьютеров до встраиваемых устройств. Дополнительная постобработка позволяет анализировать параметры трещины и принимать решение о восстановлении или замены поврежденного участка. Результаты работы опубликованы ввиде исходного кода а также docker контейнера.