Devdays Осень 2017/depth map

Материал из SEWiki
Перейти к: навигация, поиск

Состав команды:

  • Никулин Даниил
  • Гостевский Дмитрий
  • Лапко Данила

Мотивация

Карта (матрица) глубины

Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта. С помощью матрицы глубины воссоздается трехмерная модель пространства.

Проблема

Создание 3D модели пространства невозможно без карты глубины. Самое простое и распространенное решение - это использовать стереозрение или радар. Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем. Радары очень хороши, но они дорогие.

Задача

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

Функциональность

Запланировано и сделано:

  • Нахождение всех кубиков на картинке
  • выделение каждого кубика в отдельное изображение
  • edge detection
  • Hough transform (нахождение линий)
  • выделение псевдо параллельных прямых
  • нахождение точек схода
  • построение функции градиента глубины

Запланировано и не сделано:

  • Нахождение отдельных граней кубика ( не понадобилось )
  • Обработка, когда кубик частично закрыт другим кубиком

Не запланировани и сделано:

  • совмещение нескольких картинок
  • нахождение ближайшей точки к зрителю


Список известных багов:

  • Высокая чувствительность к шумам и постороним предметам
  • Градиент глубины считается очень долго
  • Яркие тени детектируются как объект
  • Не работает в случае, когда кубик частично закрыт другим кубиком


Ссылки

Репозиторий

Ссылка на видео