오랜만에 휴가를 갔다오고 다시 글을 쓰고 있습니다. 뭐든지 휴식이 필요한 것 같습니다. 이번 포스트에서 해볼 내용은 축구 게임입니다. 마찬가지로 발에 대한 Skeleton을 활용해서 공이 충돌했을 때에 대한 이벤트로 날아가는 걸 구현하는 겁니다. 물론 이전에 다뤘던 내용을 토대로도 충분히 구현하실 수 있습니다만 하나하나씩 해보도록 하지요. 마찬가지로 프로젝트는 기존 프로젝트를 계속 활용하고 이미지는 다음 것을 다운받아서 프로젝트에 추가하시기 바랍니다. 이번에는 손이나 기존의 이미지는 다 필요없으니까 딱 위의 이미지에 대해서만 변수를 선언해줍니다. 그리고 기존것과 마찬가지로 충돌이벤트를 하기 위해서는 각 점에 대한 위치를 알아야 하겠지요. 다음과 같이 변수를 선언해줍니다. 당연히 이미지에 대한 호출을 Lo..
계속해서 골격정보를 이용한 프로그램을 다루고 있습니다. 특히 지난 포스트에서 이야기한 내용을 써먹으면 화면상에서 자유롭게 이동할 수 있는 네비게이션을 할 수 있다는 것이 좋은거지요. 여러분 혹시 이매진컵이라는 대회를 들어보셨나요? 이매진컵이란 MS에서 주최하는 세계 소프트웨어 공모전이며 세상의 난제를 해결하기 위한 솔루션들을 겨루는 대회입니다. 보통 난제라 하면 해결하기 힘든 문제들을 통칭하며 UN에서는 8가지 주제에 대한 난제를 제시하고 있습니다.http://staging.ic12.fasttrackteam.com/Downloads/DownloadableDocuments/UN%20MDG%20PDF/United_Nations_MDGs.pdf 이 중 가장 흔하게 다뤄지는 주제가 바로 기아 해소입니다. 아프리..
계속해서 Skeleton 정보를 이용해서 하나의 제스처를 만드는 작업을 해보고 있습니다. 이번에 해볼 것은 넘기는 자세를 통한 지도 네비게이션입니다. 보통 네비게이션을 할때 여러분들이 생각하는 제스처는 어떤 것일까요? 대부분의 사람들한테는 책장을 넘기듯 손을 한쪽에서 다른 방향으로 이동시키는 모션이 그런 네비게이션 제스처가 될 것입니다. 물론 일부 사람들에게는 독특한 네비게이션 제스처가 있을 수 있습니다. 그래서 그런 제스처를 일반화하기 위한 작업들을 연구에서 많이 사용합니다. 보통 이런 작업을 User Test라고 하고 이런 과정을 통해서 제스처를 정의하는 과정을 elicitation(끌어내기) 라고 합니다. 하지만 저희는 이런 과정없이 그냥 모션을 제어해보도록 하지요. 일단 기존 프로젝트를 계속 활용..
지난 포스트에서는 머리와 양손에 대한 좌표점을 통해서 이미지를 씌우고 움직이는 건 간단하게 해봤습니다. 물론 더 활용하면 그 골격을 제외한 나머지 부분에도 이미지를 입혀서 하나의 마리오네트를 형성할 수 있을겁니다. 그런데 이런 생각은 안해 보셨나요? 지금 손의 x,y 좌표를 구할 수 있으니까 이 걸 통해서 하나의 제스처를 만들 수 있지 않을까 하고 말입니다. 물론 손가락으로 간단하게 하는 제스처는 힘들겠지만 단순하게 손을 움직이면서 하는 제스처는 만들어 낼 수 있습니다. 참고로 제가 나갔던 이매진 컵 키넥트 분야에서도 그런 부분을 바탕으로 게임을 구성했습니다.2012/07/10 - [About Me] - Imagine Cup 2012 Certification 그래서 이번 포스트에서는 그런 제스처를 활용해..
이번 포스트에서는 Coding4Fun에서 제공되는 툴킷을 활용해서 사람을 따라하는 유령을 만들어보고자합니다. 아마 제 키넥트 섹션 제일 처음에서 다뤘던 내용인 듯하고요. 이번에는 그걸 직접 만들어보는 것이 목적입니다. 이전 포스트에서 만들었던 프로젝트를 그대로 활용할 예정이니 사전에 복사하시면 좋을 거 같네요. 우선 받아야 할 것이 있습니다.http://c4fkinect.codeplex.com/ 위 사이트에 들어가면 창이 뜨는데 Download 버튼을 누르면 됩니다. 그안에 Winform용 dll 파일과 wpf용 dll 파일이 있는데 이번 프로젝트에서 사용할 것은 wpf용 dll 파일입니다. 우선 기존 프로젝트를 여신 후 Microsoft.Kinect.dll파일을 추가했던 것처럼 이 dll 파일도 추가시..
MS에서는 학생을 가르치는 교수들에게 무료로 관련 교육자료를 제공하는 제도가 있습니다. 그중 하나가 바로 Faculty Resource Center인데요. 여기에는 여러가지 Technology에 관한 교육자료가 망라되어 있습니다. 당연히 이번 파트에서 소개해 드릴 내용인 키넥트에 관한 내용도 있는데요. 장시간에 걸쳐서 키넥트를 처음 다루는 사람에게 최대한 쉽게 알려드리고자 합니다. 구성언어는 C#이 될 것이고, 유기적인 활동을 위해서 게임엔진인 XNA Framework를 이용할 겁니다. 당연히 프로젝트는 XNA 프로젝트로 생성되어야 하겠지요. 이번 포스트에서 이야기 드릴 내용은 키넥트를 처음 접하는 학생을 위한 골격인식 방법입니다. 코드 구성도 쉽기 때문에 누군가에게 알려줄 교육자료가 필요하신 분이라면 ..
혹시 일전에 XNA로 하는 Kinect Programming 기억하시는지요? 아마 표지가 보라색이어서 해외에서는 Purple Book 이라고 알려진 책이 바로 그 겁니다. 그 책의 저자가 바로 Rob Miles라는 분인데 영국의 Hull 대학 교수님이시고, c# MVP 입니다. 아마 제가 알기론 이번 이매진 컵에서도 2라운드 지명식때 발표자였던 걸로 기억합니다. 그분이 쓰신 책인 Start Here! Learn the Kinect API 책이 출간했습니다. 일전에 Beginning Kinect Programming with the microsoft kinect sdk 라는 책을 소개해드린 적이 있었는데 그 책은 아무래도 C#에 대한 이해가 있는 사람이 보기에 적절한 책이었던 것 같습니다. 이번책은 MS ..
문득 키넥트가 Depth를 어떻게 인지하고 있는지에 대한 궁금증이 생겼습니다. 물론 IR을 사용해서 키넥트가 그 값으로 사람의 깊이를 인지한다는 것을 알고 있었지만 그 원리가 정확히 어떤 건지에 대해서는 잘 몰랐습니다. 그래서 테스트를 해보았습니다. 우선 키넥트와 같은 Depth Camera는 여러가지 방식이 있습니다. 그중에 ToF라고 하는 방식이 있는데 이건 Time of Flight의 약자로써 흔히 IR이 움직이는 시간을 감지해서 Receiver가 받은 시간과 비교해 그 값으로 깊이를 인지하는 방식입니다. Soft Kinect나 파나소닉 D-Imager 같은 카메라가 이 ToF 방식을 취하고 있고 단순히 거리만 측정하는 알고리즘이 적용되기 때문에 간단하고 빠릅니다. 그리고 매우 단순하지요. 단점이 ..
혹시 제가 이 파트에서 제일 처음으로 쓴 글을 아시는 분이 계실까요? 그냥 무작정 썼던 글이 바로 RGBDemo라는 프로그램에 관한 글이었습니다. 그때가 올해 1월이었는데 벌써 7월이 오는군요. 오늘 소개해드릴 프로그램은 그 RGBDemo를 만들었던 manctl에서 만든 Skanect라는 겁니다. 사실 이 Skanect는 오픈소스 라이브러리인 Point Cloud Library를 기반으로 동작합니다. 그리고 내부 dll 파일을 보시면 알겠지만 내부적으로 OpenCV 라이브러리도 사용된 것을 확인할 수 있습니다. 우선 공식 사이트에서 언급하는 Skanect의 기능입니다. 보시면 아시겠지만 전체적으로 실시간 모델링을 해주는 역할을 하고 있습니다. 제작사에서는 이 기능을 3D scanner라고 언급하고 있습니..
마침 Kinect for Windows가 두대 있어서 집에서 테스트해봤습니다. 프로그래밍할 시간은 없었고 가장 기본적인 Kinect Explorer를 통해서 동시에 작동하는지를 테스트해봤습니다. 배치는 다음과 같이 구성되어 있습니다. 사실 제가 테스트 해보려는 건 사람을 중심으로 키넥트 두대를 90도 간격으로 띄워 놓아서 서로 다른 점을 매핑할 수 있는지의 여부인데 가능할까요? 제 생각은 뒤에서 말씀드려보겠습니다. 아무튼 위와 같이 해서 연결하면 장치관리자는 다음과 같이 장착됩니다. 위와 같이 두대가 동시에 장치로 인식됩니다. 공식적으로 언급된 바는 없지만 아마 usb포트가 여력이 된다면 추가적으로 장착이 가능할 것 같습니다. 그리고 지금은 브릿지 드라이브를 설치한 상태임에도 정상적으로 인식하는 것이 확..
오랜만에 이 파트에서 써보네요. 저도 공부하는게 있어서 조금 바쁘네요.. 먼저 이번 글을 쓰기에 앞서서 궁금한게 있습니다. 키넥트를 개발함에 있어서 어떤 개발환경을 구축하셨나요? 공식 SDK를 이용한 환경? 아니면 오프소스 라이브러리인 OpenNI 나 ZigFu 같은 걸 쓰실겁니다. 또 어떤분은 Point Cloud를 쓰실겁니다. 그런데 공식 SDK와 오픈소스 개발툴은 서로 상극인 존재입니다. 그도 당연한 것이 개발사에서는 자기네 회사에서 만든 툴을 사용하지, 일반 사용자가 만든 툴에 대해서는 지원을 해주지 않는게 대부분입니다. 원래 상극이라는 의미는 서로의 드라이버가 충돌이 일어난다는 겁니다. 키넥트는 원래 PrimeSense라는 이스라엘 센서 제조사에서 만들어진 기기인데 OpenNI나 PCL 같은 오..
지난 포스팅에서도 누차 강조를 했지만 키넥트는 단순히 이미지를 받아오고 내부에서 처리해서 컴퓨터에 보내주는 역할을 합니다. 그 정보를 pixelData에 담아서 넘겨주는 식으로 동작하고, 여기에 들어있는 정보를 어떻게 처리하냐에 따라서 색상을 마음대로 처리할 수 있었습니다. 이렇게 나오는 ColorStream을 이미지 파일로 바꿀 수 있을까요? 방법은 PngBitmapEncoder나 JpegBitmapEncoder를 사용하면 됩니다. 이 프로젝트를 한번 같이 따라가고자 합니다. 우선 맨처음 ColorStream관련 포스트에서 다뤄던 프로젝트를 계속 이어서 하겠습니다. 자 우선 xaml상에서는 우리의 상을 보여줄 이미지와 사진을 찍을 때를 표현할 버튼이 필요합니다. 그래서 다음과 같이 표현해줍니다. 그러면..
까먹기 전에 하나 올립니다. 우연치않게 구글링하다가 찾은 사이트가 바로 이 FireFly Experiment 입니다. 불나방 실험이라.. 뭔가 특이한 실험입니다. 사실 이 사이트는 Rhino3D 라는 CAD용 툴에 아두이노를 연결시키는 plug-in을 제공하고 있습니다. 그런데 더욱 놀라운 것은 Kinect와 연결한 플러그인도 제공하고 있습니다. 다음이 Kinect와 아두이노 그리고 Rhino3D를 이용한 예시입니다. 이거보니까 갑자기 땡기네요.. 아무튼 외국에서는 이런식으로 다양한 소프트웨어끼리 융합시켜서 개발하는 방식이 많이 발전하고 있고, 굳이 개발자에 한정되어 있는것이 아니라 인터렉션을 연구하는 디자이너가 사용하는 빈도가 더 높다고 합니다. 아무튼 참고하셨으면 좋겠네요.
지난 포스팅에서는 Color Stream을 내보내는 것을 언급했습니다. 하지만 이 부분은 SDK를 설치하면 내장되어있는 Kinect Explorer를 유심히 보기만 해도 그 원리를 알 수 있는 내용들이었습니다. 하지만 분명 키넥트를 활용하려는 사람들이라면 뭔가의 변화가 필요하다는 것을 느끼실 겁니다. 그래서 이번 포스팅에서 다뤄볼 내용은 바로 ColorStream에 색상을 입히는 것입니다. 자 지난 시간에 다뤘던 ColorFrameReady 부분을 한번 다시 볼까요? 여기서 색을 조절하기 위해서는 중간에 있는 PixelData를 건드려야 됩니다. 사실 Kinect로부터 컴퓨터에 전달되는 ColorStream, 즉 여기서는 ImageParam 라고 정의했었지요. 이 Stream이 들어가는 것은 CopyPi..
매일 복잡한 것만 하다가 한번쯤은 되돌아봐야 할 듯해서 아주 기초적인 내용부터 다시 다루고자 합니다. 맨처음으로 다룰 내용은 바로 ColorImageStream입니다. 키넥트에는 IR 카메라와 일반 카메라 이렇게 두개가 있습니다. 보통 IR라고 하면 InfraRed, 즉 적외선인데 IR 카메라는 이를 감지하는 카메라지요. 여러분들도 아시겠지만 빛은 직사광선입니다. 앞에 장애물이 있지 않는 한 직선으로 쭉 뻗는 Ray 입니다. 그런데 우리가 사물의 색과 거리를 인지할 수 있는 이유는 가시광선이 사물에 부딪치고 우리 눈으로 반사되기 때문입니다. 사실 IR 카메라의 원리도 똑같은 겁니다. 적외선이 사물에 부딪치면 다시 카메라쪽으로 반사할 것이고 그때의 시간을 계산해서 사물간의 거리를 인지할 수 있는 겁니다. ..
- Total
- Today
- Yesterday
- TensorFlow Lite
- bias
- Expression Blend 4
- SketchFlow
- Kinect
- Distribution
- 강화학습
- 한빛미디어
- Off-policy
- Windows Phone 7
- End-To-End
- 파이썬
- windows 8
- arduino
- reward
- DepthStream
- RL
- Python
- 딥러닝
- Pipeline
- Kinect for windows
- Offline RL
- Policy Gradient
- PowerPoint
- processing
- dynamic programming
- Variance
- ColorStream
- Gan
- Kinect SDK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |