КОНТРОЛЬ И УПРАВЛЕНИЕ КАЧЕСТВОМ ПРОДУКЦИИ
УДК 004
DOI: 10.24412/2071-6168-2024-12-683-684
ИННОВАЦИОННЫЙ ПОДХОД КТПП ДЛЯ СОРТИРОВКИ ЧЕРТЕЖЕЙ С ПРИМЕНЕНИЕМ МОДЕЛИ
НЕЙРОННОЙ СЕТИ
Т.Ю. Климова, И.Н. Хаймович, В.А. Тарасов
Целью данного исследования является использование модели нейронной сети, для автоматической сортировки чертежей по различным категориям, что станет важным шагом в автоматизации конструкторско-произ-водственного процесса (КПП) завода. Такая автоматизация обеспечит более высокую эффективность обработки документации и снизит нагрузку на сотрудников, отвечающих за систему управления чертежами.
Ключевые слова: цифровизация, база данных, модель нейронной сети, Конструкторско-технологическая подготовка производства, Python, генерирование, библиотека TensorFlow.
Рост сложности объектов автоматизации, каковыми являются машиностроительные предприятия, а также переход от частичной автоматизации к комплексным интегрированным решениям, учитывающим специфические особенности конкретного предприятия, приводят к увеличению количества и сложности проектов по комплексной автоматизации предприятий. При разработке сложных программных систем необходимо снизить зависимость качества результатов от таких субъективных факторов, как квалификация исполнителей, их опыт, понизить риск неуспешного завершения проекта. Для этого необходимы промышленные технологические методы разработки программных систем, позволяющие с самых первых этапов проекта подключать большое количество специалистов средней квалификации и получать предсказуемые во времени и качественные результаты. Из всех видов обеспечения, составляющих комплексное решение для автоматизируемого предприятия, наиболее зависимыми от персональных особенностей объекта автоматизации являются информационное (ИО) и программное обеспечение (ПО) [1].
Конструкторско-технологическая подготовка производства является сложным методом разработки, так как предопределяет итерационный характер методов разработки. Из-за постоянного роста количества информационных систем в данной области возникает необходимость формализации технологии проектирования, выполнения и оценки всех этапов проекта [2].
Для успешной деятельности предприятия необходимо обеспечение его на всем протяжении жизненного цикла изделия проектной документацией высокого качества и в минимально возможные сроки. Качественная проработка технических решений на этапе разработки конструкторско-технологической документации существенно влияет на снижение затрат в процессе производства из-за конструкторских и технологических ошибок [3].
Одним из ключевых аспектов цифрового производства является работа с чертежами, которые содержат критически важную информацию для изготовления деталей и сборочных единиц [4].
Основная часть. Для современного, конкурентоспособного промышленного предприятия критически важным аспектом является эффективная КТПП. В этом контексте концептуальная модель цифрового завода становится применимой на любом производственном предприятии промышленной отрасли. Появление индустрии 4.0 и связанные с ней требования к цифровизации делают автоматизацию процессов обязательным элементом современной промышленности.
Одним из ключевых аспектов цифрового производства является обработка чертежей, которые содержат важнейшую информацию для изготовления деталей и сборочных единиц. С увеличением объема данных и сложности чертежей традиционные методы управления ими становятся менее эффективными. Это создаёт необходимость в внедрении решений, основанных на современных технологиях, таких как машинное обучение и нейронные сети.
Цель работы. Целью данной работы является использование обученной модели нейронной сети для обработки и анализа чертежей в контексте автоматизации конструкторско-производственного процесса (КПП) завода.
Была проведена аугментация данных, которая включает применение методов увеличения данных, таких как вращение, масштабирование и обрезка. Это позволяет улучшить способность модели к генерализации и повысить её точность при работе с новыми данными [4-7].
После инициализации модели и перехода от концептуальной модели к программной реализации с использованием таких фреймворков, как TensorFlow или PyTorch, создаётся функциональная модель, готовая к обучению. После обучения, модель сохраняется в файл и её можно использовать для сортировки и классификации чертежей.
Таким образом, автоматизация процессов анализа чертежей на основе использования обученной модели нейронной сети позволит значительно ускорить и упростить проектирование в рамках КПП завода, сократив время и ресурсы, необходимые для подготовки документации и улучшив качество производимой продукции.
Основная часть. В последнее время наблюдается стремительное развитие технологий машинного обучения, что обусловливает значительный прогресс в области автоматической классификации изображений и чертежей. Одной из ключевых технологий в этом контексте является применение нейронных сетей, особенно глубоких
683
свёрточных нейронных сетей (Convolutional Neural Networks, CNNs), которые показали высокую эффективность в решении задач распознавания образов. В данной работе предложен новый подход к автоматической классификации, основанный на интеграции передовых техник аугментации данных и оптимизации процесса обучения глубоких свёр-точных нейронных сетей (CNNs). В отличие от традиционных методов, наш подход включает в себя адаптивное изменение параметров аугментации в реальном времени в зависимости от динамики обучения, что позволяет значительно повысить точность и обобщающую способность модели.
На рисунке 1 представлена блок-схема, иллюстрирующая процесс сортировки чертежей с применением нейронной сети. Данная схема визуально отображает ключевые этапы, необходимые для эффективной обработки и классификации технической документации.
Для реализации предложенного подхода используется блок кода, который показан на рисунке 2. Он отвечает за создание генераторов данных для обучения и валидации модели с использованием метода flow_from_directory класса ImageDataGenerator. Таким образом, применяются современные инструменты и технологии, способствующие достижению высоких результатов в классификации изображений и чертежей.
Код, который показан на рисунке 3, создает и компилирует модель сверточной нейронной сети (CNN) с использованием библиотеки Keras. Эта архитектура широко используется для классификации изображений, и включает в себя набор сверточных, полносвязных и вспомогательных слоев.
Архитектура, которая показана на рисунке 3 может быть представлена следующим образом:
1. Входной слой:
- Размер входного изображения: (image_height, image_width, 3).
2. Первый свёрточный блок:
- Свёрточный слой: Conv2D с 32 фильтрами, размер ядра (3, 3), активация relu.
- Слой подвыборки: MaxPooling2D размером (2, 2).
3. Второй свёрточный блок:
- Свёрточный слой: Conv2D с 64 фильтрами, размер ядра (3, 3), активация relu.
- Слой подвыборки: MaxPooling2D размером (2, 2).
4. Третий свёрточный блок:
- Свёрточный слой: Conv2D с 128 фильтрами, размер ядра (3, 3), активация relu.
- Слой подвыборки: MaxPooling2D размером (2, 2).
5. Полносвязный слой:
- Слой выравнивания: Flatten.
- Полносвязный слой: Dense с 512 нейронами, активация relu.
- Слой регуляризации: Dropout с вероятностью 0.5.
6. Выходной слой:
- Полносвязный слой: Dense с количеством нейронов, равным числу классов (train_generator.num_classes), активация softmax.
Эта архитектура хорошо подходит для задач классификации изображений и позволяет модели выделять иерархии пространственных признаков в данных.
Шаги обучения сверточной модели нейронной сети CNN (Convolutional Neural Network)
Шаг 1 : ввести входное изображение (чертеж), которое проходит через сверточные слои.
Шаг 2: вычислить активации каждого сверточного слоя.
- Для сверточного слоя выходной сигнал рассчитывается по формуле:
netk = I*K)lk + bk, i
netk — выходное значение (или активация) для k фильтра (или канала) после применения свёртки и добавления смещения. Данное значение будет передано на следующую стадию обработки, нелинейной активации (ReLU); I - входные данные, например, изображение или карта признаков (feature map); K - фильтр (ядро свёртки), обучаемый параметр, который выделяет определённые признаки из данных, такие как края, текстуры или цветовые изменения; bk — Смещение (bias) для k фильтра. Оно добавляется ко всему результату свёртки, чтобы сделать модель более гибкой и улучшить её способность к обучению. Параметр bk также обучается в процессе тренировки модели.
- Применение активационной функция (например, ReLU):
Hk = ReLU(netk) = max(0, netk ), Hk - выходное значение нейрона (активность нейрона) после применения функции активации ReLU; netk - входное значение (взвешенная сумма входов нейрона), которое поступает на нейрон до применения функции активации.
Шаг 3: применить операцию подвыборки (Pooling).
- Для операции максимального пулинга формула выглядит следующим образом:
Pk = max(Hk ),
Pk - результат операции, представляющий максимальное значение из активаций набора нейронов; Нк - набор выходных значений (активаций нейронов) предыдущего слоя или фильтра, где к индексирует конкретный набор значений.
Шаг 4: преобразовать двумерные карты признаков в одномерный вектор (Flattening) и пропустить его через полносвязный слой.
- Для полносвязного слоя:
netm = ^ WmjPj + вт, j
netm - взвешенная сумма входных сигналов (потенциал нейрона); Wm}■ - веса преобразования. Значение, которое определяет уровень влияния Pj (входного значения) на конкретный выход; Pj - входное значение от предыдущего слоя или сигналов, поступающих от предыдущего слоя нейронной сети; вт — смещение (bias) значение, которое добавляется к результирующей линейной комбинации. Оно помогает модели работать с данными, имеющими смещения, и позволяет лучше приближать сложные зависимости.
- Для конечного шага (например, классификации) используется функция активации, такая как Softmax:
От =
exp (netm)
£п ехр(пе£п)'
От — выходная вероятность (результирующее значение), связанная с классом т; пеЬт — сырые значения (логиты) перед подачей через функцию Softmax, вычисленные сетью для конкретного класса т. Это может быть линейная комбинация входных данных и весов на предыдущем уровне сети; пеЬп - значение, которое подается на вход функции активации Softmax для класса п.
В данной исследовательской работе для классификации чертежей по классам применяются библиотеки, представленные на рисунке 4. Ключевыми библиотеками являются numpy [8], предназначенная для работы с массивами и матрицами, а также выполнения различных математических операций, и tensorflow [9], используемая для машинного обучения, в частности для создания и обучения моделей глубокого обучения.
. Начало
Found 1738 images belonging to Б classas.
validation_generator = datagen.f low_fro(n_cirectory( dataset_dir,
target_size=( image_height, i(nage_width), batch_siza=batch_slzaJ class_mode='categorical', subset='validation'
)
Found 432 images belonging te S classes.
Рис. 2. Создание генераторов данных
tr Модель нейронной сети
model = Sequential([
Conv2D(32j (3j 3)Л aciivation='relu'j input_5hape=(image_height, image _uidth, 3)),
MaxPooling2D((2j 2)),
Conv2D(64j (3j 3), activatior= ' relu ' ),
MaxPooling2D((2j 2)),
Conv2D(12Sj (3, Ъ), activ5tion= " relui ' ) ,
MaxPooling2D((2j 2)),
FlattenQ,
Dense(512j activation='relu').
Dropout(0.S)j
Dense(train_generator. пит classesj activation='softmax')
])
Рис. 3. Модель сверточной нейронной сети
685
import os
import II и пру as np import tensorflow as tf
from Tensorflow.keras.preprocessing import image from tensorflow.keras.models import load_model
Puc. 4. Интегрирование библиотек
Далее применяется сохранённый файл обученной модели нейронной сети, интеграция которой в программу проиллюстрирована на рисунке 5. Обучение указанной модели нейронной сети осуществлялось на аугментированной базе данных чертежей [4].
Загрузка модели model - load_model('my_model.keras')
Рис. 5. Загрузка модели нейронной сети
На следующем этапе мы импортируем модуль pyplot из библиотеки matplotlib, что предоставляет возможности для создания графиков, диаграмм и других форм визуализации данных. Будучи широко признанным инструментом в области анализа данных и научной визуализации, matplotlib в нашем случае позволит представить данные в виде чертежей. Код визуализации и предсказаний данных предоставлен на рисунке 6.
Matplotlib — это библиотека для визуализации данных на языке Python, которая позволяет создавать широкий спектр графиков и визуализаций для научных и исследовательских целей. Она предоставляет инструменты для создания статических, интерактивных и анимационных графиков, что делает её популярным выбором среди ученых, инженеров и аналитиков [10].
В соответствии с ранее примененными конфигурациями, которые представленные на рисунке 7, осуществляется анализ данных из каталога "new_drawings", в котором содержатся перемешанные чертежи, и создается директории для хранения классифицированных изображений.
import matplotlib.pyplot as pit
def plot_image_with_p~ed(image_pathJ prediction, class_names):
img = image.load_img(image_pathJ target_size={image_height, image_width}) pit.imshow(img)
plt.iitle{f"Predicted: {class_nanes[np.argmaxiprediction)]} - Confidence: {np.maxfprediction)*1QQ:.2f)
pit.axis(1 off")
plt.showQ
for filename in os.listdir(dataset_cir):
if filename. lower(). ends\jith( ('. png' j '.jpg1, .jpeg')): img_path = _p.ith. ji: i i(<].it : t d i - filename] img_array = preprace5i_image(img_path) precicticn = model.predict(img_ar"ay) plG7_image_with_pred(irig_path, prediction., class_names)
Рис. 6. Код для визуализации чертежей и предсказания категории
# Конфигурации image_heigh^ = 224 image_width = 224
dataset_dir = 1new_drawings' ff Путь к датасету с перемешанными изображениями
output_dir = ' classified_drawings' # Директория для сохранения классифицированных изображений
Рис. 7. Конфигурации
После применения указанного кода будет получен результат, который включает отображение чертежа и процент предсказания соответствующей категории. Результаты предсказаний представлены на рисунке 8.
На основании анализа рисунка 9 можно сделать вывод, что предсказание различных чертежей с использованием разработанной модели нейронной сети привело к положительным результатам. Обученная модель нейронной сети демонстрирует высокую эффективность и точность в классификации чертежей. Достигнутый успех в предсказании подкреплён проверкой на обширных тестовых наборах, что свидетельствует о надежности модели. Положительные результаты обусловлены тщательной оптимизацией архитектуры сети и использованием обширного набора данных для обучения. Эти факторы обеспечивают максимальную производительность и точность работы модели в разнообразных условиях. Таким образом, разработанная нейронная сеть не только справляется с текущими задачами, но и обладает потенциалом для дальнейшего улучшения и расширения применяемости в области распознавания чертежей.
Представленный ниже код, который показан на рисунке 9 является примером инструмента, предназначенного для автоматической классификации и перемещения чертежей из датасета с перемешанными чертежами в соответствующие папки.
К каждому изображению применяется функция preprocess_image, которая подготавливает данные для дальнейшего анализа с помощью нейронной сети. Подготовленные изображения подаются на вход обученной модели (model), которая выполняет предсказание классов для каждого изображения. На основании предсказанных вероятностей определяется класс с наибольшей вероятностью с помощью np.argmax(prediction), и его имя извлекается из массива class_names.
После классификации изображения перемещаются в соответствующую папку, имя которой совпадает с предсказанным классом.
# Предсказание для чертежей из нового дота сета и перемещение их в нужные папки for filename in os.listdir(dataset_dir):
if filename.lower().endswith(('.png', '.jpg'j '.jpeg')): img_path = os.path.join(dataset_dirj filename) img_array = preprocess_image(img_path)
# Предсказание
prediction = model.predict(img_array)
# Выбор класса с наибольшей вероятностью predicted_class_index = np.argmax(prediction) predicted_class = class_names[predicted_class_index]
# Печать для диагностики
print(f"File '{filename}' classified as '{predicted_class}' (index: {predicted_class_index})")
# Перемещение файла в соответствующую папку
destination_path = os.path.join(output_dir, predicted_class3 filename)
os.rename{img_path, destination_path)
print(f"File '{filename}' moved to 1{destination_path}'")
Рис. 9. Перемещение чертежей по классам
Вывод. В результате проведенного исследования и реализации алгоритма автоматической классификации изображений, нам удалось успешно продемонстрировать эффективность процесса сортировки чертежей. На рисунке 10 представлена визуализация результатов, отображающая перемещение изображений в соответствии с их предсказанными классами.
ftl-d
Щг; ь
■ 1
Рис. 10. Результат применения классификации
687
Каждый чертеж, прошедший через этап предварительной обработки и классификации, был отсортирован и перемещен в соответствующие папки, что значительно упростило организацию данных. Данная система позволила не только оптимизировать процесс управления изображениями, но и повысить точность их распределения по категориям.
Внедрение инновационного подхода КТПП в систематизацию чертежей по классам предоставляет значительные преимущества при работе с большими объемами данных. Этот метод обеспечивает более эффективный доступ к информации и способствует упрощению дальнейшего анализа. Результаты данного проекта подчеркивают важность использования современных технологий и методов автоматизации, что открывает новые горизонты для исследования и оптимизации процессов в различных отраслях.
Список источников
1. Гречников, Ф.В. Хаймович, И.Н. Разработка информационных систем управления конструкторско-тех-нологической подготовкой производства как интегрированной базы информационных и функциональных структур [Текст]/ Ф.В. Гречников, И.Н. Хаймович // Кузнечно-штамповочное производство. М., 2008. №3. С. 34-41.
2. Хаймович И.Н. Разработка производственной среды при внедрении ИС КТПП в условиях ограничения по ресурсам [Текст] / И.Н. Хаймович: монография.Самара: Изд-во Самар. науч.центра РАН, 2008. 164 с.
3. Хаймович И.Н. Методология организации согласованных механизмов управления процессом конструк-торско-технологической подготовки производства на основе информационно-технологических моделей: специальность 05.02.22 «Организация производства (машиностроение)» : Автореферат на соискание доктора технических наук / Хаймович И.Н.; Самарский государственный аэрокосмический университет имени академика С.П. Королева. Самара, 2009. 35 с.
4. Климова Т.Ю. Хаймович, И.Н. Создание аугментированной базы данных чертежей на Python для обучения модели нейронной сети // Известия Тульского Государственного университета. 2024. №5. С. 182-186.
5. Лелюхин В.Е., Колесникова О.В. Интегрированная система управления дискретным машиностроительным производством на платформе 1с: УПП // Фундаментальные исследования. 2015. № 2-12. С. 2558-2562.
6. Часовских В.П. Создание эффективных цифровых фабрик посредством формирования цепочек технологий / В. П. Часовских, М. П. Воронов, Е. В. Кох // Фундаментальные исследования, 2022. №10(2). С. 243 - 248.
7. Рамзаев В. М., Хаймович И. Н., Чумак П. В. Управление инвестиционными проектами при проведении энергомодернизаций предприятий в регионе // Экономические науки. 2013. № 101. С. 109-113.
8. Van Der Walt S., Colbert S.C., Varoquaux G. The NumPy Array: A Structure for Efficient Numerical Computation // Computing in Science & Engineering. 2011. С. 22-30.
9. Abadi M., et al. TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems // arXiv preprint arXiv:1603.04467. 2016.
10. Hunter J.D. Matplotlib: A 2D Graphics Environment. Computing In Science & Engineering, 2007. .9(3). P. 9095. DOI: 10.1109/MCSE.2007.55.
Климова Татьяна Юрьевна, аспирант, инженер-конструктор, [email protected], Россия, Самара, Самарский национальный исследовательский университет имени академика С.П. Королева,
Хаймович Ирина Николаевна, д-р техн. наук, профессор, [email protected], Россия, Самара, Самарский национальный исследовательский университет имени академика С. П. Королёва; Санкт-Петербургский политехнический университет Петра Великого,
Тарасов Владислав Александрович, аспирант, [email protected], Россия, Самара, Самарский национальный исследовательский университет имени академика С.П. Королева
THE INNOVATIVE KTPP APPROACH FOR SORTING DRAWINGS USING A NEURAL NETWORK MODEL
T.Y. Klimova, I.N. Khaimovich, V.A. Tarasov
The purpose of this study is to use a neural network model to automatically sort drawings into various categories, which will be an important step in automating the plant's design and production process. Such automation will ensure higher efficiency of documentation processing and reduce the burden on employees responsible for the inventory management system.
Key words: digitalization, database, neural network model, Design and technological preparation of production, Python, generation, TensorFlow library.
Klimova Tatiana Yrjevna, postgraduate, design engineer, [email protected], Russia, Samara, Samara National Research University named after Academician S.P. Korolev,
Khaimovich Irina Nikolaevna, doctor of technical sciences, professor, kovalek68@mail. ru, Russia, Samara, Samara National Research University named after Academician S. P. Korolev; Peter the Great St. Petersburg Polytechnic University,
Tarasov Vladislav Aleksandrovich, postgraduate, tarasov. ali@yandex. ru, Russia, Samara, Samara National Research University named after Academician S.P. Korolev