티스토리 뷰

Kinect

[kinect 프로젝트] RGBDemo 및 openNI 설치

생각많은 소심남 2012. 2. 2. 11:04


온라인 교보문고에 보니 출시되어있는 kinect관련 서적이 이거밖에 없더군요. 가격도 참 비싸고..
뭐 어쩌겠습니까? 그냥 샀습니다. 집에 있는 키넥트가 방치되는게 너무 싫어서 억지로라도 이책보면서 따라해보겠습니다. 물론 기본적인 키넥트의 구성과 설치는 다른 페이지에서도 참고하시면 되니까 저는 키넥트를 설치하고 난 후 컴퓨터에 적용하는 방법에 대해서 언급해보고자 합니다.

우선 위의 책에서 주로 사용하고 있는 툴은 RGBDemo입니다. 이름이 담고 있는 뜻은 RGB+D(depth)라고 하네요. 
물론 MS에서 제공하는 공식 SDK가 있습니다
 

http://www.microsoft.com/en-us/kinectforwindows/

마침 글을 쓰는 오늘은 윈도우용 키넥트가 정식으로 출시하는 날입니다.미국시간으로 따져야되니까 아직은 살짝 남았긴 하네요. 사실 이 SDK를 사용하면 편리하게 쓸 수 있습니다. 안에 Skeletal View라고 해서 Sample도 있고 이를 응용한 게임도 내장되어 있습니다.
 


그런데 우리가 다른 프로젝트에서 볼 수 있다시피 보통 실생활에 쓰이는 Tool은 RGBDemo를 사용한게 많습니다. 물론 공식 SDK가 배포된지 얼마 안됬고 이를 기반으로 하는 책들이 아직 출시하지 않았습니다.(아마존에서 보니 2월부터 나오기 시작합니다.)

사실 저는 위 책에서 언급한 RGBDemo에 대해서 다뤄보려고 했습니다. 이는 공식적으로 제공하는 드라이버 대신에 OpenNI와 NITE라는 툴을 이용해서 기존 SDK에서 제공하는 것보다 조금더 나은 성능을 보입니다. 그런데
두개를 공존해서 깔 수는 없게 되어있더군요. 물론 야매로 Bridge 드라이버를 깔아서 두개를 동시에 쓸 수 있게끔 할 수도 있습니다만 위험부담이 크고 잘 되지 않네요.
아무튼 일반 사용자가 사용하기엔 SDK로 나아갈거냐 OpenNI로 갈거냐를 고민해봐야합니다. 분명 OpenNI로 가면 영상처리쪽으로 더 나아갈 수 있는 여지가 있습니다만 이제 공식 SDK가 나온 이상 MS에서 어떻게 더 확장시킬지가 궁금해지는 때입니다.

저는 일단 준비하는 것도 있으니까 그냥 SDK로 해보겠습니다. 
 밑에서 언급하고 있는 사항은 어제 12시간동안 삽질한 결과물이고 일단은 됬습니다.
SDK로 개발하실 분은 그냥 스킵하셔도 됩니다.
-----------------------------------------------------------------------------------------------------------

자 우선 키넥트가 있으니까 RGBDemo를 깔아보겠습니다.
공식사이트는 labs.manctl.com/rgbdemo 이고 최근에 떠있는 파일은 0.6.1rc1버전입니다.
일단 기본적으로 준비해야 할 사항이 있습니다. 
이전에 컴퓨터에 키넥트관련 드라이버와 SDK를 다 삭제해야 합니다. 드라이버는


장치관리자에서 찾을 수 있고 이 부분을 삭제한 후 키넥트가 분리된 상태이어야 합니다.

 
 지원 OS는 윈도우 Mac OS Linux등을 지원한다고 되어 있고 윈도우용을 쓰는 저는 당연히 win32용으로 다운받았습니다.

 
책에서는 맨뒤에 free license가 필요하다고 언급되어있는데 버전업이 되면서 필요없어졌습니다.
 아마 다운로드를 실행했으면 sourceforge로 연결되면서 다운로드가 진행될겁니다. 용량은 60메가 정도입니다. 친절하게 여기 링크를 올려드립니다.

 아무튼 받은 파일의 압축을 풀면 여러개 파일들이 나타나는데 그중에 Driver를 선택해줍니다. 그럼 다음과 같이
 


파일이 뜹니다. 이것들을 우선적으로 설치해주어야 RGBDemo가 정상적으로 동작합니다. 순서를 무시하고 RGBD를 실행시키면 다시 설치해야 하는 불상사가 생깁니다.

우선 먼저 설치해줘야하는 파일이 OpenNI입니다. 


저야 64bit이므로 저런거고 나머지는 Program Files에 설치될겁니다.
 중간에 

 
을 깔라고 말하는데 다음으로 설치해야 되는 파일이 바로 PrimeSense를 이용하기 때문에 반드시 설치해줘야합니다.
정상적으로 설치가 된후 다음으로 설치해야 할 항목은 SensorKinect입니다.


 역시 보안 경고문이 뜨는데 무시하고 설치합니다.
이제 마지막으로 남은 파일이 NITE인데 이게 바로 최종적인 드라이버입니다. 
설치를 마치고 나서 Kinect를 연결하면 이걸로 끝인 겁니다. 
이제는 OpenNI에 들어있는 Sample중 NIviewer를 열면 아래와 같이 정상적으로 실행됩니다.


제가 뻘짓했던 이유는 두가지였습니다.
우선은 제가 64bit을 사용하는데 64bit용을 써야한다고 생각해서 드라이버를 64비트용으로 설치했었습니다. 하지만 위 사진에서도 느끼셨겠지만 OpenNI, KinectSensor, NITE 모두 32비트용으로 깔아야 합니다. 그래야 위처럼 잘 인식됩니다.
또 다른 건 기존에 Kinect SDK 베타를 사용하고 있는데 이걸 억지로 깔다보니 SensorKinect 드라이버가 정상적으로 인지하지 못하는 것이었습니다. 결국 포멧하고 위 방식을 따라서 설치했더니 정상적으로 됩니다.

TroubleShooting
1. 다 연결했는데 최종 화면에서 기기가 연결이 안됬다고 뜹니다.
- 근본적인 이유는 드라이버가 인지되지 않아서입니다. 기존에 SDK를 깔아서 드라이버가 살아있던지 아니면 진짜 Kinect가 연결되어 있지 않아서 인지 둘중 하나입니다.

2. NIviewer가 실행은 되는데 OpenNI.dll 파일이 없다고 오류가 뜹니다.
- 이는 설치하고 컴퓨터를 리부팅하면 해결됩니다. 이때의 오류는 막 설치해서 시스템내에 PATH가 온전치 않아서 발생하는 일입니다. 

3. 실행은 되는 Xnview....dll 파일이 없다고 오류가 뜹니다.
- 이부분에 대해서는 저도 아는게 없습니다.

---------------------------------------------------------------------------------------------------------
아무튼 여기까지가 OpenNI에 대한 설명이었습니다. 일단은 클린상태에서 설치해야 하며 지금 쓰고 있는 툴에서 다른 툴로 넘어가기 위해서는 반드시 기존 드라이버를 삭제하고 키넥트의 드라이버를 새로 설치해야 합니다.

다음 포스팅은 윈도우키넥트의 기본적인 소개에 대해서 다루겠습니다.

댓글