한창 학기말 준비때문에 바쁘다. 성적은 잘 받아야되겠고, 논문 준비는 해야되겠는데 일단 급한 불부터 지금 끄고 있다. 문제는 불은 꺼도 불씨는 살아남아있다는 거다...우선 지금 집중하는 건, Machine Learning 학기 프로젝트다. 우리팀의 주제는 키넥트를 이용해서 실시간 수화프로그램을 만드는 것이다. 대충 Framework는 이렇다. 이렇게 오른손을 tracking해서 손의 모양을 인식하게 되면 될거 같았고, 이에 대한 결과를 하단부에 이미지로 출력하려고 했다. 기존의 접근 방식과는 다르게 우리는 depthStream을 이용해서 손인식을 하게 하려고 했다. 그러고보니까 문제는 크게 두가지가 있었다. 첫번째는 사람이 어디서 손을 인식하느냐에 따라서 손의 depthValue가 다르게 나오는 것이다...
clc; clear all; close all; imaqreset; depthVid = videoinput('kinect',2); triggerconfig(depthVid, 'manual'); depthVid.FramesPerTrigger = 1; depthVid.TriggerRepeat = inf; set(getselectedsource(depthVid), 'TrackingMode', 'Skeleton'); viewer = vision.DeployableVideoPlayer(); start(depthVid); himg = figure; while ishandle(himg) trigger(depthVid); [depthMap, ~, depthMetaData] = getdata(depthVid); idx ..
clc; clear all; close all; imaqreset; depthVid = videoinput('kinect',2); triggerconfig(depthVid, 'manual'); depthVid.FramesPerTrigger = 1; depthVid.TriggerRepeat = inf; set(getselectedsource(depthVid), 'TrackingMode', 'Skeleton'); viewer = vision.DeployableVideoPlayer(); start(depthVid); himg = figure; while ishandle(himg) trigger(depthVid); [depthMap, ~, depthMetaData] = getdata(depthVid); imsh..
C#이나 C로 개발할 때는 자료형 별로 attribute가 있기 때문에 자기가 원하는 데이터를 특정 자료형으로 정의한 후에 접근할 수 있는데, matlab에서는 전부 depthMetaData라는 struct형 자료에 접근해서 정보를 얻어야 한다. 심지어 skeletonData도 말이다. 아마 추정컨데 kinect 내에서 사람의 skeleton을 뽑아내는 구조는 depth에서 나오는게 아닐까 싶다. 거기서 distance Transform을 내부적으로 추정해서 Joint를 유추하는게 skeletonTracking의 기반일지 모르겠다는 생각을 잠깐 해본다. 아무튼 depthMetaData를 통해서 얻을 수 있는 데이터는 다음과 같다. 여기서 SegmentationData를 활용하면 배경을 제거한 사람의 모습..
지금 하고 있는 수업에 응용하느라 Matlab에 Kinect를 설치하는 방법에 대해서 소개하고자 한다. 방법도 무척 간단하고, matlab 상의 Image Aquisition Toolbox를 이용하면 금방 설치할 수 있다. 우선 matlab을 실행시킨 상태에서 다음 명령어를 쳐본다. 참고로 나는 Matlab R2014a에서 테스트해보고 있다. 만약 위와 같이 뜨는 거면 지금 Matlab에서 kinect를 인식하고 있지 못한 상태다. 그런 경우에는 위에 Support Package Installer를 통해서 Kinect Runtime Environment를 설치해주면 된다. * 정정 : 여기서 말하는 NI grabber는 Nattional Instrument사에서 제공하는 장치 중 하나다.Mcrosoft ..
이번 포스트에서는 간단하게 어떤 개념들이 KinectInteraction이라고 정의되는지를 잠깐 살펴보려고 한다. 이전 포스트에서 잠깐 소개했던 것을 잠깐 다시 되짚어 보면 InteractionStream은 다음과 같이 구성된다고 했었다.InteractionStream = DepthStream + SkeletonStream + Sophisticated Algorithm 자, 우선 Kinect는 일반적인 웹캠과는 다르게 RGB Cam과 Depth Cam이 같이 붙어있는 기기다. 하지만 이것도 일단 기기인 이상 우리 손을 보고, 사람 손이라고 인식하지 못한다. 물론 그 역할은 우리가 키넥트를 컴퓨터에 연결했을때 인식되는 Device Driver와 SDK에서 해주는 것이다. 그 SDK내에 있는 내용 중에서 S..
그냥 뭐랄까.. 키넥트를 할 시간이 없다. 연구실에서 하는 주제가 완전 다르다보니 관심이 있는 걸 해보지 못한다. 뭔가 아쉽긴 한데, 그래도 조금씩 꾸준히 하는게 의미가 있을거 같아서 msdn에 있는 내용을 바탕으로 Kinect Interation에 대한 내용을 조금 훑어보고자 한다. 여러번에 나눠서 분석할 것이고, 아마 최종 목적은 Kinect Interaction Example에 있는 Grab이나 Press 같은 gesture를 구현해보는거다. 본래 kinect가 출시되면서 개발자들이 생각한건 여기서 어떻게 제스처를 찾냐는 것이었다. 당연히 일반 웹캠으로 했던 Computer Vision 쪽 기술을 응용했었고, 많은 사람들이 OpenCV 같은 라이브러리를 활용해서 finger나 body trackin..
간단하게 FaceTacking에 관한 예제를 소개해보고자 합니다. 이미 sdk상에서 toolkit의 형태로 제공되고 있고, 예제도 있습니다. 그래서 지금 해보려고 하는건 왼쪽에 있는 간단한 얼굴 형태를 C#으로 구현해보는 겁니다. 자 일단 Development Toolkit에 보면 다음과 같은 Tool이 있습니다. 이걸 설치하면 하나의 프로젝트가 열리는데 이걸 바로 쓰는 것이 아니라 다른 프로젝트에서도 쓸 수 있게 dll 파일을 만들 겁니다. 일단 생성된 프로젝트를 열고 빌드를 해줍니다. 물론 지금은 x86을 타겟으로 하고 debug 모드에서 쓸 것이기 때문에 그냥 바로 빌드한 것이지 Release mode에서 할 것인지 타겟 머신을 x64에서 할 것인지는 개인이 이 프로젝트를 빌드할 때 설정해줘야 합니..
미국시간 3월 18일을 기점으로 kinect SDK v1.7와 Kinect Developer Toolkit v1.7.0이 공개되었습니다. 한동안 키넥트 관련 내용을 정리하지 않고 있었긴 하지만 이번 포스트에서 뭐가 바뀌었는지 한번 다뤄볼 예정입니다. 간단히 체험해본 바로는 MS가 완전 Kinect를 게임의 수단이 아닌 연구의 목적으로 개발하기 시작했다고 생각합니다. 무엇보다도 관심을 끄는 것은 바로 OpenCV(왠일로?)와 결합했다는 겁니다. 다들 알다시피 OpenCV는 Open Source로 공개되어 있는 Vision Library인데 상업용으로 개발된 SDK와 결합하는 방법을 소개했다는 건 정말로 시사하는 바가 큽니다. 물론 이전 버전도 놀라운 예제들이 포함되어 있지만 왠지 다음에 공개될 v1.8에서..
간만에 키넥트 관련 내용을 다뤄봅니다. 몇주전에 방명록을 통해서 키넥트를 가지고 한글도 인식할 수 있는지를 문의하시는 분이 계셨습니다. 이론상으로는 가능한데 저도 막상 테스트를 해보지 않아서 자세히 알려드리기 힘들었는데 다행히도 영어 인식 구조와 거의 동일하다는 것을 직접해보고 알았습니다. 그래서 간단하게 한글을 통해서 키넥트의 tilt 모터를 제어하는 예제를 소개하고자 합니다.우선 내용의 원 출처는 다음과 같습니다.http://kaki104.tistory.com/entry/SpeechRecognition-in-Kinect-for-Windows 주 원리는 다음과 같습니다. 사실 키넥트에서 공식적으로 지원하는 언어는 기본으로 제공되는 영어 엔진을 포함해서 11개의 언어입니다. 그런데 그중에는 한국어에 대한..
이번 포스트에서는 XNA상에서 개체를 Grab하고 Release 하는 것을 구현해보고자 합니다. 원본에서는 이걸 Minority Report Navigation이라고 하더군요. 대충 구현 해볼 것은 오른손으로 특정 개체에 닿으면 손의 움직임에 따라서 개체가 움직입니다. 그 상태에서 박수를 치면 다시 원래 자리로 돌아가는 형태를 취하게끔 할겁니다. 일단 XNA 프로젝트로 하나 생성하고 키넥트를 쓰기위한 dll 파일과 네임스페이스를 추가해줍니다. 그 후에 키넥트를 활용하기 위해서 키넥트자료형을 하나 생성합니다. 그리고 창 크기를 먼저 지정해줍니다. 저는 640x480의 창에서 동작시킬 예정입니다. 그리고 Initialize()에서 자신이 활용할 키넥트 기능을 활성화시킵니다. 당연한 것이겠지만 오른손을 추적하..
최근에 키넥트의 골격 인식을 XNA에 연결 시켜서 하나의 게임을 만들어봤습니다. 사실 키넥트에서 가장 기능을 효과적으로 보여 줄 수 있는 것중에 대표적인 것이 바로 Skeleton Tracking입니다. 물론 Depth를 보여주는 것도 일반 웹캠과 차별성을 둘 수 있는 기능이지만 그래도 온몸으로 그 기능을 체험하는데는 골격만큼 좋은 도구도 없지요. 그래서 요 며칠동안은 간단하게 그 기능에 대해서 예제를 통해 분석하는 시간을 가져보고자 합니다. 자 우선 XNA프로젝트를 하나 생성하고 프로젝트 내에서 키넥트를 쓰기 위해서는 관련 라이브러리와 네임스페이스를 추가해줘야 합니다. 우선은 프로젝트 내에서 현재 연결된 키넥트 센서에 관한 선언을 해줘야 합니다. 그리고 XNA의 특성상 무언가를 뿌려줄 Texture2D..
몇달전에 본 논문 중에 이런게 있었습니다. I. Oikonomidis, N. Kyriazis and A.A. Argyros, “Tracking the articulated motion of two strongly interacting hands”라는 이름으로 CVPR2012에서 공개되었고 막상 보니까 이와 관련된 연구를 쭉 진행해왔던 거 같습니다. 지금 위와 같이 나타나는 건 hand를 3차원적으로 tracking하면서 조금더 응용시키면 손의 미세한 움직임까지도 감지할 수 있다는게 저의 관심을 끌었습니다. 물론 위 동영상에서도 보이시겠지만 오클루젼에 대한 문제가 거의 발생하지 않았습니다. 물론 이를 위해서 키넥트를 여러개 사용하지 않았을까 생각됩니다만... 그런데 이 랩에서 이와 관련한 간단한 데모를 1..
샘플이 하나 더 있더군요. 한번 보세요. 신기합니다.
- Total
- Today
- Yesterday
- Kinect for windows
- DepthStream
- dynamic programming
- ai
- processing
- End-To-End
- Offline RL
- Distribution
- Policy Gradient
- RL
- Off-policy
- TensorFlow Lite
- 딥러닝
- PowerPoint
- Kinect SDK
- bias
- Expression Blend 4
- windows 8
- Windows Phone 7
- SketchFlow
- Variance
- Pipeline
- 한빛미디어
- reward
- arduino
- 강화학습
- Gan
- Kinect
- ColorStream
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |