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


Чего хотелось



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

  • Транслировать 3D видео с борта коптера, самолета, машинки или другого дрона — чтобы оператору было проще ориентироваться в пространстве при удаленном управлении.
  • Анализировать стереоизображение и строить «карту глубин» для автономной ориентации робота в пространстве.
  • Запись либо трансляция 3D видео просто для развлечения. Я, например, потестировал малинку в качестве 3D видеорегистратора — интересные ощущения, скажу я вам!


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



В чем идея


История изобретения обычной фотографии начинается в 1820-е годы, а в 1854 уже был придуман первый стереоскопический фотоаппарат. Говорю я это к тому, что данной темой человечество занимается уже почти 150 лет и все простые решения, которые можно было придумать, уже придуманы.

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

Рассуждения у наших «фотопредков» были примерно такие:
1. Человек видит мир вот так 2. Сейчас мы фоткаем 3D так 3. Схитрим таким вот образом


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





(фото взято из Wiki)

Если смотреть ближе к нашим дням, то совсем недавно (в 2013 году) такая оптическая схема использовалась в проекте Poppy3d, успешно собравшем на Kickstarter нужные средства. Это устройство нацелено на пользователей смартфонов (точнее iPhone) и позволяет как снимать, так и просматривать 3D видео и фото.




Что получилось



Наше решение получилось достаточно компактным — вот фото первого прототипа рядом с самой малинкой:



Надо сказать, что размеры удалось серьезно «ужать» благодаря техническим особенностям работы оригинальной камеры Raspberry Pi в нужном нам режиме FullHD.

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

Зато настроек никаких не требуется — модуль камеры Raspberry закрепляется на насадке, и видео FullHD транслируется или записывается уже в стерео-режиме. Учитывая, что никаких электронных компонентов в устройстве не имеется, мы можем не думать о совместимости или, например, дополнительном питании. Ну и, соответственно, когда Raspberry начнет поддерживать видео 4K — оно автоматически будет поддерживаться и здесь.

Полученное видео — будь то запись или прямая трансляция — имеет разрешение FullHD 1920x1080, и для его просмотра остается только превратить ваш телефон в полноценный шлем виртуальной реальности. Google Cardboard, Fibrum, ColorCross или другое простое устройство — и вот вам полноценное 3D видео.


Наши впечатления от таких устройств достаточно просты: если вам поиграться на один раз — вполне пойдет и Google Cardboard, которые на китайских сайтах стоят от 4$. Ну а для того, чтобы работать можно было гораздо дольше и комфортнее, подойдет любой пластиковый вариант — их стоимость на AliExpress или DX начинается от 19$. Пластиковые варианты имеют еще один важный плюс — у них регулируется не только расстояние между осями линз, но и фокус — таким образом, можно полностью настроить такие очки под себя.

Как выглядит результат работы



Если у вас есть уже одно из перечисленных устройств для просмотра видео на телефоне в 3D — вашему вниманию небольшая нарезка фрагментов видео. Для съемки фрагментов Raspberry Pi была настроена в режим записи видео FullHD и работала видеорегистратором. При просмотре на YouTube вам не всегда отдается видео в полном разрешении FullHD. Если вы хотите просмотреть это видео в полном разрешении на вашем телефоне — можно скачать его в виде файла.



В планах у нас сделать следующую итерацию устройства с повышенной живучестью и опробовать в экстремальных условиях — на самолете или коптере. Если вам интересно, что у нас в конце концов получится — можете оставить предзаказ на сайте проекта.
А как бы вы использовали насадку для 3D видео к Raspberry Pi?

Проголосовало 56 человек. Воздержалось 32 человека.

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

Комментарии (28)


  1. Rumlin
    24.04.2015 09:57

    С зеркалами не в первый раз экспериментируют. Один из проектов:

    www.kickstarter.com/projects/149090903/3dcone-make-3d-stills-and-videos-with-your-iphone
    image


    1. Realizator Автор
      24.04.2015 10:03

      Да, тут вопрос удобства для пользователя, ну и наверное дизайнерской эстетики. Идея не нова, вопрос ее реализации.
      В указанном на фото устройстве, как я понимаю, половина картинки видна напрямую, а половина «зеркалится» — то-есть отражена по горизонтали. В результате после съемки требуется постобработка — одну часть картинки надо «развернуть». В нашем варианте два зеркала, и постобработка не требуется.
      Ну и то что из 55000$ на кикстартере собрано всего 5000$ — тоже показатель, что авторы с чем-то не угадали.


      1. Rumlin
        24.04.2015 10:11

        Преимущество в использзовании одного зеркала и 3D принтера. Это один из вариантов решения вопроса. Поиском оп «3D stereo iPhone lens» находит еще конструкции, более сложные в изготовлении.


        1. Realizator Автор
          24.04.2015 10:20

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


          1. Rumlin
            24.04.2015 10:39

            Смартфонам мешает габаритность конструкции. Топовые смартфоны явно когда-нибудь получат реальные две камеры. Если конечно 3D когда нибудь станет популярным. Пока нет стойкого интереса.

            По теме топика —

            Транслировать 3D видео с борта коптера, самолета, машинки или другого дрона — чтобы оператору было проще ориентироваться в пространстве при удаленном управлении.

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


            1. Realizator Автор
              24.04.2015 10:42

              На больших высотах смысла в стерео нет — тут полностью согласен. Речь идет о малых высотах или маневрировании между препятствиями.


              1. Rumlin
                24.04.2015 12:44
                +1

                Для гонок на коптерах (FPV Racing) в лесу, если частота кадров позволит вовремя реагировать.


                1. Realizator Автор
                  24.04.2015 17:02

                  Скорее даже не частота кадров а задержка видео важнее. У нас по основному проекту virt2real задача такого управления с минимальной задержкой при передаче видео является основной, поэтому подводные камни тут хорошо себе представляем. Пока лучший результат это 170 миллисекунд (0,17 секунды) при 30FPS


                  1. Rumlin
                    24.04.2015 17:08

                    Судя по видео на youtube/RC форумах моделисты используют обычный аналог. Ситуация видна со скоростью света.


                    1. Gol
                      24.04.2015 18:27

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


                      1. Rumlin
                        24.04.2015 19:14

                        Итого на скорости 36 км/ч ошибка в 1,5 метра. Управлять вполне безопасно. Это не луноход у которого сигнал до 20 секунд задерживался.


            1. BelBES
              24.04.2015 16:40

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


              1. DonkeyHot
                26.04.2015 09:25

                Легко, надо два синхронных коптера :)


                1. Realizator Автор
                  27.04.2015 09:11

                  … только перед этим надо на всякий случай пройти практические курсы «зрение хамелеона», чтобы рассинхрон глазами компенсировать


  1. BelBES
    24.04.2015 16:38

    А какой baseline получается у стереопары?


    1. BelBES
      24.04.2015 16:42

      И в догонку, какой FOV у полученной стерео-камеры?


      1. Realizator Автор
        24.04.2015 16:52

        Baseline сейчас 6,5 см в текущем образце.
        FOV у малинки в режиме FullHD маленький — 39 градусов примерно по горизонтали или 45 по диагонали, так как это разрешение кропом получается (пруф www.truetex.com/raspberrypi). Соответственно у нас пополам. Есть идея как угол резко расширить — в следующих поколениях реализуем.


  1. Xenotester
    26.04.2015 01:00

    В стереоскопе должно быть ничего, а вот на тв/мониторе будет квадратик.
    Анаморфирование при съёмке есть? Что бы можно было снимать тв-шный SideBySide
    Можно сжатие по горизонтали на RPi софтом реализовать, что бы не городить оптику?


    1. Realizator Автор
      27.04.2015 09:10

      Сжатие можно сделать без проблем — захваченную картинку легко отдать в gstreamer, который все что надо с картинкой сделает.
      Другое дело что при просмотре на ТВ картинки левая и правая снова почти квадратными станет. Можно применить такую штуку — отрезать сверху и снизу по четверти картинки примерно, а остальное сжать по горизонтали. Тогда соотношение сторон нормальное будет, но реальное разрешение станет ниже и, за счет очередного кропа картинки, появится эффект «зума» — снизится угол обзора. Зато будет полная совместимость.


      1. Xenotester
        27.04.2015 23:02

        «при просмотре на ТВ картинки левая и правая снова почти квадратными станет» с чего это вдруг? Возникло недопонимание.
        Отрезать то не проблема, но меня интересует запись анаморфированного видео — не 960 на 540, а 960 на 1080 при 16:9. Все 3д тв поддерживают этот формат — спутниковые стереотрансляции идут именно в нём (как и большинство видео на youtube)


        1. Realizator Автор
          28.04.2015 09:40

          «Порезанная» картинка как раз и получает нужное соотношение сторон. Дальше можно отзумить картинку до нужного разрешения — HD или FullHD


          1. Xenotester
            28.04.2015 20:56

            А мне не нужна «порезанная» картинка с «нужным соотношением сторон» — мне нужен SideBySide анаморфированное 960*1080 на глаз


            1. Realizator Автор
              28.04.2015 23:07

              Так, недопонимание точно возникло.
              Давайте по порядку.
              Цитата из вашего сообщения: «но меня интересует запись анаморфированного видео — не 960 на 540, а 960 на 1080»

              Сейчас у нас записывается FullHD стереопара, т.е. весь кадр 1920х1080, или 960х1080 на каждый глаз. Это соответствует требуемому вам разрешению?


              1. Xenotester
                01.05.2015 23:14

                У Вас нет анаморфирования — эти 960*1080 у Вас квадратное соотношение 8 на 9, а не 16 на 9
                При SideBySide изображение сжимают по горизонтали в два раза — вместо 1920+1920*1080 транслируют 960+960*1080. Это позволило транслировать и принимать стереоканалы на «старом» оборудовании DVB-C/DVB-S2.

                Скачайте любой 3D трейлер на Youtube — там сжатая вертикальная или горизонтальная стереопара.

                Меня интересует анаморфрование на уровне софта/железа: не возиться со сложной, недешёвой и габаритной системой, а захватывать на матрице область 3840 на 1080, вернее записывать 1920 на 1080, но с пропуском столбцов


  1. Realizator Автор
    28.04.2015 23:07

    deleted


  1. centrist
    10.05.2015 02:00

    отличная мысль, особенно если дрон и так на pi.
    Как ни странно, нормальных стерео веб камер тоже особо нет (а нам бы пригодились).
    Вы не пытались приклеить вашу насадку на обычную веб камеру? Хотя, конечно, это актуально только если расширить FOV.


    1. Realizator Автор
      11.05.2015 11:42

      Пытались, но, как говорится, есть нюансы. Много поступило хотелок на тему «а к мобильнику если?» и «а на вебку прикрепить?». С точки зрения оптики проблема решается, правда с помощью увеличения размеров. А вот вопрос универсального крепежа — очень больной. Разве что продавать вариант «комплект для сборки», где каждый может именно под свою камеру вырезать/распечатать на 3D принтере крепежную часть.


      1. centrist
        11.05.2015 19:04

        с нюансами понятно…
        Комплект сделай сам для веб камер, наверное, не нужен — покупателю придется изобрести корпус и шаманить, такие товарищи могут и призмы на ali заказать… Но ведь хороших вебкамер на рынке две с половиной, так что достаточно продавать, например, доработанные Logitech b920/930 в едином корпусе.
        А то нам как-то пришлось для нашего демо собирать конструкцию из двух logitech c910 и писать драйвера.
        Если сделаете пошире поле зрения (линзы наклеите?) и сделаете поточнее, чтобы в центре не пересекались два изображения, то мы, скорее всего, сможем обеспечить какой-то спрос.