Как стать автором
Обновить

Измерение деформации конструкций методом фотограмметрии

Время на прочтение4 мин
Количество просмотров6K
В настоящее время механические способы измерений, в силу своей несовершенности (будь то высокая погрешность или трудоемкость измерений), отходят на второй план, уступая свое место новым методикам, среди которых есть одна — фотограмметрия, о которой хотелось бы рассказать.

Вступление


Фотограмметрия — технология определения форм, размеров и положений объектов по их фотографическим изображениям.
Наиболее широкое распространение фотограмметрия получила в геодезии, картографии, военном деле, космических исследованиях и др. Но мы поговорим о более узком применении технологии, а именно — при исследовании материалов.
Один из экспериментов, проводимых при исследовании свойств материала заключается в измерении деформации под действием различной нагрузки.
В классическом варианте эксперимент проводится вручную: для разной нагрузки определяется значение деформации с использованием механизмов, называемых мессурами. Утомительный процесс, да еще точность мессур в большинстве случаев ограничена 0.01мм. Фотограмметрия в данном случае, позволяет упростить процесс определения деформации, увеличить точность измерений, автоматизировать обработку данных.

Основные моменты


В качестве опорных точек на фотографиях использовались метки трех размеров (1, 2, 4 см) следующего вида:
Метки

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

Требуемая точность: 0.01мм или выше.

Дополнительно: автоматическое детектирование меток, автоматическое отслеживание смещения метки.

Техническая реализация


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

Автоматическое детектирование меток

Классический случай распознавания, но именно тут был встречен первый подводный камень. Были испробованы несколько подходов к выделению меток, но ни один не дал приемлемый результат:

Нейросети. Обучение производилось на всевозможных вариантах меток (одного размера). Для обработки нейросетью, исходное изображение разрезалось на фрагменты 32х32пкс, и подавалось на вход сети. Результат такого алгоритма был неудовлетворительным: около 20% распознанных меток.

Фильтр с заданной маской. На вход алгоритма подается изображение исходной метки в оттенках серого, которая преобразуется в маску. Если размер метки слишком большой, маской становится только центральная часть метки. В итоге заполняется массив 48х48. Следующий шаг — применение маски к изображению. Как результат — центры меток имеют яркость практически 100%, остальное изображение затемняется. Процент распознавания — 60-70%. Неплохо, но минусы перечеркивают плюсы: обработка одной фотографии порядка 2-4 минут, требуется участие пользователя (указание начальной метки).
Проанализировав аналоги и оценив результат их распознавания было решено отказаться от автоматического детектирования меток и сосредоточиться на других проблемах.

Дисторсия

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

Автоматическое отслеживание смещение меток

В программу загружаются снимки каждого нагружения материала. Чем больше нагрузка на материал — тем больше деформация. Соответственно, смещаются и метки. Используемый алгоритм для отслеживания меток прост: на каждой следующей фотографии ищем метку в определенной области currentCoordinates + C, где C — заданная константа относительно центра метки на текущей фотографии.
Данная функция избавляет пользователя от монотонного ручного указания меток на каждой фотографии.

Определение центра метки

Ядро программы. После определения приблизительного местоположения метки необходимо вычислить точную координату в десятых или даже сотых долях пикселя.
Алгоритм определения центра состоит из нескольких шагов:
1. Определение предварительного центра метки. Предварительный центр получается в результате ручного указания центра или в результате функции автоматического отслеживания смещения меток.
2. Выделение области вокруг метки для анализа. Требуется указание размеров метки пользователем.
3. Применении алгоритма адаптивной бинаризации. На фотографиях невооруженным глазом заметны перепады яркости. Используется алгоритм Саувола.
Каждый белый пиксель, полученный в результате бинаризации, включается в расчеты. Расчет ведется по формуле центра масс:
Центр масс
Где I — яркость i-го пикселя, Xi — координата.

Результат алгоритма (для изображения применено сглаживание):
Алгоритм выделения центра метки

Масштаб

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

Результаты


А теперь о самом главном — о результатах. А они оказались обнадеживающими: точность мессуров практически достигнута, отклонения от измерений сторонними программами — 3 — 5%.
Экспериментально удалось установить, что наивысшая точность определения центра пикселя достигается достигается при размере меток — 2см.

Обнадеживающие результаты:
Результаты №1

Хотя бывают и такие результаты:
Результаты №2

Заключение


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

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


1. Gary Bradski, Adrian Kaehler — Learning OpenCV
2. William K. Pratt — Digital Image Processing
Теги:
Хабы:
+28
Комментарии16

Публикации