Для подготовки операторов сложных технических систем используются тренажерно-обучающие системы (ТОС) – технические средства, отвечающие требованиям методик подготовки, реализующие модель таких систем и обеспечивающие контроль за действиями обучаемого. Кроме формирования индивидуальных профессиональных навыков и умений, ТОС могут применяться для отработки групповых операций и для исследований [1]. Подсистема визуализации обеспечивает отображение результатов моделирования внешней среды и объекта управления с помощью устройств отображения информации. Мультимедийные технологии при построении ТОС позволяют создавать банки данных учебных материалов, содержащие изображения, тексты, сопровождающиеся аудио, видео и другими визуальными эффектами, включают в себя интерактивный интерфейс и дают возможность эффективно использовать накопленную информацию при организации дистанционного и распределенного обучения [2]. Одним из видов мультимедийной информации, использующейся в ТОС, является графический виртуальный образ инструктора [3]. Для его внедрения в единое синтезированное трехмерное окружение создан метод рир-проекции, базирующийся на методе 3D-кеинга.
Основной идеей технологии кеинга является выделение объекта от однородного фона. Данный процесс можно описать как процесс создания маски, содержащей информацию о прозрачности изображения и отделяющей объект от остального изображения. В компьютерной графике маска является изображением с одним каналом, используемым для определения прозрачных областей переднего плана и фона на скомбинированном изображении. Маску прозрачности часто называют альфа-каналом [4].
Создание качественной маски прозрачности – трудоемкая задача. Наиболее простым решением является создание маски, которая делает фон изображения полностью прозрачным, а объекты переднего плана абсолютно видимыми. Однако такой подход неприменим для сложных сцен: объекты переднего плана будут иметь резкие края и, соответственно, выглядеть нереалистично. Для отображения таких объектов, как волосы и дым, необходимо, чтобы маска прозрачности поддерживала не только дискретные значения прозрачности (0 – прозрачный объект, 1 – непрозрачный объект), но и значения в пределах от 0 до 1 для обеспечения частичной прозрачности объекта.
Существует несколько подходов для выделения объектов от фона. Наиболее распространенным является использование однородного фона, например синего или зеленого. Недостатком этого подхода является необходимость точной калибровки света для получения однородного фона. Еще один подход состоит в использовании нескольких изображений, на которых присутствует объект для выделения. Однако данный подход требует строгих условий съемки и применим только для статических объектов. Третий подход основывается на том, что объекты фона и переднего плана заранее известны. Пользователь выделяет объекты на переднем плане и фоне, а оставшаяся часть изображения – границы объекта на переднем плане – считается зоной перехода. Данный подход не может использоваться в реальном масштабе времени, соответственно, неприменим для подсистемы визуализации ТОС [5].
Проведем анализ существующих методов рир-проекции с целью определения возможности их использования в ТОС.
Существует большое количество методов кеинга, каждый со своими достоинствами и недостатками. Одним из наиболее простых является люма-кеинг (luma keying – кеинг по яркости). Так как большинство видеосигналов (таких как PAL, NTSC, SECAM) предоставляют информацию о яркости изображения отдельно от информации о цвете, задача создания маски прозрачности на основе яркости является достаточно простой. Если изображение представлено в цветовом пространстве RGB, целесообразно приведение цвета к цветовой модели HLS (Hue, Luminance, Saturation – цвет, яркость, насыщенность) для получения яркостной составляющей. Установив пороговое значение яркости, можно создать простую маску прозрачности, определяющую видимость пикселя – полностью видим или полностью невидим. Более совершенные методы люма-кеинга позволяют определять значения мягкости и допустимого предела. Мягкость описывает переход от полностью видимого пикселя к невидимому (что необходимо для кеинга полупрозрачных объектов, таких как стекло или вода, и для сохранения частичной видимости таких объектов, как волосы). Допустимый предел описывает диапазон значений вокруг заданного значения яркости. Параметры мягкости и допустимого предела применяются и в других видах кеинга. Из-за отсутствия возможности использовать информацию о цвете изображения люма-кеинг неприменим для большинства ситуаций, однако может найти применение для таких работ, как извлечение текста (черный текст на белом фоне) [6].
Другим методом кеинга является так называемый хромакеинг (chroma keying – кеинг по цветовой составляющей). Под хромакеингом подразумевается процесс создания маски прозрачности на основе цветовой информации изображения, в то время как информация о яркости и насыщенности не используется. Изображения объектов, снятых на более-менее однородном синем или зеленом фоне, можно выделить, используя только цветовую информацию.
Однако обеспечить полностью однородный фон у изображения (в том числе из-за особенностей освещения) невозможно. Из-за этого маска M создается путем задания предельно допустимого значения по цвету T для выбранного значения цвета H. Если значение H пикселя P находится в допустимых пределах, значение маски пикселя Mп устанавливается в 1, иначе – 0:
(1)
Следовательно, хромакеинг может быть осуществлен с использованием любого выбранного цвета фона. Однако качество хромакеинга обычно невысокое, особенно в случае сжатия изображения. Например, популярный видеоформат DV сжимает кадры видео в формат YCbCr 4:1:1 (для NTSC, для PAL применяется 4:2:0), что ведет к артефактам в цветовом канале. Хромакеинг сжатого изображения приведет к созданию маски худшего качества, чем несжатого.
Метод хромакеинга может быть улучшен путем добавления таких параметров, как оттенок и яркость изображения, а также их предельно допустимых значений. HLS-кеинг обрабатывает значения цвета (Hue – H), яркости (Luminance – L) и насыщенности (Saturation – S) изображения и использует полученные результаты для создания маски прозрачности (M). При использовании в методе параметра мягкости также повышается качество итогового изображения:
(2)
где a+b+d=1; Нф – цвет фона; Lф – яркость фона; Sф – насыщенность фона; Нп – цвет пикселя; Lп – яркость пикселя; Sп – насыщенность пикселя.
Несмотря на то что у HLS-кеинга есть такие недостатки, как острые грани, для смягчения которых требуется размытие или другие техники обработки граней, существует несколько приложений, использующих HLS-кеинг. Например, компания Autodesk предоставляет два модуля HLS-кеинга в своем ПО для монтажа Combustion: Discreet Keyer и Diamond Keyer.
На сегодняшний день термин «хромакеинг» используется для многочисленных методов вы- деления объектов переднего плана от фона изображения, которые не являются хромакеингом в первоначальном смысле этого слова. Причиной можно считать то, что изображение в цифро- вом формате представляется в цветовой модели RGB. Алгоритмы кеинга, работающие с изображением напрямую в цветовой модели RGB, используют информацию трех цветовых каналов, а не информацию о яркости или насыщенности изображения.
Примером кеинга, работающего в цветовом пространстве RGB, может являться методика определения различий между цветами. Данный метод был предложен Петро Влахосом в 1964 году. Изначально метод был разработан для химической и оптической обработки цвета отснятой кинопленки. Основной идеей определения различий между цветами изображения I является определение значения прозрачности на основе разности между цветовыми каналами R, G и B. Например, при использовании синего фона значение прозрачности (a) рассчитывается как разность значения синего канала (IB) и максимального значения двух цветовых каналов (IR и IG):
a = IB – MAX(IR, IG). (3)
Изначально данный метод был разработан для создания масок для кинопленки (а не для цифровых изображений), затем он был использован для создания аппаратуры по обработке аналогового видео и с 1995 года существует в виде ПО, распространяемого компанией Ultimatte.
Еще одним методом кеинга является 3D-кеинг. В 3D-кеинге маска прозрачности создается с использованием поверхностей и трехмерных объектов для отделения фоновых пикселей от осталь- ного изображения. Изображение представляется в виде точек определенного цвета (пикселей) в трехмерном пространстве RGB или HLS.
Обычно применяют два объекта: первый объект (O1), определяющий гарантированно фоновый цвет, перекрывается вторым объектом (О2), определяющим зону перехода. Одним из простейших объектов, определяющих границы цветов, является сфера. Поместим сферу S1 в пространстве так, чтобы она перекрывала облако цветов фона, то есть определяла диапазон значений цвета, которые будут считаться полностью прозрачными. Координаты этой сферы могут быть заданы автоматически на основе анализа цветов изображения либо вручную указаны пользователем.
Для получения плавной зоны перехода создается вторая сфера большего радиуса S2, центр которой располагается в той же точке, что и центр первой сферы. Как показано на рисунке 1, пиксели, расположенные внутри сферы S1, являются полностью прозрачными, пиксели, находящиеся вне сферы S2, – полностью видимыми, а пиксели, находящиеся между границами сфер S1 и S2, –полупрозрачными. Значения прозрачности рассчитываются на основе координат пикселя в трехмерном пространстве и центра сфер либо поверхностей S1 и S2.
Практически любой тип трехмерного объекта может быть использован для отделения цвета фона от цвета объектов переднего плана, однако в большинстве случаев применяются выпуклые каркасы (convex hull). Соответственно, необходимо, чтобы пользователь выделил несколько пикселей фона с целью их перекрытия выпуклым каркасом. Существуют два приложения на рынке, выполняющих 3D-кеинг при помощи трехмерных поверхностей: Primatte Keyer компании Imagica и Modular Keyer компании discreet/autodesk. Они различаются типом применяемых трехмерных объектов и алгоритмом взаимодействия с пользователем.
Известны и другие методы кеинга, которые требуют использования специального оборудования для захвата дополнительных данных, используемых для создания маски прозрачности. Так, один из методов подразумевает использование поляризованного света, который, отражаясь от кожи или поверхностей, становится неполяризованным, однако специальный материал фона отражает поляризованный свет. Разница в отраженном сигнале используется для создания маски прозрачности. Преимуществом данного подхода является независимость цвета объекта переднего плана от цвета фона. Нет необходимости как в точной настройке света для того, чтобы избежать получения определенных цветов на объекте переднего плана, так и в постобработке изображения для удаления засветки объекта переднего плана цветом фона. Недостатком данного метода являются значительные финансовые затраты на отражающий материал и оборудование для записи и обработки поляризованного сигнала.
Другой метод использует инфракрасное излучение для расчета дистанции каждого пикселя до камеры, поэтому он называется Z-кеингом. Используя информацию о глубине изображения, можно задать определенную границу и выделять только те объекты, которые соответствуют заданным параметрам глубины [7].
Еще один метод кеинга использует информацию о температуре объектов и создает маску прозрачности путем отделения холодных участков изображения от теплых [8]. Недостатком этого метода является то, что только живые или теплые объекты будут представлены как объекты переднего плана, в то время как некоторые детали, такие как волосы, не будут правильно вырезаны из фонового изображения [9].
Проанализировав существующие методы рир-проекции, можно создать сводную таблицу функциональности.
Проведенный анализ показывает ряд преимуществ 3D-кеинга перед другими методами рир-проекции и возможность его применения в ТОС.
Метод кеинга, реализованный в подсистеме визуализации ТОС, базируется на методе 3D-кеинга [10]. Так как любая реализации кеинга ресурсоемка, при обработке изображений большого размера на центральном процессоре трудно достичь работы подсистемы визуализации в режиме реального времени (не менее 25 кадров в секунду), что является одним из базовых требований к подсистеме визуализации. Даже использование современных многоядерных процессоров для выполнения кеинга не гарантирует существенного увеличения скорости обработки. На сегодняшний день производительные многоядерные процессоры состоят из 8–12 ядер и способны одновременно обрабатывать от одного до четырех (при использовании различных оптимизаций) пикселей изображения на каждом ядре. Современные видеокарты состоят из тысяч шейдерных процессоров, способных одновременно обрабатывать пиксели изображения. Учитывая данное обстоятельство, было принято решение использовать вычислительные мощности графического процессора для реализации кеинга.
Кеинг реализован в виде шейдера посредством языка GLSL и выполняется при помощи видеокарты. Обработка производится для каждого пикселя изображения. Пиксели изображения представляются в цветовой модели RGB, в то время как компонент a используется для определения прозрачности пикселя.
Первой проверкой является сравнение компонентов цвета пикселя друг с другом. Каждая компонента цвета представляется в диапазоне от 0 до 255. В зависимости от настроек параметров алгоритма происходит выбор базовой компоненты, доминирующей в фоне обрабатываемого изображения. Рассмотрим случай, когда базовой является компонента зеленого цвета (то есть фон, на котором снимается объект, зеленый). Осуществляем проверку на преобладание зеленой компоненты цвета пикселя над остальными, то есть (G > R) и (G > B). Однако данный подход подвержен ошибкам, например, если G = x, R = x – 1 и B = x – 1, то данный цвет является оттенком серого. По вышеуказанному критерию данный пиксель будет считаться не принадлежащим к объектам переднего плана, что неверно. Одним из способов повышения точности выбора пикселей с преобладающей зеленой компонентой является введение параметра дистанции. Таким образом, если
, (4)
пиксель не принадлежит к объектам переднего плана и, соответственно, должен быть прозрачным в итоговом изображении. Возведение в квадрат и извлечение квадратного корня являются ресурсоемкими операциями, поэтому используется упрощенная методика (приближенное значение) получения дистанции:
d = 2 ´ G – R – B. (5)
На рисунке 2 изображен RGB-куб, содержащий усеченную пирамиду OGYWC. Для каждой точки внутри пирамиды с координатами RGB выполняется условие G ≥ R и G ≥ B.
На рисунке 3 приведена усеченная пирамида OGYWC, пересеченная плоскостью S, параллельной диагонали OW. Необходимо отметить, что уравнение (5) применимо только для точек, расположенных внутри усеченной пирамиды (пикселей, в цвете которых преобладает зеленая компонента).
Положение плоскости S определяется значением параметра dмах. Для каждого пикселя изображения производится расчет значения d и маска прозрачности строится на основе сравнения значений d и dмах.
Генерируемая маска прозрачности позволяет задавать частичную прозрачность пикселя изображения. При объединении обработанного кеингом изображения с изображением, генерируемым подсистемой визуализации, итоговый пиксель будет являться линейной интерполяцией цвета пикселей двух изображений, а рассчитанное значение a будет выступать в качестве параметра.
Использование частичной прозрачности позволяет добиться плавного перехода между объектами переднего плана и фоновым изображением, генерируемым подсистемой визуализации. Дистанция d, рассчитанная по формуле (5), используется в качестве входящего параметра для функции расчета значения a. На основе параметров d, dмах и параметра мягкости (используемого в качестве порога, после которого пиксель считается лежащим в зоне перехода) рассчитывается значение a для конкретного пикселя. Формула расчета значения a основана на линейной интерполяции значений. Функция расчета a возвращает значение в отрезке [0:1] (0 – цвет полностью прозрачный, 1 – полностью непрозрачный). В OpenGL цвет представляется в виде значений от 0 до 1, а не от 0 до 255. Уравнение (5) возвращает значение на отрезке от 0 (полностью серый) до 510 (полностью зеленый), так как компоненты цвета R, G и B приведены к отрезку от 0 до 255.
Описанный метод не учитывает наличие отраженного света от фона на объектах переднего плана. Например, в области попадания отраженного света значение зеленой компоненты оказывалось меньше, чем значение красной компоненты, соответственно, такой пиксель признавался принадлежащим к объектам переднего плана. Такие цвета близки к светло-желтому, поэтому хорошо заметны на коже актера. Для преодоления данной проблемы была введена цветокоррекция. Пользователь выставляет пороговые значения, на основе которых алгоритм проверяет необходимость выполнения цветокоррекции для данного пикселя. Если значение зеленой компоненты превышает или равно значению красной компоненты минус первое пороговое значение, задаваемое пользователем, и значение зеленой компоненты равно или превышает значение синей компоненты плюс второе пороговое значение, задаваемое пользователем, то значение зеленой компоненты данного пикселя будет изменено на значение, лежащее в середине отрезка между значениями красной и синей компонент пикселя.
Таким образом, для использования графического виртуального образа инструктора в виртуальном трехмерном окружении ТОС были решены следующие задачи: разработан метод кеинга в виртуальном трехмерном окружении и реализован кеинг с использованием вычислительных мощностей графического процессора с незначительным, по сравнению с реализацией кеинга на центральном процессоре, снижением производительности подсистемы визуализации. Кроме того, введена цветокоррекция для устранения отраженного света от фона на объектах переднего плана.
Литература
1. Решетников В.Н. Космические телекоммуникации (начала). М.: ИТЦ МАТИ, 2013. 2-e изд. 184 с.
2. Мамросенко К.А. Нормативная база построения аэрокосмических тренажерно-обучающих систем // Программные продукты и системы. 2013. № 4. С. 43–49.
3. Гиацинтов А.М. Отображение разнородных видеоматериалов на гранях трехмерных объектов в подсистеме визуализации тренажерных обучающих систем // Программные продукты и системы. 2012. № 3. С. 80–86.
4. Schnarr B. How Chroma Keying Works. URL: http:// www.signvideo.com/chrom-ky-wks.htm (дата обращения: 30.06.2014).
5. Михайлюк М.В., Брагин В.И. Технологии виртуальной реальности в имитационно-тренажерных комплексах подготовки космонавтов // Пилотируемые полеты в космос. 2013. № 2 (7). С. 82–93.
6. Fraser Harrison – Post-Production: The Difference Between Chroma Key and Luma Key. URL: http://fraser-harrison-postproduction.blogspot.ru/2013/03/the-difference-between-chroma-key-and.html (дата обращения: 30.06.2014).
7. Robotics Institute: Z-Keying. URL: http://www.ri.cmu. edu/research_project_detail.html?project_id=79&menu_id=261 (дата обращения: 30.06.2014).
8. Hermo-Key. URL: http://nae-lab.org/project/thermo-key/ (дата обращения: 30.06.2014).
9. Schultz C. Digital Keying Methods. Germany: Univ. of Bremen, 2006, 34 p.
10. van den Bergh F., Lalioti V. Software Chroma Keying in an Immersive Virtual Environment. South African Computer Journ. 1999, no. 24, pp. 155–162.
References
1. Reshetnikov V.N. Kosmicheskie telekommunikatsii (nachala) [Space communications (basics)]. Moscow, ITTS
MATI Publ., 2013, 2nd ed., 184 p.
2. Mamrosenko K.A. The regulatory base to design aerospace training systems. Programmnye produkty i sistemy
[Software & Systems]. 2013, no. 4, pp. 43–49 (in Russ.).
3. Giatsintov A.M. Playback of heterogeneous videos on 3d object’s edges in visualization subsystem of training
simulation system. Programmnye produkty i sistemy [Software & Systems]. 2012, no. 3, pp. 80–86 (in Russ.).
4. Bill Schnarr. How Chroma Keying Works. Available at: http://www.signvideo.com/chrom-ky-wks.htm
(accessed June 30, 2014).
5. Mikhaylyuk M.V., Bragin V.I. Application of virtual reality technologies in simulation complexes for
cosmonaut training. Pilotiruemye polety v kosmos [Space Manned Missions]. 2013, no. 2 (7), pp. 82–93 (in Russ.).
6. Fraser Harrison – Post-Production: The Difference Between Chroma Key and Luma Key. Available at:
http://fraser-harrison-postproduction.blogspot.ru/2013/03/the-difference-between-chroma-key-and.html (accessed June
30, 2014).
7. Robotics Institute: Z-Keying. Available at: http://www.ri.cmu.edu/research_project_detail.html?project_id=
79& menu_id=261 (accessed June 30, 2014).
8. Thermo-Key. Available at: http://nae-lab.org/project/thermo-key/ (accessed June 30, 2014).
9. Schultz Ch. Digital keying methods. Germany, Univ. of Bremen Publ., 2006, 34 p.
10. van den Bergh F., Lalioti V. Software chroma keying in an immersive virtual environment. South African
Computer Journ. 1999, no. 24, pp. 155–162.