ОБНАРУЖЕНИЕ ДЕФЕКТОВ В СТРОИТЕЛЬНЫХ МАТЕРИАЛАХ ПРИ ПОМОЩИ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Аннотация и ключевые слова
Аннотация (русский):
Данная статья посвящена проблеме автоматического обнаружения дефектов в строительных материалах и использованию глубокого обучения и распознавания образов для решения этой задачи. В статье описаны различные методы, которые могут быть использованы для решения этой проблемы, включая трансферное обучение, увеличение данных и тонкую настройку, а также обсуждаются преимущества и ограничения каждого подхода. В статье также описана архитектура сверточной нейронной сети (CNN), которая может быть использована для обнаружения дефектов в строительных материалах, с указанием назначения и функциональности каждого слоя. Кроме того, в статье представлены математические формулы, необходимые для данного подхода, включая операцию свертки, функцию активации ReLU, операцию максимального объединения, операцию отсева и сигмоидную функцию активации. В целом, в статье подчеркивается потенциал глубокого обучения и распознавания образов в контроле качества строительных материалов, а также преимущества, которые автоматизированные системы могут принести строительной отрасли. Использование этих технологий может повысить эффективность, снизить затраты и улучшить качество строительных проектов, что в конечном итоге приведет к созданию более безопасных и долговечных конструкций.

Ключевые слова:
строительство, информационные технологии, реставрация, искусственный интеллект, сверточные нейронные сети
Текст

Вступление

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

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

Методы

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

  • Машинное обучение под наблюдением: В этом методе модель машинного обучения обучается на наборе данных маркированных изображений строительных материалов. Набор данных может включать как бездефектные, так и дефектные образцы материалов. Модель учится различать бездефектные и дефектные изображения путем выявления на них паттернов и особенностей, указывающих на дефекты. После обучения модель можно использовать для анализа новых изображений строительных материалов и выявления дефектов. Для обучения модели требуется большой набор данных помеченных изображений. Метки могут быть присвоены экспертами вручную или получены с помощью автоматизированных методов обнаружения дефектов. Набор данных должен включать репрезентативный диапазон дефектов, которые могут встречаться в строительных материалах. Используемый алгоритм машинного обучения может быть любым алгоритмом контролируемого обучения, таким как опорные векторные машины (SVM), случайные леса или нейронные сети.
  • Неконтролируемое машинное обучение: В этом методе для выявления дефектов строительных материалов используются алгоритмы машинного обучения без надзора, такие как кластеризация или обнаружение аномалий. Алгоритм анализирует закономерности в данных изображения и выявляет любые аномалии или выбросы, которые могут свидетельствовать о дефектах. В отличие от контролируемого обучения, для обучения алгоритма не требуется набор меченых данных. Вместо этого алгоритм способен выявлять дефекты, изучая естественные вариации в данных изображения. Для реализации этого метода можно использовать различные алгоритмы кластеризации, такие как K-means, DBSCAN или иерархическая кластеризация. Для выявления дефектов также могут использоваться методы обнаружения аномалий, такие как анализ главных компонент (PCA), лес изоляции или одноклассовые SVM.
  • Глубокое обучение: В этом методе алгоритмы глубокого обучения, такие как сверточные нейронные сети (CNN), используются для анализа изображений строительных материалов и выявления дефектов. CNN могут быть обучены на больших массивах данных помеченных изображений для точного обнаружения дефектов на новых изображениях. CNN работают путем обучения иерархии характеристик изображений, начиная с низкоуровневых характеристик, таких как края, и постепенно переходя к более сложным характеристикам, которые могут различать различные типы дефектов. Для обучения модели CNN для обнаружения дефектов в строительных материалах требуется большой набор данных помеченных изображений. Метки должны включать различные типы дефектов, которые могут встречаться в строительных материалах. Модель CNN может быть разработана с использованием различных архитектур, таких как ResNet, Inception или VGG.
  • Трансферное обучение: В этом методе в качестве отправной точки используется предварительно обученная модель машинного обучения, которая была обучена на большом наборе изображений, например ImageNet. Затем предварительно обученная модель настраивается на меньшем наборе изображений строительных материалов. Такой подход позволяет сэкономить время и ресурсы на обучение модели с нуля и повысить точность обнаружения дефектов. Для реализации этого метода можно использовать предварительно обученную модель, такую как VGG, ResNet или Inception. Затем предварительно обученная модель адаптируется к конкретной задаче обнаружения дефектов в строительных материалах путем ее тонкой настройки на меньшем наборе данных маркированных изображений строительных материалов.
  •  Методы обработки изображений: В этом методе для предварительной обработки изображений строительных материалов и выделения дефектов используются такие методы обработки изображений, как определение краев, пороговое выделение и фильтрация. Эти методы могут быть объединены с алгоритмами машинного обучения для повышения точности обнаружения дефектов. Для реализации этого метода различные методы обработки изображений, такие как обнаружение краев Канни, пороговая обработка Оцу или гауссова фильтрация, могут быть использованы для предварительной обработки изображений строительных материалов. Затем обработанные изображения могут быть переданы в алгоритм машинного обучения, такой как SVM или нейронные сети, для обнаружения дефектов.

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

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

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

Таблица 1. Плюсы и минусы использования глубокого обучения

Плюсы

Минусы

Высокая точность определения дефектов

Требуется большое количество помеченных данных для обучения

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

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

 

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

Может быть неэффективным при обнаружении определенных типов дефектов, которые трудно зафиксировать на изображениях

Может быть обучен для обнаружения нескольких типов дефектов

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

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

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

Результаты

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

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

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

  1.     Сверточный слой с 32 фильтрами и размером ядра 3x3: Это первый слой в CNN, который свертывает входное изображение с 32 фильтрами размером 3x3 для извлечения особенностей из изображения.
  2.     Функция активации ReLU: Выход конволюционного слоя проходит через функцию активации Rectified Linear Unit (ReLU), которая вносит нелинейность в модель и помогает улучшить ее способность к изучению сложных паттернов.
  3.     Слой MaxPooling с размером пула 2x2: этот слой понижает выборку карт признаков, полученных в предыдущем слое, беря максимальное значение каждого блока пикселей 2x2. Это уменьшает пространственные размеры карт признаков и помогает уменьшить перебор.
  4.     Сверточный слой с 64 фильтрами и размером ядра 3x3: Этот слой применяет еще одну операцию свертки к картам признаков, полученным от предыдущего слоя, используя 64 фильтра размером 3x3.
  5.     Функция активации ReLU: Выход второго сверточного слоя снова пропускается через функцию активации ReLU.
  6.     Слой MaxPooling с размером пула 2x2: Еще один слой max pooling применяется к картам признаков, полученным от второго сверточного слоя.
  7.     Слой Flatten: Этот слой преобразует двумерные карты признаков, полученные от предыдущего слоя, в одномерный вектор признаков, который может быть введен в слой с полным подключением.
  8.     Плотный слой со 128 нейронами: Этот слой представляет собой полностью связный слой со 128 нейронами, который применяет линейное преобразование к входному вектору признаков.
  9.     Функция активации ReLU: Выход плотного слоя пропускается через функцию активации ReLU.
  10.     Выпадающий слой с коэффициентом 0,5: этот слой случайным образом отбрасывает 50% нейронов предыдущего слоя во время обучения, что помогает предотвратить переподгонку.
  11.     Выходной слой с сигмоидной функцией активации: Это последний слой в CNN, который применяет сигмоидную функцию активации к выходу предыдущего слоя. Это сопоставляет выход с вероятностью от 0 до 1, указывающей на вероятность того, что входное изображение является дефектным или недефектным.Обучение модели: После разработки архитектуры модели следующим шагом является обучение модели глубокого обучения на наборе данных помеченных изображений. Для этого необходимо скомпилировать модель с подходящей функцией потерь, оптимизатором и метрикой оценки, а затем подогнать модель к обучающим данным. В этом примере мы будем использовать бинарную перекрестную энтропию в качестве функции потерь, Adam в качестве оптимизатора и точность в качестве метрики оценки.
  12.     Оценка модели: После обучения модели следующим шагом будет оценка ее эффективности на отдельном тестовом наборе данных. Это предполагает использование обученной модели для предсказания меток тестовых изображений и сравнение предсказанных меток с истинными. В этом примере мы рассчитаем точность, прецизионность, отзыв и F1 score модели.
  13.     Развертывание: Наконец, обученная модель может быть развернута в виде программного продукта для автоматизированного контроля качества строительных материалов с помощью распознавания изображений. Это предполагает создание пользовательского интерфейса, который позволит пользователю загружать изображения строительных материалов и получать отчет о том, является ли материал дефектным или нет. В этом примере мы создадим простой пользовательский веб-интерфейс с помощью Flask.

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

y_ij = Σ_k,l (x_i+k,j+l * w_k,l) + b

В этой формуле x - входное изображение, w - сверточный фильтр, b - член смещения, а y - выходная карта признаков. Операция свертки применяет фильтр к каждому участку входного изображения и создает карту признаков, которая отражает наличие определенных признаков на изображении.
2. Функция активации выпрямленного линейного блока (ReLU):

f(x) = max(0,x)

Функция активации ReLU применяет нелинейное преобразование к выходу конволюционного слоя. Она устанавливает любые отрицательные значения в ноль, эффективно внедряя нелинейность в модель и позволяя ей изучать более сложные паттерны.
3. Операция максимального объединения:

y_ij = max_k,l (x_i+k,j+l)

Операция max pooling уменьшает выборку карт признаков, полученных от конволюционных слоев, путем взятия максимального значения в каждом блоке пикселей 2x2. Это уменьшает пространственные размеры карт признаков и помогает предотвратить перебор.
4. Операция отбрасывания:

f(x) = {
0, с вероятностью p
x / (1-p), иначе
}

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

f(x) = 1 / (1 + e^(-x))

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

Реализация программы на языке Python выглядит следующим образом:

# импортировать необходимые библиотеки
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.losses import binary_crossentropy
from tensorflow.keras.metrics import Accuracy, Precision, Recall
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from sklearn.metrics import classification_report
from flask import Flask, request, jsonify
# создать приложение Flask
app = Flask(__name__)
# определяем архитектуру модели
model = Sequential([
    Conv2D(32, (3,3), activation='relu', input_shape=(256,256,3)),
    MaxPooling2D((2,2)),
    Conv2D(64, (3,3), activation='relu'),
    MaxPooling2D((2,2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dropout(0.5),
    Dense(1, activation='sigmoid')
])
# компилируем модель
model.compile(optimizer=Adam(), loss=binary_crossentropy, metrics=[Accuracy(), Precision(), Recall()])
# загружаем данные для обучения и тестирования
train_data_gen = ImageDataGenerator(rescale(1./255), shear_range=0.2, zoom_range=0.2, horizontal_flip=True)
train_generator = train_data_gen.flow_from_directory('train', target_size=(256,256), batch_size=32, class_mode='binary')
test_data_gen = ImageDataGenerator(rescale=1./255)
test_generator = test_data_gen.flow_from_directory('test', target_size=(256,256), batch_size=32, class_mode='binary')
# обучить модель
model.fit(train_generator, epochs=10, validation_data=test_generator)
# оценить модель
test_loss, test_acc, test_precision, test_recall = model.evaluate(test_generator, verbose=0)
y_pred = model.predict(test_generator)
y_pred = np.round(y_pred).astype(int)
report = classification_report(test_generator.classes, y_pred)
# Определите маршрут для пользовательского интерфейса
@app.route('/predict', methods=['POST'])
def predict():
# получить загруженное изображение
img = request.files['image'].read()
# предварительная обработка изображения
img = cv2.imdecode(np.fromstring(img, np.uint8), cv2.IMREAD_COLOR)
img = cv2.resize(img, (256, 256))
img = np.expand_dims(img, axis=0)
img = img/255.0
# сделать предсказание
pred = model.predict(img)[0][0]
if pred > 0.5:
result = 'defective'
else:
result = 'non-defective'
# вернуть результат
return jsonify({'result': result})
# запустить приложение
if name == 'main':
app.run(debug=True)
# сохранить модель
model.save('quality_control.h5')
vbnet

В данной реализации сначала импортируются необходимые библиотеки, а затем определяется архитектура модели, используя последовательную модель с несколькими сверточными слоями, слоями максимального объединения, плотными слоями и слоем отсева для предотвращения переборки. Затем компилируем модель, используя бинарную перекрестную энтропию в качестве функции потерь, Adam в качестве оптимизатора, а точность, прецизионность и отзыв в качестве метрик оценки. Далее загружаем обучающие и тестовые данные с помощью генератора данных изображений и обучаем модель с помощью метода подгонки. Затем, оцениваем производительность модели с помощью метода evaluate и вычисляем точность, точность, отзыв и F1 score с помощью функции classification_report. Наконец, определяем приложение Flask, которое позволяет пользователю загрузить изображение и получить отчет о том, является ли материал дефектным или нет. Также, сохраняем обученную модель в виде файла .h5 для последующего использования.

Выводы

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

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

Список литературы

1. Гинзбург А.В., Адамцевич Л.А., Адамцевич А.О. Строительная отрасль и концепция "Индустрия 4.0": обзор//Вестник МГСУ. 2021. Т. 16. № 7. С. 885-911.

2. Шилов Л.А., Шилова Л.А. Подход к управлению жизненным циклом строительного объекта на основе bim-технологий//Научно-технический вестник Поволжья. 2019. № 2. С. 86.

3. Шилова Л.А. Информационная поддержка управления объектами жизнеобеспечения с учетом критериев инженерной и функциональной устойчивости на случай чрезвычайной ситуации//Информационные ресурсы России. 2014. № 6 (142). С. 24-27.

4. Ильинова В.В., Мицевич В.Д. Международный опыт использования BIM-технологий в строительстве//Российский внешнеэкономический вестник. 2021. № 6. С. 79-93.

5. Кисель Т.Н., Тюрин И.А. Особенности внедрения технологий информационного моделирования на российских предприятиях инвестиционно-строительной сферы// Финансовая экономика. 2020. № 3. С. 151-155.

6. Пустовгар А.П., Адамцевич А.О., Волков А.А. Технология и организация аддитивного строительства//Промышленное и гражданское строительство. 2018. № 9. С. 12-20. 15

7. Славчева Г.С. Строительная 3D-печать сегодня: потенциал, проблемы и перспективы практической реализации//Строительные материалы. 2021. № 5. С. 28-36.

8. Kazarova A., Shilov L., Adamtsevich L. Restoration of the historically valuable town-forming object “Shevaldyshevskoe courtyard, the second half of XVIII century’’ using building information modeling// Lecture Notes in Civil Engineering. 2022. Т. 231. С. 103-112.

9. Лосев К. Ю. Состав данных для информационной поддержки строительного объекта в его жизненном цикле The data scope for product lifecycle management of a construction object // Сборник материалов Международной научной конференции "Интеграция, партнерство и инновации в строительной науке и образовании" - Москва : Изд-во Моск. гос. строит. ун-та, 2017. С.441-444

10. Стифеева О.А. Исследование современного состояния жилищного фонда российской федерации// Научное обозрение. 2016. № 24. С. 51-56.

11. Li, Y., Peng, L., Wu, C., Zhang, J. Street View Imagery (SVI) in the Built Environment: A Theoretical and Systematic Review// Buildings. 2022. №12(8),1167.

12. Pang, H.E., Biljecki, F. 3D building reconstruction from single street view images using deep learning//International Journal of Applied Earth Observation and Geoinformation. - 2022.№112,102859


Войти или Создать
* Забыли пароль?