Создание сферических трехмерных фотопанорам

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.11.2016
Размер файла 5,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Оглавление

Введение

1. Обзор и анализ предметной области

1.1 Обзор основных понятий предметной области

1.2 Обзор устройств виртуальной реальности

1.3 Обзор состава и параметров технических средств мобильных устройств

1.4 Обзор применимых языков программирования и обоснование выбора

1.5 Обзор сред разработки и обоснование выбора

1.5.1 Среда разработки Eclipse

1.5.2 Среда разработки Android Studio

1.5.3 Сравнение и выводы

1.6 Обзор существующих аналогов

2. Обзор и анализ существующих методов

2.1 HMD-совместимая сферическая стерео панорама с использованием одной камеры с нормальным объективом

2.1.1 Генерация сферической стерео панорамы с использованием одной камеры

2.1.2 Две степени свободы вращения

2.1.3 Сшивание изображения из фото полос

2.1.4 Результаты применимого метода

2.1.5 Выводы о проанализированном методе

3. Теоретическая часть работы

3.1 Цилиндрические и сферические фото панорамы

3.2 Панорамные перспективы (8 параметров)

3.3 Панорамные перспективы (3 параметра)

3.4 Оценка фокусного расстояния

3.5 Замыкание разрывов в панораме

3.6 Построение карт окружения

4. Практическая часть работы

4.1 Создание сферической панорамы для одной точки зрения

4.2 Отображение сферической панорамы

Заключение

Список использованных источников

Приложения

Аннотация

стереоизображение мозаичный сферический панорама

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

This paper describes a proposed project that will examine the development of mobile application for capturing and visualization of stereoscopic (stereo) images using approaches applied in modern 3D-televisions and stereo photo cameras. Based on chosen methods, application will be developed to simplify the technology of creating stereoscopic spherical photo panoramas with a further adding new features, including free social service for these panoramas.

Введение

За последние несколько лет 3D технологии вышли за пределы кинотеатров и плоских экранов телевизоров. Сегодня трехмерная графика покоряет стремительно растущую мобильную индустрию - индустрию карманных и планшетных устройств. Области применения 3D технологий, используемых мобильными приложениями, разнятся в зависимости от назначения: от развлекательных, игровых до областей инженерии, архитектуры и т.д. Примером может служить разработка компании Occipital, Inc. - Structure Sensor Sample. Приложение, функционирующее на платформе iOS, позволяет захватывать 3D модели практически любого предмета в режиме реального времени. Возможность полностью воспроизводить геометрию захватываемого предмета для дальнейшей работы с полученной трехмерной моделью.

Взаимодействие с 3D-сценами также является важным требованием большинства компьютерных приложений, связанных с моделированием или архитектурой. Так, например, Home Design 3D для Android, позволяет изобразить схему Вашей квартиры/дома/сада в режиме 2D, после чего будет создан реалистичный 3D-эскиз интерьера, включая подробные модели мебели, полового и настенного покрытия и прочих элементов дизайна. Однако, подобные трехмерные сцены - всего лишь проекция на 2-мерной поверхности (экране монитора). Улучшенное 3D восприятие может быть достигнуто с помощью оборудования Виртуальной Реальности (ВР) или современных устройств с 3D-дисплеями. Тем не менее, большинство этих устройств являются дорогостоящими и многие разработчики 3D-приложений, таких как инструменты моделирования и анимации, не выпускают продукцию, необходимую для этих программ.

На сегодняшний день обилие устройств виртуальной реальности поражает нас своим разнообразием и удивительными возможностями. Актуальность темы заключается в том, что технологии ВР стремительно развиваются, а новые разработки вытесняют устаревшие. Например, 3D кинотеатры сегодня - это относительно старое изобретение по сравнению с существующими аналогами. Несомненно передовой технологией является, например, шлем виртуальной реальности. Для лучшего погружения в виртуальный мир такие шлемы могут быть оснащены системами отслеживания движения головы, глаз, тела и т.д. Однако стоимость таких устройств от 500$ и выше, поэтому позволить себе такое приобретение может далеко не каждый. Более чем половина стоимости таких шлемов приходится на экран, благодаря которому мы видим отображаемые объекты. Эта причина и послужила идеи создания очков ВР с использованием смартфонов. Они представляют собой головной убор, оснащенный специальными линзами и отсеком для мобильного устройства. Качество желаемого 3D эффекта будет зависеть от характеристик мобильного устройства (разрешение дисплея, наличие акселерометра, гироскопа и т.д.) и непосредственно самих линз. Важно также учитывать качество мобильных приложений, которые взаимодействуют с очками ВР.

За предыдущие несколько лет на официальных интернет магазинах, таких как Google Play Market, Apple Store, были размещены сотни приложений для десятков моделей очков виртуальной реальности. Большинство из них имеют более развлекательное значение, нежели практическое. Поэтому в основе новизны идеи данной работы лежит создание уникального мобильного приложения, которое будет иметь скорее зрелищный характер, однако 3D решение будет лучшим вариантом для его реализации. Например, камера фото- и видеоаппаратуры может улавливать и запечатлеть видимое перед собой пространство аналогично человеческому глазу под углом близким к 180 градусам.

Визуализация отснятого фото/видео на 3D аппаратуре (как при просмотре фильма в кинотеатре) добавит чуть больше реалистичности на экран, но не сильно изменит нашего восприятия (например, мы не увидим пространства, расположенного за камерой).

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

Результат будет наилучшим при условии, что камера будет находится всегда в одном положении, следуя выбранному горизонту. Итак, на выходе - изображение. Тогда возникает вопрос: зачем нужен панорамный вид, не привычный нашему глазу, а главное - как увидеть полученное в выгодном для нас ракурсе? Именно трехмерная визуализация такой панорамы будет отличным решением данного вопроса.

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

Для достижения поставленной цели необходимо решение следующих задач:

* обзор и анализ существующих решении?;

* исследование методов и алгоритмов решения поставленной задачи;

* разработка модели мобильного приложения для захвата и визуализации стереоизображений;

* проведение эксперимента.

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

1. Обзор и анализ предметной области

1.1 Обзор основных понятий предметной области

Рассмотрим более подробно объекты предметной области, начав с определения понятия «стереоскопия». Стереоскопия - способ получения стереоизображении?, при котором обеспечивается условие одновременного рассмотрения объекта правым и левым глазом, имитирующие естественное бинокулярное зрение [1]. В свою очередь бинокулярное зрение - способность одновременно четко видеть изображение предмета обоими глазами; другими словами, каждый глаз человека (у животных аналогично) видит стереопару двух изображений, однако благодаря работе нашего зрительного анализатора (коре головного мозга) мы видим единый целостный образ. Стереопара - пара плоских различных между собой изображении? одного и того же объекта. Различны они потому, что отдельные части видимого объекта расположены на разном удалении от наблюдателя, и при просмотре с разных точек зрения (левый и правый глаз) имеют разное угловое смещение (параллакс). Основные методы стереоскопического изображения, используемые в технике: [2]

метод анаглифического разделения;

метод затворного разделения;

метод поляризованного разделения;

VR HMD - разделения в шлеме виртуальной реальности.

Цель данной работы заключается в создании приложения, способного отображать сферические трехмерные панорамы при помощи устройств ВР, на основании чего обратимся более подробно к последнему методу стереоскопического изображения - VR HMD.

1.2 Обзор устройств виртуальной реальности

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

Современные технологии отображения ВР делятся на три основные категории: [3]

Desktop VR - иногда называют Window on World (WoW) системы. Это простейший тип приложений виртуальной реальности. Он использует обычный монитор для отображения изображения (как правило, моноскопического) мира. Ни один другой сенсорной вывод не поддерживается;

Fish Tank VR - улучшенная версия Desktop VR. Эти системы поддерживают отслеживание движений головы и, следовательно, улучшают чувство погружения в среду благодаря эффекту параллакса движения. Они используют обычный монитор (очень часто с ЖК-затворными очками для просмотра стереоскопического изображения), но, как правило, не поддерживают сенсорную связь со стороны пользователя;

Системы погружения (Immersive systems) - конечные и пока что лучшие версии системы ВР. Они позволяют пользователю полностью погрузиться в мир компьютерной реальности, генерируется с помощью Head-mounted display (HMD), иначе говоря шлемов виртуальной реальности, которые поддерживают стереоскопическое представление сцены в соответствии с положением пользователя и его ориентацией в пространстве. Эти системы могут быть расширены с помощью аудио, тактильных и сенсорных интерфейсов.

Шлем виртуальной реальности (HMD) является устройством стереоскопического отображения, надеваемым на голову, которое имеет небольшой оптический дисплей для одного (монокулярный HMD ) или для каждого глаза (бинокулярный HMD). Зачастую такие шлемы снабжены акустической системой, гироскопическим или инфракрасным датчиком положения головы для большей реалистичности. Существует также оптический шлем виртуальной реальности (OHMD), который комбинирует виртуальный и реальный мир, реализуя так называемую дополненную реальность [4].

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

Рассмотрим наиболее популярные на 2015 год очки виртуальной реальности по версии технического онлайн-журнала Wareable (Табл. 1): [5]

Таблица 1. Наиболее популярные очки ВР (2015 г.)

Продукт

Совместимость c мобильным устройством

Наличие датчиков движения

Максимальная диагональ, дюйм, мм

Стоимость комплекта, USD

Samsung Gear VR

Samsung Galaxy (последние версии только с S6 и S6 edge)

Акселерометр, гироскоп, датчик приближения

5.1"

129.2

80-90$

Zeiss VR One

Samsung Galaxy S4,S5,S6, Nexus 5, LG-G3, iPhone 6

Отсутствуют

4,7"-5,2"

119,38-129,2

90-100$

Archos VR Headset

С большинством современных смартфонов

Акселерометр, гироскоп

4.7"-6"

119,38-152,4

25-27$

Google Cardboard

С большинством современных смартфонов

Отсутствуют

До 6"

152,4

15-25$

Исходя из приведенных данных Таблицы 1 Google Cardboard обладает всеми подходящими характеристиками и наименьшими затратами, в связи с чем предлагается использование данного устройства виртуальной реальности как основного при тестировании объекта разработки. Возможно дальнейшее проведение тестов с использованием продукта Archos VR Headset дабы проверить наличие взаимодействия приложения со встроенными датчиками устройства ВР.

1.3 Обзор состава и параметров технических средств мобильных устройств

Из отчета аналитической компании International Data Corporation (IDC) за ноябрь 2015 года [6] «Обзор и анализ мобильных операционных систем и их позиций на глобальном потребительском рынке» следует, что лидирующие позиции занимают системы Android и iOS. Android («Андромид») -- операционная система (ОС) для смартфонов, интернет-планшетов, электронных книг, цифровых проигрывателей, наручных часов, игровых приставок, нетбуков и других устройств. Основана на ядре Linux и собственной реализации виртуальной машины Java от Google [8]. Было предложено осуществить работу данного приложения на устройствах под управлением ОС Android с API 16 (Jelly Bean) или новее. В дальнейшем предполагается разработка под систему iOS.

Минимальная конфигурация мобильного устройства:

Мобильное устройство должно иметь фотокамеру. Желаемое минимальное разрешение - 8mpx.

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

Желаемое разрешение экрана - 1280х720 пикселей и выше.

1.4 Обзор применимых языков программирования и обоснование выбора

Операционная система Android существует благодаря виртуальной машине Dalvik Virtual Machine (DVM), написанной на языке программирования Java. Иными словами Java - родной язык Андроида, на основе которого реализовано большинство приложений системы. Существует специальный инструментарий для разработки под систему Android - Software Development Kit (Android SDK), для работы которого необходим комплект разработчика приложений на языке Java - Java Development Kit (JDK) [9].

В 2009 году был опубликован новый инструментарий - пакет Android Native Developers Kit (Android NDK), что дало возможность использования множества оптимизированных алгоритмов, уже реализованных в стандартных библиотеках для языков С/С++. Использовать NDK-инструментарий необходимо лишь в разработке определенных приложений, зачастую нацеленных на: [10]

Увеличение производительности программы (например, если в приложении имеет место обработка большого количества данных).

Использование сторонней библиотеки (например, OpenCV написанной на C/C++).

Использование низкоуровневнего языка программирования, близкого к машинным кодам.

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

Сегодня сложно представить программирование графических алгоритмов без применения специальных программных инструментариев, иначе говоря прикладных программных интерфейсов (API - Application Programming Interface). В первую очередь к ним относится Open Graphics Library (OpenGL) - открытая графическая библиотека для разработки приложений в области двухмерной и трехмерной графики [11].

Существует несколько разновидностей данной графической библиотеки. Нас же интересует подмножество графического интерфейса, разработанное специально для встраиваемых систем (мобильных устройств, игровых консолей) -- OpenGL for Embedded Systems (OpenGL ES).

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

Вторая важная функция разрабатываемого мобильного приложения -- это захват определенного количества кадров и их обработка. В 2006 году была впервые реализована и выпущена в открытый доступ библиотека компьютерного зрения с открытым исходным кодом OpenCV. Под компьютерным зрением понимается теория и технология создания машин, которые могут производить обнаружение, отслеживание и классификацию объектов [12]. Оно также используется в системах дополненной реальности, описанных выше. Изначально библиотека алгоритмов обработки изображений и компьютерного зрения была реализована на языках C/C++, однако на сегодняшний день используется на Java, Python и Ruby.

Таким образом, не учитывая выбранные для разработки библиотеки ввиду их независимости от языка программирования, основным языком для будущей разработки является Java, как родной и в лучшей степени адаптированный к среде Android. А также необходимы комплект разработчика JDK версии 8, инструментарий для разработки Android SDK версии 19 и подключаемые библиотеки OpenGL ES 2.0 и OpenCV 3.0.

1.5 Обзор сред разработки и обоснование выбора

Для разработки программного обеспечения, что включает в себя не только написание кода, но и сборку, отладку, компилирование, используется комплекс программных средств -- интегрированная среда разработки (Integrated development environment, IDE) [13].

Среда разработки состоит из следующих компонентов:

текстовый редактор;

компилятор и/или интерпретатор;

средства автоматизации сборки;

отладчик.

Среда разработки может также содержать различные инструменты для более простого построения графического интерфейса пользователя. При объектно-ориентированном программирование среда может содержать в себе браузер классов, инспектор объектов и диаграмму иерархии классов. Зачастую IDE могут работать сразу с несколькими языками программирования. Рассмотрим существующие среды, применимые к разработке на платформе Android:

1.5.1 Среда разработки Eclipse

Eclipse -- это свободная программная платформа для разработки модульных кроссплатформенных приложений [14]. Изначально разработка принадлежала компании IBM как стандарт IDE для написания ПО на разных языках программирования. Возможно, что в связи с большими затратами на проектирование и разработку, компания передала свой исходный код на OpenSource (в открытый доступ), после чего данный проект подвергался различным модификациям. Поддержкой и разработкой Eclipse в настоящее время занимается организация Eclipse Foundation.

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

Особенности платформы:

Кроссплатформенность -- работает под множеством ОС.

Разработка на языках Java, C, C++, Python, PHP, Perl и других.

Является программной платформой для разработки других инструментов и предлагает обширный набор интерфейсов (API) для создания модулей.

Набор модулей для разработки клиентского ПО (Rich Client Platform, RCP).

Eclipse IDE for Java Developers

Преимущества:

Удобный, интуитивно понятный интерфейс.

Поддержка средств автоматизированного рефакторинга.

Легкий обмен частями кода между проектами.

Удобная автоматизация процесса сборки программного продукта.

Автозавершение используется всякий раз, когда это возможно, и не только в редакторе (wizards screens).

Контроль за форматированием исходного кода Java, который может быть сохранен в виде профиля.

Легкая масштабируемость вкладки редактора.

Имеет фиксированный и быстрый просмотр (большинство редакторов предлагают только один или другой).

Мощный контроль над тем, как Java компилятор обрабатывает предупреждения и ошибки.

«Package view» имеет очень хорошие возможности фильтрации, например, чтобы показать / не показывать необходимые пакеты (теперь можно фильтровать закрытые пакеты, выбрав рабочий набор).

Отличный «code assist» для всех типов данных, учитывающий текущую область видимости.

Недостатки:

Нехватка в подсветке общего синтаксиса в строках кода.

Не понимает контекст (в отличии от «интеллектуальной» среды разработки);

Отсутствует встроенный редактор пользовательских форм (требует отдельной установки).

Не может самостоятельно опознавать установленные на компьютере JDK.

Не поддерживает импорт проектов NetBeans.

1.5.2 Среда разработки Android Studio

Android Studio -- это интегрированная среда разработки для работы с операционной системой (платформой) Android от компании Google. Одновременно с прекращением поддержки плагина ADT для Eclipse в конце 2014 года появилась первая стабильная версия среды. Android Studio считается официальной средой разработки ПО под платформу Android. ПО самой среды было разработано на IntelliJ IDEA от компании JetBrains. Среду также отличает кроссплатформенность (доступна для Windows, OS X и Linux) [15].

Особенности платформы:

Сборка приложений, основанная на системе автоматической сборки Gradle.

Разновидности сборок и генерация нескольких видов .apk файлов.

Рефакторинг программного кода.

Статический анализатор кода (Lint), который способен обнаружить проблемы производительности, несовместимости используемых версий и другое.

Шаблоны основных макетов сборки и различных компонентов Android.

Возможность писать приложения под Android Wear и Android TV.

Улучшенная поддержка Java 8.

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

Расширенный редактор макетов.

Преимущества:

Мастер настройки первого запуска среды.

Создание собственных шаблонов, импорт готовых.

Возможность редактирования кода IntelliJ IDEA под нужные предпочтения.

Управление строками перевода для создаваемых приложений.

Редактирование и просмотр Android-макетов в различных размерах экрана, версиях языка, а также версиях API.

Наличие инструмента анализа производительности Memory Monitor.

Наличие поддержки Google Cloud Platform.

Недостатки:

Постоянная синхронизация с Gradle заметно замедляет компиляцию рабочих проектов.

Зависание программы при работе с SpellChecker-ом.

Нет комфортной автоматизации при добавлении библиотек в проект.

1.5.3 Сравнение и выводы

Проанализировав преимущества и недостатки двух наиболее популярных интегрированных сред разработки, выбор использования одной из них в данном проекте пал на Android Studio. Главным преимуществом среды для меня стала тесная интеграция с Android SDK, что зачастую является не только фактором удобства в разработке, но и влияет на качество самих приложений, ведь некоторые функции тут строятся именно так, как этого предполагал сам владелец данной платформы. Также хочу обратить внимание, что данная среда в первую очередь зарекомендована IntelliJ IDEA и продвигается Google, разработкой которых и является данная ОС, под которую и будет реализован наш проект. Поддержка Gradle, несмотря на недостаток в замедлении работы всего процесса, является также приятным бонусом в разработке сложного многоступенчатого проекта.

1.6 Обзор существующих аналогов

Таблица 2. Системы захвата стереоизображений

Аналоги

Тип устройства

Кол-во камер

Функционал

Дополнительные средства

Цена,

$

Cardboard Camera

Мобильное приложение

1

Цилиндрическая панорама, разделение на стереопару

Очки ВР Google Cardboard

--

VRability

Система из камер GoPro HERO 4

7

Сферическая панорама, стереопара (обработка через ПО на PC)

Очки/шлем ВР + мобильное приложение

Нет в продаже, приложение бесплатное

Panono camera

Сферическая фотокамера

36

Сферическая панорама (ПО камеры)

Мобильное приложение

1500

VaR's VR Video Player

Мобильное приложение

--

Алгоритмы стягивания панорамы в сферическую

Очки/шлем ВР

--

Nokia Ozo

Профессиональная сферическая ВР-камера

8

Захват 3D-видео с углом обзора 360° и запись пространственного звука

Шлем ВР

50 000

Samsung Beyond

3D-камера с круговым обзором

17

Специальные алгоритмы стереоскопической съёмки с наложением и техника 3D- совмещения

Gear VR -- шлем

380

Сравнительный анализ систем захвата изображений (см. Табл. 2) показывает, что главным конкурентом в области мобильной разработки является продукт Google Cardboard Camera. Однако сегодня приложение выполняет съемку панорамы в одной плоскости (под одним углом к горизонту), не имеет социальных сервисов для распространения контента, а также просмотр рассчитан на использование их собственной гарнитуры - очков ВР Cardboard. Возможно, что под ряд других устройств ВР оно просто не подойдет. Остальные аналоги имеют ряд существенных недостатков несмотря на простоту их использования.

2. Обзор и анализ существующих методов

2.1 HMD-совместимая сферическая стерео панорама с использованием одной камеры с нормальным объективом

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

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

Однако ни моноскопическая панорама, ни обычное стереоизображение не способны обеспечить полное погружение в среду виртуальной реальности посредством HMD.

Для отображения фиксированного изображения со 100% ВР-погружением, это изображение должно являть собой панораму с полной сферической проекцией, чтобы охватить произвольное направление обзора.

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

В 2001 году Пелег и др. продемонстрировали, что стерео панорамы не могут быть запечатлены с помощью двух камер с 360-градусным полем зрения в горизонтальной плоскости [18]. Кроме того, они предложили следующий способ: использовать одну вращающуюся камеру для создания планарных стерео панорам. Ли и др., например, предусматривают метод реконструкции глубины, основанный на планарной стерео панораме [19]. На основе метода вращающейся камеры, Ли и др. [20] и Бурк [21] использовали одну камеру “рыбий глаз”, вращающуюся вдоль оси от оптического центра, для того, чтобы захватить кадры словно мозаику и построить сферическое стерео, основанное на этой мозаике.

Для всех этих выше упомянутых подходов, они рассматривали только одну степень свободы движения камеры - вращение вокруг неподвижной оси. Так как высота для камеры неизменна, камере “рыбий глаз” необходимо получить изображения в зените и надире, чтобы иметь полную сферическую панораму.

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

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

В последнее время Nokia и другие компании выпустили свои коммерциализованные продукты - устройства для захвата сферических стерео панорам, такие как Nokia Ozo, Samsung Beyond. Без сомнений, все они имеют несколько камер, охватывающих практически все направления на сферическом устройстве. Но такие устройства являются дорогостоящими, пригодными скорее для профессионального использования.

В работе мы рассмотрим метод для создания так называемой сферической стерео панорамы, используя только одну камеру с обычным объективом, основываясь на идеях создания планарных стерео панорам с использованием одной камеры [23].

2.1 Генерация сферической стерео панорамы с использованием одной камеры

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

2.1.2Две степени свободы вращения

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

Кроме того, камере также необходимо иметь возможность вращаться вокруг горизонтальной оси, чтобы получить изображения на различной высоте к зениту или надиру. Высоты отсчитываются в пределах от 0° до +90° к зениту и от 0° до ?90° к надиру. Наиболее удобный инструмент для применения 2-ух степеней свободы вращения является обычный штатив. Головка штатива может вращаться по горизонтали вокруг оси за камеру и оптического центра, если угол места Угол места (элевация) -- угловая высота наблюдаемого объекта над истинным горизонтом. Угол места совместно с азимутом служат для определения направления на объект. равен 0°. Камера также может вращаться под различным наклоном к горизонтальной оси относительно оборотной стороны корпусу камеры. Тем не менее, так как горизонтальная ось не проходит через оптический центр камеры, расстояние между оптическим центром и вертикальной осью может резко изменяться на различных высотах. Например, как показано на Рис.3 (a), когда угол места равен 0°, расстояние между оптическим центром камеры и осью вертикального вращения составляет около 10 см. Когда угол изменяется на -70°, расстояние между оптическим центром и вращающейся осью составляет около 15 см, как показано на Рис.3 (б). Однако, когда мы поднимаем камеру на 50° к высоте (Рис.3(с)), оптический центр камеры и ось перекрываются, так что мы можем получить кадры для извлечения стереоизображения только под углом ниже 50° для нашей установки.

(а) 0° (б) -70° (с) 50°

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 4 показывает геометрическую связь установки. Когда необходимо сосредоточиться на объектах, находящихся на расстоянии S (т.е. нулевая диспаратность Диспаратность - различие взаимного положения точек, отображаемых на сетчатках левого и правого глаза. Нулевая диспаратность означает, что различия в положении нет. расположена на расстоянии S), то угол охвата данного объекта равен , в то время как угол между оптической осью камеры и световым полем изображения равен в. Обозначив расстояние между полосой и центром изображения как v, расстояние между вращающимся центром и оптическим центром как r, мы имеем следующую связь между углом охвата и полосой разделения:

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Ясно видно, что, когда угол места приближается к 50°, прогнозируемая полоса разделения близится к бесконечности, и в этой ситуации оптический центр и ось вращения перекрываются, а значит, мы не в состоянии генерировать полосы стерео пары.

2.1.3 Сшивание изображения из фото полос

Конвейер для сшивания изображений является основной частью создания панорамы. Сперва необходимо отобрать фото с разных точек зрения с разумной степенью перекрытия, тогда на выходе мы получаем сшитое широкоугольное сферическое изображение. Браун и Лоу описали этот конвейер очень доступно в своей работе [16], поэтому проанализируем данный алгоритм.

Первый этап - выявление особенностей (Feature Detection). Концепция feature detection в компьютерном зрении относится к методам, которые нацелены на вычисление абстракций изображения и выделения на нем ключевых особенностей. Данные особенности могут быть как в виде изолированных точек, так и кривых или связанных областей. Рассмотрим алгоритм SIFT, исходный код которого Лоу разместил на официальном сайте. Алгоритм SIFT (Scale-invariant feature transform) был предложен Девидом Лоу [23] [24] в 1999 году. Он позволяет сравнивать изображения, подвергнутые таким трансформациям как изменение масштаба, смещение объекта на сцене, повороты камеры или объекта.

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

Для оценки парной матрицы гомографии было доказано, что для всех точек, которые лежат на одной плоскости в трехмерной системе координат, их координаты, проецируемые на 2 камеры, удовлетворяют простое преобразование гомографии и что матрица гомографии имеет восемь степеней свободы. Для того, чтобы оценить матрицу гомографии, нам нужно 4 пары совпадающих признаков, но на самом деле у нас есть гораздо больше. Каждая группа из 4-х подобранных функций соответствует матрице гомографии, и мы должны использовать алгоритм RANSAC (случайная выборка консенсуса), чтобы выбрать лучший. Лучшая оценка матрицы гомографии после RANSAC содержит «инлаеры» (англ. inlier) - хорошие точки, удовлетворяющие модели, и «аутлаеры» (англ. outlier) - ложные точки, шумы. Чем выше «инлаеры» и ниже «аутлаеры», тем больше вероятности, что два изображения содержат зоны перекрытия. Каждая пара двух изображений имеет матрицу гомографии. Матрицы гомографии оцениваются с более высокой достоверностью, чем реальное пороговое значение.

Для осуществления блочного уравнивания Блочное уравнивание - это процесс вычисления уравнивания (или трансформирования), основанный на внутреннем отношении между перекрывающимися изображениями, опорными точками (GCP), моделью камеры, ЦМР и применением уравнивания к изображениям в пределах блока. существует как наивный, так и лучший подход. В нашем случае моно панорамы, а потому используем часть кода для MATLAB, осуществляющий подгонку имеющегося набора данных эвристически. Перед подгонкой, сшитое изображение может резко “дрейфовать”. В работе [22] выведена функция согласования, которая периодически тянет дрейфующую часть изображения обратно на горизонтальную линию. Это отлично работает для моно панорамы, но не работает для сферической. В сферическом случае мы используем тот же метод как и у Лоу. После подгонки имеющегося набора данных происходит деформирование изображения. В случае моно панорамы, была определена матрица преобразования для всех изображений, так что все изображения могут деформироваться вместе.

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

После усиления компенсации, края изображения все еще видны. Граничные пиксели, по всей вероятности, имеют разную интенсивность. Для того, чтобы сгладить границы, мы можем выполнить смешивание всех изображений. Смешение по существу означает присвоение весовых коэффициентов для различных изображений на области перекрытия. Для конкретного изображения, наивный подход присвоения весовых коэффициентов заключается в присвоении «1» центральной точке и изменении весовых коэффициентов к нулю на границе. Граничный эффект практически устраняется данным подходом. Чтобы сохранить резкость изображений, мы можем выполнить многополосное смешивание. Идея многополосности заключается в смешивании короткого диапазона для высокой частотной составляющей и широкого диапазона для низкочастотной составляющей.

2.1.4 Результаты применимого метода

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

* Создание стерео панорамы, но для цилиндрической проекции

Для цилиндрической проекции стерео панорамы, так как мы зафиксировали угол места на 0°, нам не нужно беспокоиться о настройке разделительной полосы. Кроме того, для нашего удобства, чтобы не вносить слишком много диспаратности, необходимо взять серию фотографий в помещении так, что глубины различных объектов не имели бы разительного изменения. Мы берем 90 фотографий при вращении камеры на 360 градусов вокруг вертикальной оси за камеру, где угловое расстояние для каждого изображения 4°. Оригинальный размер изображения составляет 1200 х 800 пикселей, в то время как размер сенсора камеры (Canon 500D) составляет 22,3 х 14,9 мм. Расстояние между центром полосы и центром изображения составляет 300 пикселей, в то время как каждая ширина полосы составляет 200 пикселей. Тогда у нас есть два набора 200 х 800 полос, каждый набор из которых содержит 90 фотографий. Так как нашей целью является сшивание фотопанорамы только в одном направлении, то генерировать две панорамы из каждой полосы множеств относительно легко. Две панорамы, представленные для каждого глаза, показаны на Рис. 6 (а) и Рис. 6 (б). Объединенная карта диспаратности для двух изображений показана на Рис. 6 (в).

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

* Создание проекции сферической панорамы, но для моноскопической панорамы

По сравнению с цилиндрической проекцией для заданного набора полос, гораздо сложнее построить панораму сферической проекции, особенно из узких полосок. Во-первых, мы пытаемся построить цилиндрические панорамы для каждого угла места, для 0°, как показано на Рис. 7, и для -10°, как показано на Рис. 8. Тем не менее, чрезвычайно трудно использовать тот же алгоритм, чтобы сшить две цилиндрические панорамы в единый образ, поскольку присутствует очень сильное искажение вдоль верхней и нижней частей фотографии. Имеют место некоторые улучшения, в том числе увеличение ширины полос и сшивание с помощью внешнего пакета фотографий для различных азимутов и углов места в одно время, а не в 2 этапа. Окончательные результаты для моноскопической сферической панорамы показаны на Рис. 9.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

2.1.5 Выводы о проанализированном методе

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

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

Основные завершающие задачи на этапе окончательной интеграции:

Сложность в сшивании двухмерных фото для узких полос

Обработка в точках зенита и надира

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

3. Теоретическая часть работы

В предыдущем разделе мы рассмотрели случай вращения обычной камеры с использованием планарной перспективной модели движения с использованием 2-ух степеней свободы. Алгоритм, который будет разработан и использован в данной работе предполагает 3-ех параметрическую модель вращательного движения, которая является более надежной, однако, будет иметь чуть больше неизвестных. Так как этот алгоритм требует знания фокусного расстояния камеры, разработаем метод вычисления оценки начальной фокусной длины, основываясь на алгоритме регистрации изображений. Регистрация (сопоставление, наложение) двух изображений - это процедура поиска наилучшего соответствия между пикселями данных изображений. Для успешной реализации данной процедуры изображения должны быть подобными, то есть, в результате преобразования первого изображения (или какой-либо его части) может быть получено второе изображение (либо его часть). Кроме того, нужно, чтобы изображения уже сами по себе находились в приближенном соответствии, то есть должно быть задано начальное приближение, от которого будет производиться поиск оптимальных параметров соответствия изображений. Кроме того, в данный работе будут разработаны алгоритмы закрытия "интервалов" (или наоборот "перекрытий") из-за накопившихся ошибок регистраций после того, как полная панорамная последовательность будет собрана. Преимущества данного алгоритма в том, что мы применяем его к последовательности изображений, сделанных с помощью портативной камеры мобильного телефона.

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

После того, как мозаика будет построена, она может быть отображена в цилиндрической или сферической системе координат. Однако, такие специализированные представления не являются необходимыми, и представляют собой лишь определенный выбор геометрии и текстуры координат вложения Вложение в математике -- это специального вида отображение одного экземпляра некоторой математической структуры во второй экземпляр такого же типа.. Вместо этого мы определим, как конвертировать нашу мозаику на «карту окружения» [26], то есть, как отобразить нашу мозаику на любую текстуру многогранника, окружающего происхождение. «Карты окружения» - это изображения 3D сцены в виде текстуры, применяемые для имитации отражения на объектах. Это позволяет использовать стандартные трехмерные графические интерфейсы и форматы 3D-модели, а также использовать трехмерные графические акселераторы для отображения текстур.

Остальная часть данной работы будет структурирована следующим образом: подразделы 3.1 и 3.2 - это обзор алгоритмов построения панорамной мозаики с использованием цилиндрических координат и общей перспективы преобразований. Подраздел 3.3 описывает новый алгоритм восстановления прямого вращения. Подраздел 3.4 представляет методику для оценки фокусного расстояния, основываясь на методики регистрации изображений. В подразделе 3.5 описывается, как устранить "провалы" в панораме из-за накопившихся ошибок регистраций. В подразделе 3.6 представлен алгоритм для проецирования наших панорам на текстурированные отображенные 3D модели («карты окружения»).

3.1 Цилиндрические и сферические фото панорамы

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

Чтобы построить цилиндрические панорамы, мы отмечаем координаты р = (X, Y, Z) для 2D цилиндрической системы координат экрана (, ), применяя следующее:

, (1)

где и - угол панорамирования и - строка пикселей [24]. Точно так же мы можем сопоставить физические координаты в 2D сферических координатах (, ), используя

, (2)

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Чтобы восстановить поступательное движение, мы оцениваем инкрементную трансляцию путем минимизации ошибок интенсивности между двумя изображениями,

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

После разложения в ряд Тейлора первого порядка, приведенное выше уравнение становится

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

На Рис. 10(b) показана часть цилиндрической панорамной мозаики, построенной с помощью этой простой выравнивающей техники трансляции. Для обработки больших исходных смещений, мы используем иерархическую схему оптимизации “ coarse-to-fine” [27]. Для уменьшения неоднородности в интенсивности и цвете между изображениями, которые будут скомбинированы, мы применяем простой алгоритм растушевки, то есть, мы задаем вес пикселям в каждом изображении пропорционально их расстоянию до края (точнее, их расстоянию до ближайшего невидимого пикселя) [28]. После того, как совмещение закончено, мы можем обрезать концы (и, возможно, сверху и снизу), и выписать одно панорамное изображение.

Создание панорам в цилиндрических или сферических координатах имеет ряд ограничений. Во-первых, он может обрабатывать только простой случай чистого панорамирования. Во-вторых, несмотря на то, что можно преобразовать изображение в 2D сферические или цилиндрические координаты для известного угла места, плохая выборка на северном и южном полюсах вызывает большие ошибки при склейке. В-третьих, алгоритм требует знания фокусного расстояния (поля зрения). В то время как фокусное расстояние может быть тщательно откалибровано в лаборатории [29], оценка фокусного расстояния объектива путем регистрации двух или более изображений не очень точна, и это мы обсудим в другом разделе.

...

Подобные документы

  • Знакомство с проблемами обнаружения вредоносного программного обеспечения для мобильных устройств. Анализ функций антивирусного пакета Kaspersky Mobile Security 8.0. Характеристика наиболее распространенных антивирусных программ для мобильных устройств.

    реферат [55,1 K], добавлен 11.01.2017

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

    курсовая работа [3,5 M], добавлен 22.01.2016

  • Основы программирования на языке VB.NET. Область применения трехмерных изображений. Форматы хранения пакетов инженерной графики. Преимущества трехмерного моделирования. Разработка программы по вращению трехмерных изображений на языках VB.NET и VRML.

    курсовая работа [195,1 K], добавлен 11.03.2013

  • Основные концепции информационной визуализации, используемые в городских информационных системах. Разработка туристической карты города Гомеля для мобильных устройств на платформе Android. Обработка графической информации менеджером поверхностей.

    дипломная работа [2,5 M], добавлен 28.05.2013

  • Обзор существующего программного обеспечения для автоматизации выделения границ на изображении. Разработка математической модели обработки изображений и выделения контуров в оттенках серого и программного обеспечения для алгоритмов обработки изображений.

    дипломная работа [1,7 M], добавлен 27.03.2013

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

    дипломная работа [1,4 M], добавлен 19.01.2017

  • Обзор современных мобильных операционных систем для смартфонов, планшетов, КПК или других мобильных устройств. Symbian OS. Android. IOS. Windows Phone. Blackberry OS. Tizen. Firefox OS. Ubuntu Phone OS. Sailfish OS. Их история, преимущества и недостатки.

    реферат [38,6 K], добавлен 06.05.2016

  • Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.

    реферат [2,2 M], добавлен 25.12.2017

  • Анализ современного рынка программных продуктов. Понятие виртуального тура и возможности его применения. Изучение программного обеспечения и технологии создания виртуальных туров. Панорамный снимок и виртуальная брошюра. Настройка параметров панорамы.

    курсовая работа [3,5 M], добавлен 22.03.2016

  • Особенности разработки и реализации модулей двухмерной и трехмерной визуализации. Основные задачи трехмерного модуля управления. Анализ функций модуля управления ParamColorDrawer. Характерные особенности схемы функционирования программного средства.

    реферат [2,2 M], добавлен 07.03.2012

  • Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.

    курсовая работа [97,7 K], добавлен 14.12.2012

  • Трехмерное моделирование: улучшение алгоритмов рендеринга и просчета трехмерных изображений. Обоснование выбора алгоритмов. Выбор языка программирования и среды разработки. Структура данных и программного комплекса. Системные требования для работы.

    курсовая работа [263,8 K], добавлен 24.06.2009

  • Растровые и векторные графические редакторы. Форматы файлов, используемые для хранения графических изображений. Графические редакторы, используемые для создания изображений. Редакторы для создания трехмерных изображений. Создание графического редактора.

    курсовая работа [306,5 K], добавлен 23.08.2013

  • Общая информация о графическом формате. Описание формата Microsoft Windows Bitmap. Структура файла DDВ исходного формата ВМР. Преобразования графических файлов. Просмотр и редактирование растровых изображений. Создание многодокументного приложения.

    дипломная работа [1,5 M], добавлен 06.06.2010

  • Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.

    курсовая работа [636,2 K], добавлен 23.08.2011

  • Информационно-измерительные системы мобильных роботов. Системы технического зрения; дескриптивный подход к обработке, анализу и распознаванию изображений. Разработка программного обеспечения для создания СТЗ мобильного робота для ориентации в комнате.

    дипломная работа [5,5 M], добавлен 10.05.2014

  • Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.

    курсовая работа [355,8 K], добавлен 26.09.2014

  • Анализ деятельности группы компаний "Инрэко ЛАН". Общая характеристика, основы проектирования и разработка операционной системы Android. Этапы разработки программного игрового приложения с использованием физики. Скриншоты, отображающие игровой процесс.

    отчет по практике [2,7 M], добавлен 19.07.2012

  • Принципы разработки в системе программного обеспечения САПР. Выбор среды для формирования моделей и функций. Процесс создания моделей деталей. Разработка API-приложения для среды разработки. Тестирование разработанного функционала портала-хранилища.

    курсовая работа [704,0 K], добавлен 18.01.2017

  • Разработка клиент-серверного игрового приложения на примере игры в шашки для мобильных устройств на базе операционной системы Android. Обзор мобильных платформ. Экраны приложения и их взаимодействие. Графический интерфейс, руководство пользователя.

    курсовая работа [2,6 M], добавлен 15.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.