2011.09.01 16:44

Smart Cloud Show 2011

News 2011.09.01 16:44



오랫만에 탐나는 행사가 있어서 소개해 드립니다.
요즘 가장 빛나는 단어중에 하나인 스마트를 클라우드와 함께 생각해 볼 수 있는 행사 입니다.

자세한 내용은 http://www.facebook.com/smartcloudshow?sk=app_216854508325017#!/smartcloudshow?sk=app_208205529212473 에서 참조해 주세요.. ^^
저작자 표시 변경 금지
신고
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 샘플 동영상입니다.
저작자 표시 변경 금지
신고
2011.05.02 07:41


지난 주 토요일 데브멘토에서 열린 N-Screen 세미나에서 키노트 때 발표 자료로 사용했던 Power Point File 입니다.
자리를 꽉 메워 주시고 또 제 부족한 댄싱 실력에도 불구하고 열화와 같은 호응을 해 주신 여러분께 진심으로 감사 드립니다. ^^

저작자 표시 변경 금지
신고
2011.04.18 06:04

 



매년 라스베거스에서 열리고 있는 웹/모바일 그리고 각종 클라이언트 기술들을 주제로 진행되는 MIX행사가 올해도 진행되었습니다. 올해는 웹에서는 오픈과 에코시스템이 강조 되었으며 원도우폰7의 새로운 업데이트인 망고가 소개되었습니다.

 망고를 통해서 원도우폰7에서 그 동안 부족했던 멀티테스킹 기능과 다국어지원(한국어도 포함)등 그 동안 치명적인 약점들이 많이 해결될 것으로 보이며 올해 국내에 출시될 윈도우폰7에는 모두 망고 업데이트가 적용되어 있을 것으로 기대 하게 되었습니다. 이외에도 Silverlight 5에 대한 기대와 더불어 Kinect를 사용하는 SDK 출시 임박 소식은 시장을 더욱더 재미있게 하고 있습니다.
저작자 표시 변경 금지
신고
2011.03.03 10:47
세미나신청은 http://new.imaso.co.kr/seminars/cp14 <-- 여기에서 해주세요~
감사합니다.


저작자 표시 변경 금지
신고
2011.02.28 15:08

저작자 표시 변경 금지
신고
2011.02.21 13:24
오늘자 한겨례 신문 기사에 '구글 종속 벗어라'라는 다소 자극적인 기사가 실렸다.
구글의 안드로이드 운영체계는 애플 쇼크에서 허덕이던 업체들에게는 충분한 대안이 되었지만 1년만에 얻어낸 1위의 왕자는 또 다시 수많인 모바일 지방 호족 세력들의 공격을 받게 될 것 같다는 내용이다.
실제로 삼성전자나 HTC등 이전까지는 하드웨어 제작에만 참여했던 업체들이 이제 부터는 콘텐츠 사업체 주도적인 방향으로나 혹은 방어적인 입장으로 참여하고 있음은 이제 쉽게 찾아 볼 수 있게 되었다.
 웹 생태계는 소프트웨어 생태계일까라는 질문에 대해서 최소한 나는 앱은 소프트웨어라기 보다는 콘텐츠에 가까운 것 같다. 소비되는 형태만 봐도 그런 생각은 더욱더 분명해 지는 것 같다.

 그런 측면에서 노키아의 경우는 콘텐츠적인 측면에서 철저하게 실패한 케이스로 우리에게 시사해주는 바가 크다. 그러서 노키아와 Microsoft의 협력은 서로 잘하는 분야의 협력이라는 점에서는 서로에게 시너지 효과를 주지 않을 까 하는 생각이 든다. 물론 다시 Microsoft가 수면위로 부상하는 것을 달가워하지 않거나 재미없는 구도라고 생각하는 사람들은 많겠지만.. ^^
저작자 표시 변경 금지
신고
2011.02.17 11:09

최근 삼성의 신제품 발표로 관심을 모았던 Mobile World Congress 2011!

바로 그 MWC 2011에서!!

스티브 발머 마이크로소프트 CEO의 키노트도 볼 수가 있는데요,
노키아와의 협력을 포함하여 Windows Phone에 대한 새로운 소식들을 발표하였습니다!

저작자 표시 변경 금지
신고
2011.02.07 11:54

 세미나 등록은 OnOff 믹스를 이용해 주세요

>> 등록하기

저작자 표시 변경 금지
신고