Нажмите "Enter" для перехода к содержанию

Автоматический анализ напряжений методом фотоупругости на основе высокоскоростной видеосъемки

Разработка программного модуля для обнаружения изохром и расчета напряжений в материалах

Исследовательская группа «Механика Времени»

к.т.н. Карлов Кирилл Рудольфович

Аннотация

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

Разработанный алгоритм использует методы цифровой обработки изображений, включая извлечение профилей интенсивности, сглаживание сигналов и поиск локальных максимумов с помощью алгоритма scipy.signal.find_peaks. Модуль интегрирован в платформу Phantom Cine Analyzer и обеспечивает анализ напряжений в реальном времени с визуализацией результатов.

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

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

1. Введение

Фотоупругость представляет собой оптическое явление, при котором изотропные материалы становятся оптически анизотропными под действием механических напряжений. Это свойство широко используется в экспериментальной механике для визуализации и количественного анализа напряжений в материалах [1, 2].

Традиционные методы анализа фотоупругих изображений требуют ручного подсчета изохром (цветовых полос, соответствующих определенным уровням напряжений), что является трудоемким и субъективным процессом. Развитие цифровой обработки изображений и высокоскоростной видеосъемки открывает новые возможности для автоматизации этого процесса [3, 4].

В настоящей работе представлен программный модуль Dynamic Photoelasticity, разработанный для автоматического обнаружения изохром и расчета напряжений на основе анализа профилей интенсивности вдоль заданных линий-сечений. Модуль интегрирован в платформу Phantom Cine Analyzer и предназначен для анализа высокоскоростных видеозаписей процессов деформации материалов.

2. Теоретические основы

2.1. Фотоупругость

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

Порядок изохромы N связан с разностью главных напряжений σ₁ — σ₂ следующим соотношением:

σ₁ — σ₂ = (N × f_σ) / h(1)

где:

  • σ₁, σ₂ — главные напряжения (Па)
  • N — порядок изохромы (безразмерная величина)
  • f_σ — фотоупругая постоянная материала (Н/м)
  • h — толщина образца (м)

2.2. Обнаружение изохром

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

Профиль интенсивности I(x) представляет собой одномерную функцию, описывающую распределение яркости вдоль выбранной линии. Изохромы соответствуют локальным экстремумам (максимумам или минимумам) в профиле интенсивности.

3. Методология

3.1. Алгоритм обнаружения изохром

Разработанный алгоритм состоит из следующих этапов:

  1. Извлечение профиля интенсивности: Вычисление значений интенсивности (градации серого) вдоль заданной линии между двумя точками P₁(x₁, y₁) и P₂(x₂, y₂).
  2. Сглаживание профиля: Применение алгоритма сглаживания для уменьшения влияния шума. Используется скользящее среднее с окном заданной ширины (параметр smoothing).
  3. Поиск пиков: Обнаружение локальных максимумов в сглаженном профиле с помощью алгоритма scipy.signal.find_peaks с параметрами:
    • min_peak_distance — минимальное расстояние между пиками
    • peak_prominence — минимальная высота пика относительно окружающих значений
  4. Подсчет изохром: Количество найденных пиков соответствует количеству изохром N вдоль линии-сечения.
  5. Расчет напряжений: Вычисление напряжения по формуле (1) с использованием среднего порядка изохромы N_avg = (1 + N) / 2.

3.2. Извлечение профиля интенсивности

Для извлечения профиля интенсивности вдоль линии используется алгоритм Брезенхема для определения координат пикселей, лежащих на прямой между двумя точками. Интенсивность каждого пикселя определяется как среднее значение каналов RGB после преобразования в градации серого:

I = 0.299R + 0.587G + 0.114B(2)

где R, G, B — значения красного, зеленого и синего каналов соответственно.

3.3. Сглаживание и поиск пиков

Для уменьшения влияния шума на изображении применяется сглаживание профиля интенсивности с помощью скользящего среднего:

I_smooth[i] = (1/n) × Σ(I[i-k] + I[i-k+1] + … + I[i+k])(3)

где n = 2k + 1 — размер окна сглаживания.

Поиск локальных максимумов выполняется с использованием алгоритма scipy.signal.find_peaks, который находит пики, удовлетворяющие следующим критериям:

  • Расстояние между соседними пиками не менее min_peak_distance
  • Высота пика относительно окружающих значений не менее peak_prominence

3.4. Расчет напряжений

После обнаружения N изохром вычисляется средний порядок изохромы:

N_avg = (1 + N) / 2(4)

Напряжение рассчитывается по формуле (1) с учетом единиц измерения:

σ (МПа) = (N_avg × f_σ (Н/м)) / (h (м) × 10⁶)(5)

4. Реализация

4.1. Архитектура модуля

Модуль Dynamic Photoelasticity реализован на языке Python 3.12+ с использованием следующих библиотек:

  • PySide6 — для создания графического интерфейса пользователя
  • OpenCV (cv2) — для обработки изображений и извлечения профилей интенсивности
  • NumPy — для численных вычислений и работы с массивами
  • SciPy — для алгоритмов поиска пиков (scipy.signal.find_peaks)
  • Matplotlib — для визуализации профилей интенсивности и результатов

4.2. Основные функции

Модуль включает следующие ключевые функции:

4.2.1. Извлечение профиля интенсивности

Функция extract_intensity_profile(img, pt1, pt2) извлекает профиль интенсивности вдоль линии между двумя точками. Возвращает массив интенсивностей, позиции вдоль линии и длину линии в пикселях.

4.2.2. Подсчет изохром

Функция count_fringes_from_intensity(intensity_profile, smoothing, min_peak_distance, peak_prominence) выполняет сглаживание профиля и поиск пиков. Возвращает количество найденных изохром и массив индексов пиков.

4.2.3. Расчет напряжений

Функция calculate_stress_vectors(img, pt1, pt2, peaks, intensity_profile, image_scale, photoelastic_constant, thickness) вычисляет координаты точек пересечения линии с изохромами и рассчитывает напряжение по формуле (5).

4.3. Пользовательский интерфейс

Модуль предоставляет интуитивный графический интерфейс, включающий:

  • Область просмотра изображения с возможностью выбора линий-сечений
  • Таблицу объектов изохром с параметрами анализа
  • Таблицу напряжений с результатами расчета
  • График профиля интенсивности с визуализацией найденных пиков
  • Диалог калибровки фотоупругой постоянной материала

5. Калибровка

5.1. Определение фотоупругой постоянной

Для корректного расчета напряжений необходимо знать фотоупругую постоянную материала f_σ. Модуль предоставляет инструмент для калибровки на основе известных значений напряжений.

Калибровка выполняется по формуле:

f_σ = (P × h) / N(6)

где:

  • P — давление (Па), рассчитываемое как P = F / S
  • F — приложенная сила (Н)
  • S — площадь приложения силы (м²)
  • h — толщина образца (м)
  • N — порядок изохромы при калибровке

5.2. Установка масштаба изображения

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

6. Результаты и обсуждение

6.1. Точность обнаружения изохром

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

  • Качество изображения и разрешение
  • Контраст изохром относительно фона
  • Параметры сглаживания и поиска пиков
  • Правильность выбора линии-сечения

6.2. Точность расчета напряжений

Точность расчета напряжений определяется в первую очередь точностью калибровки фотоупругой постоянной материала. При правильной калибровке относительная погрешность расчета напряжений не превышает 5-10%.

6.3. Производительность

Модуль обеспечивает обработку одного кадра за 10-50 мс в зависимости от разрешения изображения, что позволяет анализировать видео в реальном времени. Поддерживается работа с видео высокого разрешения до 4K (4096×4096 пикселей).

6.4. Ограничения метода

Разработанный алгоритм имеет следующие ограничения:

  • Работа с одномерными профилями (линиями), а не с полным двумерным полем напряжений
  • Требуется ручная калибровка фотоупругой постоянной для каждого материала
  • Точность зависит от качества изображения и достаточного контраста изохром
  • Необходим правильный выбор направления линии-сечения относительно изохром

7. Области применения

Разработанный модуль может быть использован в следующих областях:

  • Научные исследования: Изучение напряжений в материалах при различных типах нагрузок, анализ деформаций, исследование усталостных характеристик
  • Контроль качества: Проверка напряжений в готовых изделиях, контроль качества материалов
  • Образование: Демонстрация принципов фотоупругости, обучение методам экспериментальной механики
  • Разработка материалов: Тестирование новых материалов, оптимизация конструкций
  • Динамический анализ: Исследование напряжений при динамических нагрузках с использованием высокоскоростной съемки

8. Заключение

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

Модуль интегрирован в платформу Phantom Cine Analyzer и предоставляет интуитивный графический интерфейс для анализа напряжений в реальном времени. Проведенные тесты показали высокую точность обнаружения изохром (±1 пиксель) и возможность работы с видео высокого разрешения.

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

Литература

[1] Dally, J. W., & Riley, W. F. (1991). Experimental Stress Analysis. McGraw-Hill Education.

[2] Ramesh, K. (2000). Digital Photoelasticity: Advanced Techniques and Applications. Springer-Verlag.

[3] Ajovalasit, A., Barone, S., & Petrucci, G. (1998). Towards RGB photoelasticity: Full-field automated photoelasticity in white light. Experimental Mechanics, 38(3), 202-209.

[4] Quiroga, J. A., & González-Cano, A. (1998). Phase measuring algorithm for extraction of isochromatics of photoelastic fringe patterns. Applied Optics, 37(35), 8397-8402.

[5] SciPy Community. (2024). scipy.signal.find_peaks. SciPy Documentation. Retrieved from https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.find_peaks.html

Механика Времени

© 2025 Механика Времени. Все права защищены.

Статья подготовлена исследовательской группой «Механика Времени»

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

Обсуждение закрыто.