3D Scanning with Kinect v2

Posts made in March, 2015

Infrared Shadows color map

Infrared Shadows color map

By on Mar 17, 2015 in Uncategorized |

Another challenge while working with the Kinect V2 is that the infrared projection (used to create depth data) can cast shadows which cause poor or bad data. The solution currently being tried is to fill in the empty space with assumed data (starting furthest back and moving forward), followed by getting the angles and depth that the data is projected to be at. Here is a color version of the data; angles and depth have been converted to color; you can see that in the interference picture above, there are dark red areas that don’t have depth data; this color shot has filled in what it could (I put a limit on how long it can try to fill in the missing pixels) any pixels it couldn’t figure out appear...

Read More
Filtering data exported from the Kinect V2

Filtering data exported from the Kinect V2

By on Mar 11, 2015 in Uncategorized |

One of the biggest challenges with the Kinect V2 is cleaning up the data and turning it into nice clean meshes. Before running filters You will need to clean out duplicate vertices; this greatly reduces the file size:┬áthe example shown here went from 27mb to 8mb without losing quality. Generate a better looking surface The surfaces will tend to look voxelated (3D pixelation). To clean up the surface, a point cloud needs to be created based off of 1mm distance (since Kinect v2 can’t scan finer then 1mm, that’s a safe range to pick without losing quality). Next, generate surface normals for the point cloud: surface normals tell which way the surface faces. Since the direction of the scan is known, the normals can be calculated off of the camera direction. Now a mesh surface reconstruction can be run using the point cloud and surface normals. The surface reconstruction will create a solid object, single direction scans that will be merged with other scans will need to have the extra surface trimmed off. Using the original mesh, a selection can be made on the new mesh based off the old one; that selection can then be exported to a new mesh file. The new will still have a lot of vertices that are unnecessarily close, at this point a filter needs to be run that will only allow 1 vertex per scan resolution. Since you can’t have more detail than the selected scan resolution, safe to assume no detail will be lost. Note: Majority of the extra vertices being filtered out are a result of the averaging processed used to filter out static. The final step is to trim off the edges. Edges and angles tend to have bad scan data. To trim it off, the vertices can be colored based off of distance from the edges (see image at top), and selection/removal can be done by...

Read More
Capturing with Kinect V2 won’t work well on shiny surfaces.

Capturing with Kinect V2 won’t work well on shiny surfaces.

By on Mar 6, 2015 in Uncategorized |

While fine-tuning the HD Camera alignment, I thought It’d be a good idea to use some toy blocks. Static looks good. Rendered capture looks good. The blocks should have been flat surfaces, you can see here that different blocks had different distortion effects. Keep in mind that while scanning with the Kinect V2 it needs to be able to read the infrared pulses to get depth, so although these surfaces were stable as if they didn’t have interference, they came out distorted anyways- this seems to be because the different colored blocks actually had slightly different delays in reflected the infrared...

Read More
Note: Scan from Life is in no way affiliated with Microsoft. We are an entirely separate company that has created a product that is dependent on a Microsoft owned product.