Опубликован: 23.08.2014 | Уровень: для всех | Доступ: платный | ВУЗ: Северный (Арктический) федеральный университет им. М.В. Ломоносова
Лекция 5:

Разработка пользовательских мультимедийных приложений с использованием возможностей Intel Perceptual Computing SDK

Функционал данной версии трехмерного графического редактора можно расширить, добавив дополнительные возможности экспорта 3D-модели в файл для дальнейшей работы и несколько изменив непосредственно процесс создания объекта. Для моделирования более сложных объемных тел необходимо уменьшить размер элементарных объектов, из которых состоит 3D-модель, и предоставить пользователю возможность регулировать интенсивность потока этих элементарных объектов в процессе создания модели. Управлять толщиной объемной кисти можно, контролируя степень открытости ладони: при моделировании поднятым указательным пальцем генерировать наиболее тонкий поток элементарных объектов, при моделировании сжатым кулаком использовать среднюю толщину кисти, а при движениях полностью раскрытой ладони создавать наиболее широкую поверхность. С помощью такого инструментария можно создавать гораздо более сложные трехмерные объекты ( рис. 5.6), которые в дальнейшем могут использоваться для обработки другими программами.

3D-модель, созданная с помощью жестового редактора CubeFlow

Рис. 5.6. 3D-модель, созданная с помощью жестового редактора CubeFlow

Анимацией трехмерных объектов также можно управлять с помощью жестовых команд. Движение объемных предметов, определенное жестами, получается более плавным и реалистичным. Такой функционал можно реализовать как дополнительный модуль для любой из популярных программных пакетов для 3D-моделирования. Создавать траектории движения, в том числе с вращением объекта, можно, используя жесты захвата и слежение за положением рук. При выборе объекта происходит переход приложения в режим редактирования траектории движения. Управление стартом и окончанием задания траектории для объекта следует связать со статичными жестами (позами). Необходимо реализовать возможность захвата и задания траекторий не только для созданных пользователем моделей, но и для таких объектов, как камера и источники освещения сцены ( рис. 5.7). Дополнительной функциональностью может быть возможность выбора не только одного объекта, но и их группы, что позволит пользователю задавать одну траекторию движения сразу для нескольких объектов.

Управление трехмерной анимацией с помощью жестового интерфейса

Рис. 5.7. Управление трехмерной анимацией с помощью жестового интерфейса

Еще один вариант взаимодействия технологии Intel Perceptual Computing и мультимедиа - трехмерное сканирование предметов реального мира и оцифровка отсканированных моделей. Приложение для 3D-сканирования ( рис. 5.8) будет функционировать в случае наличия у камеры сенсоров глубины изображения.

В процессе 3D-сканирования анализируется форма физического объекта и на основе полученных данных создается его трехмерная модель. По методу сканирования 3D-сканеры разделяются на активные и пассивные. Активные сканеры излучают на объект некоторые направленные волны и обнаруживают его отражение для анализа.

Пассивные сканеры для анализа используют данные об обнаружении отраженного окружающего излучения. Большинство сканеров такого типа обнаруживает видимый свет - легкодоступное окружающее излучение. В случае с Intel Perceptual Computing сенсорами глубины изображения используется инфракрасное излучение, таким образом, интенсивность окружающего излучения не влияет на точность и корректность модели сканируемого объекта.

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

Полученную модель можно просмотреть с любого ракурса, отредактировать и использовать в качестве исходного материала для дальнейшей графической обработки. Отсканированную трехмерную модель можно напечатать на 3D-принтере, использовать в трехмерном произведении искусства, в компьютерной игре или для разработки технологии изготовления и инженерных расчётов.

Трехмерное сканирование объектов реального мира

Рис. 5.8. Трехмерное сканирование объектов реального мира

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

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

Более сложная реализация жестового и голосового управления презентацией состоит из двух режимов: редактирования презентации ( рис. 5.9) и непосредственной демонстрации.

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

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

Редактирование презентации, управляемой жестами

Рис. 5.9. Редактирование презентации, управляемой жестами

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

5.3. Принципы управления мультимедиа приложением с использованием Intel Perceptual Computing SDK

Качественная программа должна решать задачу пользователя наиболее удобным ему образом. Разработчику необходимо соблюсти баланс между функциональностью мультимедийного приложения и удобством его использования. Это означает, что, с одной стороны, процесс управления программой должен быть максимально понятен пользователю, с другой - необходимо обеспечить функциональную полноту приложения. Баланс функциональности и удобства в использовании особенно важен для мультимедиа приложений, которые в значительной степени носят развлекательный, информативный или обучающий характер. Поэтому при разработке мультимедийного приложения, в котором будет использоваться технология Intel Perceptual Computing, этому аспекту следует уделять особое внимание.

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

Далее, на этапе проектирования интерфейса, список конечных функций приложения, полученных в результате декомпозиции пользовательской задачи, следует соотнести с элементами управления программой. В данном случае в качестве элементов управления приложением рассматриваются не только стандартные элементы управления (кнопки, checkbox'ы, radiobutton'ы, выпадающие списки и др.) и их вариации, но и голосовые команды и жесты.

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

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

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

В отношении технологии Perceptual Computing на данный момент нельзя выделить устоявшихся интерфейсных шаблонов в силу новизны и низкой распространенности технологии, но в дальнейшем необходимо их учитывать. Чтобы иметь представление о том, какие жестовые и голосовые приемы управления мультимедийными приложениями наиболее удобны и понятны конечному пользователю, необходимо постоянно отслеживать и анализировать появляющиеся perceptual-приложения, а также исследовать пользовательские отзывы о них. На данном этапе ориентироваться следует в первую очередь на то, что пользователю должно быть интуитивно понятно, какой жест или голосовую команду ждет от него приложение, чтобы выполнить его задачу. Например, пользователь ожидает, что противоположные действия вызывают соответственно противоположные реакции приложения. Например, если жест "большой палец вверх" запускает запись сигнала с видеокамеры в файл, то жест "большой палец вниз" должен эту запись останавливать. Аналогичным образом следует поступать и с голосовыми командами.

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

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

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

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

Фрагменты интерфейсов популярных мультимедиа проигрывателей

Рис. 5.10. Фрагменты интерфейсов популярных мультимедиа проигрывателей

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

5.4. Разработка графического редактора с жестовым управлением

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

Функционал простейшего редактора растровой графики реализует базовые инструменты для работы с изображениями, такие как дорисовка изображения и выборочное редактирование, коллажирование, фотомонтаж, кадрирование. Именно такой набор функций лучше всего подходит для реализации графического редактора, использующего технологию Intel Perceptual Computing.

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

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

Выбор изображения для редактирования из галереи

Рис. 5.11. Выбор изображения для редактирования из галереи

Выбранное изображение появляется в окне редактирования ( рис. 5.12), которое содержит различные инструменты для работы с изображением: инструменты "карандаш", "овал", "прямоугольник", "прямая линия", цветовая палитра, регулятор толщины линии, а также кнопки "отменить", "повторить", "сохранить", "вставка изображения" и "выход". Выбрав инструмент рисования наведением курсора на нужную кнопку, пользователь определяет цвет и толщину линии. Процесс рисования контролируется движениями рук. Чтобы начать процесс рисования инструментом "карандаш", необходимо поднять указательный палец, остановка рисования осуществляется с помощью позы "победа". Аналогичным образом реализовано рисование графических примитивов (прямоуголник, овал, прямая линия). При наведении курсора на кнопку вставки изображения открывается окно галереи, выбранное пользователем изображение появляется в окне редактирования в месте, которое определяется положением курсора в момент поднятия указательного пальца. Размер вставляемого изображения также зависит от положения указательного пальца, закрепление размера также происходит при распознавании приложением позы "победа".

Сохранение изображения происходит при наведении курсора на кнопку "сохранить". Сохраненное изображение автоматически добавляется в галерею.

Процесс редактирования изображения

Рис. 5.12. Процесс редактирования изображения

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

5.5. Голосовое управление в стандартных сервисных приложениях (браузер, проигрыватель, слайдшоу)

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

Простейшим примером такого сервисного приложения является галерея изображений или слайдшоу. Базовый функционал слайдшоу-приложения должен включать в себя возможность старта показа изображений, паузу и остановку, а также переход к предыдущему или следующему изображению. В соответствие каждой такой функциональной единице могут быть поставлены следующие команды: "Go", "Pause", "Stop", "Previous" и "Next". Дополнительно могут быть реализованы функции установки текущего изображения в качестве фона рабочего стола командой "desktop", а также управление скоростью показа изображений. Последняя функция может быть реализована как постепенным изменением скорости на определенную долю командами "faster" и "slower", так и переключением между тремя режимами "быстро", "умеренно", "медленно" соответственно командами "fast", "medium", "slow".

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

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

Контрольные вопросы

  1. Что подразумевается под понятиями "мультимедиа" и "мультимедиа технологии"?
  2. Какие существуют типы распространенных мультимедиа приложений?
  3. В чем основные преимущества от совместного использования мультимедиа и технологии Perceptual Computing?
  4. В чем заключаются основные подходы к жестовому и голосовому управлению мультимедиа приложениями?
  5. Какой набор функций по обработке растровой графики можно реализовать через жестовый интерфейс?
  6. Какие функции стандартных сервисных приложений можно реализовать с помощью голосового управления?
Дмитрий Юнушкин
Дмитрий Юнушкин

В лабораторной работе №2 (идентификация лица) сказано:

в FaceTracking.cs: удалим или закомментируем функцию SimplePipelineкласс MyUtilMPipeline и изменим функцию AdvancedPipeline...

Класса MyUtilMPipeline  нет в проекте вообще;

Функции AdvancedPipeline так же нет. Материалов к лабораторной  №2 в начале работы (по ссылке открывается та же страница) тоже нет.Это ошибки или используется другая версия примера?

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Дмитрий Юнушкин
Дмитрий Юнушкин
Россия, г. Пенза