Можно ли рассчитать расстояние до объекта, используя две фотографии, сделанные на расстоянии нескольких сантиметров? - Фотопедия
1 голос
/ 17 декабря 2015

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

Ответы [ 3 ]

4 голосов
/ 17 декабря 2015

Можно ли рассчитать расстояние объекта до камеры с двумя снимками, которые сделаны на расстоянии нескольких см друг от друга?

Это зависит. Вам нужно знать что-то больше, чем просто две фотографии. Примеры полезной информации включают информацию о камере и объективе, такую ​​как размер датчика и фокусное расстояние, а также, как именно положение камеры изменилось между двумя фотографиями. Как далеко переместилась камера? Сохранял ли он точно ту же ориентацию, или камера была немного повернута, чтобы рассматриваемый объект находился в одинаковом положении на обеих фотографиях? Это также поможет узнать о других объектах на фотографиях, таких как размер и расстояние от камеры.

Мы можем оценить расстояние нашими глазами. Но возможно ли сделать это математически, ничего не зная о высоте объекта?

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

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

Boba Fett

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

Хорошо, давайте предположим, что я знаю, как далеко перемещается камера и нет вращения. Также рядом с камерой есть линейка на заданном расстоянии.

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

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


* Скульптор Сьюард Джонсон пользуется этим преимуществом. Если смотреть с правильного места, его скульптуры в натуральную величину "За рамкой" выглядят как знаменитые картины, но вы можете обойти их и посмотреть на них под другими углами, и они часто содержат забавные детали, не видимые в оригинальных картинах.

1 голос
/ 18 декабря 2015

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

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

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

Когда у вас есть 2 изображения, которые НЕ нацелены на вашу цель, это становится сложнее - но XBOX kinect делает это с 2 стационарными ИК-камерами.

0 голосов
/ 18 декабря 2015

Если вам известен примерный размер фактического размера чего-либо на одном изображении (и если вы знаете фокусное расстояние и размер датчика), вы можете оценить его расстояние с помощью калькулятора на http://www.scantips.com/lights/subjectdistance.html

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

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