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

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


Бинокулярное (стереоскопическое) зрение позволяет дронам строить 3д карту окружающего пространства
Бинокулярное (стереоскопическое) зрение позволяет дронам строить 3д карту окружающего пространства

История проблемы

Когда появилась задача создать беспилотный автомобиль, технологические корпорации пошли двумя разными путями. Большинство компаний, в том числе Гугл, Яндекс, Uber и другие решили делать его на основе 3д сканеров (лидаров). Илон Маск и его компания Тесла решила не использовать дорогие на то время лидары, а опираться только на камеры.

Подробнее об этом можно почитать здесь: Илон Маск: «Лидар это потеря времени. Все, кто полагаются на лидар, обречены» https://habr.com/ru/company/itelma/blog/506396/

Лидары были нужны, чтобы построить 3д карты местности, без которых как считается робомобилям ездить практически невозможно. Маск же говорил, что беспилотным автомобили тесла не нужны 3д карты, поэтому необходимости в лидарах нет.

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

Современное ситуация в области бинокулярного машинного зрения

Существуют 3д стереокамеры глубины (Zed, Nerian и др).

С помощью этих камер можно получить такую 3д картинку:

Вот видеодемонстрация работы таких камер:

Предназначаются такие камеры в основном для разработчиков, студентов и энтузиастов. Широкого распространения не получили. Возможно в университетах типа Сколково или Иннополиса есть несколько экземпляров стереоскопических камер, а может даже там нет.

Зато широкое распространение технология стереоскопического зрения получила в беспилотных летательнах аппаратах. Например на дроне DJI mavic air2 установлено три стереокамеры: одна смотрит вперед, одна вниз и одна назад (то есть получается 6 простых камер). А на модели air2s добавлена еще верхняя стереокамера глубины.

Другие производители БПЛА также используют на дронах эту систему ориентации в пространстве. Сразу много интересных вопросов возникает к производителям дронов:

  1. Если дроны с помощью стереокамер создают 3д карту местности, то хранят ли они ее в памяти? Отправляют ли эту 3д карту на какой-нибудь сервер?

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

  3. Делает ли дрон 3д скан лица хозяина, пока тот расправляет дрону винты?

  4. Распознает ли дрон обьекты? (некоторые дроны отличают человека от машины, но отличает ли дрон мерседес от бмв? Безрукова от Ди Каприо?)

  5. Что нам делать когда прилетит новая прошивка и все эти функции появятся?

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

Часть 2: почему я написал эту статью

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

Появилось желание преобразовать свои видео из простого стереовидео в видео с глубиной сцены как на ролике выше. Понятно, что ни DJI, ни ZED, ни Nerian не будут делиться со мной своей технологией преобразование стереовидео в видео с глубиной сцены. Поэтому я буду создавать аналогичную технологию сам. Если у кого-то уже есть какие-то наработки на эту тему, то пожалуйста напишите в личку или оставьте коммент внизу. Будет интересно послушать любые мнения по поводу стереозрения: и машинного, и естественного.

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

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


  1. red-cat-fat
    16.05.2022 10:32
    +3

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

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


    1. malyazin_2010 Автор
      16.05.2022 11:25

      Как работают стереокамеры вполне открытая информация. Там особых секретов нет. Но опубликовано все в основном на английском языке.

      Про дроны это просто показательный пример, что технология стереокамер работоспособная и применимая в сфере БПЛА.

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


      1. strvv
        16.05.2022 13:06

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

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

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

        с ходу нашёл данную работу, посмотрю - https://learnopencv.com/stereo-vision-and-depth-estimation-using-opencv-ai-kit/


        1. malyazin_2010 Автор
          16.05.2022 14:51

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

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


          1. strvv
            16.05.2022 15:31

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


            1. malyazin_2010 Автор
              16.05.2022 16:24

              Да, это просто вводная статья. Наверное первая на русском языке по этой теме.

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


              1. strvv
                18.05.2022 14:57

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

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

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


                1. malyazin_2010 Автор
                  18.05.2022 18:50

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

                  Подожду пока... должны быть разработчики дронов на хабре...


  1. DrinkFromTheCup
    16.05.2022 10:57
    +1

    Тщетные попытки очеловечить машину. Создать по образу и подобию своему.

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

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


    1. malyazin_2010 Автор
      16.05.2022 11:28

      Не соглашусь. Для того, чтобы не сбить пешехода, машине нужно знать, что это пешеход.


      1. DrinkFromTheCup
        16.05.2022 11:36

        Но зачем?

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

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

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

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

        Раз в столетие и дерево дорогу перебегает.


        1. iBuilder
          16.05.2022 14:59
          +1

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


          1. DrinkFromTheCup
            16.05.2022 15:06

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

            Если вариант "не попадать в ситуацию, когда машина должна выбрать, кто умрёт" даже не рассматривается человеком - делать ему при проработке такой проблематики нечего.


            1. MIHAnik22
              17.05.2022 12:28

              Вы считаете себя умнее ведущих инженеров крупнейших корпораций?


              1. DrinkFromTheCup
                17.05.2022 13:04

                Я считаю, что этим умникам не помешало бы послушать старого дурака.

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

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


        1. Nehc
          17.05.2022 20:51
          +1

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


        1. Bedal
          18.05.2022 17:04

          Пешеход, голубь, рекламный стенд, дерево, другая машина или стойка с фруктами из любимого киношниками тропа — нашей машине всё едино. Помеха.
          Нет, не едино.
          Считать характеристики его курса. Обойти.
          Именно! А для этого нужно знать возможности объекта: возможные ускорения, скорости, вероятность смены направления и т.п. Например, если голубь, то на скорости меньше 80 можно игнорировать, сам улетит. Ворону/грача не собъёшь и на 100. Человека или собаку уже можно сбить на 40, кошку — на 20.
          Эти скорости важны для построения алгоритмов: если скорость выше этой границы, необходимо строить объезд, но поведение объекта можно практически игнорировать. Он не успеет отреагировать и сместиться так, чтобы пересечься с новой траекторией.
          На меньших скоростях учёт того, что бабуля может шарахнуться назад и попасть под тебя, объезжающего — уже необходим.
          И так далее. Определение типа объекта — важно.


    1. Radisto
      16.05.2022 14:42
      +2

      Ну не скажите. Если по обочине объект распознается как человек, лучше заранее сбросить скорость и вообще всячески обезопаситься. Юридические последствия ошибки человек/собака чудовищно разные. По хорошему, еще бы отличать, смотрит ли человек в сторону робота, выглядит ли он как ребенок, совершает ли хаотичные метания (заигрался). Иначе придется либо тормозить перед каждым пешеходом, либо частота наездов на людей у роботов будет выше, а это айяйяй.

      Хотя это совсем на будущее. Сейчас хотя бы фуру с небом не путать - уже хорошо


      1. DrinkFromTheCup
        16.05.2022 14:55

        Мозгом я примерно понимаю, что Вы пытаетесь сказать.

        Но не могу перестать нервно хихикать от подразумеваемого Вами as written допущения, что на какие-то помехи автопилот может наехать - и будет за это молодец.

        Машина с автопилотом - дорогая игрушка, требования к которой высоки. И если она будет мочить корки в стиле "Я, Робот" (который с Уиллом Смитом. Посмотрите на досуге, обратите внимание на поясняющий предвзятость главного героя эпизод. Это... несколько отрезвит Ваш взгляд на проблему, надеюсь) - то, думаю, производитель такого чуда очень быстро разорится.


        1. Radisto
          16.05.2022 19:08

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

          вряд ли посмотрю, не люблю фильмы. Скажите вкратце, в чем суть.


          1. DrinkFromTheCup
            17.05.2022 13:18

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

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

            Хотите убиваться - наздоровье. Я не вправе запретить это.

            Только от разумных людей держитесь подальше.


            1. Radisto
              18.05.2022 19:42

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


      1. Bedal
        18.05.2022 17:06

        Юридические последствия ошибки человек/собака чудовищно разные
        Да. На сбитой собаке в Британии можно залететь посильнее, чем на сбитом человеке.


  1. Colin-A
    16.05.2022 11:44
    +1

    Как раз занимаюсь разработками в этой области. Если есть желание поковыряться с подобными технологиями в non-profit проекте по велкам. vaz.rulezzz@gmail.com


  1. usego
    16.05.2022 15:21

    Езжу на Subaru с Eyesight c 2018ого. Вроде вполне себе binocural в проде.


    1. malyazin_2010 Автор
      16.05.2022 17:12

      Да, еще один хороший пример использования стереокамер


  1. malyazin_2010 Автор
    16.05.2022 21:49
    +2

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

    Третья камера решает эту проблему


  1. malyazin_2010 Автор
    16.05.2022 22:33
    +1

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

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

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


    1. malyazin_2010 Автор
      16.05.2022 23:20

      у  этого дрона шесть пар стереокамер ( похоже рекорд в индустрии БПЛА)
      у этого дрона шесть пар стереокамер ( похоже рекорд в индустрии БПЛА)

      у теслы 8 обычных камер (три передних с разным углом обзора)
      у теслы 8 обычных камер (три передних с разным углом обзора)


  1. Nehc
    17.05.2022 09:15

    >>> ссылку выкладывать не буду, ибо мало кто сможет их посмотреть: нужны 3д очки, смартфон с плотностью пикселей экрана не ниже 560ppi, а таких уже нет в продаже

    Ну уж ладно — не скромничайте, выкладывайте! ) Много у кого есть нужные девайсы — это же хабр.

    >>> Основная мысль статьи была в том, что в противостоянии подходов тесла и гугл к машинному зрению, неожиданно может выйграть подход dji (бинокулярное зрение)

    Ну нет… На самом деле очень многие, далеко не только dji, вполне трезво оценивают перспективы стереопары в смысле карты глубин! Как минимум, это на пару порядков дешевле, а с учетом производительности современных чипов — уже практически ничем не хуже. Как минимум производители смартфонов, шлемов виртуальной реальности и прочих «носимых устройств» — уже точно сосредоточились на стереопарах (хотя по началу, после kinect, казалось что скоро в каждый мобильник будет встроен лидар (ну там чуть иной принцип, ИК-проектор + камера)… Впрочем, во флагманы он и в самом деле часто встроен!).

    Ну и самое важное: откуда картинка с машинным зрением? Нейросетевые подходы конечно применяются… Я даже полагаю, что возможно вычислительно проще обсчитать обученную собирать карту глубин из стерео-пары нейронку, чем выделять ключевые точки и рассчитывать их смещение… Но при известном расстоянии между камерами и параметрах самих камер — это математически строгая задача, которая решается именно вычислительно! Почему вдруг «астрономия»? Вот неплохая статья с примером использования математики OpenCV на «малинке» (для начала, потому что конечно OpenCV под питоном и на малинке — это скорее натурные эксперименты, чем разработка).

    Я не вполне уверен, что dji использует именно и только нейросети! Хотя все может быть…


    1. malyazin_2010 Автор
      17.05.2022 10:17
      +2

      1.Ок, вот мой канал. Но для просмотра нужен смартфон в плотностью точек экрана не менее 560ppi, иначе 3д эффекта не будет.

      1. Я не слышал ни про одних разработчиков беспилотных авто, кто использует стереопару.

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


      1. Nehc
        17.05.2022 10:48
        +1

        >>> Я не слышал ни про одних разработчиков беспилотных авто, кто использует стереопару.

        habr.com/ru/news/t/559310

        >>> Но там чистая математика, без нейросетей.

        Так я про это и говорю — чистая математика без нейросетей это для стереопары нормальная практика! Если даже питоном на малинке можно посчитать карту глубин по стереопаре, то уж тем более нету проблемы это сделать на чипах, специально заточенных. Нейросети — это вовсе не мейнстрим в данной области, а некий… Ну альтернативный подход, скажем так! Сейчас вообще популярно делать все что угодно через нейросети (стильно, модно, молодёжно), но карта глубин по стереопаре — чисто математическая задача.

        PS На ваших роликах по ощущениям разная цветокоррекция на левой и правой камерах, что не есть хорошо. Доберусь до дома — посмотрю вживую на правильном девайсе… У вас теги все проставлены же? Шлем определит контент как стерео-пару?


        1. malyazin_2010 Автор
          17.05.2022 19:17

          В ссылке про теслу. тесла не использует стереокамеры.

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

          С цветокоррекцией да, есть косяк. Но это вроде бы никак не влияет на 3д-эффект


          1. Nehc
            17.05.2022 20:27

            >>>тесла не использует стереокамеры…

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

            >>> Составить карту глубины по стереопаре можно и с помощью математических методов и с помощью нейросетей…

            «Нейросетевые методы» — это когда берем стереопару, считаем математическими методами, а потом обучаем полученными данными нейросеть. Ну или лидар тоже берем в расчет:) Смысл такого мероприятия? Если у вас одна камера — тут понятно: нет другого варианта, кроме как обучать нейросеть — у вас просто недостаточно данных для математики. Если у вас две камеры — данных достаточно. А что вычислительно проще — вопрос…

            Скажите, а вы свои стереопары загружаете, как написано тут: support.google.com/youtube/answer/7278886?hl=ru?

            Я использую шлем Oqulus Quest2 и ваше видео не воспроизводится как 3D Контент…

            Вот пример ролика, который выложен правильно: youtu.be/FSGfN9rr78Q — в шлеме офигенно смотрится! ) уверен, ваши ролики тоже будут хороши, но нужно их правильно оформить.


            1. malyazin_2010 Автор
              17.05.2022 21:11

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

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

              «Нейросетевые методы» это когда берем стереопару+данные лидара и никакой математики и триангуляции.

              не, метаданных нет


              1. Nehc
                18.05.2022 10:15

                >>> Тесла не получает карту глубины с камер (это невозможно теоретически).

                Серьезно? ))) Давайте я поищу в гугле за вас: https://www.reddit.com/r/teslamotors/comments/bgmqgv/3d_reconstruction_shows_depth_of_information_a/

                Конечно тесла именно это и делает - получает данные с 8 камер и строит объемную сцену. Именно поэтому они отказываются от лидаров - 8 камер дешевле, а качество почти не уступает.

                >>> «Нейросетевые методы» это когда берем стереопару+данные лидара и никакой математики и триангуляции.

                lol. Ну удачи вам с таким подходом. ;)

                >>> не, метаданных нет

                А что так? ;) Там одна команда ffmpeg и ваш контент уже интересен не только и не столько пользователям устаревшего Gear VR! Поверьте - правильно настроенное видео в Oculus Quest выглядит потрясающе!

                Впрочем, если вы делаете видео чисто для себя, то оно действительно не очень надо. НО тогда зачем писать "Мне кажется, что мои ролики являются одними из самых качественных на ютубе в формате 3д"? Может они и качественные (мне лень проверять, хотя Gear VR у меня есть), но не в формате 3D. просто 2 картинки рядом.


                1. malyazin_2010 Автор
                  18.05.2022 11:16

                  Вы путаете

                  Тесла и никто другой не может получить карту глубины из монокулярного зрения

                  Но тесла может строить 3д карту обьектов с помощью своего монокулярного зрения. Вот тут с любого смартфона можно строить 3д карту местности (это называется фотограмметрия):

                  Наверное со стороны может показаться, что это одно и то же, но это не так.

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

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


                  1. Nehc
                    18.05.2022 11:26

                    Я не понимаю, как у вас уживается одновременно наличие ВОСЬМИ камер, которые по FOV явно перекрывают друг друга и понятие "монокулярное зрение"! )) С чего вы взяли, что оно монокулярное-то? Вот почитайте еще здесь: https://bespilot.com/companies/117-tesla, там картинки есть с углами обзоров камер...

                    Или вы под "бинокулярным зрением" понимаете только камеру типа как у вас - когда между объективами расстояние примерно как у человека? ))) любые две и более камеры с известными параметрами и перекрывающимися FOV позволяют построить карту глубин математическими методами!


                    1. malyazin_2010 Автор
                      18.05.2022 13:46

                      Много камер не гарантируют наличия стереозрения.

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

                      В прередней зоне стереозрение тоже вряд ли есть. там стоят три камеры с очень малым baseline ( расстоянием между камерами). То есть, даже если тесла определяет с помощью этих камер расстояние до обьекта, рабочее расстояние этих камер примерно 10-100см( то есть тесла видит глубину не далее своего капота)


  1. Zorgovskiy
    17.05.2022 09:57


    Вот в этом проекте Automated Valet Parking используется зрение нескольких десятков стерео камер.

    https://www.youtube.com/watch?v=9j4MDcXqsq4

    Правда давно не было слышно о них новостей кроме этих промо видео.

    Камеру видно на потолке на 0:05, в полный размер на 0:35.


    1. malyazin_2010 Автор
      17.05.2022 10:26

      Я не понял из ролика как это работает. Стереопара встроена в паркинг? Это странно


  1. sentimentaltrooper
    17.05.2022 09:59
    +1

    Нам для работы нужно было иметь возможность определять расстояние до объекта на видео. Для этого можно взять обычную рабочую лошадку всего AI - RPi4, к ней уже есть готовые стереокамеры (например https://www.waveshare.com/wiki/IMX219-83_Stereo_Camera) и готовые же репозитории (начать можно с OpenCV - https://docs.opencv.org/4.x/dd/d53/tutorial_py_depthmap.html ). Если уже был опыт работы с ИИ для видео на RPi (YOLO, PoseNet и вот это всё), то минимально рабочий прототип заводится за день. А потом мы начинаем быстро упираться в геометрию, а именно разрешение /размер сенсора дешевых камер и расстояние между самими камерами. Используя таки дешевые компоненты нам удалось на природе получать более или менее разумную оценку расстояния (+\- 30 см) на дистанциях до 10 метров. Потом уже верить данным особо нельзя.

    Забабахать две камеры с хорошей оптикой и разрешение на метровой штанге - метод известный, оно точно будет работать. Но клиенты такое в 90% случаев не хотят. Поэтому отдельный интерес представлют проекты используюшие ИИ и одну камеру. Как этого добиться? Вариант первый: тренируем НН в связке лидар + камера, а потом убираем лидар, остается только камера и натренированная НН (Pseudo-LiDar, Supervised Depth Estimation). Минус в том что надо иметь хороший тренировочный датасет с лидаром. Можно сделать Unsupervised алгоритм (https://github.com/nianticlabs/monodepth2) так же заводится через OpenCV за полдня на всё той же RPi4. Точность... примерная. Для некоторых проектов подходит (ближе-дальше, вошел в зону / вышел из зоны / наклонился к камере). Но оценки абсолютных значений (1м, 2м, 3м) по нашему опыту пока не стоит серьёзно рассматривать.


    1. malyazin_2010 Автор
      17.05.2022 10:41

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

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


    1. Nehc
      17.05.2022 11:06

      А между тем, в стандартный AR-core|ArKit добавили очень интересную математику, которая позволяет использовать телефон с обычной камерой (правда неплохой, и с заранее известными параметрами), плюс данные гироскопа и за счет правильно триангуляции считать расстояния с вполне приемлемой точностью… См armeasure.com например.


  1. malyazin_2010 Автор
    18.05.2022 15:19

    Надо было назвать статью: "Как дроны видят мир?"

    и прикрепить это фото:

    фото взято отсюда:

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

    Российские разработчики дронов наверое могли бы добавить что-то интересное в комментах, но видимо таких мало на хабре.