Сколько можно это делать вручную!? Ищем дефекты рельсов по ультразвуковым отпечаткам
Применение методов машинного обучения для поиска радиальных трещин болтовых отверстий железнодорожных рельсов по ультразвуковой дефектограмме.
1. Введение
Для обеспечения безопасности движения на железнодорожном транспорте регулярно проводится неразрушающий контроль рельсов с применением различных подходов и методов. Одним из основных подходов к определению эксплуатационного состояния железнодорожных рельсов является ультразвуковой неразрушающий контроль [1]. На настоящий момент поиск графических образов дефектов рельсов по получаемым дефектограммам выполняет человек. Успешное развитие алгоритмов для поиска и классификации данных позволяет предложить применения методов машинного обучения к выявлению дефектов рельсов и снизить нагрузку на человека путём создания экспертных систем.
Сложность создания таких систем описана в работах [1, 3-6, 22] и обусловлена с одной стороны разнообразием графических образов получаемых при многоканальном ультразвуковом обследовании рельсов, а с другой стороны малым количеством экземпляров данных с дефектами (не сбалансированность). Одним из возможных путей создания экспертных систем в этой области является подход на основе декомпозиции сложной задачи анализа всей многоканальной дефектограммы на отдельные каналы или их совокупности, характеризующие отдельные типы дефектов.
Одним из часто встречающихся дефектов рельсов является радиальная трещина болтового отверстия, именуемая в литературных источниках как «Star Crack» (рис.1). Данный тип дефекта в основном обнаруживается каналом дефектоскопа с предпочтительным центральным наклонным углом ввода ультразвука в диапазоне 380 - 450 [1-2]. Несмотря на планомерное внедрением на сети железных дорог бесстыкового пути диагностика болтовых отверстий является важной задачей [1-2], что послужило причиной для её выделения и рассмотрения в данной работе.
Цель работы: сравнить эффективности различных моделей машинного обучения при решении задачи классификации состояний болтовых отверстий железнодорожных рельсов при их ультразвуковом обследования.
Поставленная цель достигается путём решения следующих задач:
- формирование и подготовка набора данных,
- разведывательный анализ данных,
- выбор протоколов и метрик оценки работы алгоритмов,
- выбор и синтез реализаций моделей классификации,
- оценка эффективности моделей на тестовых данных.
2. Формирование и подготовка набора данных
При проезде по железнодорожному пути дефектоскопного устройства, оснащённого генерирующими пьезоэлектрическими преобразователями (ПЭП), в рельс с заданной периодичностью излучаются ультразвуковые импульсы. При этом принимающие ПЭП регистрируют отражённые волны. На принципе отражения волн от неоднородностей металла основана выявляемость дефектов ультразвуковым методом, так как трещины, включая и другие неоднородности, отличаются по своему акустическому сопротивлению от остального металла [1-5].
При ультразвуковом сканировании рельсов их конструктивные элементы и дефекты имеют акустические отклики, которые отображаются на дефектограмме в виде характерных графических образов (сканов). На рис.2 представлены примеры дефектограмм в виде B-scan («Bright-scan») участков рельс с болтовым соединением, которые получены измерительными комплексами различных типов при наклонном угле ввода ультразвука.
Отдельные сканы болтовых отверстий (фреймы) могут быть выделены из таких дефектограмм, к примеру, посредством применения амплитудных критериев (рис.3).
Ширина W и длина L каждого из фреймов одинакова (рис.3), и выбирается исходя из максимально возможных размеров сигнализации болтовых отверстий и их дефектов. Каждый такой фрейм (экземпляр) представляет собой часть B-scan и поэтому содержит данные о координате, глубине и амплитуде каждой точки данных каждого из двух каналов ввода ультразвука в рельс (+/- 400). В работе [3] такие фреймы данных преобразованы в матрицу формой (60, 75), размером 60*75=4500 элементов в градации серого цвета, построена и успешно обучена классификационная сеть на основе методов глубокого обучения. Однако в работе не рассмотрены альтернативные и менее ёмкие варианты форматов фреймов данных, не показаны возможности базовых методов и моделей машинного обучения, поэтому настоящая работа предназначена восполнить этот недостаток.
Различные формы радиальных трещин болтовых отверстий рельсов, их местоположения и отражающие свойства поверхности приводят к изменяющимся графическим образам и совместно с бездефектным состоянием порождают набор данных с возможностью выделения 7 классов. В практике бинарной классификации общепринято назначать класс «1» более редким исходам или интересующему состоянию, класс «0» - обычному состоянию. Применительно к выявлению дефектов определим для обычного и часто встречающегося на практике бездефектного состояния - класс «0», а дефектные состояния «1» - «6» . Каждый класс дефекта отображается на дефектограмме в виде характерного образа, который является различимым для экспертов в процессе расшифровки данных (рис. 4). Несмотря на то, что в процессе эксплуатации железнодорожного
полотна решающее значение имеет наличие или отсутствие дефекта (бинарная
классификация), мы рассмотрим возможности алгоритмов классификации и
количественно оценим какие типы дефектов имеют большую вероятность быть ложно
классифицированными как без дефектные, что является опасным случаем при
диагностике рельсов. Поэтому задача классификации сводится в данной работе к однозначной многоклассовой.
Каждый экземпляр класса может быть представлен в виде базовой структуры - прямоугольные данные. Для равенства размеров экземпляров установим длину табличного формата значением k = 60 записей (на 30% больше максимально возможного), пустые ячейки заполним нулевыми значениями (рис. 5a). Тогда исходный экземпляр может иметь форму (6, 60) или сводиться к виду плоского массива и описываться в 6*60=360 мерном пространстве (рис. 5с), а на графике в виде B-scan иметь вид рис. 5b.
Выбор протокола оценки
Сбор и аннотирование данных ультразвукового контроля рельсов сопряжёны со значительными трудностями, которые описаны в работе [3], поэтому будем использовать синтезированный набор данных, полученный при помощи математического моделирования. Суть такого подхода отражает рис. 6, а его применимость показана в работе [3]. Термин «синтезированные данные» широко обсуждается при создании визуальных объектов реального мира, к примеру, в блоге компании nVIDIA [23]. Настоящая работа расширяет применение синтезированных данных в область неразрушающего контроля.
Полученное на основе математического моделирования достаточно большое количество экземпляров данных позволяет уйти от проблемы редкого класса и выбрать протокол оценки моделей в виде отдельных сбалансированных наборов: тренировочного, проверочного и тестового. Ограничим наборы данных: training data = 50 000, test data = 50 000, validation data = 10 000 экземпляров.
Выбор меры успеха
Отсутствие разницы относительных размеров классов (баланс классов) позволяет выбрать в качестве меры успеха при обучении алгоритмов показатель точности как величину равную отношению количества правильно классифицированных экземпляров к их общему числу. Одиночная метрика не может оценить все аспекты применимости модели для ситуации, поэтому на этапе теста моделей используется матрица путаницы, показатели прецизионности и полноты для каждого классификатора класса.
3. Разведывательный анализ данных
Информация о балансе классов в тренировочном, тестовом и валидационном наборе представлена на рис.7.
Представление о распределении нормированных глубин сигнализаций и их координат для положительно канала измерения Сh+400 и классов 0, 2, 3, 6 показано на рис. 8. Распределения для Ch-400 и каналов 0, 1, 4, 5 имеют симметричную картину.
В качестве разведывательного анализа и определения избыточности данных был использован метод Principal Component Analisis (PCA), двумерное представление которого можно представить в виде рис. 9. Центральным классом является класс 0, от которого по разные стороны находятся классы 2, 3, 6 и 1, 4, 5, что соответствует их графическим отображением на B-scan.
В целом, двумерное представление классов имеет слабо выраженную кластеризацию, что указывает на необходимость использования более высокой размерности данных для их классификации в пределе до исходного плоского размера 6*60=360. Построенный график интегральной объяснимой дисперсии как функции от количества компонент метода PCA (рис. 10а) показывает, что при 80 компонентах объясняется уже 98% дисперсии, что свидетельствует о высоком уровне избыточности в исходных данных. Данное обстоятельство может быть объяснено разреженностью данных, что показывает независимость полученных 80 компонент метода PCA от нулевых значений (рис. 10b).
Рассмотрим оценку заполненности экземпляров данных отличными от нуля величинами для каждого класса (рис. 11).
Отметим:
1. Схожесть величин размахов и квартилей классов,
2. Класс 0 имеет самую низкую медиану, так как бездефектное состояние болтового отверстия лишено дополнительных сигнализаций от трещин,
3. Классы 5 и 6 имеют самые высокие значения медиан, свидетельствующие о высоком заполнении данными ввиду наличия сигнализаций от нижней и верхней радиальной трещины болтового отверстия,
4. Классы 1-4 имеют схожие значения медиан, свидетельствующие о заполнении данными ввиду наличия сигнализаций лишь от верхней или нижней радиальной трещины болтового отверстия,
5. Классы 1 и 2, 3 и 4, 5 и 6 соответственно имеют аналогичные медианы и распределения, ввиду симметричности данных относительно центра болтового отверстия.
6. Уровень в 80 компонент метода PCA находится ниже, чем медианы для классов 1-6, но является достаточным для описания 98% дисперсий, что может свидетельствовать об избыточности вызванной не только нулевыми значениями в данных. Возможным объяснением может быть тот факт, что амплитудные значения сигнализаций не сильно изменяются в каждом классе и имеют слабое влияние на дисперсию. Данный факт подтверждается практикой поиска дефектов, при которой дефектоскописты не часто используют параметр амплитуды.
В качестве оценки сложности предстоящей задачи классификации данных в рамках предварительного разведочного анализа (Exploratory Data Analysis) была изучена многомерная структура исходных данных, используя техники обучения многообразию (Manifold learning):
- Random projection embedding,
- Isometric Mapping (Isomap),
- Standart Locally linear embedding (LLE),
- Modified Locally linear embedding (LLE),
- Local Tangent Space Alignment embedding (LTSA),
- Multidimensional scaling (MDS) ,
- Spectral embedding,
- t-distributed Stochastic Neighbor Embedding (t-SNE),
и техники, которые могут быть использованы для контролируемого уменьшения размерности и позволяющие спроецировать данные в меньшую размерность:
- Truncated SVD embedding,
- Random Trees embedding,
- Neighborhood Components Analysis (NCA),
- Linear Discriminant Analysis (LDA).
Результаты работы алгоритмов по встраиванию данных из 3000 образцов изначальной формы (6, 60) в двумерное пространство представлены на рис.12
Для методов обучения многообразию (Manifold learning) данные на графиках плохо разнесены в параметрическом пространстве, что характеризует прогнозируемую сложность классификации данных простыми алгоритмами с учителем.
Отметим также, что метод контролируемого уменьшения размерности Linear Discriminant Analysis показывает хорошую группировку данных и может быть претендентом на модель классификации.
4. Разработка моделей классификации данных
4.1 Базовая модель
Точность прогноза каждого класса из семи возможных при случайном классификаторе составляет 1 / 7 = 0.143 и является отправной точкой для оценки статистической мощности (качества) будущих моделей.
В качестве базовой модели выберем, часто используемую в таких случаях, Гауссову наивную байесовскую. Фрагмент кода подгонки модели на тренировочных данных и её прогноз на тестовых:
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
batch = 50000
train_gen = Gen_2D_Orig_Arr(train_dir, batch_size=batch, num_classes=7)
Xtrain, ytrain = next(train_gen) # Xtrain.shape = (50 000, 6, 60, 1),
# ytrain.shape = (50 000, 7)
Xtrain = np.reshape(Xtrain, (batch, Xtrain.shape[1] * Xtrain.shape[2])) # Xtrain.shape = (50 000, 360)
ytrain = np.argmax(ytrain, axis=1) # ytrain.shape = (50 000,)
test_gen = Gen_2D_Orig_Arr(test_dir, batch_size=batch, num_classes=7)
Xtest, ytest = next(test_gen)
Xtest = np.reshape(Xtest, (batch, Xtest.shape[1] * Xtest.shape[2]))
ytest = np.argmax(ytest, axis=1) # ytest.shape = (50 000,)
model = GaussianNB()
model.fit(Xtrain, ytrain)
start_time = time()
y_model = model.predict(Xtest) # y_model.shape = (50 000,)
timing = time() - start_time
acc = accuracy_score(ytest, y_model)
print('acc = ', acc)
print(classification_report(ytest, y_model, digits=4))
mat = confusion_matrix(ytest, y_model) # mat.shape = (7, 7)
fig = plt.figure(figsize=(10, 6), facecolor='1')
ax = plt.axes()
sns.heatmap(mat, square=True, annot=True, cbar=False, fmt="d", linewidths=0.5)
plt.xlabel('сlass qualifiers')
plt.ylabel('true value');
print(f'{timing:.3f} s - Predict time GaussianNB')
Полученная матрица различий и сводный отчёт о качестве модели представлен на рис. 13a,b. Обученная модель обладает статистической мощностью, так как имеет общую точность равную 0.5819, что в 4 раза выше точности случайного классификатора. Несмотря на достаточно низкую точность модели, рассмотрим специфическую взаимосвязь качественных показателей её работы с графическим представлением спроецированных данных методом Linear Discriminant Analysis (рис.13с).
Спроецированные данные класса 6 наиболее удалены от большинства точек других классов (рис. 13с), что нашло отражение в высокой прецизионности его классификатора равной 0.9888, однако близость представления класса 3 сократило полноту классификатора 6 до величины 0.5688 за счёт ложно отрицательных прогнозов, которые выражены частотой ошибки равной 2164 в матрице различий.
Проекция класса 5 также удалена, что нашло отражение в высокой прецизионности его классификатора равной 0.9916, однако имеет пересечения с классами 1 и 4, которое повлияло на полноту классификатора равную 0.4163, за счёт ошибочных прогнозов с частотами 2726 и 1268 для классификаторов 1 и 4 соответственно.
Проекция класса 1 имеет пересечения с классами 5, 4, 0, при этом соответственно классификатор 1 имеет ложно положительное срабатывание с частотой 2726 на класс 5 и ложно отрицательные срабатывания с частотами 2035 и 3550 в пользу классификаторов 0 и 4.
Аналогичные взаимосвязи наблюдаются для других классов. Одним из интересных является поведение классификатора 0. Бездефектный класс 0 находится в середине проекций, что отвечает его графическому образу, который наиболее близок к классам 1, 2, 3, 4 и наиболее отличим от классов 5 и 6 (рис. 4). Классификатор 0 хорошо распознаёт свой класс данных, что обуславливает самый высокий показатель полноты равный 0.9928, но имеет многочисленные ложно положительные срабатывания в классах 1, 2, 3, 4 с прецизионностью 0.4224, то есть классы с дефектами часто классифицируются как класс без дефекта (класс 0), что делает Гауссову наивную байесовскую модель совершенно не пригодной для целей
распознавания дефектов. Полученный Гауссовый наивный байесовский классификатор достаточно прост для описания сложной структуры данных.
4.2 Модель классификатора Linear Discriminant Analysis (LDA)
Предварительный анализ на основе понижения размерности данных показал хорошую группировку классов в рамках метода Linear Discriminant Analysis (рис.12), что послужило мотивом для его использования в качестве одной из следующих моделей:
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda_model = LinearDiscriminantAnalysis(solver='svd', store_covariance=True)
lda_model.fit(Xtrain, ytrain)
y_model = lda_model.predict(Xtest)
acc = accuracy_score(ytest, y_model)
print(classification_report(ytest, y_model, digits=4))
mat = confusion_matrix(ytest, y_model)
fig = plt.figure(figsize=(10, 5), facecolor='1')
sns.heatmap(mat, square=True, annot=True, cbar=False, fmt='d', linewidths=0.5)
plt.xlabel('сlass qualifiers')
plt.ylabel('true value');
Результаты её обучения и прогноза представлены на рис.14. Общая точность модели составила 0.9162, что в 1.57 раза лучше точности базовой модели. Однако классификатор 0 имеет большое количество ложно положительных срабатываний на классы 2 и 4 и его прецизионность составляет всего 0.8027, что также является не удовлетворительным показателем для целей его практического применения.
Гипотеза о возможной нехватке обучающего набора данных для увеличения точности модели LDA не подтверждается, так как построенная «кривая обучения» представленная на рис. 15 показывает высокую сходимость зависимостей точности обучения и проверки на уровне 0.92 при размере обучающего набора 5000 – 6000 экземпляров:
from sklearn.model_selection import learning_curve
gen = Gen_2D_Orig_Arr(train_dir, batch_size=8000, num_classes=7)
x1, y1 = next(gen) # x1.shape = (8000, 6, 60, 1), y1.shape = (8000, 7)
x1 = np.reshape(x1, (batch, x1.shape[1] * x1.shape[2])) # x1.shape = (8000, 360)
y1 = np.argmax(y1, axis=1) # y1.shape = (8000,)
N, train_sc, val_sc = learning_curve(lda_model, x1, y1, cv=10,
train_sizes=np.linspace(0.04, 1, 20))
rmse_tr = (np.std(train_sc, axis=1))
rmse_vl = (np.std(train_sc, axis=1))
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(N, np.mean(train_sc, 1), '-b', marker='o', label='training')
ax.plot(N, np.mean(val_sc, 1), '-r', marker='o', label='validation')
ax.hlines(np.mean([train_sc[-1], val_sc[-1]]), 0,
N[-1], color='gray', linestyle='dashed')
ax.fill_between(N, np.mean(train_sc, 1) –
3 * rmse_tr, np.mean(train_sc, 1) +
3 * rmse_tr, color='blue', alpha=0.2)
ax.fill_between(N, np.mean(val_sc, 1) –
3 * rmse_vl, np.mean(val_sc, 1)+
3 * rmse_vl, color='red', alpha=0.2)
ax.legend(loc='best');
ax.set_xlabel('training size')
ax.set_ylabel('score')
ax.set_xlim(0, 6500)
ax.set_ylim(0.7, 1.02);
При попытке создания подобной системы классификации производители дефектоскопного оборудования сталкиваются со сложностью оценки зависимости предсказательной точности системы от количества экземпляров в наборе данных, которые необходимо получить в процессе диагностики рельсов. Полученная кривая обучения на основе модельных данных позволяет в этом случае оценить это количество в диапазоне 5000 – 6000 экземпляров, для достижения точности 0,92 в рамках применения алгоритма LDA.
Снижающаяся зависимость кривой обучения на тренировочных данных (синий цвет рис.15) классификатора LDA показывает, что он достаточно прост для сложной структуры данных и есть оправданная необходимость для поиска более сложной модели для повышения точности прогноза.
4.3 Полносвязная сеть (Dense)
Одним из вариантов увеличения точности прогноза является применение полносвязных сетей. Вариант такой структуры с найденными оптимальными параметрами с помощью инструмента Keras_tuner приведён на рис. 16а, точность модели выросла по сравнению с предыдущим методом до величины 0.974 (рис. 16b), а прецизионность классификатора нулевого класса до 0.912.
Поступательное движение по увеличению точности прогноза за счёт применения более сложных (затратных с вычислительной точки зрения) алгоритмов машинного обучения показывает оправданность действий по созданию все более сложных моделей.
4.4 Метод опорных векторов (SVM)
Использование алгоритма опорных векторов с ядром в виде радиальной базисной функции и перебором гиперпараметров модели по сетке используя класс GridSearchCV из библиотеки машинного обучения scikitlearn позволило получить модель с улучшенными качественными параметрами рис. 17.
Применение метода SVM увеличило как общую точность прогноза до 0.9793, так и прецизионность нулевого классификатора до 0.9447. Однако среднее время работы алгоритма на тестовом наборе данных в 50 000 экземпляров с исходной размерностью каждого 360 составило 9.2 с и является максимальным для рассмотренных классификаторов. Уменьшение времени работы модели за счёт применения пайплайнов в виде техник снижения размерности исходных данных и алгоритма SVM не позволило сохранить достигнутую точность.
4.5 Случайный лес
Классификатор RandomForestClassifier на основе ансамбля случайных деревьев реализованный в пакете scikitlearn является одним из кандидатов на повышение точности классификации рассматриваемых данных:
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=50)
Оценки качества работы алгоритма случайного леса из 50 деревьев на тестовом наборе представлены на рис. 18. Алгоритм позволил увеличить как общую точность прогноза до 0.9991, так и важный показатель в виде прецизионности нулевого классификатора до 0.9968. Классификатор нулевого класса ошибается более всего в близких по графическому представлению классах 1-4. Прецизионность классификаторов классов 1-4 является высокой и снижается за счёт ошибок в пользу 5 и 6 классов, что является не критичным в деле выявления дефектов.
Среднее время работы алгоритма по прогнозу тестового набора данных на CPU составило 0.7 с, что в 13 раз меньше времени работы SVM при увеличении точности на 0.02%.
Кривая обучения классификатора RandomForestClassifier представленная на рис. 19 показывает высокий уровень оптимальности построенной модели:
- при увеличении тренировочных данных эффективность модели не падает, что говорит об отсутствии эффекта недообучения,
- оценка эффективности на этапе обучения и проверки сходятся и имеют высокие значения с разностью не более 0.028, что может свидетельствовать об отсутствии переобучения модели.
Полученная кривая обучения позволяет оценить минимально требуемое количество образцов каждого класса для достижения приемлемой точности на уровне 0.98: 1550 экземпляров данных, то есть 1550 / 7 = 220 образцов на каждый из 7 классов.
Высокая точность и скорость алгоритма случайного леса позволяет произвести оценку величины влияния (важности) всех 360 предсказательных переменных на общую точность модели. Оценка проводилась путём получения усреднённой снижающейся точности модели при случайном перемешивании одной из переменных, что носило эффект удаления её предсказательной силы. Рис. 20 демонстрирует результат фрагмента кода оценки важности переменных на точность модели:
rf = RandomForestClassifier(n_estimators=10)
gen = Gen_2D_Orig_Arr(train_dir, batch_size=8000)
x1, y1 = next(gen) # x1.shape = (8000, 6, 60, 1), y1.shape = (8000, 7)
x1 = np.reshape(x1, (batch, x1.shape[1] * x1.shape[2])) # x1.shape = (8000, 360)
y1 = np.argmax(y1, axis=1) # y1.shape = (8000,)
Xtrain, Xtest, ytrain, ytest = train_test_split(x1, y1, test_size=0.5)
rf.fit(Xtrain, ytrain)
acc = accuracy_score(ytest, rf.predict(Xtest))
print(acc)
scores = np.array([], dtype=float)
for _ in range(50):
train_X, valid_X, train_y, valid_y = train_test_split(x1, y1, test_size=0.5)
rf.fit(train_X, train_y)
acc = accuracy_score(valid_y, rf.predict(valid_X))
for column in range(x1.shape[1]):
X_t = valid_X.copy()
X_t[:, column] = np.random.permutation(X_t[:, column])
shuff_acc = accuracy_score(valid_y, rf.predict(X_t))
scores = np.append(scores, ((acc - shuff_acc) / acc))
scores = np.reshape(scores, (50, 360))
sc = scores.mean(axis=0)
fig, ax = plt.subplots(figsize=(10, 4))
ax.plot(sc, '.-r')
ax.set_xlabel('Predictive variables')
ax.set_ylabel('Importance')
ax.set_xlim([0, 360])
ax.xaxis.set_major_locator(plt.MaxNLocator(6))
График рис.20 показывает, что наиболее важными являются предсказательные переменные с 60 до 85 для канала +40 и с 240 по 265 для канала -40, которые определяют глубину сигнализации. Наличие пиков в начале и конце каждого диапазона указывает на ещё большую важность в предсказательном смысле глубин начала и конца сигнализаций. Общее количество важных переменных можно оценить на уровне 50.
Важность переменных определяющих координаты и амплитуды сигнализации в каждом экземпляре данных значительно ниже. Эта оценка согласуется с предположениями высказанными при проведении разведывательного анализа. Обучение RandomForestClassifierь на всем наборе тренировочных данных без амплитуд показало общую точность равную 0.9990, без амплитуд и координат – 0.9993. Исключение из рассмотрения таких параметров как амплитуда и координата для каждого экземпляра данных уменьшает размер рассматриваемых данных до (2, 60) =120 предикативных переменных без уменьшения точности. Полученный результат позволяет использовать только параметр глубины сигнализаций с целью классификации данных.
Достигнутая RandomForestClassifier точность является достаточной и решает поставленную задачу классификации дефектов болтовых отверстий, однако для целей обобщения возможностей рассмотрим класс модели глубокого обучения на основе свёрточной нейронной сети.
4.6 Модель глубокого обучения (DL)
Синтез и обучение свёрточной сети требует итерационного процесса с поиском лучших структур и оптимизацией их гиперпараметров. На рис. 21 представлен окончательный вариант простой структуры сети в виде линейного стека слоёв и процесс её обучения.
Результаты обучения и прогноза свёрточной нейронной сети представлены на рис. 21. Общая точность модели на тестовых данных составила 0.9985, что в 1.71 раза лучше точности базовой модели. Количество ложноположительных срабатываний классификатора 0 составляет 2+24+6+2=34 из всех 42893 экземпляров с дефектами (рис. 22a). Среднее время прогноза тестовых данных на CPU составило 4.55 с.
Одной из важных задач полученного классификатора при его практическом использовании будет точное определение без дефектного класса (класс 0), что позволит исключить ложное отнесения дефектных образцов к без дефектным. Снизить количество ложноположительных срабатываний для класса без дефектного состояния возможно за счёт изменения порогового отсечения вероятности. Для оценки применимого порогового уровня отсечения проведена бинаризация многоклассовой задачи с выделением бездефектного состояния и всех дефектных состояний, что соответствует стратегии «один против остальных» (One vs Rest). По умолчанию для двоичной классификации пороговое значение принимается равным 0.5 (50%). При таком походе бинарный классификатор имеет качественные показатели рис. 23.
Полученная прецизионность класса «No defect» составила 0,9952 как и у многоклассового классификатора для класса «0». Отразить изменения прецизионности и полноты бинарного классификатора в зависимости от изменяющегося порога отсечения позволяет применение функции sklearn.metrics.precision_recall_curve (рис. 24a). При пороге отсечения 0.5 величина ложноположительных срабатываний составляет 34 образца (рис. 24b). Максимальный уровень прецизионности и полноты классификатора достигается в точке пересечении их графиков, что соответствует порогу отсечения равному 0.66. В этой точке классификатор снижает количество ложноположительных срабатываний для класса «No defect» до уровня 27 (рис. 24b) Увеличение порога до уровня 0.94 позволяет снизить ложноположительное срабатывание до величины 8, за счёт увеличения ложноотрицательных срабатываний до 155 образцов (рис. 24b) (уменьшения полноты классификатора). Дальнейшее увеличение порога отсечения значительно уменьшает полноту классификатора до не приемлемого уровня (рис. 24а).
При установленном пороге отсечения 0.94 качественные оценки классификатора приведены на рис. 25. Прецизионность для класса «No defect» выросла до 0.9989.
Восемь ложноположительно классифицированных образцов данных с выделенными характерными графическими признаками дефектов выведены на рис. 26.
Из приведённых графических образов спорными являются образцы с пометкой «controversial», которые сигнализируют о наличии очень короткой радиальной трещины, которую сложно отнести к дефектам. Остальные 6 образцов являются ошибкой классификатора. Отметим качественный показатель в виде отсутствия ложной классификации образцов с дефектами в виде значительной длины радиальной трещины. Такие образцы наиболее легко классифицируются и при ручном анализе дефектоскопистами.
Дальнейшее увеличение точности модели возможно за счёт применения ансамблей полученных моделей: DL и RandomForestClassifier. В ансамбль могут быть добавлены рассмотренные модели, но полученные с другим форматом входных данных, включая
непосредственный формат Bscan, как показано в работе [3].
5. Выводы и обсуждения
Основные качественные показатели разработанных моделей классификации дефектов болтовых отверстий сведены на диаграмме рис. 27. Постепенное и обоснованное усложнение моделей классификации отражено на диаграмме в виде увеличения как общей точности моделей (синий цвет) так и важного показателя в виде прецизионности класса 0 (оранжевый цвет). Максимальные показатели точности выше уровня 0.99 были достигнуты моделями на основе случайного леса и свёрточной нейронной сети. При этом модель случайного леса имеет преимущество за счёт меньших затрат времени на прогноз.
В работе:
Показана возможность поиска дефектов на ультразвуковой дефектограмме путём её декомпозиции на отдельные каналы с данными и выделении отдельных участков диагностики;
Дана оценка влияния предикативных переменных в виде амплитуды и координат на качество классификации;
Дана оценка необходимого количества набора данных для построения классификационной модели дефектов болтовых отверстий с точностью 98%, что может служить ориентиром для производителей дефектоскопного оборудования при создании автоматических экспертных систем;
Показана возможность достижения высоких показателей точности классификации состояний болтовых отверстий рельсов на основе классических алгоритмов машинного обучения;
Полученные качественные оценки работы модели глубокого обучения показывают возможность и целесообразность применения архитектуры свёрточной нейронной сети для синтеза сегментационных сетей поиска дефектов в непрерывной дефектограмме (B-scan).
References
[1] Markov AA, Kuznetsova EA. Rail flaw detection. Formation and analysis of signals. Book 2. Decoding of defectograms. Saint Petersburg: Ultra Print; 2014.
[2] Markov AA, Mosyagin VV, Shilov MN, Fedorenko DV. AVICON-11: New Flaw-Detector for One Hundred Percent Inspection of Rails. NDT World Review. 2006; 2 (32): 75-78. Available from: http://www.radioavionica.ru/activities/sistemy-nerazrushayushchego-kontrolya/articles/files/razrab/33.zip [Accessed 14th March 2023].
[3] Kaliuzhnyi A. Application of Model Data for Training the Classifier of Defects in Rail Bolt Holes in Ultrasonic Diagnostics. Artificial Intelligence Evolution [Internet]. 2023 Apr. 14 [cited 2023 Jul. 28];4(1):55-69. Available from: https://ojs.wiserpub.com/index.php/AIE/article/view/2339. DOI: https://doi.org/10.37256/aie.4120232339
[4] Kuzmin EV, Gorbunov OE, Plotnikov PO, Tyukin VA, Bashkin VA. Application of Neural Networks for Recognizing Rail Structural Elements in Magnetic and Eddy Current Defectograms. Modeling and Analysis of Information Systems. 2018; 25(6): 667-679. Available from: doi:10.18255/1818-1015-2018-6-667-679
[5] Bettayeb F, Benbartaoui H, Raouraou B. The reliability of the ultrasonic characterization of welds by the artificial neural network. 17th World Conference on Nondestructive Testing; 2008; Shanghai, China. Available from: https://www.ndt.net/article/wcndt2008/papers/215.pdf [Accessed 14th March 2023]
[6] Young-Jin C, Wooram C, Oral B. Deep Learning-Based Crack Damage Detection Using Convolutional Neural Networks. Computer-Aided Civil and Infrastructure Engineering. 2017; 32(5): 361-378. Available from: doi: 10.1111/mice.12263
[7] Heckel T, Kreutzbruck M, Rühe S, High Speed Non-Destructive Rail Testing with Advanced Ultrasound and Eddy-Current Testing Techniques. 5th International workshop of NDT experts - NDT in progress 2009 (Proceeding). 2009; 5: 101-109. Available from: https://www.researchgate.net/publication/228901588 [Accessed 14th March 2023].
[8] Papaelias M, Kerkyras S, Papaelias F, Graham K. The future of rail inspection technology and the INTERAIL FP7 project. 51st Annual Conference of the British Institute of Non-Destructive Testing 2012, NDT 2012. 2012 Available from: https://www.researchgate.net/publication/289469062 [Accessed 14th March 2023].
[9] Rizzo P, Coccia S, Bartoli I, Fateh M. Non-contact ultrasonic inspection of rails and signal processing for automatic defect detection and classification. Insight. 2005; 47 (6): 346-353. Available from: doi: 10.1784/insi.47.6.346.66449
[10] Nakhaee MC, Hiemstra D, Stoelinga M, van Noort M. The Recent Applications of Machine Learning in Rail Track Maintenance: A Survey. In: Collart-Dutilleul S, Lecomte T, Romanovsky A. (eds.) Reliability, Safety, and Security of Railway Systems. Modelling, Analysis, Verification, and Certification. RSSRail 2019. Lecture Notes in Computer Science(), vol 11495. Springer, Cham; 2019.pp.91-105. Available from: doi: 10.1007/978-3-030-18744-6_6.
[11] Jiaxing Y , Shunya I, Nobuyuki T. Computerized Ultrasonic Imaging Inspection: From Shallow to Deep Learning. Sensors. 2018; 18(11): 3820. Available from: doi:10.3390/s18113820
[12] Jiaxing Y, Nobuyuki T. Benchmarking Deep Learning Models for Automatic Ultrasonic Imaging Inspection. IEEE Access. 2021; 9: pp 36986-36994. Available from: doi:10.1109/ACCESS.2021.3062860
[13] Cantero-Chinchilla S, Wilcox PD, Croxford AJ. Deep learning in automated ultrasonic NDE - developments, axioms and opportunities. Eprint arXiv:2112.06650. 2021. Available from: doi: 10.48550/arXiv.2112.06650
[14] Cantero-Chinchilla S, Wilcox PD, Croxford AJ. A deep learning based methodology for artefact identification and suppression with application to ultrasonic images. NDT & E International. 202; 126, 102575. Available from: doi: 10.1016/j.ndteint.2021.102575
[15] Chapon A, Pereira D, Toewsb M, Belanger P. Deconvolution of ultrasonic signals using a convolutional neural network. Ultrasonics. Volume 111, 2021; 106312. Available from: doi: 10.1016/j.ultras.2020.106312
[16] Medak D, Posilović L, Subasic M, Budimir M. Automated Defect Detection From Ultrasonic Images Using Deep Learning. IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control. 2021; 68(10): 3126 – 3134. Available from: doi: 10.1109/TUFFC.2021.3081750
[17] Virkkunen I, Koskinen T. Augmented Ultrasonic Data for Machine Learning. Journal of Nondestructive Evaluation. 2021; 40: 4. Available from: doi:10.1007/s10921-020-00739-5
[18] Veiga JLBC, Carvalho AA, Silva IC. The use of artificial neural network in the classification of pulse-echo and TOFD ultra-sonic signals. Journal of the Brazilian Society of Mechanical Sciences and Engineering. 2005; 27(4): 394-398 Available from: doi:10.1590/S1678-58782005000400007
[19] Posilovića L, Medaka D, Subašića M, Budimirb M, Lončarića S. Generative adversarial network with object detector discriminator for enhanced defect detection on ultrasonic B-scans. Eprint arXiv:2106.04281v1 [eess.IV]. 2021. Available from: https://arxiv.org/pdf/2106.04281.pdf
[20] Markov AA, Mosyagin VV, Keskinov MV. A program for 3D simulation of signals for ultrasonic testing of specimens. Russian Journal of Nondestructive Testing. 2005; 41: 778-789. Available from: doi: 10.1007/s11181-006-0034-3
[21] Shilov M.N.. Methodical, algorithmic and software for registration and analysis of defectograms during ultrasonic testing of rails [dissertation]. [Saint-Petersburg]: Saint-Petersburg State University of Aerospace Instrumentation; 2007. p 153. Available from: https://www.dissercat.com/content/metodicheskoe-algoritmicheskoe-i-programmnoe-obespechenie-registratsii-i-analiza-defektogram
[22] A. Kaliuzhnyi. Using Machine Learning To Detect Railway Defects. Available from: https://dzone.com/articles/use-of-mathematical-modeling-to-increase-the-data
[23] https://blogs.nvidia.com/blog/2021/06/08/what-is-synthetic-data/