2015-10-11 6 views
1

Я хочу получить 3d модель какого-то реального объекта слова. У меня есть две веб-камеры и использование openCV и SBM для соответствия стерео. Я получаю облако точки сцены, и отфильтровываю через z. Я могу получить облако точек только объекта. Я знаю, что ICP хорош для этого purprose, но для того, чтобы добиться наилучшего результата, он должен обладать точными облаками, поэтому он сочетается с SAC для достижения лучших результатов. Но моя оценка SAC оценивает это слишком большое smth как 70 или 40, также ICP не дает хороших результатов.Как выровнять (зарегистрировать) и объединить облака точек, чтобы получить полную 3d модель?

Мои вопросы: Это нормально для ICP, если я просто вращаю объект напротив камер для получения облаков точек? Какой угол поворота должен быть для достижения хороших результатов? Или, может быть, есть лучший способ фотографировать объект для получения 3d-модели? Это нормально, если мои облака точек будут иметь отверстия? Каков максимальный приемлемый показатель пригодности SAC для хорошего ПМС, и каков максимальный показатель пригодности хорошей ПМС?

Пример моей точки помутнения файлов: https://drive.google.com/file/d/0B1VdSoFbwNShcmo4ZUhPWjZHWG8/view?usp=sharing

+0

Если вы знаете, под каким углом вы повернуты ваш объект между записями, вы можете применить обратное вращение к соответствующему PointCloud. Это должно дать вам достаточно хорошую отправную точку для ICP, поэтому вам не понадобится SAC. Для угла поворота между записями: вам придется выяснить это методом проб и ошибок. Вы можете начать с вращения на 20 градусов, что должно дать много перекрытий для ICP. Затем вы можете попытаться увеличить угол, поэтому вам не нужно сканировать так часто. – HenningJ

+0

@HenningJ: Хорошо, спасибо, но что, если я не знаю угла? Я вручную вращаюсь вручную и не знаю угла. И где я должен установить угол в ICP? –

+0

Вам нужно будет повернуть pointcloud перед подачей его в ICP. Для угла: вы могли бы догадаться. Если вы получите его где-нибудь близко к правильному, этого должно быть достаточно для ПМС. Чтобы убедиться, что он работает вообще, вы можете визуализировать оба pointcloud вместе перед применением ICP и, возможно, выровнять их вручную. – HenningJ

ответ

1

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

Сначала начните с одометра rgb (через точки функции, выравнивающие облако точек (повернутые друг от друга)), затем используйте и узнайте, как ICP работает с уже упомянутой облачной облачной облачной библиотекой. Пусть функции rgb дают вам прогноз, а затем используют ICP для оптимизации, когда это возможно.

Когда это приложение работает, подумайте о хорошем подсчете очков фитнеса. Если все это работает, используйте версию ICP и оптимизируйте параметр. После этого все было сделано. У вас есть код, который не только быстрый, но и с низкой ошибкой ошибиться.

Следующая статья объясняет, что пошло не так.

Используя ICP, мы уточняем это преобразование, используя только геометрическую информацию. Однако здесь ICP снижает точность. Что происходит, так это то, что ICP пытается сопоставить столько точек, сколько может. Здесь фон за экраном имеет больше точек, что сам экран на двух сканирований. Затем ICP выравнивает облака, чтобы максимизировать соответствия на фоне. Экран затем смещен
https://github.com/introlab/rtabmap/wiki/ICP

+0

Спасибо за ответ, я пробовал с небольшим поворотом угла, а ICP - хорошим результатом с оценкой fitnes около 0,02-0,05, но когда я выравниваю все эти точечные облака для получения модели, я получаю очень плохие результаты. Я стараюсь использовать начальные буквы, с различными дескрипторами fueauture, но не смог получить хорошие начальные буквы. И, как я вижу, большинство дескрипторов функций pcl не используют информацию о цвете. Что вы предлагаете мне делать? И какой самый простой способ получить объектную модель, выравнивающую ее точечные облака. –

+0

Если вам нужно, я могу поделиться своими базами данных pcd для экзамена –

+0

, не смотрите на оценку fitnis, попробуйте использовать версию trunk для PCL: https://github.com /otherlab/pcl/blob/master/doc/tutorials/content/sources/registration_api/example1.cpp –