Московский государственный университет путей сообщения
Опубликован: 01.06.2007 | Доступ: свободный | Студентов: 1903 / 101 | Оценка: 4.38 / 3.75 | Длительность: 22:59:00
ISBN: 978-5-9556-0094-9
Специальности: Программист
Лекция 15:

Основы "живого" моделирования

15.13.3. Клип-моделирование интеллектуального отображения

Программная реализация клип-модели реагирующего объекта создана в среде системы визуального объектно-ориентированного программирования Delphi [6].

Внешний вид экрана для работы пользователя с моделью представлен на рис. 15.18.

Вид экрана  для работы с клип-моделью

увеличить изображение
Рис. 15.18. Вид экрана для работы с клип-моделью

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

Блок анализа внешней обстановки модели, имитирующий работу "органов зрения" компьютерного персонажа, запускается нажатием кнопки "ЧТО ЭТО?". Прежде всего осуществляется сканирование области рисования. При обнаружении в этой области какого-либо изображения производится нахождение границ изображения. Для этого вокруг него строится прямоугольная рамка, которая затем разбивается на число клеток, соответствующее размеру рецепторного слоя нейронной сети с учетом пропорций изображения. Таким способом в модели реализовано "фокусирование взгляда" компьютерного персонажа на объекте, и поэтому размер изображения в области рисования не имеет значения, что очень важно при распознавании.

Размер рецепторного слоя нейронной сети, т.е. разрешающая способность "зрения" компьютерного персонажа, является параметром данной модели. В данном примере он выбран 20x20, т.е. 400 рецепторов.

Область демонстрации клипов, показывающих реакцию компьютерного персонажа, реализована с помощью компонента Animate из библиотеки компонент Delphi5. Данный компонент обладает свойством FileName, которое позволяет программным способом указывать имя файла, содержащего требуемый для проигрывания клип. Кроме того, у компонента Animate имеется метод Play с параметрами FromFrame (начальный кадр), ToFrame (конечный кадр) и Count (число повторений анимации). Этот метод позволяет программным способом, динамически указывать, с какого кадра начинать и каким заканчивать проигрывание анимации. Таким образом, остается с помощью любой программы, позволяющей разрабатывать клипы, создать базу клипов, демонстрирующих реакции компьютерного персонажа на внешние раздражители.

В модели введены ограничения на качественные характеристики изображаемых объектов. Объекты могут быть только двух видов: съедобными и несъедобными. Соответственно компьютерный персонаж имеет только три реакции на внешнюю среду: 1 — состояние ожидания, оно же — если предмет незнакомый, 2 — состояние удовольствия, если узнан съедобный предмет, 3 — состояние неудовольствия, если узнан несъедобный предмет.

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

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

На рис. 15.19 показан результат предъявления необученному компьютерному персонажу изображения цветка.

Реакция  на предъявлении цветка до обучения

Рис. 15.19. Реакция на предъявлении цветка до обучения

Видно, что реакция отсутствует, а в поле названия написано "Не знаю, что это". Теперь, если в поле названия написать "Цветок", указать признак "несъедобное" и нажать кнопку "ЗАПОМНИТЬ", то начинает работать блок обучения модели. Прежде всего, вдоль контура рисунка производится закрашивание тех клеточек, которые захватываются контуром, затем каждая закрашенная клетка обрамляется закрашенными клетками справа, слева, сверху и снизу. Таким образом, вдоль контура формируется полоса допуска для учета "дрожания руки" при рисовании. Далее вычисляется значение передаточной функции и формируется строка матрицы следования. Затем вся информация об объекте запоминается в базе данных. Так происходит обучение компьютерного персонажа.

Реакция  на знакомое съедобное

увеличить изображение
Рис. 15.20. Реакция на знакомое съедобное

Когда компьютерный персонаж уже обучен, т.е. база данных не пуста, то при нажатии на кнопку "ЧТО ЭТО?" после сканирования области рисования и "фокусирования зрения" запускается блок распознавания. В нем сначала осуществляется закрашивание клеточек вдоль контура рисунка, а затем производится перебор эталонов базы данных и попытка "уложить предъявленный" образ в границы эталонов, хранимых в базе данных; при этом формируется список эталонов, в границы которых вписывается предъявленный образ. Если список пуст, то образ не узнан. В противном случае в качестве узнанного выбирается эталон в соответствии с максимальным возбуждением нейрона выходного слоя. В поле названия записывается имя эталона, указывается значение качественного признака (съедобное, несъедобное) и запускается клип реакции компьютерного персонажа. Пример такого результата показан на рис. 15.20.

***

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

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

Тогда возникает и проблема отображения коллективного разума. Это может быть актуально как для систем вида "человек — модель ИИ", так и для систем взаимодействующих моделей ИИ. При компьютерной реализации реагирующих объектов можно проделать следующий эксперимент: образовать круг мониторов (снабженных средствами видеовхода каждый) рабочих станций локальной вычислительной сети, чтобы реализованные на этих станциях объекты "видели" других членов "коллектива" [26]. Можно понаблюдать, как они будут реагировать друг на друга — придет ли система в умиротворенное состояние или, все более возбуждаясь, потребует постороннего вмешательства.

Эльвира Герейханова
Эльвира Герейханова

Раньше это можно было зделать просто нажав на тест и посмотреть результаты а сейчас никак

Елена Лобынцева
Елена Лобынцева
Помогите разобраться как можно подобрать НС для распознавания внутренней области выпуклого многоугольника?