Перейти к содержанию
    

Как по стерео камерам строят 3D изображение ?

Интересует сам принцип.

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

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

изображение в некий объем газа или еще чего.

Грубо говоря как из двух стереоснимков получить компонент глубины ?

( не с помощью лазерных дальномером и прочей шушеры а именно с изображения )

Какой алгоритм работает в мозгу например ?

В чем суть ?

 

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

Изменено пользователем whale

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите в OpenCV - https://docs.opencv.org/master/d9/d0c/group__calib3d.html Там есть ссылки на алгоритмы

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, xvr said:

Посмотрите в OpenCV - https://docs.opencv.org/master/d9/d0c/group__calib3d.html Там есть ссылки на алгоритмы

 

Жесть какая то.

2 hours ago, rkit said:

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

Вероятно найти их и есть самый главный вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, rkit said:

photogrammetry feature extraction

в гугле горы информации

А нет случайно готовых программ которые по двум камерам стоят 3D модель налету ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть.  Там же. И даже по одной камере можно.

Изменено пользователем rkit

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поэтому "машинное зрение" имеет свои границы.

 

Скрытый текст

Программы для фотограмметрии на телефон и ПК.

Для телефона я попробовал SCANN3D на Android. Программа есть и в Google-Play и на прочих ресурсах. Запускаем программу, фоткаем что надо, и далее по сделанным фоткам программа создаёт трёхмерный объект. Неплохо, только в бесплатной версии не даёт сохранить готовую 3D модель - можно лишь смотреть-вращать на экране телефона. Полезно попробовать для начала, на мой взгляд. 

Для ПК есть бесплатная Meshroom с открытым исходным кодом. Эта самая познавательная. Показаны все шаги. Готовый 3D объект разложен по папкам со всеми текстурами, сетками, и прочим. Можно сразу отправить на 3D печать, или применить в программе для 3D моделирования/редактирования. На Youtube есть обзоры.

 

12.07.2021 в 12:30, whale сказал:

Грубо говоря как из двух стереоснимков получить компонент глубины ?

...

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

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

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

 

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

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

Изменено пользователем controller_m30

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, controller_m30 said:

Компонент глубины получается триангуляцией,

Все давно понял что не все так просто, тут уже ИИ нужен или некое подобие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

запускают. генератор "контрастной развертки" шлёпает развертку с шагом полметра на метр, 20 см на метр, 10, 5 и т.д. вниз увеличивая точность вплоть до порога пиксельного разрешения матрицы камер. т.е. ширина полос постепенно уменьшается.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29.09.2021 в 10:52, vladec сказал:

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30.09.2021 в 17:13, Dist сказал:

Но тут другой принцип, отличный от темы топика.

Этот принцип проще, вот его реализация: https://www.ixbt.com/news/2020/11/05/samsung-isocell-vizion-33d-120-5.html

Другой вопрос, что перспективность всего этого под вопросом: https://androidinsider.ru/smartfony/chto-takoe-tof-sensor-i-pochemu-v-samsung-galaxy-s21-ego-ne-budet-iz-za-apple.html

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...