Определение плоскостей при помощи одной движущейся камеры

Определение плоскостей при помощи одной движущейся камеры

Сообщение Wolfkiller » 26 мар 2014, 07:14

Доброго времени суток.

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

Если кто-то занимался чем-то похожим, или же имеет представление - пожалуйста, подскажите, в каком направлении копать.

Пока что пришёл только к следующей идее: использовать алгоритм SURF, который перестаёт различать ключевые точки при серьёзном изменении угла обзора. При этом он нечувствителен к поворотам и масштабированию. Следовательно, как только мы теряем наши ключевые точки, мы можем считать, что мы вышли из некоторой плоскости.

Охотно принимаю критику, советы, рекомендации. Возможно, кто-то сталкивался с такой темой и знает, что почитать/где поискать. С английским у меня довольно туго, книгу не осилю, но статью или документацию перевести в состоянии.

Очень надеюсь на вашу помощь. Заранее спасибо.
Wolfkiller
 
Сообщения: 4
Зарегистрирован: 26 мар 2014, 06:17

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение Myp » 26 мар 2014, 14:00

одна движущаяся камера это аналог множеству неподвижных
подвигали камерой секунду - получили 25 фотографий из разных точек, как будто у нас есть аж 25 камер.
ну или хотябы две фотографии с двух камер, одна в начале движения, другая в конце.
а это уже стереозрение.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение Madf » 26 мар 2014, 15:48

можно одну матрицу разделить на две половинки, но тогда нужна оптика/призма, делящая изображения по полом, с разных точек...правда камера тогда должна быть в идеале с норм. разрешением.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение Wolfkiller » 26 мар 2014, 17:42

Myp писал(а):одна движущаяся камера это аналог множеству неподвижных
подвигали камерой секунду - получили 25 фотографий из разных точек, как будто у нас есть аж 25 камер.
ну или хотябы две фотографии с двух камер, одна в начале движения, другая в конце.
а это уже стереозрение.


Я исхожу примерно из таких же соображений. Если я знаю, каким образом я изменяю положение камеры(вращаю по оси на угол, делаю смещение на определённое расстояние и в определённом направлении), то, теоретически, я могу по набору снимков сделать какие-то выводы о пространстве.

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


С призмой не свяжусь - у меня обычная вебка, к тому же не очень хорошая - но, вроде бы, картинка чёткая. Разрешение 640х480, не думаю, что это то, что нужно.

Хотя бы в теории - моя идея рабочая?
Есть ли какие-то статьи, которые порекомендуете почитать? Буду крайне признателен.
Wolfkiller
 
Сообщения: 4
Зарегистрирован: 26 мар 2014, 06:17

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение Myp » 26 мар 2014, 21:36

с вебкой будут проблемы в плане того что в движении она выдаёт смазанную картинку.
надо покупать либо дорогую хорошую вебку либо картинку с камеры брать только когда она остановилась.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение Wolfkiller » 27 мар 2014, 04:10

Myp писал(а):с вебкой будут проблемы в плане того что в движении она выдаёт смазанную картинку.
надо покупать либо дорогую хорошую вебку либо картинку с камеры брать только когда она остановилась.


спасибо за совет, постараюсь это учесть в работе. Можно, теоретически, отфильтровать изображения на предмет "нашёл-не нашёл контрольные точки". Или просто двигать медленно.)
Ещё рекомендации?
Wolfkiller
 
Сообщения: 4
Зарегистрирован: 26 мар 2014, 06:17

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение Myp » 27 мар 2014, 14:17

я бы порекомендовал поделиться потом с общественностью проектом
потому как вопрос достаточно интересный для робототехники =)
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение RootAdmin » 27 мар 2014, 22:01

OpenCV, поиск контуров. Не, я буду продолжать лазер вверх-вниз гонять.
А смазанность зависит от освещения.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение Wolfkiller » 28 мар 2014, 07:20

Myp писал(а):я бы порекомендовал поделиться потом с общественностью проектом
потому как вопрос достаточно интересный для робототехники =)


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


RootAdmin писал(а):OpenCV, поиск контуров. Не, я буду продолжать лазер вверх-вниз гонять.
А смазанность зависит от освещения.


Обязательно посмотрю, спасибо. Освещение предполагается тёплое, ламповое довольно яркое. Во всяком случае, заметного глазу отставания картинки при движении объекта(то есть, меня) при имеющемся освещении не наблюдал.
Wolfkiller
 
Сообщения: 4
Зарегистрирован: 26 мар 2014, 06:17

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение WETErok » 17 апр 2014, 05:44

Вашу задачу можно решить с одной камерой.
Есть готовый алгоритм PTAM http://www.robots.ox.ac.uk/~gk/PTAM/, реализация под ROS http://wiki.ros.org/ptam

Так же рекомендую лекции с обзором существующих методов компьютерного зрения, поможет в теоретической части.
http://www.lektorium.tv/course/22847

Сразу скажу о недостатках восстановления 3D окружения с одной камерой. Первое это нетерпимость к повороту камеры вокруг своей оси. Что бы алгоритм работал камеру нужно перемещать вперед-назад, вправо-влево и только тогда поворачивать.
Второе это нет реального масштаба восстановленной сцены. Например получили вы плоскости но какое расстояние между ними вы определить не сможете, это может быть 1 метр или 10 метров этого не узнать.

Камеру лучше брать с широким углом зрения больше 90 градусов.
WETErok
 
Сообщения: 6
Зарегистрирован: 17 апр 2014, 05:27

Re: Определение плоскостей при помощи одной движущейся камер

Сообщение BeS » 17 апр 2014, 15:46

WETErok писал(а):Вашу задачу можно решить с одной камерой.
Есть готовый алгоритм PTAM http://www.robots.ox.ac.uk/~gk/PTAM/, реализация под ROS http://wiki.ros.org/ptam

Так же рекомендую лекции с обзором существующих методов компьютерного зрения, поможет в теоретической части.
http://www.lektorium.tv/course/22847

Сразу скажу о недостатках восстановления 3D окружения с одной камерой. Первое это нетерпимость к повороту камеры вокруг своей оси. Что бы алгоритм работал камеру нужно перемещать вперед-назад, вправо-влево и только тогда поворачивать.
Второе это нет реального масштаба восстановленной сцены. Например получили вы плоскости но какое расстояние между ними вы определить не сможете, это может быть 1 метр или 10 метров этого не узнать.

Камеру лучше брать с широким углом зрения больше 90 градусов.


Проблема поворотов вокруг оси довольно успешно решается при помощи соответстующих методов оптимизации, например путем минимазации ZSSD расстояния между соседними кадрами для оценки поворота, а затем уже оценки переноса.

А главный недостаток моно слэма - это пожалуй привязка всего процессинга к начальной оценке 3D облака и сложности восстановления трекинга в случае падения. Хороших методов релокализации до сих пор не придумали...
BeS
 
Сообщения: 39
Зарегистрирован: 28 июл 2013, 17:59


Вернуться в Компьютерное зрение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron