Как мы создали приложение для iOS для съемки 3D-видео (пример из практики)

  1. Дальнейшее чтение на SmashingMag:
  2. Стерео-изображение и наше восприятие 3D-изображения
  3. От идеи к практике: как смонтировать айфоны
  4. Приложение для стереоскопической 3D-видеосъемки
  5. Технические препятствия
  6. Ошибки в iOS Multipeer Connectivity
  7. Связывание устройств
  8. Автоматический и независимый поиск
  9. Чем мы закончили
  10. Работа над ошибками и планами на будущее

Вскоре после того, как Голливуд выпустил свои первые 3D фильмы, формат фильма быстро приобрел огромную популярность во всем мире. Благодаря разработкам в технологии видеозаписи, любой пользователь теперь может снимать видео самостоятельно. Вы можете сделать стереозапись запоминающихся событий в вашей жизни или создать замечательный материал для вашего бизнеса. Наша команда также была привлечена к 3D съемкам. Мы тщательно изучили особенности зрительного аппарата человека и технические детали стереоскопической фотографии. Затем мы решили разработать приложение для iOS для съемки 3D-видео и загрузки видео на YouTube. Идея приложения заключалась в том, чтобы облегчить съемку 3D-видео, установив два айфона в специальную рамку - и мы сделали это! Так появилось приложение Stereo Video Recorder .

Наша команда также была привлечена к 3D съемкам. Мы тщательно изучили особенности зрительного аппарата человека и технические детали стереоскопической фотографии. Затем мы решили разработать приложение для iOS для съемки 3D-видео и загрузки видео на YouTube. Идея приложения заключалась в том, чтобы облегчить съемку 3D-видео, установив два айфона в специальную рамку - и мы сделали это! Вот как Стерео видеорегистратор приложение появилось.

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

Дальнейшее чтение на SmashingMag:

Как это все началось

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

Подробности нашего исследования можно найти   в нашем блоге   ,  Мы пойдем дальше здесь

Картон сделан нами для изучения дополненной реальности ( Посмотреть большую версию )

Продолжая это исследование, мы решили создать еще один прототип приложения, позволяющий записывать стереоскопическое 3D-видео и загружать его на YouTube.

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

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

Стерео-изображение и наше восприятие 3D-изображения

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

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

Зрительный аппарат создает восприятие объема на основе параллакса. ( Посмотреть большую версию )

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

Давайте посмотрим на все по порядку.

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

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

Эти линии параллельны, когда человек смотрит вдаль или, другими словами, в бесконечность

Глаза не всегда смотрятся параллельно - в зависимости от расстояния до объекта (точки схождения линий). ( Посмотреть большую версию )

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

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

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

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

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

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

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

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

слабо выраженный на заднем плане

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

От идеи к практике: как смонтировать айфоны

Вернемся к нашей идее. Мы решили разработать прототип мобильного приложения, которое может записывать стерео 3D видео. Учитывая все вышесказанное, нам необходимо было оценить следующее:

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

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

Упрощенный расчет расстояния между камерами может быть сделан на основе этой формулы:

( Посмотреть большую версию )

  • Parallax <sub> fore </ sub> устанавливает максимальное смещение изображения переднего плана, когда кадры стереопары перекрывают друг друга.
  • L <sub> fore </ sub> = расстояние до объекта переднего плана
  • f = фокусное расстояние объектива
  • L = расстояние до фокуса объектива
  • M = масштаб кадра

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

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

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

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

Простейшая версия рамки для видеосъемки 3D ( Посмотреть большую версию )

Ниже приведены подробные чертежи рамки для различных версий устройств с размерами экрана 4,0, 4,7 и 5,5 дюймов - подходит для iPhone 6+ и 6S +, для 6, 6S и 7, а также для 5 и 5S.



Рисунки для вашей собственной самодельной рамки

Приложение для стереоскопической 3D-видеосъемки

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

В упрощенном виде сценарий стандартного использования приложения состоит из следующей последовательности действий:

  1. Установите два iPhone на раму.
  2. Запустите приложение на двух устройствах.
  3. Определите, какое из устройств будет служить ведущим, а какое - ведомым. Начните запись с главного устройства. (Не предпринимайте никаких дополнительных действий на втором устройстве.)
  4. После записи дождитесь синхронизации записанных фрагментов и рендеринга видео, готового для загрузки на YouTube.
  5. Загрузите видео на YouTube в любое время после синхронизации, а затем просмотрите его на своем 3D-телевизоре или в очках виртуальной реальности.

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

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

Процесс 3D-видеосъемки выглядит примерно так. ( Посмотреть большую версию )

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


Пользовательский интерфейс приложения

Технические препятствия

десинхронизации

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

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

Чтобы решить эту проблему, мы начали запись видео на устройства одновременно. Фактически, запись начинается не сразу после нажатия кнопки запуска, а после небольшой задержки, в течение которой активируется определенный алгоритм - очень похоже на то, как протокол точного времени (PTP) измеряет перекос часов. Таким образом, мы смогли начать запись видео с расхождением от 30 до 50 миллисекунд, что в худшем случае соответствует примерно 1 кадру десинхронизации.

Ошибки в iOS Multipeer Connectivity

Мы использовали нативную библиотеку iOS Multipeer Connectivity для установления связи между двумя устройствами. Эта библиотека устанавливает прямое соединение между устройствами в одной сети Wi-Fi, а также через Bluetooth или с помощью чего-то похожего на Wi-Fi Direct на iPhone. Таким образом, вы можете снимать и синхронизировать видеофрагменты даже в открытом поле, без беспроводной или мобильной сети Интернет. Но для отправки видео на YouTube с главного устройства необходимо подключение к Интернету.

Основная причина, по которой мы решили использовать эту библиотеку, заключается в том, что она устанавливает связь между двумя устройствами, когда они не подключены к одной сети. Очевидно, что в условиях плохой стереосъемки 3D самое большее, что можно ожидать, это соединение 3G. Для съемки 3D-видео важно иметь возможность - с минимальной задержкой - передавать пакеты данных для синхронизации. Кроме того, если бы не было подключения к Интернету, мы не смогли бы стрелять. Поэтому библиотека Multipeer Connectivity стала канатом жизни. Кроме того, это нативное решение для платформы Apple.

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

Однако, если у нас, условно говоря, плохие условия стереосъемки 3D или, скажем, много мобильных устройств в одном месте, то установление соединения становится сродни лотерее. Складывается ощущение, что библиотека Apple еще не полностью разработана и все еще довольно сырая.

Связывание устройств

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

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

Автоматический и независимый поиск

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

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

Чем мы закончили

В итоге мы получили очень интересное и качественное приложение. Просмотр видео, записанного с помощью этого приложения, вызывает у вас то же чувство, что и при просмотре 3D-фильмов в театре.

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

Вам нужны очки VR или 3D-телевизор, чтобы правильно просмотреть это видео.

Итак, мы сделали возможным использование приложения Stereo Video Recorder для самостоятельной съемки 3D-видео для вашего бизнеса или просто для удовольствия!

Работа над ошибками и планами на будущее

Наша цель была достигнута: мы изучили критерии для создания 3D-видео и создали приложение, которое позволяет любому пользователю создавать стерео-видео. Но не все так просто, как кажется. Нам нужно поработать над некоторыми вещами. У нас было много проблем с библиотекой Multipeer Connectivity. Мы хотим либо заменить его, либо найти обходной путь, чтобы приложение хорошо работало при ограниченном доступе в Интернет.

Нам также необходимо:

  • реализовать синхронную фокусировку и экспозамер на двух устройствах, а также реализовать запись стереофонических звуковых дорожек;
  • разработать более прагматичные рамки для устройств;
  • интегрировать механизм автоматического сопряжения устройств;
  • обеспечить поддержку различных опций устройства и иметь возможность обрабатывать видео разного разрешения (на данный момент мы можем снимать видео только с одинаковыми версиями iPhone - например, iPhone 5S может быть сопряжен только с другим iPhone 5S);
  • создать версию приложения для Android.

Наше приложение Stereo Video Recorder уже находится в Магазин приложений , Вы можете использовать его для создания 3D-видео. Мы уверены, что технология будет продолжать развиваться и что в конечном итоге появятся еще много решений для создания стереоскопического видео. Мы постараемся идти в ногу со временем.

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

Новости

Как сбалансировать юзабилити и дизайн при создании сайта — User House
Красота или уродство в веб-дизайне всегда связаны с восприятием конкретного человека. То, что для одного «красиво», может быть «ужасным» для другого и наоборот. Но как же так получается, что многие популярные

Чем лучше юзабилити сайта – тем больше лояльных клиентов
Хотите понять, как посетители воспринимают сайт? Это очень просто. Представьте, что вы говорите по телефону с директором, и в это время вам звонит кто-то из родственников, а у вас еще работы на четыре

Знакомство с юзабилити-тестированием сайта. // webknowledge.ru
Перевод статьи:   An Introduction To Website Usability Testing. Автор:   Thomas Churm. При создании нового сайта необходимо учитывать множество факторов. Для того чтобы у посетителей возникло

Специалист по web-usability – боец невидимого фронта
Ярослав Перевалов Что такое usability engineering? Часто ли вы, бродя по Сети, обращаете внимание на то, насколько качественно структурирована информация на сайте и насколько удобно устроена навигация?

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

25 советов как улучшить юзабилити (usability) вашего сайта. | Блог об интернет деятельности и трудовых буднях Максима Вячеславовича
Доброго времени суток, дорогие друзья! Сегодня мы поговорим с вами о такой важной вещи как U sability (юзабилити) сайта , о том, как улучшить данный фактор, зная его основные принципы и правила.

Что такое юзабилити и зачем оно нужно
Юзабилити включает простоту, удобство в пользовании, тестирование, проведение аудита проекта. Юзабилити сайтов, интернет-магазинов — это неотъемлимая часть выгодного ведения бизнеса. Задача юзабилити

Юзабилити тестирование сайта турагентства
«Когда информации много и она дешева, дорогим становится внимание». James Gleick Представим сайт, владелец которого считает его достаточно хорошим, удобным и привлекательным. Он размещает рекламные объявления

Юзабилити
Юзабилити (от англ. слова «usability» – практичность, простота использования) – это весьма распространенное ныне понятие объединяет максимальное удобство использования сайта и полезность информации, на

5 шагов для успешного юзабилити-тестирования приложения
Представьте: вы придумали и разработали мобильное приложение с приятным, на ваш взгляд, дизайном, удобным функционалом, полезными опциями, выпустили релиз продукта, но… Несмотря на мощную маркетинговую

Карта