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

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:30, 25 мая 2017.

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

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

Алгоритм работы подсистемы анализа может быть представлен последовательностью следующих шагов:

  • Шаг 1. Полученное изображение претерпевает первичную обработку и его цветовая модель преобразуется в цветовую модель, использующуюся в расчетных модулях подсистемы анализа.
  • Шаг 2. Пользователь определяет базовый цвет, по которому будет вестись нечеткий расчет.
  • Шаг 3. Осуществляется нечеткий расчет и определяется диапазон схожих цветов.

Входным данным для работы подсистемы анализа является значение цвета в шестнадцатеричном формате представления Windows.

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

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

Определение. Нечеткое множество называется выпуклым если: . Альтернативное определение: нечеткое множество будет выпуклым, если все его -сечения - выпуклые множества.

Определение. Нечеткие множества и равны , если .

Операции над нечеткими множествами.

Определения нечетких теоретико-множественных операций объединения, пересечения и дополнения могут быть обобщены из обычной теории множеств. В отличие от обычных множеств, в теории нечетких множеств степень принадлежности не ограничена лишь бинарной значениями 0 и 1 она может принимать значения из интервала [0, 1]. Поэтому, нечеткие теоретико-множественные операции могут быть определены по-разному. Ясно, что выполнение нечетких операций объединения, пересечения и дополнения над не нечеткими множествами должно дать такие же результаты, как и при использование обычных канторовских теоретико-множественных операций. Ниже приведены определения нечетких теоретико-множественных операций, предложенных Л. Заде.

Определение. Дополнением нечеткого множества , заданного на , называется нечеткое множество с функцией принадлежности для всех . На рис. 1 приведен пример выполнения операции нечеткого дополнения.

Рис. 1. Дополнение нечеткого множества

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

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

Операция нахождения максимума также обозначается знаком , т.е. .

Обобщенные определения операций нечеткого пересечения и объединения - треугольной нормы (t-нормы) и треугольной конормы (t-конормы или s-нормы) приведены ниже.

Определение. Треугольной нормой (t-нормой) называется бинарная операция T на единичном интервале , удовлетворяющая следующим аксиомам для любых  :

  • (граничное условие);
  • если (монотонность);
  • (коммутативность);
  • (ассоциативность).

Наиболее часто используются такие t-нормы:

  • пересечение по Заде ;
  • вероятностное пересечение ;
  • пересечение по Лукасевичу .

Примеры выполнения пересечения нечетких множеств с использованием этих t-норм показаны на рис. 2.

Рис. 2. Пересечение нечетких множеств с использованием различных t-норм

Определение. Треугольной конормой (s-нормой) называется бинарная операция S на единичном интервале , удовлетворяющая следующим аксиомам для любых :

  • (граничное условие);
  • если (монотонность);
  • (коммутативность);
  • (ассоциативность).

Наиболее часто используются такие s-нормы:

  • объединение по Заде ;
  • вероятностное объединение ;
  • объединение по Лукасевичу .

Примеры выполнения объединения нечетких множеств с использованием этих s-норм показаны на рис. 3.

Наиболее известные треугольные нормы приведены в табл. 1.

Рис. 3. Объединение нечетких множеств с использованием различных s-норм


Таблица 1. Примеры треугольных форм
T(a,b) S(a,b) Параметр

Пример реализации применения метода нечеткого вывода в приложении.

Оновные этапы построенного механизма нечеткого вывода.

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

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

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

  1. Формирование базы правил систем нечеткого вывода.
  2. Фаззификация входных переменных.
  3. Агрегирование подусловий в нечетких правилах продукций.
  4. Активизация или композиция подзаключений в нечетких правилах продукций.
  5. Аккумулирование заключений нечетких правил продукций.
Рис.4 Алгоритм нечеткого вывода

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

Формирование базы правил.

База правил систем нечеткого вывода предназначена для формального представления эмпирических знаний или знаний экспертов в той или иной проблемной области. В системах нечеткого вывода используются правила нечетких продукций, в которых условия и заключения сформулированы в терминах нечетких лингвистических высказываний рассмотренных выше видов. Совокупность таких правил будем далее называть базами правил нечетких продукций. База правил нечетких продукций. База правил нечетких продукций представляет собой конечное множество правил нечетких продукций, согласованных относительно используемых в них лингвистических переменных. Наиболее часто база правил представляется в форме структурированного текста:

ПРАВИЛО.1: ЕСЛИ "Условие_1" ТО "Заключение_1" ()

ПРАВИЛО_2: ЕСЛИ "Условие_2" ТО "Заключение_2" () …

ПРАВИЛО_n: ЕСЛИ "Условие_n" ТО "Заключение_n" ()

Здесь через обозначены коэффициенты определенности или весовые коэффициенты соответствующих правил. Эти коэффициенты могут принимать значения из интервала [0, 1]. В случае, если эти весовые коэффициенты отсутствуют, удобно принять, что их значения равны 1. При этом в каждом из нечетких высказываний должны быть определены функции принадлежности значений терм-множества для каждой из лингвистических переменных.

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

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

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

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

Таблица 2. Cокращения для наименования отдельных термов.
Символическое обозначение Англоязычная нотация Русскоязычная нотация
NB Negative Big Отрицательное большое
NM Negative Medium Отрицательное среднее
NS Negative Small Отрицательное малое
ZN Zero Negative Отрицательное, близкое к нулю
Z Zero Нуль, близкое к нулю
ZP Zero Positive Положительное, близкое к нулю
PS Positive Small Положительное малое
Positive Medium Положительное среднее
PB Positive Big Положительное большое


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

Реализация этапа в подсистеме анализа цветовой информации.

В процессе разработки в качестве входных переменных для модуля расчета цветового диапазона были выбраны координаты цветовой модели {R,G,B}. Все они считаются равноправными и функции принадлежности и терм-множества для них идентичны. В качестве термов были выбраны с функциями принадлежности:

где

где

где
Рис.5 Функции принадлежности, использующиеся в программе.

В данной задаче правила нечеткой продукции предельно упрощены и могут быть представлены в виде:

если есть , то есть .

где i-тое правило, входная лингвистическая переменная, выходная лингвистическая переменная.

Фаззификация.

В контексте нечеткой логики под фаззификацией понимается не только отдельный этап выполнения нечеткого вывода, но и собственно процесс или процедура нахождения значений функций принадлежности нечетких множеств (термов) на основе обычных (не нечетких) исходных данных . Фаззификацию еще называют введением нечеткости. Целью этапа фаззификации является установление соответствия между конкретным (численным) значением отдельной входной переменной системы нечеткого вывода и значением функции принадлежности соответствующего ей терма входной лингвистической переменной. После завершения этого этапа для всех входных переменных должны быть определены конкретные значения функций принадлежности по каждому из лингвистических термов, которые используются в подусловиях базы правил системы нечеткого вывода. Формально процедура фаззификации выполняется следующим образом. До начала этого этапа предполагаются известными конкретные значения всех входных переменных системы нечеткого вывода, т.е. множество значений . В общем случае каждое , где — универсум лингвистической переменной . Эти значения могут быть получены либо от датчиков, либо некоторым другим, внешним по отношению к системе нечеткого вывода способом (выбор цвета пользователем). Далее рассматривается каждое из подусловий вида правил системы нечеткого вывода, где – некоторый терм с известной функцией принадлежности . При этом значение используется в качестве аргумента , тем самым находится количественное значение . Это значение и является результатом фаззификации подусловия . Этап фаззификации считается законченным, когда будут найдены все значения для каждого из подусловий всех правил, входящих в рассматриваемую базу правил системы нечеткого вывода. Это множество значений обозначим через . При этом если некоторый терм лингвистической переменной , не присутствует ни в одном из нечетких высказываний, то соответствующее ему значение функции принадлежности не находится в процессе фаззификации. Реализация этапа в подсистеме анализа цветовой информации. Четкому значению входной переменной сопоставляются три вектора(colorl,colorm,colorh).Этап фаззификации в данной реализации совмещен с этапами агрегирования (в правилах присутствуют только условия), активизации (функции принадлежности входных и выходных лингвистических переменных идентичны). Т.о., вектора представляют собой три нечетких множества, полученных в результате min-активизации.

Агрегирование.

Агрегирование представляет собой процедуру определения степени истинности условий по каждому из правил системы нечеткого вывода. Формально процедура агрегирования выполняется следующим образом. До начала этого этапа предполагаются известными значения истинности всех подусловий системы нечеткого вывода, т. е. множество значений . Далее рассматривается каждое из условий правил системы нечеткого вывода. Если условие правила представляет собой нечеткое высказывание вида 1 или 2, то степень его истинности равна соответствующему значению . Если же условие состоит из нескольких подусловий вида (7.2), причем лингвистические переменные в подусловиях попарно не равны друг другу, то определяется степень истинности сложного высказывания на основе известных значений истинности подусловий. При этом для определения результата нечеткой конъ юнкции или связки "И" может быть использована одна из формул, приведенных в теоретическом разделе, а для определения результата нечеткой дизъюнкции или связки "ИЛИ" может быть также использована одна из формул, приведенных в теоретическом разделе. При этом значения b_i’ используются в качестве аргументов соответствующих логических операций. Тем самым находятся количественные значения истинности всех условий правил системы нечеткого вывода. Этап агрегирования считается законченным, когда будут найдены все значения для каждого из правил , входящих в рассматриваемую базу правил системы нечеткого вывода. Это множество значений обозначим через .

Активизация.

Активизация в системах нечеткого вывода представляет собой процедуру или процесс нахождения степени истинности каждого из подзаключений правил нечетких продукций. Активизация в общем случае во многом аналогична композиции нечетких отношений, но не тождественна ей. Поскольку в системах нечеткого вывода используются лингвистические переменные, формулы для нечеткой композиции теряют свое значение. В действительности при формировании базы правил системы нечеткого вывода задаются весовые коэффициенты , для каждого правила (по умолчанию предполагается, если весовой коэффициент не задан явно, то его значение равно 1). Формально процедура активизации выполняется следующим образом. До начала этого этапа предполагаются известными значения истинности всех условий системы нечеткого вывода, т. е. множество значений и значения весовых коэффициентов для каждого правила. Далее рассматривается каждое из заключений правил системы нечеткого вывода. Если заключение правила представляет собой нечеткое высказывание вида 1 или 2, то степень его истинности равна алгебраическому произведению соответствующего значения на весовой коэффициент . Если же заключение состоит из нескольких подзаключений, причем лингвистические переменные в подзаключениях попарно не равны друг другу, то степень истинности каждого из подзаключений равна алгебраическому произведению соответствующего значения на весовой коэффициент . Таким образом, находятся все значения степеней истинности подзаключений для каждого из правил , входящих в рассматриваемую базу правил . системы нечеткого вывода. Это множество значений обозначим через ,

где q— общее количество подзаключений в базе правил.

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

  • min-активизация:

  • prod-активизация:

  • average-активизация:

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

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

где q — общее количество подзаключений в базе правил системы нечеткого вывода.

Аккумуляция.

Аккумуляция или аккумулирование в системах нечеткого вывода представляет собой процедуру или процесс нахождения функции принадлежности для каждой из выходных лингвистических переменных множества . Цель аккумуляции заключается в том, чтобы объединить или аккумулировать все степени истинности заключений (подзаключений) для получения функции принадлежности каждой из выходных переменных. Причина необходимости выполнения этого этапа состоит в том, что подзаключения, относящиеся к одной и той же выходной лингвистической переменной, принадлежат различным правилам системы нечеткого вывода. Формально процедура аккумуляции выполняется следующим образом. До начала этого этапа предполагаются известными значения истинности всех подзаключений для каждого из правил Rk, входящих в рассматриваемую базу правил Р системы нечеткого вывода, в форме совокупности нечетких множеств: ,

где q — общее количество подзаключений в базе правил системы нечеткого вывода.

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

где s — общее количество выходных лингвистических переменных в базе правил системы нечеткого вывода.

Реализация этапа в подсистеме анализа цветовой информации.

В программе реализован метод max-объединения в виде

Дефаззификация.

Дефаззификация в системах нечеткого вывода представляет собой процедуру или процесс нахождения обычного (не нечеткого) значения для каждой из выходных лингвистических переменных множества . Цель дефаззификации заключается в том, чтобы, используя результаты аккумуляции всех выходных лингвистических переменных, получить обычное количественное значение (crisp value) каждой из выходных переменных, которое может быть использовано специальными устройствами, внешними по отношению к системе нечеткого вывода. Действительно применяемые в современных системах управления устройства и механизмы способны воспринимать традиционные команды в форме количественных значений соответствующих управляющих переменных. Именно по этой причине необходимо преобразовать нечеткие множества в некоторые конкретные значения переменных. Поэтому дефаззифцкацию называют также приведением к четкости. Формально процедура дефаззификации выполняется следующим образом. До начала этого этапа предполагаются известными функции принадлежности всех выходных лингвистических переменных в форме нечетких множеств: ,

где s — общее количество выходных лингвистических переменных в базе правил системы нечеткого вывода.

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

где s — общее количество выходных лингвистических переменных в базе правил системы нечеткого вывода.

Описание практической реализации

При запуске программы отображается окно

Рис. 6. Запуск программы

Для выбора исходного цвета следует нажать на кнопку Выбрать цвет. После этого отобразится стандартный диалог выбора цвета Windows.

Рис. 7. Выбор исходного цвета

Для начала обработки необходимо нажать кнопку Ok диалога выбора цвета. В окне отобразится четыре цветовых диапазона:

Диапазон по основному тону (соотношение R:G:B постоянно) Диапазон по красному цвету (изменяется доля красного) Диапазон по зеленому цвету (изменяется доля зеленого) Диапазон по синему цвету (изменяется доля синего)

Рис. 8. Результат работы программы

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


См. также