mp3guy / Kintinuous

Real-time large scale dense visual SLAM system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reconstructed model not in a plane

SunshineDou opened this issue · comments

Hello, I have collected the dataset of a room by Realsense D435 and I converted it into klg file, then ran it in Kintinuous. the problem is that the reconstructed model of the room's left and right are not in a plane. the right part of the room is higher than the left. What's the problem?
Thank you very much!

Hey, do you have a screengrab or something that'll help understand this issue better?

I'm quite sure this has to do with the scanning trajectory itself, but to be doubly sure, the screengrab helps.

@krrish94 Thank you very much for your replying and helping, the screengrab is as follows:
2019-01-14 10-10-07

2019-01-14 10-11-21

As you can see they are not not in a plane, the left of the room is lower than the right of the room, What's the matter? and the other question is that the loop detection is very bad, how can I improve it?
Thanks again for your help

Yeah, the problem seems to lie with loop detection. I feel loops aren't being detected, and hence, online deformation is not kicking in. One way to try and get loops detected is to build a DBoW2 vocabulary on scenes similar to the one you currently have. And, sometimes, a slower scanning trajectory helps.

(This isn't a legit code issue though, hence this could be closed, but happy to keep answering any questions you might have.)

@krrish94 Thank you very much for your help. but I have no idea what's the "build a DBoW2 vocabulary on scenes similar to the one you currently have" mean? is that mean I should use DBOW2 but not DBOW1? coud you please give me a more detailed explanation? Thank you very much sincerely

So the way loop detection works is DBoW2 (discrete bag-of-words version 2) looks at a large dataset comprising scenes and constructs a 'visual vocabulary' that helps it solve the place recognition problem. But, as you might have guessed, this vocabulary is no good if the scene you're testing on is very different from the scenes you learnt the vocabulary over. The default vocabulary that ships with this code is good for a lot of environments, but probably not the one you're testing on. So, I was recommending you construct a vocabulary using DBoW2 (see https://github.com/dorian3d/DBoW2/blob/master/demo/demo.cpp#L102-L138 ).

@krrish94 ok,I have got it, Thank you very much. I will give it a try. Thanks again for your help sincerely