Некоторое время назад я увидел демонстрацию маленького «игрушечного танка» с установленной на нем одной камерой. Этот танк мог ездить по полу и обнаруживать предметы, а затем двигаться / поворачивать, чтобы избежать их. Интересно то, что в нем использовалась система видеонаблюдения с одной камерой и, насколько я помню, использовалось преимущество того, что пол был плоским. а затем, используя скорость, с которой объект перемещался в сцене относительно двигателей и направлений движения, оценивали и, следовательно, наносили на карту сцену.
Может кто-нибудь прислать мне указатели, что искать, чтобы получить больше информации об этом, или некоторые указатели на базы кода, которые могут это сделать.
Причина, по которой я спрашиваю, состоит в том, что это была система с одной камерой несколько лет назад (5+) и, следовательно, (насколько я помню) была относительно низкая вычислительная нагрузка. Я собирался попробовать это на Raspberry PI, чтобы построить машину / танк, который отображает комнату или набор комнат.
Ответы:
Трудно сказать, что именно они делали, но здесь вы можете использовать следующие термины: оптический поток » и « эгоизм ». Звучит так, как будто может быть обнаружение и сопоставление некоторых функций (что-то вроде SURF или SIFT) или сегментирование переднего / заднего фона.
OpenCV , вероятно, является наиболее широко используемой кодовой базой для компьютерного зрения, в ней много функций для анализа движения . OpenCV должен работать на Raspberry Pi, хотя ваши алгоритмы могут быть ограничены вычислительной мощностью.
источник
Основываясь на WildCrustcean ответ «s другой Possiblity будет стерео видения . В то время как мы часто думаем о стереозрении как об использовании двух камер, методам действительно нужны только изображения, смещенные в пространстве, и модель смещения. Другими словами, я могу сделать снимок, переместить, затем сделать еще один снимок. Поскольку я знаю преобразование между этими двумя изображениями, я могу использовать методы стереозрения для вычисления расстояния до точки на изображении.
источник
Это могло бы использовать Parellel Tracking и Mapping PTAM . PTAM является реализацией задачи одновременной локализации и картирования (SLAM), которая использует одну камеру для построения 3D-карты мира и локализации путем отслеживания визуальных функций.
Однажды моя команда экспериментировала с использованием пакета PTAM в ROS .
Мы работали с Ubuntu на Intel Atom, и, насколько я помню, он не слишком загружал процессор. Мы не использовали его, в основном потому, что не смогли найти достаточно функций в среде, где будет работать наш робот.
источник
В общем, вы не можете извлечь метрическое расстояние измерения из одного изображения, если у вас нет дополнительной информации о мире. Например, если вы знаете, что мир плоский (или вы можете обнаружить дно, которое является плоской областью), то вы можете оценить гомографию.
Гомография - это проективное преобразование между плоскостями (матрица 3х3). Учитывая внутреннюю калибровку камеры, вы можете разложить эту плоскостную гомографию на вращение и перемещение. Перевод в масштабе. Вы можете решить эту неоднозначность шкалы, зная расстояние от камеры до пола (плоскости).
Когда у вас есть гомография, вы можете обнаружить объекты, которые не находятся на плоскости. Гомография позволяет вам деформировать первое изображение на второе. Объекты на плоскости будут выровнены и будут иметь небольшую ошибку. Объектов не на самолете не будет выравниваться. Это называется параллакс.
Одним из способов реализации этого может быть
второе. Пикселей с большими ошибками нет на полу и могут быть
препятствия.
Большинство строительных блоков реализованы в opencv (см. Http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html. ).
Удачи.
PS Гомографическое разложение также даст вам нормаль плоскости. Но, поскольку вы предполагаете, что это наземная плоскость, мы имеем нормальное направление в направлении вверх. Более точное решение может быть достигнуто в вашей процедуре калибровки. Вы можете использовать шахматную мишень и оценить ее позу. Поза будет иметь плоскость, нормальную и расстояние до камеры.
источник