Kinect(C#) - Detecting planar surface RRS feed

  • Question

  • Hi guys,

    Does anyone know how can i detect planar surfaces using Kinect? Meaning the walls and floor etc. I'd like to use the kinect fusion to obtain the .OBJ file which contains the surface normal and vertices etc, then using those information to find planar surfaces.

    Initially i wanted to use a Gauss Map to find planar surfaces but i've asked around and no one seems to know how to code a Gauss Map, so i'm hoping someone out here knows of any other method which i can use to find flat surfaces, this will later help me to perform other operations such as removing the object from the surface etc.

    Monday, May 27, 2013 1:45 AM


All replies

  • Do you want to do something like this?

    Kinect and Laser mapping MIT

    I don't know if it is possible using Kinect alone. I am still at the novice level. Perhaps somebody in the forum be able to guide you.

    Monday, May 27, 2013 10:55 AM
  • Hi arrezes, thanks for replying.

    No i'm not doing that. What i am trying to achieve is detecting planar surfaces such as floor and walls so i will be able to maybe perform operations in the future such as removing an object from the floor etc. So if i can detect a large flat surface, i'll be able to remove the item on the flat surface and maybe fill up the holes etc.

    Thus kinect is merely a tool for me to capture that 3D mesh, but the real operations will be done using a C# program which will extract the data from the .OBJ file produced by kinect fusion.

    One way is using the Gauss Map and map all the surface normal to the gauss map. But so far no one is able to help me with it, so i'm trying to explore other means of detecting planar surfaces.


    Monday, May 27, 2013 11:22 AM
  • well, you could use the pcl library , but this doesnt work with the kinect sdk , it works with OpenNI.

    Its algorithm works with the point cloud and not with a mesh, maybe can you get an idea if something of that is helpfull for you.

    Wednesday, May 29, 2013 11:40 AM
  • Hmm.. I'm not sure if I could do that.. I was told to extract the .OBJ file and using those info to find planes.. What I understand is that kinect is supposed to be only a tool to capture the data and I have to write a program to manipulate these data.. Sigh.. Why's it so hard..
    Wednesday, May 29, 2013 6:38 PM
  • Maybe this could help you to have an idea

    With Kinect Fusion you can only get an .obj File, which is a 3D Model. If you want to find planes there, you have to compare the meshes with sample planes , I think. Maybe is such comparasion easier with point clouds than with meshes . (Dont give up,at the beginning is always hard).

    Wednesday, May 29, 2013 10:04 PM
  • Hi arctorx.. Thank you so much.. I'll try my best to rest.. It still seems rather complicated to me.. And i don't really understand the difference between point cloud and the .OBJ.. Since the .OBJ file created contains the XYZ vertices as well as the XYZ normals for each point, then what difference is it from point cloud?

    And thank you so much for ur motivation.. Really needed it man.. Sorry to bug u, but you're also doing Kinect related programming?

    Thursday, May 30, 2013 4:20 PM