Еще один взгляд на компьютерную графику
АрхивОчевидно, что два основных требования, предъявляемых к современной компьютерной графике, - динамичность и реалистичность, - очень тяжело уживаются друг с другом. Понятно, что чем точнее и качественнее мы хотим отобразить объект, тем больший объем данных потребуется для его описания. Как следствие - рост времени обработки и падение скорости воспроизведения. Есть мнение, что современное "железо" позволяет не задумываться о таких вещах. Это не совсем верно. Конечно, успехи разработчиков оборудования несомненны. Но, во-первых, по-настоящему мощное оборудование весьма дорого и не всегда доступно массовому потребителю (а ведь именно на него рассчитаны, например, игры), а во-вторых, аппетиты разработчиков графических приложений переплюнут возможности любого имеющегося на данный момент графического ускорителя. Это не говоря уже о том, что упование на сверхмогущественное "железо" никогда не считалось хорошим тоном программирования.
Таким образом, до сих пор не потеряла (и, вероятнее всего, не потеряет) своей актуальности следующая задача: найти такое описание объекта, которое, во-первых, обеспечивало бы известную степень реалистичности отображения, а во-вторых, было бы как можно более компактным и удобным для обработки.
Возникает вопрос, не помогут ли в решении поставленной задачи знания о том, как человеческий глаз и мозг воспринимают действительность на самом деле? Что, если значительная часть информации, содержащейся в построенном неким способом описании объекта, окажется несущественной для его зрительного восприятия? Если бы удалось каким-то образом исключить эту информацию, можно было бы упростить это описание, не жертвуя (или почти не жертвуя) реалистичностью, а ведь именно к этому мы и стремимся.
На прошедшей недавно в Москве международной конференции "ГрафиКон '98" прозвучал доклад Паскаля Лерея (Pascal Leray, France Telecom) [1], посвященный вопросам взаимосвязи графики и человеческого зрения и кругу задач, которые могут быть решены с помощью упомянутого выше подхода. Рассмотрением некоторых положений этого доклада мы и займемся. (Таким образом, слово "взгляд" в названии статьи несет в себе двоякий смысл. Это взгляд на проблему с точки зрения... человеческого взгляда.)
Внимание наблюдателя в первую очередь концентрируется вокруг участков резкой смены цвета или яркости, контуров объектов. Автоматическое определение таких участков позволяет впоследствии выделять и распознавать отдельные фрагменты изображения - глаза, нос, губы...
Вернемся к задаче получения "хорошего" описания трехмерных объектов. Возьмем один из классических способов описания - сеточный. Поверхность объекта задается полигональной сеткой, ячейками которой могут быть треугольники или (реже) четырехугольники. Однако сетка (полученная, например, при сканировании реального трехмерного объекта лазерным сканером) нуждается, как правило, в серьезной оптимизации. Чтобы не потерять мелкие детали объекта, сканирование приходится осуществлять с мелким шагом. В результате получается частая сетка с большим числом ячеек. Но всегда ли необходима столь мелкая сетка? Предположим, например, что была сканирована каменная плита с одной необработанной стороной. Необработанную сторону действительно необходимо представить мелкой сеткой, но для описания остальных, плоских сторон мелкая сетка, разумеется, является избыточной, и из нее следует удалить как можно больше лишних вершин.
Как же определить, где сетку стоит прореживать, а где этого делать нельзя? Для этого объект (вернее, его описание) подвергают анализу, то есть разложению на некоторые составляющие. Каждая составляющая разложения характеризует наличие у объекта деталей или особенностей определенной величины. Первой (или нескольких первых) составляющих достаточно, чтобы получить грубое представление исходного объекта, так сказать, в общих контурах. Добавляя остальные компоненты, то есть повышая степень детализации, можно постепенно вернуться к исходному представлению. Если же какие-то составляющие сетки окажутся малы или даже сойдут на нет, это значит, что и соответствующие детали объекта либо пренебрежимо малы, либо просто отсутствуют. Информацию о них можно исключить из представления и в конце концов сделать сетку более крупной.
Анализ может быть иерархическим. В этом случае каждая составляющая разложения соответствует не только определенному уровню детализации, но и некоторому локальному участку поверхности объекта или даже просто конкретной детали на этом уровне. Такое разложение можно условно представить в виде пирамиды. Этажам пирамиды соответствуют уровни детализации. В вершине оказываются общие контуры объекта. Этажом ниже - крупные детали объекта. Чем ниже, тем мельче детали, и тем больше их становится. Двигаясь от вершины к основанию и собирая все детали, можно восстановить полное представление объекта. Часть элементов пирамиды может оказаться несущественной. Вернемся к примеру с плитой: мелкими деталями обладает только одна сторона, для адекватного представления остальных сторон достаточно будет лишь нескольких верхних этажей пирамиды. Экономия налицо!
Однако и этого бывает мало, и даже преобразованное представление объекта по-прежнему остается громоздким, неудобным для обработки и воспроизведения. Как же поступить дальше?
Настало время поговорить о том, как наблюдатель видит объект и как этим можно воспользоваться. Трехмерный объект никогда не попадает в поле зрения наблюдателя целиком; одни фрагменты могут быть заслонены другими фрагментами или другими объектами, а задняя сторона объекта вообще не видна. Кроме того, на некотором удалении мелкие детали даже на видимых частях объекта становятся неразличимы для наблюдателя . Руководствуясь этими соображениями, описание объекта нетрудно весьма кардинально упростить. Однако такое упрощение исключает динамику, то есть перемещение в пространстве как объектов, так и самого наблюдателя, а ведь именно динамика нам необходима. Гораздо интереснее получить представление, которое могло бы быстро адаптироваться к изменению взаимного расположения объектов и наблюдателя. Здесь нам снова поможет иерархический анализ. Пусть для некоторого объекта построено пирамидальное представление. Зная расположение наблюдателя и объекта, можно достаточно быстро автоматически выбирать из построенной пирамиды только те элементы, которые важны для формирования изображения, видимого наблюдателем в данный момент.
Иерархический анализ объекта от общих контуров до мелких деталей. Такой анализ очень похож на процесс обработки зрительной информации в мозгу человека.
Теперь о том, как строить такие представления. Мы показали, что процесс анализа позволяет определять наличие в описании объекта малосущественных деталей и удалять из описания соответствующую информацию. Однако мы не уточняли, каким образом выделяются детали и как определяется степень их существенности.
Посмотрим, как в действительности происходит анализ.
Есть некоторый вектор, то есть набор чисел, описывающий объект. Таким набором может быть, например, список вершин сетки. Анализ заключается в разложении вектора по некоторому базису в векторном пространстве. Процесс выделения из исходного представления (или подавления в этом представлении) элементов разложения называется фильтрацией; инструмент, используемый для фильтрации, называется фильтром. Любому базису разложения можно поставить в соответствие набор фильтров. В частности, базису иерархического разложения ставится в соответствие пирамидальная система фильтров.
При выборе базиса можно руководствоваться различными соображениями. Например, разложение по базису должно обладать следующими свойствами: а) по небольшой части элементов разложения можно построить грубое приближение исходного представления, при добавлении последующих элементов степень близости результата к исходному представлению должна возрастать (разложение по уровням детализации); б) желательно, чтобы возможно больше коэффициентов разложения оказались бы близкими к нулю и при удалении из разложения элементов с этими коэффициентами результат оставался бы достаточно близок к исходному представлению. Обычно используются математические критерии близости, из этих же соображений выбирается и базис. То есть исходный и преобразованный вектор сравниваются, как два математических объекта.
Мы же хотим использовать другой критерий, а именно критерий визуальной близости двух объектов. Иначе говоря, базис нужно построить так, чтобы коэффициенты элементов разложения характеризовали степень значимости вклада соответствующих элементов для визуального восприятия. Можно ли построить такой базис? Можно, - говорят современные исследователи.
Процесс восприятия зрительной информации в мозгу человека имеет иерархическую структуру, очень похожую на описанную выше. Сначала человек воспринимает общие очертания предмета, потом замечает крупные детали, потом более мелкие и т. д. Кроме того, не все, что человек видит в данный момент, он воспринимает одинаково. Его внимание в первую очередь концентрируется вокруг участков резкой смены цвета или яркости, контуров объектов и т. д. Равномерно окрашенные, без резких переходов области воспринимаются слабее.
Можно сказать, что в мозгу человека функционирует особая пирамидальная система фильтров, которая обеспечивает быстрый анализ, синтез и компактное хранение информации.
В 1987 году профессор Бернод (Burnod) [2] осуществил моделирование функций областей коры головного мозга, отвечающих за обработку зрительной информации, с помощью нейронных сетей. Нейронные сети - это логические схемы, созданные на основе математических моделей нервной системы живого существа. Основными элементами таких схем являются нейроны. Нейрон - это логический элемент, имеющий один или несколько входов и один выход. Основной характеристикой нейрона является порог. Принцип работы нейрона следующий. Время от времени на вход нейрона поступают импульсы от подключенных к нему других нейронов. Если суммарный импульс на входе превысит порог нейрона, то нейрон также сформирует на выходе импульс, в противном случае импульс сформирован не будет. Таким образом, каждый нейрон является фильтром, пропускающим или не пропускающим информацию при определенных условиях. Связи между нейронами определяются только конфигурацией сети. По-разному конфигурируя сети и устанавливая пороги нейронов, можно реализовывать сложные вычислительные схемы, в том числе моделировать ряд процессов, происходящих в нервной системе и коре головного мозга человека.
Итак, нейронные сети позволили смоделировать некоторые процессы обработки зрительной информации, и на основе этих моделей была создана модель человеческого зрения.
Далеко не вся информация, хранящаяся в описании объекта, требуется для формирования конкретного изображения. Для эффективного процесса генерации изображений в динамике необходимо автоматическое управление уровнем детализации.
Модель использует четыре уровня абстракций: пикселы (pixels), зоны (zones), объекты (objects) и метки (labels). Каждому уровню соответствует свой этап обработки. На пиксельном уровне выделяются особенности изображения: контуры, перепады, границы цветов. Следующий уровень выделяет однородные участки (зоны) пикселов, определяет их протяженность, ориентацию в пространстве, цвет, текстуру. Третий уровень обрабатывает объекты в системе координат наблюдателя, выделяет наиболее значимые детали видимого наблюдателем объекта. Четвертый уровень обрабатывает так называемые метки, или прототипы, то есть наиболее общие характеристики объектов, не зависящие от положения и ориентации наблюдателя, а также связи между метками.
Обработка информации на каждом уровне производится с помощью фильтров-нейронов. Прямые связи между нейронами обеспечивают анализ изображений (от пикселов к меткам), обратные связи - синтез (от меток к пикселам).
Анализ информации по такой системе фильтров моделирует аналитические процессы, происходящие в мозгу человека. Представим результат такого анализа в математической форме, то есть в виде разложения по определенному базису. Это тот самый базис, который мы хотели получить. Раскладывая описание объекта по этому базису, можно определить, какая информация не важна для восприятия, и пожертвовать ею, не ухудшая качества картинки.
Очевидно, что мы рассмотрели далеко не единственную задачу, которую можно решать, используя модели человеческого зрения. Вот только некоторые из уже существующих или еще только разрабатываемых приложений описанных технологий.
- Сжатие информации. Эта задача очень близка к задаче оптимизации описаний объектов, поэтому останавливаться на ней мы не будем.
- Системы искусственного зрения. Эти системы, основанные на моделировании человеческого зрения, по своим характеристикам значительно превосходят ранее существовавшие. Например, они позволяют решать проблему автоматического контроля качества изображений. Математические методы оценки, как правило, не могут дать ответ на вопрос, хорошо ли будет восприниматься синтезированное или полученное в результате какого-то преобразования изображение, приходится прибегать к визуальному контролю. Новые системы искусственного зрения помогут автоматизировать этот процесс, так как они способны оценить качество изображения "глазами человека".
- Оцифровка трехмерной информации. Существующие в настоящее время способы оцифровки, например упомянутое выше лазерное сканирование, во-первых, дороги (ввиду дороговизны оборудования), во-вторых, не всегда дают удовлетворительные результаты (погрешности сканирования, шум, огромные объемы данных на выходе, требующие к тому же серьезной обработки). Гораздо более дешевым является восстановление объектов по серии плоских изображений (снимков), полученных с разных точек (простейший случай - стереопара, то есть два снимка). Недостатком этого метода является, в первую очередь, необходимость совмещения снимков; эта операция очень плохо поддается автоматизации и часто требует вмешательства человека. С помощью предлагаемых методов анализа изображения задача совмещения может быть полностью автоматизирована, что позволит реализовать дешевые и быстрые способы оцифровки.
- Слияние синтеза и анализа. Традиционная графика использует принципиально различные инструменты для синтеза объектов (сетки, сплайны, формы) и для их анализа (фильтры). Теперь появляется возможность использовать фильтры как для синтеза, так и для анализа, и тем самым объединить эти операции.
Подведем некоторые итоги. В современной компьютерной графике быстро развивается направление, изучающее механизмы человеческого зрения, а полученные результаты использующее для решения конкретных задач. Не стоит считать, что оно возникло вдруг и стоит особняком от других направлений. Напротив, оно является логическим продолжением множества исследований, использует огромный накопленный опыт. Так, например, иерархические базисы и пирамидальные системы фильтров появляются в контексте вейвлет-анализа (или всплеск-анализа), который достаточно подробно рассматривался на страницах журнала [3]. С помощью вейвлетов успешно решаются задачи упрощения описаний объектов, реализуется автоматическое управление уровнем детализации, а также некоторые методы распознавания и классификации объектов. Теория нейронных сетей существует с 1940-х годов. Сама идея учитывать особенности зрительного восприятия для решения проблем графики также не нова, она нашла свое применение в задачах цветопередачи и сжатия изображений. Рассмотренное же здесь направление вобрало в себя и обобщило эти и другие идеи для выработки нового эффективного и универсального подхода к решению широкого спектра задач компьютерной графики.
Литература
[1] Pascal Leray. New Advances in Neiro-Biological Simulation of the Visual Cortex for Real World Computing, 3D Image Analysis and 3D Object Digitization. // GraphiCon '98 Proceedings, Moscow, 1998, pp. 9-16.
[2] Y. Burnod. "An Adaptive Neural Network: the Cerebral Cortex". Masson, Prentice Hall, 1998.
[3] "Компьютерра" #8, 2 марта 1998 г., стр. 28-53.