В настоящее время активно развиваются и распространяются средства создания и хранения изображений, что формирует широкий интерес к системам обработки изображений. Одним из направлений обработки изображения является построение панорамных изображений. Панорамные изображения позволяют получить в одном кадре более широкий угол обзора, чем обычный снимок на камеру, за счёт того, что панорамное изображение является результатом слияния по особому алгоритму исходных изображений с одной (нескольких) камер.
Задача построения панорам заключается в совмещении нескольких изображений объекта в одно. Для достижения этого результата необходимо определить взаимно однозначное соответствие между парами изображений.
Из-за большого многообразия методов и различной специфики их использования возникает проблема выбора метода для каждого конкретного случая. Решить данную проблему можно путём разработки и использования специализированной экспертной системы.
В данной работе рассматривается разработка экспертной системы реляционного типа.
Основными параметрами исходных изображений, влияющими на выбор метода построения панорамных изображений являются: цветовая гамма исходных изображений (цветные или черно-белые изображения), наличие пространственных искажений изображений (сняты ли изображения по прямолинейной траектории или по сферической, с вращением камерыц и пр.), разность масштаба или разрешения исходных изображений, разность в оттенках или яркости изображения.
Реализация экспертной системы реляционного типа предполагает построение дерева решений, которое отражает знания эксперта по данной предметной области. Знания в данном случае формируются в виде гипотез.
Для выбора метода построения панорамных изображений могут быть использованы такие гипотезы как: «если изображения черно-белые, сняты в одной плоскости, имеют одинаковый масштаб, не зашумлены, имеют разницу в яркости, то Вам подойдёт метод пиксельного сравнения монохромных изображений с коррекцией уровней».
Следующим этапом является проектирование дерева решений.
Дерево решений – графический метод, позволяющий связать точки принятия решения, возможные стратегии Аi, их последствия Ei,j с возможными факторами, условиями внешней среды.[1]
Фрагмент дерева решений разрабатываемой системы представлен на рисунке 1.
Рисунок 1 – Фрагмент дерева решений
Для программной реализации экспертной системы необходимо обеспечить «понятную» для компьютера структуру хранения базы знаний (в данном случае представленную в виде дерева решений). Для этой цели была выбрана база данных SQLite. SQLite – портативная встраиваемая база данных, которая организована в виде одного файла с расширением db.
Для реализации базы знаний разрабатываемой системы необходимо три сущности:
«Состояния» – сущность, в которой содержится информация о состояниях системы (рисунок 2.2). Содержит поля: идентификатор, наименование и признак финального состояния;
«Ответы» – сущность, в которой содержится информация об ответах пользователя (переходах между состояниями). Содержит поля: идентификатор, идентификатор состояния владельца (того состояния, которому принадлежит данный ответ), идентификатор следующего состояния (того состояния, в которое перейдет система при выборе данного ответа);
«Подсказки» – сущность, в которой содержатся подсказки, демонстрируемые по нажатию кнопки «Помощь» в экспертной системе. Содержит поля: идентификатор, идентификатор текущего состояния, идентификатор предыдущего состояния (необходим для реализации разных подсказок для разных переходов между состояниями).
Инфологическая модель базы данных представлена на рисунке 4.1.
Рисунок 4.1 – Логическая модель базы данных
Интерфейс системы реализован в виде приложения Windows Forms на языке C#.
Для более удобной работы с базой знаний было принято решение использовать библиотеку NPoco.
Данная библиотека позволяет выполнять «маппинг» полей базы данных в поля и свойства объектов языка C#.
Для реализации работы с базой данных средствами NPoco было создано три модели:
Question;
Description;
Answer;
Модель Question является основной моделью системы. Содержит поля: идентификатор состояния, наименование состояния, признак конечного состояния, массив ответов и массив подсказок.
Модели Desctiption и Answer несут в себе ту же информацию, что и соответствующие таблицы в базе данных.
Модель Answer состоит из следующих полей:
Text (вбазеданных Answer.AnswerText);
NextQuestion (вбазевнешнийключна Answer.rf_NextStateID).
Модель Description состоит из следующих полей:
Text (вбазеданных Description.DescriptionText);
PrevId (Description.rf_PrevStateID).
После разработки моделей, был создан алгоритм преобразования данных из базы в массив объектов полученной модели. Данный алгоритм может быть представлен в следующем виде:
выполняется выгрузка всех записей из таблицы State в массив Question (поля Answers и Descriptions на данном шаге не заполняются);
для каждого элемента полученного массива выполняется выгрузка ответов и описаний (выполняется запрос на выгрузку с условием rf_OwnerStateID = <ИД текущего состояния>).
Общий вид главной формы программы представлен на рисунке 2.
Данная форма содержит постоянные элементы управления и элементы управления, которые появляются динамически. К постоянным можно отнести:
таблицу вопросов с указанием ответов;
кнопку «Помощь», которая показывает пояснения к текущему состоянию системы;
кнопку «Сброс», которая возвращает систему к начальному состоянию;
Динамические элементы это наименование состояния (текст вопроса) и кнопки с выбором варианта ответа. Данные элементы управления появляются для каждого состояния в правой части формы.
Рисунок 2 – Главная форма программы
Пояснения к текущему состоянию, вызываемые нажатием кнопки «Помощь» реализованы в виде всплывающего информационного окна. Пример такого окна для начального состояния представлен на рисунке 3.
Рисунок 3 – Пояснения к состоянию
Переход между состояниями происходит нажатием на кнопку с соответствующим вариантом ответа. При этом выбранный ответ сохраняется в таблице с ответами.
Переходы выполняются до достижения конечного состояния. При достижении конечного состояния пользователю выводится наименование состояния в информационном окне. Также эта информация дублируется в окне вопроса. Пример представлен на рисунке 5.
Рисунок 5 – Конечное состояние системы
В полученной программной реализации есть весь необходимый набор функций экспертной системы. Реализован модуль хранения выбранных ответов, модуль сбора данных и модуль получения результата.
Разработанный пользовательский интерфейс понятен и эргономичен. Преимуществом полученной разработки является унифицированность всех используемых форм в пользовательском интерфейсе, наличие подсказок и защиты от некорректных действий пользователя.
Использованные источники:
Интеллектуальные системы [Электронный курс] / Режим доступа: https://pandia.ru/text/78/654/65234.php (дата обращения 11.01.2020)
Экспертный системы при принятии решений на предприятии [Электронный курс] / Режим доступа: http://bmpravo.ru/show_stat.php?stat=193 (дата обращения 11.01.2020)
WindowsForms [Электронный ресурс] / Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/framework/winforms/windows-forms-overview (дата обращения 11.01.2020)