Система єдиного бачення та відображення камери


17

Деякий час тому я побачив демонстрацію невеликого «іграшкового іграшка» з єдиною камерою, встановленою на ньому. Цей танк зміг їздити по підлозі та виявляти предмети, а потім рухатися / керувати, щоб їх уникнути. Цікава частина полягала в тому, що вона використовувала єдину систему зору камери, і наскільки я пам’ятаю, скористався тим, що підлога була рівною. а потім за допомогою швидкості функція рухалася в сцені відносно двигунів і напрямків руху, щоб оцінити і, отже, намалювати сцену.

Хтось може надіслати мені вказівники, що шукати, щоб отримати додаткову інформацію про це, або деякі вказівники на бази кодів, які можуть це зробити.

Причина, яку я запитую, - це те, що це була система єдиної камери протягом декількох років тому (5+), і тому (з того, що я пам’ятаю) було відносно низьке навантаження на обчислення. Я мав намір спробувати це на PI Raspberry, щоб побудувати машину / цистерну, яка відображає кімнату або набір номерів.


2
Ласкаво просимо в робототехніку Бен. Будь ласка , ознайомтеся Як попросити і тур по деяких натяків про те , як писати практичні питання до відповідальності на основі реальних проблем , з якими ви стикаєтеся . Дякую,
Марк Бут

Відповіді:


4

Важко точно сказати, що вони робили, але терміни, які вам тут можуть захотіти, - це " оптичний потік " та " егомоція ". Здається, що можливо було виявлено і збігаються функції (щось на зразок SURF або SIFT) або сегментування переднього плану / фону.

OpenCV - це, мабуть, найбільш широко застосовувана база даних для комп'ютерного зору, вони мають багато функціональних можливостей для аналізу руху . OpenCV має працювати на Raspberry Pi, хоча ваші алгоритми можуть бути обмежені обчислювальною потужністю.


4

Опираючись на реакцію WildCrustcean , ще однією можливістю було б стерео бачення . Хоча ми часто думаємо про стерео бачення як про використання двох камер, для дійсних методів потрібні лише зображення, переміщені в просторі, і модель переміщення. Іншими словами, я можу сфотографувати, перемістити, а потім зробити інше зображення. Поки я знаю перетворення між цими двома зображеннями, то я можу використовувати методи стерео зору для обчислення відстані до точки на зображенні.


2
Я думаю, що техніка, про яку ви говорите, називається «Структура з руху».
Козуч

1

Це могло використовувати Parellel Tracking та Mapping PTAM . PTAM - це реалізація проблеми одночасної локалізації та картографування (SLAM), яка використовує одну камеру для побудови тривимірної карти світу та локалізації шляхом відстеження візуальних особливостей.

Колись моя команда експериментувала з використанням пакету PTAM в ROS .

Ми працювали на Ubuntu на Intel Atom, і, як я пам'ятаю, він не надто сильно охопив процесор. Однак ми не закінчилися користуватися, головним чином, тому, що не змогли його знайти, щоб знайти достатню кількість функцій у середовищі, де працює наш робот.


0

Загалом, ви не можете витягти метричні вимірювання відстаней з одного зображення, якщо у вас немає додаткової інформації про світ. Наприклад, якщо ви знаєте, що світ планарний (або ви можете виявити підлогу, яка є площинною областю), то ви можете оцінити гомографію.

Гомографія - це проективне перетворення між площинами (матриця 3x3). Враховуючи внутрішню калібрування камери, ви можете розкласти цю площинну гомографію на обертання та переклад. Переклад є масштабним. Ви можете вирішити цю неоднозначність шкали, знаючи відстань від камери до підлоги (площини).

Після отримання гомографії ви можете виявити об'єкти, які не знаходяться в площині. Гомографія дозволяє перевернути перше зображення на друге. Об'єкти в площині вирівняються і матимуть невелику помилку. Об'єкти, які не знаходяться в площині, не вирівняються. Це називається паралакс.

Одним із способів реалізації цього може бути

  1. Витягніть функції з обох зображень.
  2. Відповідайте функціям або відстежуйте їх.
  3. Оцініть гомографію за допомогою RANSAC.
  4. Розкладіть гомографію на обертання та переклад за допомогою калібрування.
  5. Переверніть перше зображення на
    друге. Пікселі з великими помилками не на підлозі і можуть стати
    перешкодами.

Більшість будівельних блоків реалізовані у opencv (див. Http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html ).

Удачі.

PS розкладання гомографії також дасть вам нормальну площину. Але, оскільки ви припускаєте, що це основна площина, ми маємо нормальне спрямування у напрямку вгору. Більш точне рішення може бути досягнуто у вашій процедурі калібрування. Ви можете використовувати мішень для шашки і оцінити її позу. Поза матиме площину в нормі та відстань до камери.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.