이번 포스팅은 3Gear System SDK에서 제공하는 샘플 프로그램들을 테스트 겸 리뷰해보기로 했다.

 

3Gear System 은 이번 SDK에서 많은 샘플들을 제공 했는데,

 

나중에 언급을 하겠지만, Leap Motion과 같이 손끝으로 포인팅 하는 샘플이 가장 인상 깊었던거 같다.

 

그리고 오브젝트를 3D환경에서 조립하는 샘플도 괜찮았던거 같구..

 

어째뜬 포스팅 시작한다.

 

1. Heart_Demo

 

이 샘플은 양손의 Pinch를 이용하여 오브젝트를 집거나 돌려보기, 그리고 슬라이드뷰로 내부 들여다 보기 등의 기능을 보여준다. 주목 할 점은 양손으로 회전 및 오브젝트와 슬라이드 따로 따로 집기가 가능하다는 점인데, 아래 영상을 보면 잘 이해가 될듯 하다.

 

 

 

 

2. Dino_eggs

 

이 샘플 역시 양손의 핀치를 이용하여 공룡알을 집게되면 효과음과 함께 공룡알이 사라지는 샘플이다. 간단한 샘플이다. 하지만 주목해야할 점은 Z축으로 움직인다는거

 

 

 

 

3. Cricket_Defender

이 샘플은 오른손의 위치를 트래킹 하여 선물상자는 바닥으로, 다이너마이트는 크리켓배트로 쳐내야 하는 게임이다. 물리가 적용되어 나름의 효과음과 함께 보여지는 샘플이다. 주목해야 할 점은 손의 회전에 따라 크리켓 배트도 같이 회전한다는 점이다.

 

 

 

 

4. Xylophone

이 샘플은 응용하기에 좋을듯 하다. 양손으로 실로폰을 치는 샘플인데, 원하는 음을 치기 위해서는 조금 집중하면 똑바로 칠수 있을 정도의 정확도를 테스트 해볼 수 있다.

 

 

 

 

5. SlingShot

이 샘플은 새총 샘플이다. 핀치를 통해 뒤로 당긴 후, 놓게 되면 해당 방향으로 날아가서 선물상자들과 충돌이 일어난다. 여기서 핵심은 핀치 및 X,Y,Z축 움직임이다.

 

 

 

 

6. Pointing_Demo

이 샘플은 이번 포스팅에 앞서 이야기 했던 샘플이다. 다들 Leap Motion을 알것이다. 그 샘플과 비교해서 단순 X,Y축으로의 움직임은 거의 흡사 할듯하다. 아주 미세한 움직임도 감지하여 잘 보여준다. 제공 된 샘플중에 제일 흥미유발을 한 샘플이라고 생각한다.

 

 

 

 

7. Rotation_Trainer

이번 샘플은 양손을 이용하여 Roll, Pitch, Yaw 방향으로 각각 회전이 가능하다. 먼저 양손으로 pinch하여 해당 방향으로 회전시켜주면 3D오브젝트인 토끼는 각 방향으로 따라 움직인다. 양손을 이용하여 3D 오브젝트를 이리저리 굴려보는 샘플인데, 이 역시 응용하면 재밋는게 나올듯 하다고 생각한다.

 

 

 

 

8. Assembly_Trainer

내가 찾은 SDK에서의 마지막 샘플이다. 해당 샘플은 동영상에도 비중있게 나오지만, 양손의 Pinch를 이용하여 뭔가를 조립하는 샘플이다. 어찌보면 가장 미래 지향적인 환경을 미리 경험할 수 있는 샘플이지 않을까 라는 생각이다. 여기서 사용되는 제스쳐는 Pinch와 X,Y,Z축 움직임이다. 일정 범위로 가면 자동 stitching이 되서 쉽게 경험 할 수 있게 되어있다. 하지만, 난 이걸 조립하는데 좀 시간이 걸렸다. 하지만 두번, 세번 하다보니 시간은 단축이 되더라, 어째뜬 이것 역시 재밋는 샘플 중 하나라고 생각한다.

 

 

 

 

 

이번 포스팅에서는 3Gear System SDK 에서 제공하는 여러 샘플들을 리뷰 해 보았다. 3D 공간에서 뭔가를 조립하거나, 허공에서 무언가를 돌려보고, 이동하고, 미세한 손동작으로 그림도 그리고.. 참으로 많은 가르침이 있는 샘플들인거 같다. 많은 비전을 제시하는 3Gear System SDK 이다. 앞으로 어떻게 응용해볼지에 대한 연구를 진행해봐야겠다.

 

 

 

Posted by Tommy™
,

이번 포스팅에서는 3Gear System 에서 새로운 손 제스쳐를 정의하고 렌더링 하는 방법에 대해 알아볼것이다.

 

3Gear System SDK에서는 총 7가지의 제스쳐를 제공한다.

 

Spread, Pinch, OK, HandShake, Microphone, Ell, Pointing 등 인데,

 

이를 구동하기 위해서는 카메라 세팅과 마찬가지로 cmd.exe를 실행 후, 도스창에서 명령어를 입력 후 실행 된다.

 

이는 사용 설명서에 자세히 나와있지만, 한번 더 언급하자면,

 

handcalibration.bat shape NewUser'sName

 

인데, 공백을 띄워주고 NewUser'sName에는 원하는 사용자의 이름을 명명해주면 된다.

 

 

 

여기서는 Spread 부분을 먼저 모델링 하는데, 가만히 있으면 depth point들이 누적된다.

 

이때 고기 굽듯이 살살 굴려주면 앞, 뒤 잘 누적되어 좋은 3D모델이 생성된다.

 

 

 

Spread Gesture 영상

 

 

 

handcalibration.bat pose NewUser'sName

 

여기서는 나머지 6개의 제스쳐가 모델링 된다.

 

 

Pinch Gesture 영상

 

 

 

 

OK Gesture 영상

 

 

 

 

HandShake Gesture 영상

 

 

 

 

Microphone Gesture 영상

 

 

 

 

Ell Gesture 영상

 

 

 

 

Pointing Gesture 영

 

 

 

상위 3D 모델이 끝나게 되면 이 또한 모든 데이터를 정합해야한다.

 

해당 과정은 아래 영상을 통해 확인 할 수 있다.

 

 

New user's hand gesture - 3D Rendering 영

 

 

 

해당 과정이 끝나면 이제 결과물을 볼 차례다.

 

얼마나 3D데이터가 잘 굽혔는지 말이다.

 

handdriver.bat NewUser'sName

 

해당 명령어를 입력하면 3Gear System의 서버가 열리면서 DebugView가 한개 생성된다.

 

 

DebugView 영

 

 

 

그리고 간단한 샘플을 한개만 실행해보겠다.

 

handviewer.bat 파일이 있는데, 이를 실행하면 Rendering 한 3D Hand Gesture를 구동 해볼수 있다.

 

 

HandViewer 영

 

 

 

이상 새로운 Hand Gesture를 생성하는 과정을 포스팅 해보았다.

 

참으로 놀라운 결과가 아닐수 없었다.

 

퍼포먼스에 놀라고, 디테일함에 또 놀라고.. 오늘 정말 눈 정화를 하는거 같은기분이다.

 

어째뜬 다음 포스팅은 3Gear System SDK에서 제공하는 여러 샘플들을 포스팅 해보겠다.

 

 

Posted by Tommy™
,

이번장에서는 체스보드판을 이용하여 두 키넥트의 화면을 정합하는 부분을 해볼 생각이다.

 

먼저 cmd.exe로 들어가서 도스창을 실행 후, camerasetup.bat 을 입력한다.

 

그러면 여러 라이브러리들을 읽으면서 얼마 후 프로그램이 구동 된다.

 

 

먼저 체스보드판이 가운데에 오도록 키넥트의 위치를 수정한다.

 

그리고 Calibrate to Checkerboard를 누른다.

 

 

 

그러면 20프레임간 손의 위치의 Point cloud를 누적시켜 손의 영역을 대충 Calibration 한다.

 

 

20프레임 이후에는 이렇게 결과화면이 나온다.

Exit Camera Calibration 을 누르면 종료된다.

 

 

 

 

우리는 이 Calibration 이 잘 되었는지 확인을 해야하는데, 이는 cameracalibrationtest.bat 을 실행함으로써 확인 할 수 있다.

 

홈페이지에도 나와있지만, Ghosting을 확인해야한다.

 

 

 

 

 

위에는 설명서에 나와있는 이미지 이고, 아래 이미지는 나의 결과 이미지 이다.

 

그런대로 고스팅 없이 잘 Calibration 된거 같다.

 

 

 

 

이상 카메라 세팅하는 방법에 대해 포스팅 해보았다.

 

다음에는 손의 제스쳐를 새로 정의하고, 렌더링 하는 방법에 대해 포스팅 하겠다.

 

 

Posted by Tommy™
,

이번장에서는 3Gear System을 구동해보기 위한 준비단계를 설명할 예정이다.

 

제일 먼저 홈페이지에서 공식 최신버전을 다운 받는다.

 

공식 사이트 : http://www.threegear.com/index.html

 

 

 

 

 

 

 

 

 

 

다운이 완료 되었으면,

 

다운파일 -> gestural_user_interface_x64 -> GesturalUserInterface -> Doc 따라 들어가본다.

 

그럼 installation.html 이 나올것이다.

 

이 설명서를 보고 따라 하면 되겠지만, 간단히 정리를 해보자.

 

 

1. 시스템 요구사양(System Requirement)

 

2대의 3D카메라(Depth Sensing Cameras) 즉, 키넥트나 PrimeSense 카메라, 또는 Asus 카메라가 필요로 한다.

 

그리고 좋은 컴퓨터가 필요하다. 최저사양이 Intel i7, 8GB RAM........ 고사양이 필요하다..

 

그리고 윈도우 7-64비트(아무래도 RAM 때문인듯하다)

 

JAVA SE 64비트 (이게 없으면 프로그램이 아예 실행이 안된다)

 

OpenNI 와 Nite 최신버전

 

등등이 필요하다.

 

난 Kinect SDK 와 OpenNI 둘다 깔려있으니 상관없음

 

혹시 둘 다 설치하고싶다면 밑에 유튜브 참조 (연구실 친구가 아주 친절하게 설명해놨음)

 

(참고 : http://youtu.be/TDuGfAV6hDc )

 

 

 

2. 설치(Installation)

 

설치는 하드웨어적인 세팅과 소프트웨어적인 파일 경로 등의 세팅 총 2가지로 크게 나뉜다.

 

먼저 하드웨서 세팅

 

설명서에는 프레임은 어떻게 설치 하는지, 길이는 얼마나 되는지 등등의 자세한 스펙이 나와있다.

 

하지만 나는 다른 방법으로 세팅하기로 했다.

 

 

위와같이 세팅을하였는데, 기둥에 Arm을 붙여 두개의 Kinect를 고정시켰다.

 

 

 

 

다음으로 소프트웨어 파일 경로설정

1. 다운받은 파일을 C:\Dev\ 에 복사를 한다.

 

그래서 최종 경로는 C:\Dev\GesturalUserInterface 가 된다.

 

2. 라이센스파일 C:\Dev\GesturalUserInterface에 복사 (있을경우에만)

 

3. config.yml 파일 수정

 

config_example.yml 파일이 있는데, 이를 복사하여 config.yml로 수정

 

내부에는 여러내용이 있지만 정작 추가 및 수정 해야 할 부분은 2군데뿐이다.

 

- DataDirectory

 

이녀석은 Calibration 및 Hand Modeling 한 결과를 저장하고 불러 올 경로이다.

 

나는 시키는대로 C:\dev\GesturalUserInterface\GesturalData 라고 했다. (물론 GesturalData 폴더를 만들어줘야 한다.)

 

- CameraType

 

카메라 타입이 OpenNI 와 OpenNI2, Kinect for Window 등 이렇게 총 3가지로 나뉘는데, 나는 Kinect for X-Box 용이기 때문에 CameraType: OpenNI2 라고 해주었다.

 

자 그럼 이제 소프트웨어 파일 경로설정은 끝났다.

 

 

 

 

그리고 마지막으로 카메라를 Merge 하기 위한 Chessboard를 출력

 

이를 통해 두개의 다른 키넥트 Depth 영상을 정합할수가 있다. 이는 Homography Matrix 를 공부해보면 쉽게 이해가 된다.

 

 

 

 

다음장에서는 체스보드판을 이용한 Camera Setup 부분을 다루겠다.

 

 

Posted by Tommy™
,

얼마전 외국인 친구로 부터 3Gear System 아냐?? 는 질문을 받았다.

 

그리고 접하게 된 3Gear System

 

내가 연구해보고싶었던 분야가 구현되어 있었던 것이었다.

 

일단 백문이 불여일견

 

 

 

website : http://www.threegear.com/

 

 

 

 

위 사진이 메인 화면이다.

 

여기 들어가면 설명서 및 라이센스 등등 관련 정보가 상세하게 나와있다.

 

그래서 간단히 요약을 하면,

 

 

 

 

시스템은 두대의 키넥트를 가지고 한대만 가지고 있을때의 단점인 한면만 디텍트 하는점을 두대를 이용하여 정합 함으로써 숨겨진 은면을 포함한 모든 부분을 정확하게 트래킹 가능하다는 점이 이 시스템의 큰 특징이다.

 

또 다른 큰 특징은 이 시스템은 3D 모델을 직접 캡쳐하여 모델링 한다는 점인데, 참고로 7가지 정도의 제스쳐를 사용자에 따라 정하여 사용할 수가 있다. 예를 들면 Pointing 제스쳐나 Pinch, Spread, OK 제스쳐 등등을 직접 원하는대로 정의하여 사용 할 수가 있는데, 이는 추후에 직접 테스트 해본 결과를 근거로 결과물을 캡쳐하여 제시할 예정이다.

 

그리고 중요한점은 라이센스인데, 총 3가지 타입의 라이센스가 존재한다.

 

1. 평가판 버전(Evaluation License)

2. 상용버전(Commercial License)

3. 연구 또는 학업을 위한 아카데믹버전(Academic License)

 

평가판 버전을 사용하면 30일 제한이 걸린다. 그리고 상용은 뭐 계속 사용할수 있겠지만, 나는 30일만 사용하기에는 성에 안찼다. 그래서 직접 3Gear System 측에 라이센싱 관련 업무담당자에게 나의 의견을 제시하고, 목적을 제시함으로써 Academic License를 받을 수 있었다. 이는 1년(12Month)짜리 라이센스였으며, 1년간 마음껏 테스트 해볼 수 있는 권한이 주어졌다.

 

하지만, 아쉬운점이 있는데, 그들은 소스코드는 제공하지 않았다. 단지 Release 파일만 제공하고, 튜토리얼을 제공할 뿐, 다른 발전방향은 없었다. 많이 아쉬운 점이었는데, 뭐 어쩌겠는가, 테스트 해보는거에 만족해야지 뭐..

 

어째뜬 다시 본론으로 돌아가서..

 

원래 이 연구의 시초는 Robert Wang으로 부터 시작 되었는데, 그는 MIT 공대에서 컴퓨터비전과 HCI 관련하여 박사과정을 마쳤다. 그리고 그는 웹캠과 컬러패치를 이용한 장갑으로 실시간 핸드트래킹 하는 알고리즘을 개발하여 3Gear System을 만드는데 기초가 되었다고 한다.

 

 

 

Robert Wang : Real-time hand-tracking with a color glove

(Link : http://people.csail.mit.edu/rywang/hand/)

 

 

어째뜬 참으로 매력적인 연구이자 미래를 전망할 수 있는 아주 좋은 선례라고 생각한다.

 

이제 3Gear System을 체험 해보자.

 

Posted by Tommy™
,