Особенности разработки программного модуля для склеивания панорамы

Проблема исследования загрязненой окружающей среды тесно связана с определением точного расположения источников загрязнения. Решение этой задачи возможно путем сочетания двух задач:

— Определение уровня радиоактивного излучения.

— Фиксация изображения объекта, для которого происходит измерение параметров радиации.

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

Для получения полной картины местного радиоактивного загрязнения на крупногабаритных объектах (как, например, длинномерные автопоезда) требуется создание панорамных изображений этих объектов.

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

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

Алгоритм склеивания имеет следующую последовательность:

Для склеивания двух фотографий необходимо определить, что именно изображено на фотографии, и сделать вывод из полученной информации, возможно ли вообще их склеивать, и, если возможно, то в каком месте. Для данной цели используются некоторые признаки изображений, одной из которых есть особые точки изображения. Есть особые точки — это точки, которые каким-то образом характеризуют данный файл. Каждая особая точка имеет некоторый параметр, который ее характеризует (кроме координат). Этот параметр называется дескриптором точки.

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

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

Далее строится матрица гомографии (сходства) для двух изображений.

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

Перед тем, как была начата разработка программного модуля, были проанализированы некоторые существующие программы данной тематике:

— Autopano Pro;

— PTgui;

— Hugin.

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

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

— высокая надежность выполнения работы алгоритма «склеивания» изображений;

— высокая отказоустойчивость, а в случае возникновения проблем в работе формировать сообщение о сбоях;

— функционирование в среде операционных систем семейства Linux;

— способность самостоятельно выполнять свою работу (без вмешательства пользователя).

В соответствии с требованиями предприятия-заказчика в качестве языка программирования для реализации программного модуля избран язык C + +. Средой разработки является кроссплатформенный Qt благодаря его гибким функционалом и возможностями.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *