티스토리 뷰

Processing

[Processing] Processing with Kinect

생각많은 소심남 2012. 6. 8. 00:48


제가 Processing을 하려는 이유 중 하나가 첫번째는 아두이노와 연계함으로써 시각적으로 그럴싸한 어플리케이션을 구현해보고자 함이었고, 그 다음 이유가 바로 지금 소개해드릴 키넥트와의 연계를 위해서 배우고 있습니다. 오늘도 짬을 내서 시도해보았고 잘 되네요.

 

 

 사실 이걸 실행하기 위해서는 OpenNI 기반의 키넥트 개발환경이 구현되어야 하며 기존의 MS SDK가 설치된 환경상에서는 드라이버가 충돌되기 때문에 저는 해보지도 못했습니다. 그런데 5월 말경에 브릿지 드라이버가 나오면서 OpenNI도 함께 개발할 수 있는 환경이 구축되었습니다. 그렇기 때문에 이 글을 하시려는 분은 반드시 아래글을 참고하시고 개발환경을 구축하시기 바랍니다.

2012/06/05 - [About Kinect] - [Kinect 프로젝트] MS Kinect SDK v1.5와 OpenNI 같이 사용하기

 

자 우선 Processing에서 Kinect를 사용하기 위해서는 OpenKinect라는 커뮤니티에서 만든 SimpleOpenNI 라는 라이브러리를 가져와야 합니다. 그건 해당 링크에서 받으실 수 있습니다.

http://code.google.com/p/simple-openni/downloads/detail?name=SimpleOpenNI-0.27.zip

기존에는 운영체제의 비트수에 따라서 설치하는 버전이 달랐는데 지금은 하나의 파일로 통합되었습니다. 아무튼 위 파일이 바로 프로세싱에서 Kinect를 호출할 수 있는 일종의 라이브러리가 되겠습니다.

 일단 이글을 보시는 분이라면 프로세싱은 다 깔려있을겁니다. 그럼 문서의 Processing 폴더로 들어가보세요. 텅비어 있다면 이렇게 libraries라는 폴더를 만드시기 바랍니다.

 

 

그러고 나서 아까 받은 파일을 푼 것을 이 libraries 폴더에 집어넣기만 하면 프로세싱에서 Kinect를 쓸 수 있는 준비는 끝난겁니다. 정상적으로 했다면 Sketch-Import에 새로운 SimpleOpenNI라는 개체가 생성될겁니다.

 

 

자 끝났습니다. 한번 다음과 같이 기본 코드를 짜보겠습니다. 우선 위에서처럼 Import Library를 통해서 SimpleOpenNI를 선택해주면 Sketch창에 다음과 같이 출력됩니다.

 

이로써 아까 받은 폴더에서 Kinect에 관한 라이브러리를 호출한 것이고 여기에 Depth와 RGB를 부르는 과정을 진행해야 합니다. 전에 다뤘던 내용과 마찬가지로 역시 setup과 draw로 나눠져서 작성됩니다.

 

 

어느 개발환경이나 마찬가지로 초기에 SimpleOpenNI를 쓸 자료형을 선언한 후에 그에 대한 Depth와 RGB를 활성화시키고 매초마다 그에 대한 프레임을 image로 전송하는 구조로 되어 있습니다. 매우 간단하지만 저한테는 이렇게 일반적인 개발환경이외에서도 이런식으로 키넥트를 개발할 수 있다는 사실이 놀라웠습니다. 아무튼 위의 결과는 다음과 같습니다.

 

 

보시는 것처럼 (0 , 0)을 기점으로 한쪽에는 Depth가 그려지고 또다른 한편으로는 RGB Image가 나오고 있습니다. 일단 처음이니까 요정도로 하고 간단한 샘플을 보여드리겠습니다. 이건 example안에 들어있는 AlternativeViewPoint3d라는 이름의 스케치로써 흔히들 PointCloud라고 하는 개념이 적용되어 있습니다. 한번 보시지요.

 


 

이걸 보니까 뭔가 더 하고 싶은 열정이 생기시지 않으신가요? 저는 그런게 막 느껴지더군요. 조금더 공부해본 후에 다시 정리하겠습니다.


댓글