luigifreda / plvs

PLVS is a real-time SLAM system with points, lines, volumetric mapping and 3D unsupervised incremental segmentation.
GNU General Public License v3.0
453 stars 67 forks source link

The same 3D line is back-projected into different lines #22

Closed HJMGARMIN closed 7 months ago

HJMGARMIN commented 7 months ago

Regarding this part of the description, does it mean that for a 3D line in the same space, its endpoints may not be exactly the same when the corresponding line segments in different observation frames are back-projected into the 3D space?Then, this article also mentions P and Q when representing 3D lines. Is there a specific code description for PQ in this picture? image

luigifreda commented 7 months ago

Hi,

Regarding this part of the description, does it mean that for a 3D line in the same space, its endpoints may not be exactly the same when the corresponding line segments in different observation frames are back-projected into the 3D space?

Yes. In the paper (Sect. III.C), there are a couple of sentences that motivate this point: Due to noise, possible occlusions, and other factors, the 3D line segment l may not be fully observed by the camera and endpoints are often inconsistent across images [8]. Furthermore, a 3D line segment can be fragmented into multiple line segments (belonging to the same line in 3D).

Then, this article also mentions P and Q when representing 3D lines. Is there a specific code description for PQ in this picture?

Yes. The MapLine class hosts a representation of the two 3D points P (start) and Q (end) of the 3D line segment (in world coordinates):

    Eigen::Vector3f mWorldPosStart; 
    Eigen::Vector3f mWorldPosEnd;   

The 2D image observations of the MapLine are the 2D keylines cv::line_descriptor_c::KeyLine, each one hosting the image coordinates of the start and end points (pixel coordinates).

Hope this helps.

HJMGARMIN commented 7 months ago

For 2D lines matched in two frames, they are back-projected to the same line segment in three-dimensional space. If their back-projected space endpoints do not coincide, will P and Q make the two back-projected line segments coincide?