2017-02-15 35 views
0

Можете ли вы предложить мне способы определения расстояния между камерой и пикселем изображения (в единицах реального мира, то есть cm/m/..).Рассчитать расстояние между камерой и пикселем в изображении

Информация, которую я имею, представляет собой: горизонтальную камеру (120 градусов) и вертикальное (90 градусов) поле зрения, угол камеры (-5 градусов) и высоту, на которой находится камера (30 см).

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

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

Спасибо заранее!

+0

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

+0

@Rotem Спасибо за ваш ответ. У меня нет возможности делать несколько снимков, потому что фотографии снимаются с высокой скоростью (камера помещается на игрушечную машину). –

+0

Вы можете сделать несколько снимков, если это видеокамера, и вам нужно знать, когда автомобиль собирается что-то поразить ... – Rotem

ответ

2

Я думаю, что вы имеете в виду: «Как я могу рассчитать глубину каждого пикселя с помощью одной камеры?» Без добавления какого-либо специального оборудования это невозможно, поскольку Rotem упоминает в комментариях. Есть исключения, и хотя я ожидаю, что вы можете ограничить время или бюджет, я перечислил несколько.

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

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

  • узоров проекта света, предпочтительно с одним или нескольких лазерных линиями или лазерными пятнами , и определить глубину, основанную на том, как точки расходятся или сходятся. Версия Kinect 1 работает по этому принципу «структурированного света», хотя реализация слишком сложна для полного воспроизведения. Для простого предупреждения о столкновении вы можете применять одни и те же принципы, только более просто. Например, если проецируемый световой рисунок с правой стороны изображения быстро изменится, поверните налево! Изучение того, как оценивать расстояние, используя структурированный свет, является значительным проектом для проведения, но есть много ссылок.
  • Разделите оптический путь, чтобы один датчик камеры мог видеть два разных вида света. Я не знаю оптических разветвителей для крошечных камер, но они могут существовать. Но даже если вы найдете сплиттер, сложная проблема внедрения стереовизии остается. У Stereovision есть свои проблемы (см. Ниже).
  • Используйте другой датчик, например, немного компактный, но небольшой Intel R200, который будет генерировать данные глубины. (http://click.intel.com/intel-realsense-developer-kit-r200.html)
  • Используйте камеру времени пролета. Это типы датчиков, встроенных в Kinect версии 2 и несколько датчиков распознавания жестов. Несколько компаний создали или активно разрабатывают крошечные датчики времени пролета. Они будут генерировать данные глубины и обеспечивать полноцветные изображения.
  • Эксплуатировать автомобиль только в контролируемых условиях.

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

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

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

Удачи вам!

 Смежные вопросы

  • Нет связанных вопросов^_^