46
3D Scanner Using kinect Mehdi Saman Booy Supervisor : Dr. Karimi

3D scanner using kinect

Embed Size (px)

DESCRIPTION

How to make a 3D Scanner using kinect and PCL

Citation preview

Page 1: 3D scanner using kinect

3D ScannerUsing kinect Mehdi Saman Booy

Supervisor : Dr. Karimi

Page 2: 3D scanner using kinect

/ 32

Contents• Introduction

• 3D importance

• Technologies

• Kinect

• PCL

• Drivers

• Implementation

• Filtering

• Registration

1

Page 3: 3D scanner using kinect

/ 32

Introduction

2

Page 4: 3D scanner using kinect

/ 32

3D Importance• 2D images

Easily interpreted by human eyes

Difficultly analyzing by computer

3

Page 5: 3D scanner using kinect

/ 32

3D Importance (cont’d)

• So, Third dimension is needed

• We call it “depth”

• Depth can be get from 3D scanner

4

Page 6: 3D scanner using kinect

/ 32

3D Scanner Applications

• Motion capture

• Animations

• Video games

• Industrial

• Reverse engineering

• Quality check

• Virtual reality

• …

5

Page 7: 3D scanner using kinect

/ 32

Technologies

6

Page 8: 3D scanner using kinect

/ 32

Kinect

• A webcam-style add-on peripheral (Wikipedia)

• Enables users to control and interact with their

console/computer without a controller

• Originally for Xbox 360

• Also released for Windows and Xbox One

• Kinetic + Connect = Kinect

7

Page 9: 3D scanner using kinect

/ 32

Kinect (history)

8

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

Page 10: 3D scanner using kinect

/ 32

Kinect (history)

8

Kinect for

Xbox 360

release

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

Page 11: 3D scanner using kinect

/ 32

Kinect (history)

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

8

LibFreenect

(Open source

library) release

Page 12: 3D scanner using kinect

/ 32

Kinect (history)

8

OpenNI

(Open source

driver) release

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

Page 13: 3D scanner using kinect

/ 32

Kinect (history)

8

Announced to release

Non-commercial Kinect

SDK in spring 2011

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

Page 14: 3D scanner using kinect

/ 32

Kinect (history)

8

Non-commercial

Kinect SDK

release

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

Page 15: 3D scanner using kinect

/ 32

Kinect (history)

8

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

Announced to launching

commercial version of

Kinect (Kinect for Windows)

with SDK

Page 16: 3D scanner using kinect

/ 32

Kinect (history)

8

Feb 2012

Oct 2011

Jun 2011

Feb 2011

Dec 2010

Nov 2010

Nov 2010

Kinect for

windows

release

Page 17: 3D scanner using kinect

/ 32

Kinect Hardware

9

Page 18: 3D scanner using kinect

/ 32

Kinect Hardware

10

Page 19: 3D scanner using kinect

/ 32

Kinect Hardware

10

Multi-array

microphone

Page 20: 3D scanner using kinect

/ 32

Kinect Hardware

10

IR laser

emitter

Page 21: 3D scanner using kinect

/ 32

Kinect Hardware

10

IR camera

Page 22: 3D scanner using kinect

/ 32

Kinect Hardware

10

Motorized tilt

Page 23: 3D scanner using kinect

/ 32

Kinect Hardware

10

USB cable

Page 24: 3D scanner using kinect

/ 32

Kinect Hardware

10

RGB camera

Page 25: 3D scanner using kinect

/ 32

PCL (Point Cloud Library)• Point Cloud:

A set of data points in some coordinate system

• PCL:

A library to works with point clouds

• Has a lots of functions for registration, filtering , …

11

Page 26: 3D scanner using kinect

/ 32

Other Technologies

• Geomagic Studio

Good to works with 3D scanner outputs

• OpenNI (Open Natural Interaction)

Used to interact between Kinect and OS

• Other drivers such as Microsoft official driver and Libfreenect

12

Page 27: 3D scanner using kinect

/ 32

Use Kinect for Xbox 360

• As before said, Kinect is originally for Xbox 360

• Connect Kinect for Xbox 360 to PC is not easy

• USB cable

• Additional Driver

• A lots of properties

13

Page 28: 3D scanner using kinect

/ 32

Implementation

14

Page 29: 3D scanner using kinect

/ 32

Our environment

15

Page 30: 3D scanner using kinect

/ 32

ImplementationFlowchart

16

Page 31: 3D scanner using kinect

/ 32

Read data• Kinect depth image resolution : 640 x 480

• 307500 points (x, y, z for each point)

• Shadow problem

17

Page 32: 3D scanner using kinect

/ 32

Depth filtering

• Kinect depth range : 50cm – 15m

• Use passthrough filter

• On z-axis between 1.5 , 15

18

Page 33: 3D scanner using kinect

/ 32

Depth filteringModel after depth filtering between 1.5 and 15 m

19

Page 34: 3D scanner using kinect

/ 32

Down sampling

• Voxel:

such as pixel in 2D image, each element of 3D

• Use voxelGrid function

• Change voxel size -> change down sample ratio

20

Page 35: 3D scanner using kinect

/ 32

Down samplingVoxel grid leaf size is 0.5 cm

21

Page 36: 3D scanner using kinect

/ 32

Plane removal

• With RANSAC algorithm we can fit a mathematical model

to set of points

• Models : circle, sphere, plane, …

• Fit a plane and delete that points

22

Page 37: 3D scanner using kinect

/ 32

Cluster extraction

• Still other objects or noises are exist

• Points with distance lower than a threshold is a cluster

• Delete all clusters except the biggest

23

Page 38: 3D scanner using kinect

/ 32

Cluster extractionClear object after filtering

24

Page 39: 3D scanner using kinect

/ 32

Registration

• Definition

Aligning two or more images of the same scene

One reference image

Transform other images

• The most important step

25

Page 40: 3D scanner using kinect

/ 32

• Angle of rotation is known

• We can rotate object manually

a) Original b) Expected c) happened

Registration (first try)

26

a b c

Page 41: 3D scanner using kinect

/ 32

Registration (second try)

27

1) Translate object to center

2) Rotation

3) Translate object to its location

1 2 3

Page 42: 3D scanner using kinect

/ 32

Registration (cont’d)• Another down sampling for each iteration is required

• Number of iterations:

n = 360 / θ

• Note:

Environment variables is so important. E.g. camera

with center of object distance and angle of rotation

28

Page 43: 3D scanner using kinect

/ 32

Point cloud resultResult after registration process

29

Page 44: 3D scanner using kinect

/ 32

Work with Geomagic

• Better point cloud with Geomagic studio

• Reduce noise

• Refinement

• Polygon mesh

• Fill holes

• Smoothness

30

Page 45: 3D scanner using kinect

/ 32

Final resultResult after work with Geomagic studio

31

Page 46: 3D scanner using kinect

/ 32

Specially thanks to Dr. Karimi

32

Thank you