A PHP Error was encountered

Severity: Notice

Message: Undefined index: HTTP_ACCEPT_LANGUAGE

Filename: core/KF_Controller.php

Line Number: 155

kinect를 이용해 3d scan하기.

고급 예제

다양한 도구들을 가지고 마음껏 응용해보세요.

kinect를 이용해 3d scan하기.

2015-05-28 08:35:00

개요 

 

키넥트는 컨트롤로 없이 이용자의 신체를 이용해 게임과 엔터테인먼트를 경험할 수 있는 XBOX의 주변기기입니다. 

2009년 '프로젝트 나탈'로 발표되었고, 2010년 공식 명칭인 '키넥트'로 양산되었습니다.

출처 : 위키백과 / 키넥트

 

키넥트는 사용자의 음성, 모션, 거리 등을 측정 할 수 있습니다. 

어떻게 키넥트가 사용자의 모션이나 거리를 감지, 측정 할 수 있는 걸까요? 

 

키넥트는 3개의 렌즈로 구성되어 있습니다.  

- RGB 카메라 

- 적외선 카메라

- 적외선 프로젝터

 

RGB 카메라는 플레이어를 인식하고, 게임 중간에 사진을 찍거나 비디오를 촬영합니다. 

적외선 프로젝터는 적외선을 픽셀 단위로 쏴주는 역할을 합니다. 

이 것을 적외선 카메라로 보게 되면, 무수히 많은 점들이 보이게 됩니다. 

적외선 프로젝터가 적외선을 쏴주면, 물체에 닿아 반사되는 적외선을 적외선 카메라가 감지하여, 형체와 거리를 분석 할 수 있는 것 입니다. 

 

다음은 키넥트가 출시되면서 공개된 프로모션 영상인데요. 

키넥트가 사용자의 움직임을 감지해 게임에 반영합니다. 

 

 

 

요즘은 키넥트의 기능을 다양한 용도로 사용하는 것 같습니다. 

특히 미디어 아트 분야에서 키넥트를 이용해 인터렉티브한 작업 및 작품들을 만들기도 합니다. 

 

이미지출처 : 에브리웨어 / cloud pink 

 

이번 튜토리얼에서는 kinect를 이용해 많은 가능성으로 각광 받고 있는 3d printer로 출력할 수 있도록 3d scan을 하는 방법을 알아보도록 하겠습니다.

 

 

 

관련 튜토리얼 

 

 - 키넥트를 사용하여 손움직으로 LED 제어하기 

 

 

 

부품 목록

 

NO 부품명 수량 상세설명
1 kinect 1 xbox360 kinect sensor

 

부품명 kinect
파트

 

 

 

소프트웨어 목록

 

키넥트로  3d scan을 하기 위해서는 아래 3개의 소프트웨어를 설치해야 합니다. 

 

- kinect SDK 

     윈도우 32비트 사용자이거나 8이하의 버전인 분들은 2.0 설치가 불가합니다. 

     1.8 버전을 사용해야 합니다. 아래 링크를 이용해 적합한 버전을 다운 받으세요. 

        1.8버전 다운로드

        2.0버전 다운로드 

 

- OpenNI 2.2 

       OpenNI 2.2(32bit) 다운로드

       OpenNI 2.2(64bit) 다운로드

 

- Nite 2.2 

       Nite 2.2(32bit) 다운로드 

       Nite 2.2(64bit) 다운로드

 

3개의 프로그램 모두 설치 따로 설정을 할 필요가 없으니, 설치를 진행하시면 됩니다. 

3개의 프로그램을 3d scan을 위한 소프트 웨어를 설치해야 합니다.

 

 

 

3d scan 프로그램 설치 및 사용

 

kinect를 이용해 3d scan을 할 수 있는 프로그램을 설치해야 합니다. 

방법을 찾아본 결과 가장 대중적으로 사용하는 프로그램은  다음 2개 입니다. 

 

 - ReconstructMe 

 - Skanect

 

2개 모두 무료 프로그램은 아니지만 free 버전을 다운 받아 사용 할 수 있습니다. 

이번 튜토리얼에서는 Skanect를 이용해 3d scan을 해보려고 합니다. 

 

설치 

 

  아래의 링크를 이용해 프리 버전 설치 파일을 다운로드 받은 후 설치하면 됩니다.

  설치시 특별히 설정 할 것들은 없습니다. 

  Skanect 다운로드 

 

  설치 후 프로그램 실행 시 아래 화면과 일치하면 성공입니다! 

 

 

 

1. 물체를 스캔하기 전에 스캔 설정을 할 수 있습니다. 

 

Scene은 스캔 할 대상이 무엇인지 설정하는 것입니다. 

인체를 스캔 할 것이라면 body를 물체를 스캔 할 것이라면 object를 선택하면 됩니다. 

Bounding box는 스캔을 할 공간의 부피를 설정할 수 있습니다. 

 

 

 

 

 

2. 3d 스캔을 진행하기 전 화면입니다.

 

좌측 상단의 녹화 버튼을 누르면 녹화가 시작됩니다. 

녹화 버튼 우측은 delay 설정으로서 delay를 설정해놓으면 녹화 버튼을 클릭 후 설정한 delay만큼 대기 후 녹화가 시작됩니다. 

우측에 3개의 창을 보게되면, 열화상 카메라처럼 출력되서 나오는 걸 확인 할 수 있습니다.

검은 색 부분은 인식을 하지 못하는 부분입니다. 빛에 따라 형태를 인식하는 정도가 다르기 때문에 적절한 조명이 필요합니다.

 

 

 

 

 

3. 3d 스캔을 진행하는 모습입니다.

 

녹색으로 표현되는 부분이 형태를 스캔한 부분입니다. 

키넥트를 이용해 스캔을 진행하면서 중요한 점은 천천히 피사체를 스캔해야 한다는 점입니다. 

너무 빠르게 스캔할 경우 "Moved too fast or not enough geometry." 라는 문구와 "go back to last pos" 라는 문구가 화면에 출력됩니다. 당황하지 마시고, 화면에 마지막으로 찍힌 포지션으로 맞추면, 다시 스캔이 진행됩니다.

스캔이 얼추 다 되었으면, 좌측 상단에 녹화 중지 버튼을 클릭하면 됩니다.

 

 

 

 

 

4. 스캔된 형태를 가공하기 

 

스캔이 다 끝났다면, 스캔된 형태를 가공해야 합니다. 왜냐하면 위 사진에서 알 수 있다시피, 표면에서 빈 부분이 있을 수 있고, 매끄럽지 않기 때문입니다. 

 

녹화 중지 버튼을 누른 후에 약 5초간 컨버팅을 진행하고 나면, 아래 사진과 같이 3D model이 생성됩니다.

reconstruct 부분에서는 크게 설정할 것이 없으므로 process 탭을 클릭해 가공 설정 페이지로 이동합니다. 

 

가공 부분에서 크게 손댈 부분은 개방되어 있는 표면을 매꾸는 작업과 표면을 매끄럽게 하는 작업입니다. 

 - 개방되어 있는 표면을 매꾸는 작업 : 

    Fill Holes에서 strategy를 closed hull을 선택하고 run을 누르면 됩니다.

 

 - 표면을 매끄럽게 하는 작업 : 

   Fill Holes에서 smoothing을 Low 또는 Medium을 선택하고 run을 누르면 됩니다.

   smoothing level이 high인 경우 형태 구분이 어렵기 때문에 Low 또는 Medium이 적당합니다.

 

    

 

 

 

5. 모델을 export 하기 

 

정식 라이센스가 없을 경우는 안타깝게도 Save는 되지 않습니다. 

하지만 Export는 가능합니다. 즉 3d modeling tool과 호환되는 확장자로 내보낸 뒤 tool을 이용해 더욱 섬세하게 가공 할 수 있습니다. 

export 할 수 있는 확장자로 PLY, OBJ, STL, VRML을 지원합니다. 

 

좌측 메뉴에서 Export Model을 클릭 후 Export Preview를 클릭하면 지정한 확장자로 파일이 저장됩니다. 

 

아래 사진 stl로 저장 후 라이노로 파일을 불러온 화면입니다. 

 

 

 

아무 장비 없이 kinect를 이용해 3d scan을 해본 결과 불편한 점은 다음과 같았습니다.  

 - 조명이 없어서 kinect가 형태를 자세히 인식하지 못한다.(조명 도구 필요)

 - 360도 촬영을 해야하는데 피사체가 스스로 돌면서 자세가 흐트러지기 때문에 형태가 일그러진다.(회전판이 필요)

 

 

 

위와 같은 이유로 구글링을 해보니 3d scan을 위한 공간을 따로 만들어 놓은 걸 찾아볼 수 있었습니다.  

 

 

이미지출처 : instructables / azelinskie

 

 

 

조명을 적절히 배치하니, 굉장히 깔끔하게 스캔되는 것을 확인 할 수 있습니다. 

실제로 3d 스캔하여, 3d 프린터로 출력한 출력물입니다. 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

kinect,3dscan,3dprinter,kocoafab