Московский государственный университет путей сообщения
Опубликован: 12.09.2011 | Доступ: платный | Студентов: 139 / 6 | Оценка: 4.67 / 4.33 | Длительность: 18:55:00
Специальности: Программист
Лекция 12:

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

< Лекция 11 || Лекция 12: 1234 || Лекция 13 >
Аннотация: Рассматривается возможность построения реагирующих объектов в трехмерной памяти, управляемых логической нейронной сетью. Обсуждаются принципы построения трехмерного экрана на основе достижения нано-технологий.
Ключевые слова: искусственный интеллект, распознавание, мультимедийность, сглаживание, "мышцы" и "кости", программа, анализ, логическая нейронная сеть, объект, трехмерная память , отображение, анимация, вторжение, визуализация, нейронная сеть, адресное пространство, мышца, система координат, вязкое тело, шарниров, проекция, командный язык, условный переход, непротиворечивость, адекватность, игровая модель, минимизация, целевая функция, мышление, прерывание, память, рецепторный слой, пространство признаков, принятия решений, алгебра, веса синапсических связей, нейрон, рецептор, значение, высказывание, нейросеть, выходной слой, логическое описание, истина, булева переменная, ассоциативное мышление, достоверность, вес, передаточная функция, функция активации, "живое" моделирование, путь, задача оценки, работ, архитектура, нейрокомпьютер, суперкомпьютер, SPMD, постановка задачи, персональный компьютер, сетевая технология, диапазон, пространство, прозрачный монитор , представление, множества, телевизор, реагирующие объекты , интеллектуальное отображение, сферическая система координат, компьютерная модель, прямоугольник, потеря информации, информация, математика, прозрачный монитор, энергия, память компьютера, экранный пакет , координаты, реагирующий объект, принцип построения

Какую задачу мы хотим решить?

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

А.И. Куприн, "Мысли Сапсана о людях, животных, предметах и событиях"

Во всех предыдущих лекциях в качестве примеров возможного применения обсуждается построение систем с элементами искусственного интеллекта, которые можно отнести к области искусства и развлечений. Фантазия легко связывает создание монстров, объектов компьютерных игр, имитацию их реакции на внешнюю среду или другие предлагаемые им объекты и ситуации с такими "мероприятиями", как парк фантасмагорий, Disney-lend, цирк марионеток, распознавание "свой – чужой", сетевые зрелищно-рекламные демонстрации и т.д. Такие системы могут представлять как искусство, так и бизнес.

Существуют два направления реализации указанных систем ИИ: натурное и компьютерное.

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

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

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

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

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

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

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

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

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

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

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

Предложения по созданию динамически управляемых с помощью логической нейронной сети трехмерных компьютерных объектов "живого" моделирования представлены в [2, 5].

Создание графических объектов в модели трехмерной памяти

Модель трехмерной памяти.

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

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

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

 Преобразование линейного адреса в трехмерный

Рис. 12.1. Преобразование линейного адреса в трехмерный

Пусть адресное пространство компьютера, отведенное для модели трехмерной памяти , при сквозной линейной адресации ячеек с нуля определяется N разрядами. Адрес разбивается на три части (рис.12.1).

Здесь x, y, z — координаты точки в трехмерной памяти .

Трехмерная память (в данном случае – кубическая) в виртуальной линейной памяти компьютера задается массивом M[0:N; 0:N; 0:N] переменных m[x, y, z]. Линейный адрес точки объекта находится: < m[x, y, z] >= C + x + yN + zN^2, где С – базовый адрес массива.

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

Процедуры преобразования

Создание реальных объектов требует введения основных процедур преобразования трехмерной памяти . Такие процедуры создаются на основе следующих построений.

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

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

Мышцы объекта являются невидимыми, входящими в список мышц данного объекта и допускающими реакцию на приказы извне.

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

Сокращение твердого тела определяется коэффициентом сжатия (растяжения) объекта.

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

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

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

Взаимодействие многих объектов требует наличия центральной системы координат, в которой происходят все перемещения объектов относительно друг друга, и систем координат, связанных с каждым объектом – объектовых систем координат. Объект создается в его объектовой системе координат. Его движения "относительно себя" — сокращение мышц, повороты, вращение – удобнее наблюдать в связанной с ним объектовой системе координат. Таким образом, центральная система координат должна быть связана со многими объектовыми системами матрицами пересчета.

Внешнее воздействие

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

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

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

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

Построение объектов

Для построения объектов целесообразно воспользоваться тремя координатными проекциями, подобно 3D-MAX. Сначала в одной из проекций рисуется пока неточный, предполагаемый разрез объекта. На других проекциях автоматически сформируются отрезки – боковые проекции этого разреза. На разрезе определяется точка для дальнейшей деформации объекта в двух других проекциях. Проекция этой точки высвечивается на двух других проекциях.

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

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

Командно-программное управление объектами

Необходимо помнить, что объекты в трехмерной памяти создаются для их визуального восприятия. Система визуализации может базироваться на проецировании видимой поверхности всех объектов, включая фон, на плоскость z = z_{max} в центральной системе координат. Эта плоскость и представляет экран. Значит, каждая прямая, исходящая из точки (x_i, y_i, z_{max} ) и перпендикулярная экрану, продолжается (здесь рассматриваем только прозрачную среду) до первого пересечения с одним из объектов или с фоном. Полученная точка обеспечивает изображение в данной текущей точке экрана.

Для получения различных (томографических) срезов экран может формироваться и в других плоскостях вида z = a \ge 0.

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

<сократить мышцу т с l = 0,8>;
<повернуть объект Р по матрице S>;
<приблизить объект Р>;
<перенести объект Р>;
<показать срез z = 5> и т.д.

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

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

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

< Лекция 11 || Лекция 12: 1234 || Лекция 13 >
Кирилл Артамонов
Кирилл Артамонов

"Тогда как задать возбуждение рецепторов, если инспектор точно установил, что скорость автомобиля при наезде на пешехода была равна 114 км/час?
По-видимому, он рассуждает на основе близости скорости к границам указанного интервала: "Достоверность того, что скорость автомобиля составляет 100 км/час, я найду как (114 – 100):(120 – 100), а достоверность того, что скорость автомобиля составляет 120 км/час, я найду как (120 – 114):(120 – 100). Следует обратить внимание на то, что сумма найденных достоверностей равна единице."

Вопрос по расчёту скорости и сумме достоверности: этот математический (приведенный выше в виде контекста из материала лекции 1, страницы 3) метод справедлив к скоростным показателям выходящим за рамки диапазона 100-120. 
То есть, практически применяв к расчёту, скорости из диапазона 114-155, к диапазону 100-120, получал в результате суммирования достоверностей единицу.
Это похоже на то, как я видимые разные скоростные показатели своим рецептором, буду воспринимать линейно с помощью одного диапазона, так как он универсален. 
Правильно ли это ? 
И как манипулировать данными показателями, если есть универсальный диапазон, по результату выводящий в сумме постоянно единицу на разных скоростных показателях стремящегося.

Владислав Гладышев
Владислав Гладышев

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