요즘 들어서 프로세싱을 활용한 프로젝트들이 많이 나오고 있는 것을 느낍니다. 그중에서도 키넥트를 활용한 프로세싱 프로젝트들도 많이 소개가 되고 있습니다. 그중 하나를 한번 소개해보고자 합니다. Jotist님이 소개해주신 프로젝트로 여기에도 키넥트가 활용됩니다. 그것도 3개의 키넥트가 들어가서 3차원적으로 매핑되고 있는 것이 보여집니다. 놀라운 건 여기에도 프로세싱이 적용되었다는 겁니다. 우선 프로세싱을 통해서 포인트 클라우드를 받은 다음 랜더링 프로그램을 활용해서 사람의 모션을 위와 같이 표현했습니다. 다음 보여드리는 동영상이 제작과정입니다. 이와 같이 키넥트와 다양한 툴킷이 어울려서 정말로 놀라운 프로젝트들이 만들어지고 있습니다. 단순히 키넥트가 가진 기술보다도 이를 활용하기 위해서는 가지고 있는 정보..
계속 내용을 다루다보니까 다른 프로그램과 연동시킬 수 있는 프로그램들이 많이 존재하는 것 같습니다. 그중에서도 인터렉티브 디자인을 하는데 많이 쓰이는 프로세싱과 비전 관련 라이브러리인 OpenCV를 같이 묶어서 쓸 수 있는 프로젝트가 있어서 소개해드리려고 합니다. 여러분도 아시겠지만 프로세싱은 자바기반의 컴파일러이고, OpenCV는 C++ 기반의 컴퓨터 비전 라이브러리입니다. 서로를 연동시키는 과정을 다른 포스트에서도 언급했었습니다만 Wrapper라고 하지요. 지금 소개해드리는 것도 일종의 랩퍼입니다. 이런 역할을 수행하는 것이 여러개 있지만 가장 대표적으로 쓰이는 것이 지금 소개해드리는 OpenCV library와 JavaCV 입니다. OpenCV는 매우 간단합니다만 기반이 OpenCV 1.0 이기 때..
지난 시간에는 Kinect가 들어가지는 않지만 3차원 공간을 생성하고 그안에서 Camera View를 컨트롤 할 수 있는 KinectOrbit이라는 것을 다뤄봤습니다. 이번 포스트에서는 실제로 KinectOrbit을 사용해서 Kinect를 이용할 수 있는 Kinect Space를 생성해보고자 합니다. 우선 SimpleOpenNI 라이브러리에 들어있는 예제를 살펴보겠습니다. 정상적으로 설치하셨다면 Files 메뉴 항목에 Examples 라는 항목이 있을겁니다. 그걸 선택하면 새로운 창이 형성되는데 제일 밑에 내려가 보면 SimpleOpenNI 예제가 있습니다. 그중에서 DepthMap3D를 한번 보겠습니다. 그걸 실행시키면 다음과 같은 영상을 얻게 됩니다. 이 예제에서 가장 중요한 부분은 아래 코드입니다...
지난 포스트에서는 3D 개체를 생성하고 그걸 마우스의 움직임에 따라서 달리 보이는 것까지 다뤄봤습니다. 그런데 마우스로 할 수 있는 건 단 하나, 그냥 박스를 움직이는데 그쳤습니다. 보통 다른 Visualization CAD 툴 상에서는 마우스로 줌인/아웃 이나 회전같은 마우스로서 시점을 변경시킬 수 있는 기능들이 내장되어 있습니다. 역시 프로세싱에도 그런 라이브러리가 존재합니다. 그래서 한번 소개해드리고자 합니다. 지난 포스트의 서두에서도 언급했었지만 우리가 3D라는 것을 인지하기 위해서는 원근감이라는 것을 이용해서 표현한다고 했었지요. 그리고 사용자가 가지는 제한점은 바로 시점이 고정되어 있는 겁니다. 만약 시점을 이동시킬 수만 있다면 그에 따른 입체감 표현은 더욱 쉬워질겁니다. 이 때 필요한 라이브..
키넥트는 Depth 카메라입니다. 일반적인 RGB 카메라와 다른 점이라면 RGB는 그 보는 그대로가 정보인 것이고 Depth라고 하는 것은 보는 그대로가 아닌 하나하나의 픽셀속에 깊이에 대한 정보가 들어있는 것이지요. 그래서 보통 이미지 프로세싱을 하는데 있어서 RGB는 단순히 보는 것에 대한 정보만 뽑을 수 있기 때문에 삼차원적으로 모델링하는 방법이 매우 복잡합니다. 굉장히 어려운 수식도 들어가야 되고 상대적인 비율을 통해 모델링을 추구하기 때문에 정확하지도 않습니다. 이런 문제를 해결해준 것이 바로 ToF 카메라 방식인데 키넥트도 어떻게 보면 이런 종류안에 들어가겠지요. 이번 포스팅에서는 그런 키넥트를 프로세싱에서 다루는데 앞서서 3D라는 정보를 뽑아내고자 합니다. 실질상으로 우리가 스크린을 통해서 ..
Processing의 Kinect 라이브러리인 SimpleOpenNI를 사용하면 정말로 간단하면서 다양한 키넥트 어플리케이션을 구현할 수 있습니다. 이와 관련된 책들도 현재 많이 나오고 있습니다. 거기서 제일 처음 나오는 프로젝트들 중 하나가 바로 가장 근접점을 뽑아내는 것입니다. 이를 통해서 메모리로부터 어떤 픽셀이 가까운지를 감지할 수 있는 중요한 예제이기 때문이지요. 잠깐 요약을 하자면 픽셀의 데이터는 1차원적으로 쭉 늘어진 배열에서 뽑아오는 것이기 때문에 그 중 하나를 뽑으려면 그것에 관한 정의를 잘 내려야 한다고 했었지요. 이번에도 관련 예제를 다뤄보겠습니다. 우선 라이브러리 삽입 및 자료형 정의가 전제되어야 하겠습니다.그리고 사전에 setup에 들어갈 부분은 항상 맨먼저 언급되었던 내용이니까 ..
지난 포스트에서는 프로세싱을 통해서 받은 이미지에서 각각의 RGB값을 취하는 것에 대해 알아봤습니다. 실제로 기본적인 코드를 바탕으로 2~3줄 정도 추가해준 것에 비해 얻을 수 있는 정보가 늘어나지요. 코드 자체도 어렵지 않고요. 이번에 해볼 내용은 SimpleOpenNI 라이브러리에서 제공하는 depthmap 속성을 이용해서 DepthImage로부터 사용자까지의 거리를 구하는 식을 구해보고자 합니다. 전체적인 형식은 전의 코드와 비슷합니다. 우선은 라이브러리를 추가해주고 SimpleOpenNI형 자료형을 선언해줍니다. 그 후에 다음과 같이 코드를 구성해봅니다. 자 이제 mousePressed부분을 채워야 하는데 고려해볼 사항이 있습니다. 전 시간에 잠깐 말한 바로는 키넥트가 컴퓨터로 데이터를 넘길때는 ..
다시 돌아온 프로세싱입니다. 이번 포스트에서 해볼 내용은 마우스로 특정 포인트를 찝었을 때 그 픽셀의 RGB값을 구하는 어플입니다. 지난 포스트에서는 draw라는 함수를 통해서 해당 윈도우에 Depth와 Color를 출력하는 것을 구현했었는데 이번 것도 거의 비슷합니다. 다만 마우스를 클릭했을 때의 함수가 필요한데 프로세싱에서 참 편리하게도 그냥 mousePressed라는 함수를 가지고 있습니다. 그래서 기존 함수를 그대로 이용하면서 해당 코드만 가져오겠습니다. 모르시는 분을 위해서 간단하게 설명하자면 우선은 Setup부분에서 Kinect에서 필요한 기능을 다 불러와야 합니다. 마치 장치를 initialize시키는 것처럼 말이죠. 이런 구조는 보통 게임 구현시 나타납니다. 그도 그럴것이 Processin..
제가 Processing을 하려는 이유 중 하나가 첫번째는 아두이노와 연계함으로써 시각적으로 그럴싸한 어플리케이션을 구현해보고자 함이었고, 그 다음 이유가 바로 지금 소개해드릴 키넥트와의 연계를 위해서 배우고 있습니다. 오늘도 짬을 내서 시도해보았고 잘 되네요. 사실 이걸 실행하기 위해서는 OpenNI 기반의 키넥트 개발환경이 구현되어야 하며 기존의 MS SDK가 설치된 환경상에서는 드라이버가 충돌되기 때문에 저는 해보지도 못했습니다. 그런데 5월 말경에 브릿지 드라이버가 나오면서 OpenNI도 함께 개발할 수 있는 환경이 구축되었습니다. 그렇기 때문에 이 글을 하시려는 분은 반드시 아래글을 참고하시고 개발환경을 구축하시기 바랍니다. 2012/06/05 - [About Kinect] - [Kinect 프..
프로세싱을 찾아보고 오신분은 아시겠지만 프로세싱이란 툴은 2001년 MIT의 Ben Fry에 의해서 만들어진 디자인 툴입니다. 그런데 재미있는 것은 이게 단순한 디자인 툴이 아니라 모든 구성이 코드로 이뤄진다는 것이지요. 물론 Expression Blend처럼 수작업으로 그리는게 아니라 모든 도형이 숫자와 문자로 구성된다는 겁니다. 어디서 많이 본 UI라고 했더니 Arduino의 UI와 매우 유사합니다. 무슨 연유에선지는 모르겠지만 색깔이 다르기만 할뿐 거의 뭐든게 비슷해보입니다. 비공식적으로 지금 이렇게 펼쳐진 화면을 스케치북이라고 합니다. 그냥 그린다는 의미를 나타내는 것이겠지요. 간단한 예제를 통해서 함수를 소개해보고자 합니다. 우선 그냥 눈앞에 도화지가 있다고 생각합니다. 그럼 맨 먼저 해야 할 ..
- Total
- Today
- Yesterday
- DepthStream
- SketchFlow
- windows 8
- bias
- arduino
- dynamic programming
- reward
- PowerPoint
- Gan
- Off-policy
- 파이썬
- Kinect for windows
- Variance
- Kinect SDK
- 한빛미디어
- processing
- End-To-End
- 강화학습
- 딥러닝
- Distribution
- Policy Gradient
- Kinect
- TensorFlow Lite
- ColorStream
- Windows Phone 7
- Offline RL
- Pipeline
- Python
- Expression Blend 4
- RL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |