2013.01.08 14:05

 

키넥트 관련된 개발 정보가 인터넷에 흩어져 있는 단편적인 정보들이었는데 이번에 잘 정리된 책으로 나왔습니다. 번역에는 김태경과 정해권님이 수고해 주셨습니다.  

 키넥트로 할 수 기본적인 지식이 잘 정리되어 있어서 추천해 줄만 합니다.

 

책과 관련된 정보는

예스24: http://www.yes24.com/24/goods/8086610?scode=032&OzSrank=1 에서 보실 수 있습니다.

 

저작자 표시 변경 금지
신고
2012.02.09 08:50


In the working with depth data Quickstart video, we'll cover:
•An overview of how depth data represents the distance and player for every pixel
•An overview of Default and Near Mode and what features are supported in both
•An explanation of what distance data the Kinect returns including knowing when you are too near, too far, or the distance is unknown
•The formulas for calculating depth and player information
•How to visualize depth and player data, including a monochrome histogram and player colorization
•How to use the WPF DepthViewer control to understand depth data returned from the Kinect

저작자 표시 변경 금지
신고
2012.02.08 08:50
  • In the Camera Fundamentals Quickstart video, you'll learn:
  • How to leverage the AllFramesReady event to synchronize data between the color, depth, and skeletal frames
  • The supported resolutions for the color and depth cameras
  • How to read the color byte array from the ColorImageFrame event and how to dynamically build a Bitmapsource to display the color image
  • How to use the KinectColorViewer user control to display the Kinect's color image simply by databinding the Kinect property to the KinectSensorChooser user control
  • How to tilt the Kinect camera and how it determines it's current angle

저작자 표시 변경 금지
신고
2012.02.07 08:50


키넥트 개발활경을 설정하는 방법과 API에서 제공하는 기본 기능들에 대해서 설명해 주는 동영상입니다.

In setting up your development environment we'll discuss the following topics:
•The basics of using the Managed API
•The key developer resources to use in your application like the KinectWpfViewers that ship Kinect SDK Kinect Explorer sample and the Coding4Fun Toolkit for skeletal scaling that will be used in later Quickstart videos.
•Demos of how to manage and connect to a Kinect using the KinectSensors collection and using the KinectSensorChooser WPF control

저작자 표시 변경 금지
신고
2012.02.06 08:40


PC버전의 새로운 Kinect 하드웨어인 Kinect for Windows와 개발도구인 Kinect SDK for Windows가 모두 정식 버전으로 출시되었습니다. 관련된 강좌들을 모아서 보여드리도록 하겠습니다.

This video covers the basics of installing and using the Kinect sensor using v1 of the
•An overview of the Kinect for Windows Quickstart Series
•An overview of what sensors and information you can use with the Kinect hardware
•Demos: We'll show what gets installed on your PC when you install the Kinect SDK and how you can use your Kinect as a microphone using Windows Sound Recorder.

저작자 표시 변경 금지
신고
2012.02.02 12:30

 PC에서 사용할 수 있는 Kinect for Windows가 정식 버전으로 출시 되었습니다.
출시된 것은 PC를 위해서 개선된 Kinect 하드웨어와 베타버전으로 출시되었던 Kinect for Windows SDK 두가지 입니다. 하드웨어 스펙도 개선되었지만 소프트웨어도 변화가 꽤 많은 것 같습니다.

하드웨어의 경우에는 촛점 거리가 짧아져서 좀 더 협소한 공간에서도 활용할 수 있게 개선되고 연결하는 컨넥터 타입이 개선된 것으로 보입니다.
SDK의 경우는 이전에는 한 대에 최대 2대를 연결할 수 있었던 것으로 기억하는데 이제는 4대까지 인식할 수 있도록 바뀐 것 같습니다. 그리고 상업용 라이센스가 포함된 부분도 큰 변화라고 할 수 있습니다.

  • Support for up to four Kinect sensors plugged into the same computer
  • Significantly improved skeletal tracking, including the ability for developers to control which user is being tracked by the sensor
  • Near Mode for the new Kinect for Windows hardware, which enables the depth camera to see objects as close as 40 centimeters in front of the device
  • Many API updates and enhancements in the managed and unmanaged runtimes
  • The latest Microsoft Speech components (V11) are now included as part of the SDK and runtime installer
  • Improved “far-talk” acoustic model that increases speech recognition accuracy
  • New and updated samples, such as Kinect Explorer, which enables developers to explore the full capabilities of the sensor and SDK, including audio beam and sound source angles, color modes, depth modes, skeletal tracking, and motor controls
  • A commercial-ready installer which can be included in an application’s set-up program, making it easy to install the Kinect for Windows runtime and driver components for end-user deployments.
  • Robustness improvements including driver stability, runtime fixes, and audio fixes

    올라와 있는 자료를 보면 가격은 $249로 XBOX 버전에 비해서 비싸지만 아카데미 프로그램으로는 $149에 구입할 수 있는 길이 있다고 합니다.
    (The suggested retail price is $249, and later this year, we will offer special academic pricing of $149 for Qualified Educational Users.)

자세한 내용은 http://channel9.msdn.com/coding4fun/kinect/Special-Edition-Its-Kinect-day-The-Kinect-For-Windows-SDK-v1-is-out 에서 확인 할 수 있습니다.



저작자 표시 변경 금지
신고
2012.01.26 11:13

Microsoft의 최신 기술 대부분이 총출동하는 쇼핑 관련 아이디어 영상입니다.

저작자 표시 변경 금지
신고
2011.08.11 08:33

 
오늘 소개해 드릴 내용은 XBOX용으로 출시된 Kinect 입니다.
이미 XBOX용으로는 성공을 거두고 Microsoft가 Game 산업에서 입지를 다지는데 큰 역할을 했던 Kinect는 소니의 무브나 닌텐도의 위 컨트롤러와는 달리 사람이 자체가 인식식 된다는데에서 많은 사람들의 관심을 받았습니다.

이런 Kinect에서 개발자들은 많은 가능성을 보았고 이 관심을 충족시켜 드리기 위해서 Kinect를 PC에서도 운영할 수 있는 Kinect SDK가 출시되었습니다.

 

자세한 내용은 이전 포스팅인 http://blogs.msdn.com/b/eva/archive/2011/06/28/kinect-sdk-for-windows-nui.aspx 을 참조해 주시고 여기에서는 유용한 자료들을 소개해 드리려고 합니다.

 

Kinect 공식 웹 사이트 입니다.

Kinect for Windows website  Kinect Website

Kinect Forum  입니다. 영문이지만 QnA를 할 수 있는 곳 입니다.
Kinect Forum 

Kinect for Windows FAQ  Kinect Website

개발 문서 입니다. C++과 C# 두 가지 언어를 지원하도록 되어 있습니다.

AudioCaptureRaw Walkthrough—Capturing the Raw Audio Stream (C++)  Kinect Document
MFAudioFilter Walkthrough—Capturing Audio Streams with a Media Foundation Audio Filter (C++)  Kinect Document
MicArrayEchoCancellation Walkthrough—Capturing Audio Streams with Acoustic Echo Cancellation and Beam Forming (C++)  Kinect Document
Programming Guide: Getting Started with the Kinect for Windows SDK Beta  Kinect Document
RecordAudio Walkthrough—Recording an Audio Stream and Monitoring Direction (C#)  Kinect Document
Skeletal Viewer Walkthrough—Rendering Data with the NUI API (C++ and C#)  Kinect Document
Speech Walkthrough—Recognizing Voice Commands (C#)  Kinect Document

아래 링크는 Channel9과 기타 사이트에 올라온 관련 정보 입니다.
이미 Kinect와 관련된 오픈 소스들이 다수 있어서 제작에 큰 도움이 될 것 같습니다.

Kinect for Windows SDK Beta Refresh Available  Kinect Article
Adding Speech Recognition to a Kinect Quickstart  Kinect Article
Baby NUI... Using the Kinect as a Baby Monitor  Kinect Article
Camera/Tripod Mount (3D Printer required)  Kinect Article
Can the Kinect "know" what you are doing?  Kinect Article
Coding4Fun Kinect Toolkit  Kinect Article
Display Kinect color image containing only players (aka background removal)  Kinect Article
Flame On! Mercury Particle Engine and Kinect  Kinect Article
Gestures and Tools for Kinect and matching Toolkit too  Kinect Article
Getting Started with Kinect, Setup, Depth, Player Index  Kinect Article
HandsTrackball - Kinect 3D object manipulation  Kinect Article
"I have the Minority Report UI.."  Kinect Article
Intro to the Kinect SDK–Drawing Joints in XNA  Kinect Article
Kinductor  Kinect Article
Kinect Buttons  Kinect Article
Kinect Contrib  Kinect Article
Kinect Controlled Quadrotor  Kinect Article
Kinect Depth Cam  Kinect Article
Kinect Earth Move  Kinect Article
Kinecting the Dots: Adding Buttons to your Kinect Application  Kinect Article
Kinecting with Robots - Kinect Services for the Microsoft Robotic Development Studio  Kinect Article
Kinect MIDI Controller  Kinect Article
Kinect Mouse Cursor  Kinect Article
Kinect Paint  Kinect Article
Kinect SDK and F#  Kinect Article
Kinect SDK Skeleton Custom Control for WPF  Kinect Article
Media Player I NUI you well…  Kinect Article
NUI for PowerPoint  Kinect Article
Of course our first Kinect for Windows SDK Project has to involve a Light Saber!  Kinect Article
StartMenu / Candescent NUI  Kinect Article
That's Ripplelicious  Kinect Article
The Busy Developers Guide to the Kinect SDK Beta  Kinect Article
Tweeting from Kinect concept  Kinect Article
신고
2011.06.28 08:04

 

32224_1468530191732_1187893437_1364978_7316647_n[1]

김영욱 차장 iwinkey@hotmail.com

국내 유수의 대기업 프로젝트에 참여했던 풍부한 경험과 마이크로소프트 MVP로서 다양한 활동을 바탕으로 .NET과 관련된 개발 기술에 전념하고 있다. 현재 한국마이크로소프트에서 Evangelist로 근무하고 있다.

또 이런 이야기를 한다면 필자를 늙은이 취급할 개발자들도 많겠지만 마우스도 없던 시절의 컴퓨팅 환경에 비하면 정말 매일 격세지감을 느낄 수 밖에 없다. 하지만 격세지감 따위를 즐기고 있을 만한 여유는 어디에도 없다. 세상은 정말 빠르게 변화하고 있는 듯 하다.

PC가 메인프레임으로 부터 컴퓨팅의 자유를 이끌어 냈을 때 세상은 퍼스널 컴퓨팅 세상으로 바뀌었고 모바일 혁신은 기존의 PC에서 모빌리티 자유를 이끌어 낼 수 있었다.

인터페이스에서도 다양한 혁신이 이끌어져 오고 있는데 키보드 마우스를 넘어서서 최근은 거의 모든 디바이스에서 볼 수 있는 터치 인터페이스의 확산 속도는 이전의 어떤 인터페이스 보다 확산 속도가 빠르다. 터치 인터페이스는 폰을 넘어서 타블릿PC 그리고 최근 영상이 공개된 원도우즈의 차기 버전(가칭 원도우즈8)까지 광범위 하게 사용되고 있다. 하지만 최근에 마이크로소프트가 발표한 키넥트는 이전에 그 어떤 인터페이스에서도 제시하지 못했던 새로운 차원의 인터페이스를 제시하면서 또 한번의 큰 변화를 예고하고 있다.

게임기에서 Windows로 넘어가는 Kinect


<그림1>Microsoft Kinect

키넥트는 원래 게임 콘솔인 XBOX 360에서 게임을 위해서 출시되었다. 기존의 닌텐도나 소니에서 선보였던 손에 센서 뭉치를 들고 하는 방식이 아니라 사람을 직접 인식하는 혁신적인 방식이다. 물론 과거에도 사람을 직접 인식하는 기술들은 여럿 있었지만 별다른 부가장치의 부착없이 사람을 관절단위로 인식하는 시도는 처음 상용화 된 방식이다. 키넥트는 적외선, RGB, 깊이(Depth) 등의 세 가지 센서를 통해서 사람을 정확하게 관절로 인식하고 마이크로폰을 이용해서 음성인식이 가능하다. 키넥트는 부가적으로는 사람을 잘 인식하기 위해서 받침대와 목사이의 관절에 모터가 설치되어 있어서 사람을 찾아서 시선을 조정하기도 하는 등 제법 똑똑한 모습도 보여준다. 현 시점에 게임 시장에서 키넥트를 보면 상당히 성공적이다. 최단기간 1000만대를 팔아서 ‘가장 짧은 시간에 가장 많이 팔린 전자기기’라는 이름으로 기네스북에 오르기도 했다. 하지만 세상의 개발자들과 오덕후 들은 키넥트를 게임 용도로만 국한하지 않았다. 키넥트를 원도우즈를 시작해서 매킨토시, 리눅스, 안드로이드 등 다양한 플랫폼에 연결 시키는 오픈 소스 프로젝트가 진행되는가 하면 로봇이나 모형 헬기를 조정하는 용도부터 장애인들을 위한 다양한 프로젝트까지 여러가지 아이디어와 결합되기 시작했다.


<그림2>휠체어를 인식해서 따라다니는 쇼핑 카터 프로젝트 wi-Go

사람들의 아이디어가 무궁무진하고 다양한 형태로 표출되면서 좀 더 적극적으로 체계적인 지원에 대한 요구가 많아지면서 마이크로소프트는 키넥트를 XBOX 360의 게임을 위한 용도 이외에 PC와 연결되어서 일어날 수 있는 다양한 시나리오를 직접 지원하기 위해서 Kinect SDK for Windows를 발표하게 되었다.

Kinect SDK for Windows

Kinect SDK for Windows는 마이크로소프트 연구소(Microsoft Research)에서 준비되고 발표된 것으로 32비트와 64비트 버전 두 가지 모두 지원되지만 제공되는 샘플이 32비트 버전에서만 지원되는 것들이 있어서 아직은 32비트 버전을 사용할 것을 권장한다. Kinect SDK for Windows 안에서 키넥트를 위한 소프트웨어를 개발하기 위해서 3가지 구성 요소를 제공한다.

- 키넥트를 윈도우에 인식시키기 위한 디바이스 드라이버
- 키넥트를 제어하기 위한 API 프레임웍
- 샘플과 문서

키넥트를 이용한 소프트웨어 개발을 위해서는 당연하겠지만 키넥트가 필요하다. 하지만 키넥트를 받아든 순간 허걱하고 놀라게 되는데 당연히 USB인줄로만 알았던 컨넥터가 USB도 아닌 것이 처음 보는 형태로 되어 있기 때문이다. 키넥트를 사용하기 위해서는 표준적인 USB 포트가 제공해 줄 수 있는 전력보다 더 많은 전력을 소비해야 하기 특별한 형태의 컨넥터 타입이 필요하게 되었다.


<그림3>일반적인 USB 컨넥터와 키넥트 컨넥터

그래서 구형 XBOX 360과 PC에서 키넥트를 사용하기 위해서는 별도로 전력을 공급할 수 있는 어뎁터가 필요하다. 해당 어뎁터는 시중에서 바로 구입할 수는 없고 마이크로소프트 고객센터로 전화해서 신청하면 구입할 수 있다.


<그림4> 키넥트 전원 어뎁터

하드웨어에 대한 준비가 끝났으면 이제 개발환경을 설정할 차례이다.
개발환경은 기본적으로 원도우7과 비주얼 스튜디오가 필요하다.

- 원도우7 (x86 혹은 x64)
- Kinect for Xbox 360 센서
- Microsoft Visual Studio 2010
- Microsoft .NET Framework 4.0 (Visual Studio 2010과 함께 설치 됨)
- DirectX Software Development Kit June 2010(C++만 필요)
- Microsoft Speech Platform SDK
- Kinect for Windows Runtime Language Pack

여기에 제일 중요한 것이 Kinect SDK for Windows(이하 키넥트 SDK) 이다. 키넥트 SDK는http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/ 에서 다운로드 할 수 있으며 관련 문서들을 추가로 다운로드 받을 수 있게 되어 있다.

키넥트 SDK를 설치하고 나면 인체를 뼈대로 인식하는 것을 볼 수 있는 Skeletal Viewer와 음성인식과 간단한 게임을 보여주는 Sample Shape game 두 가지 완성된 샘플을 볼 수 있다.

<그림5>Skeletal Viewer


<그림6>Sample Shape game

특히 Sample Shape game의 경우 인체를 인식하기도 하지만 음성 인식도 함께 가능해서 ‘Super Big’, ‘Start’,’Stop’과 같은 명령들을 직접 음성으로 내려 볼 수 있다.

키넥트를 이용한 애플리케이션을 개발하기 위해서는 위해서는 VC++ 혹은 C#, VB와 같은 개발 언어를 알아야 한다. 키넥트 SDK에서 제공되고 있는 라이브러리에서 인체 구조를 인식하고 제스츄어를 분석하는 등의 기능을 하는 부분이 NUI Library 이다.


<그림7>NUI Library
NUI Library는 키넥트에서 전송되어서 오는 이미지와 Depth 그리고 오디오 정보를 취합해서 애플리케이션에서 활용할 수 있는 정보로 전환하는 기능을 가지고 있는 핵심 요소이다. 좀 더 세부적으로 들어가면 <그림8>과 같은 아키텍처르 정리할 수 있다.


<그림8>키넥트 아키텍처
키넥트 하드웨어는 USB 기반의 기술로 PC와 연결되며 커널 모드 드라이버로 작성된 키넥트 드라이버가 하단에 자리 잡고 있다. 그 위에 카메라와 오디오 스텍이 있고 그 위에 최상위 추상화 레벨에서 NUI API와 오디오/비디오 컴퍼넌트가 잡리 잡고 있는 형태이다.

사실 개발자의 입장에서는 아키텍처 자체는 그리 중요하지 않을 수도 있다. 하지면 전체적인 그림을 이해하고 넘어가는게 아무래도 좀 더 개발에 탄력을 줄 수 있을 것 같다.

NUI Skeleton Tracking

NUI Library에서 제공되는 API중에서 NUI Skeleton API가 있는데 이는 키넥트 앞에 있는 사람을 최대 2명까지 뼈대로 인식해 낸다. 단순히 인식한다고 하면 사람의 형체만 인식하는 것처럼 보일 수 있지만 다시 이야기 하면 사람의 각 부분을 정확하게 인식해 낸다.


<그림9> NUI Skelton API의 인식 부분
NUI Skeleton API는 사람의 주요 부위를 20개로 인식하고 각 부분별로 명칭이 정해져 있다. 여기서 나오는 정보를 기반으로 애플리케이션에서 다양한 반응을 만들어네게 되는데 뼈대에 관한 정보를 찾아내기 위해서는 C++에서는 NuiSkeletonGetNextFrame을 사용할 수 있고 C#등에서는 SkeletonEngine.GetNextFrame을 사용해서 각 부분의 상태를 확인할 수 있다.


<그림10>Active tracking

Kinect SDK for Windows 개발

키넥트 SDK는 VC++, C#, VB.NET 등등 네이티브 언어와 매니지드 언어를 모두 지원하는데 여기서는 C#언어를 기준으로 설명한다. 키넥트 SDK를 사용하기 위해서는 Microsoft.Research.Kinect.dll을 참조해야 한다.


<그림11> Microsoft.Research.Kinect.dll 참조

키넥트 관련 라이브러리에서 Microsoft.Research.Kinect.Nui에는 사람을 직접 인식하는 데 관련된 클래스들이 포함되어 있으며 Microsoft.Research.Kinect.Audio에는 음성 인식과 관련된 클래들이 포함되어 있다.

using Microsoft.Research.Kinect.Nui;
using Microsoft.Research.Kinect.Audio;

kinectRuntime = new Runtime(); kinectRuntime.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseColor);
<소스1>네임스페이스 설정

<소스1>에서 보면 개발에 필요한 두 개의 네임스페이스를 포함하고 키넥트를 사용하기 위해서 키넥트 런타임을 생성하고 초기화 시키는 과정을 볼 수 있다.
키넥트 SDK를 설치하고 나면 함께 설치되는 도움말을 보게 되면 생각보다 많은 객체와 내용들에 우선 질리실지도 모르겠다.

좀 더 싶게 접근하려면 Coding4Fun Kinect Toolkit (http://channel9.msdn.com/coding4fun/projects/Coding4Fun-Kinect-Toolkit) 을 사용할 수 있다. Kinect Took에서는 WPF Extension, WPF Controls, WinForm Extensions, skeletal Extensions등이 포함되어 있어서 개발이 한결 수월하게 해준다.


<그림12>Coding4Fun에 올라와 있는 Kinect 관련 프로젝트들

http://channel9.msdn.com/coding4fun 에서 오픈소스로 진행되는 프로젝트들을 보는 것도 흥미로울 것이다. Kinect Paint, Kinect Mouse등의 프로젝트는 흥미로운 요소들을 제공해 줄 것이다.

- 정리

키넥트를 바라보는 사람에 따라서 서로 다른 기대치를 가지고 볼 수 있겠지만 필자가 개발자의 눈으로 바라보는 키넥트는 ‘정말 재미있는 개발자들의 장난감’이다. 즐겁고 재미있게 만들고 고민하다 보면 키넥트와 관련된 정말 재미있는 애플리케이션들을 많이 만들 수 있을 것 같다.

신고
2011.06.17 08:19
최근에 Microsoft가 가지고 있는 기술중에 가장 주목 받고 있는 제품을 들라고 하면 아마도 대다수의 사람들이 원도우즈나 오피스를 들지 않고 Kinect를 들 것입니다.
Kinect는 적외선과 RGB, Depth 등 세개의 센서를 사용해서 사람을 300여개의 관절로 인식하는 획기적인 제품입니다. 작년에 XBOX 360에 하나의 추가 기능으로 출시 될 때만 해도 게임계에서만 사용될 것으로 보였지만 이미 많은 사람들은 오픈소스 기반의 프로젝트를 통해서 PC에 연결해서 사용한 시도를 해왔습니다.

현지 시간으로 2011-06-16일 오전 09:30 Kinect SDK Beta 발표
Kinect를 PC에서 인식하고 개발 가능하게 하는 Kinect SDK Beta 버전이 출시 되었습니다. 학술 혹은 연구용 그리고 매니아 계층을 위해서 출시된 이번 Kinect SDK Beta는 상용 제품을 만들 수 있는 라이선스는 포함되어 있지 않습니다. 추후 Kinect SDK의 커머셜 버전은 또 조만간 다시 발표할 예정이라고 합니다.

http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/ 에서 현재 Kinect SDK beta를 다운로드 할 수 있습니다.


Kinect SDK Beta의 기능
Kinect SDK를 통해서 개발자들은 오디오, 시스템 API 및 센서등을 직접 접근할 수 있으며 이를 통해서 NUI(Natural User Interface) 부분에서 재미있는 발전이 예상됩니다.

이번 SDK를 설치하고 사용해 보기 위해서는 아래와 같은 사양이 기본적으로 필요하다.
 

·         Computer with a dual-core, 2.66-GHz or faster processor

·         Windows 7–compatible graphics card that supports Microsoft® DirectX® 9.0c capabilities

·         2 GB of RAM

·         Kinect for Xbox 360® sensor—retail edition, which includes special USB/power cabling


이번에 제공되는 Kinect SDK안에는 Kinect Driver와 개발 문서 샘플 코드등이 포함된 일종의 Starter Kit 형태로 발표되었으며 beta 버전임에도 불구하고 상당한 수준까지 개발할 수 있는 기능들이 모두 제공됩니다.

아래는 Microsoft Reseach에서 제공하는 Kinect SDK 샘플 동영상입니다.
저작자 표시 변경 금지
신고


티스토리 툴바