검색결과 리스트
2011/06 에 해당되는 글 4건
- 2011.06.30 N-Screen 시대에 개발자들의 알아야 하는 것은?
- 2011.06.28 Kinect SDK for Windows로 배워보는 NUI 개발 (4)
- 2011.06.17 Kinect SDK beta 공개 [2보] (1)
- 2011.06.09 Windows Phone 7 망고 버전에 대한 가이드 입니다. (2)
3스크린을 넘어서 N스크린 시대로
통계에 따르면 현재 미국 중산층의 경우 1인당 2.4개의 스크린 매일 접하고 다루면서 살고 있다고 한다. 2.4라고 하면 생각보다 많다고 느낄 수 있겠지만 TV와 핸드폰만 하더라도 이미 2개가 되고 여기에 PC까지 포함하면 금방 3개가 되기 때문에 실상 그렇게 많은 숫자는 아니다.
하지만 평균 2.4개이기 때문에 디지털 디바이스에 대한 접근이 불편한 노인과 유아와 같은 계층을 제외하고 실제 경제 주체만 본다면 일인당 사용하는 스크린의 개수는 훨씬 더 많을 것으로 보인다.
이렇게 스크린의 개수가 폭발적으로 늘어나고 있는 것은 각 디바이스의 획득 단가가 감소한 탓도 있게지만 비용적인 문제를 뛰어넘는 이유는 네트워크에 대한 접근이 용의해 졌기 때문이다.
네트워크에 대한 접근은 다시 한번 언급하겠지만 일반적인 데스크탑 PC를 제외하고는 충분한 성능과 용량을 가지지 못한 모바일 디바이스들의 능력을 네트워크를 통해서 확장할 수 있는 것이 중요한 요인으로 보인다. 특히 좁은 지역에 많은 사람들이 모여살고 있는 우리나라 (특히 수도권)의 경우 네트워크에 대한 접근성과 비용 경쟁력은 세게 최고 수준이다. 이미 진부한 단어인 초고속 인터넷 회선망과 무제한으로 풀리고 있는 핸드폰 기반의 무선 인터넷망 그리고 이미 도배되고 있는 Wifi망과 한 걸음 더 나아간 Wibro망까지 이미 우리는 2중 3중의 네트워크 망속에 살고 있으며 각각의 장단점을 따져가면서 선택할 수 있다. 그런면에서 볼 때 우리나라는 많은 디바이스와 스크린을 테스트하고 실용 시나리오를 개발할 수 있는 최적의 토양이다.
N스크린을 이야기 하기전에 먼저 고민해야 하는 것은 ‘왜 우리는 하나이상의 디바이스를 사람들이 사용한다고 가정하는 것일까?’ 하는 것이다. 여기에서 우리가 기본적으로 가정하고 있는 사실은 각각의 디바이스와 스크린이 차별화가 가능하다는 전제가 있기 때문이다. 대리 운전 기사님들을 제외하고는 핸드폰을 두 세개씩 들고 다니는 사람은 아마 거의 없을 것이다. 또 특별한 경우를 제외하고는 동시에 TV를 두 대 틀어놓고 보지 않을 것이다. 각각의 스크린에서 중요한 것은 ‘차별화’라는 부분이다.
애플 아이패드가 처음 출시 될때 많은 사람들은 설왕설래 말이 많았다. 그 중에 가장 부정적인 단어는 ‘그냥 좀 큰 아이폰’였다. 실제로 하드웨어, 소프트웨어 구성으로 봤을 때 가장 정확한 지적이기도 하다. 같은 운영체계에 사이즈를 제외하고는 아이폰과 거의 동일한 하드웨어를 사용하고 있다. 심지어는 아이폰의 앱들을 크게해서 사용하는 것도 가능하다.
하지만 시장의 반응은 폭발적이었다. 소위 말하는 ‘조금 더 큰 아이폰’에 사람들이 열광했고 아이패드를 구입한 대부분의 사람들은 아이폰을 사용하고 있는 사용자들이었다.
<그림1>아이패드는 사이즈가 큰 아이폰으로 보는 시각이 많았다.
하지만 아이러니 하게도 아이패드가 성공적으로 시장에 안착한 이유도 역시 ‘좀 더 큰 아이폰’이었기 때문이기도 하다. 아이폰의 경험을 가지고 사용할 수 있는 새로운 스크린에 대해서 사람들은 편안함과 새로움을 동시에 느낄 수 있었던 것이다.
아이패드는 현재 두 번째 제품이 출시되었으며 시장 조사 업체인 아이서플라이에 따르면 올해 판매 예측치를 3970만대로 보고 있을 만큼 가파르게 성장하고 있는 것으로 보인다.
애플이 새로 부각된 시장의 강자라면 이미 클라이언트의 90%이상을 점령하고 있는 마이크로소프트도 역시 다양한 시도를 하고 있다. 데스크탑과 노트북의 경우는 이미 원도우7이 비스타의 실패를 만회하고 있으며 새로운 기능 수렴과 악성코드의 공격등에 위험이 노출된 원도우XP를 빠르게 대체해 나가고 있다. 타블릿PC 시장을 접근 하는 방식 역시 원도우7이 설치된 슬래이트 PC로 공략해 나가고 있다. 슬래이트 PC는 터치 기반의 인터페이스를 사용하기 편리한 형태로 구성되어 있으며 원도우7은 출시할 때 부터 터치 인터페이스를 대응해 놓았기 때문에 크게 문제 없이 적용될 수 있었다. 마이크로소프트의 서피스(Surface ) 2는 새로운 테이블PC라는 영역을 개척하고 있는 제품이다. 테이블 PC라는 영역은 스크린의 위 아래가 없고 동시에 한명 이상의 사람이 조작할 수 있어야 하기 때문에 이전의 스크린들과는 고려해야 하는 부분이 확연하게 다른 결과를 가져 올 수 있게 되었다.
최근에 가장 큰 화제를 모우고 있는 엑스박스 키넥트의 경우는 4개월만에 천만대 이상이 판매되는 기염을 토하고 있다. 키넥트의 경우는 새로운 스크린을 개척한 제품은 아니다. 스크린은 기존의 TV를 그대로 사용하지만 새로운 조작 방법을 제시했다는 점에서 새로운 혁신을 이룩했다. 키넥트는 사용자들에게 새로운 장치나 컨트롤러에 대한 사용법을 강요하지 않고 사용자 자신이 컨트롤러가 되었다는 점에서 혁명적인 접근이었으며 TV 사이즈 이상의 다양한 스크린에서 활용할 수 있는 최적의 인터페이스를 제시했다는 점이 주효하고 작용한 것 같다.
하지만 마이크소프트의 그림은 다음 버전의 윈도우에서 완성될 것으로 보인다. 다음 버전의 윈도우에 대한 구체적인 정보는 아직 하나도 알려진 바는 없지만 다음과 같은 특징을 가질 것으로 보인다.
- 다양한 디바이스에서 사용 가능한 공통적인 앱 모델
- 앱을 제공 받을 수 있고 공급할 수 있는 마켓 플래이스
- ARM 계열등 전통적인 x86 계열의 CPU 이외에 다양한 모바일 칩들에 대한 지원
- 새로운 모델의 운영체계를 지원하고 위한 개발 툴
새로운 버전의 윈도우의 모습은 올 해가 가기전에 구체적인 모습을 볼 수 있을 것 같다.
두 가지 N스크린 시나리오
하나 이상의 스크린을 사용하는 방식에 있어서 필자의 경우 사용하는 방식에 있어서 두 가지 방식으로 구별해서 이야기 한다. 한 꺼번에 여러 개의 스크린을 동시에 사용하는 방식을 병렬적인 N스크린 시나리오, 한번에 하나의 스크린을 사용하면서 여러개의 스크린을 넘나드는 방식을 직렬적인 N스크린 시나리오로 말한다.
병렬적인 N스크린 시나리오
<그림3>TV를 볼 때 모바일 인터넷 사용여부
<그림4>TV 시청중에 모바일 디바이스로 하는 활동
최근 국내 S전자 TV광고를 보면 현빈이 TV를 보면서 인터넷으로 채팅도 하고 검색도 가능하는 광고를 하는 것을 볼 수 있다. 어떤 면에서는 와 닿지 않는 이야기 일 수도 있지만 야후 통계를 보면 TV를 보면서 무선 인터넷에 접속하는 비율에 대한 조사에 보면 무려 86%의 사용자들이 TV를 보면서 곁눈질로 이미 다른 스크린을 활용하고 있는 것을 볼 수 있다.
이런 형태로 동시에 여러 화면을 활용하는 시나리오를 N스크린의 병렬적 활용이라고 말 할 수 있는데 이와 관련한 시도들은 이미 다양한 형태로 시도되고 있다.
<그림5>스크린으로 접근한 TV리모콘 <그림6>아이패드를 이용한 TV 가이드
<그림5>에서 보이는 제품은 컨셉 제품으로 실제 양산에는 들어가지 못한 제품으로 TV 리모콘을 별도의 스크린으로 제작한 방식이다. 요즘처럼 대채널이 보편화 되어있을 때 유용할 것으로 보이지만 실제로는 우리가 집에서 TV를 사용할 때 사용하는 패턴을 고려해 본다면 오히려 불편할 수도 있을 것 같은 생각도 든다. 또 채널에 대한 정보가 표준화 된 방식으로 제공되기 까지는 어느 정도 시행착오는 불가피 할 것으로 보인다.
<그림6>은 같은 TV리모콘을 대체하는 접근이긴 하지만 전용 디바이스를 별도로 만들지 않고 아이패드를 사용하게 되어 있다. 아이패드와 같은 대중화 된 디바이스를 사용 할 수 있다는 점은 사용자들에게 새로운 매리트를 줄 수 있다. TV시청과 더불어 간단한 웹서핑이나 게임등등 다양한 활동을 함께 즐길 수 있다는 점에서 매우 좋은 접근이 될 수 있다.
직렬적인 N스크린 시나리오는 한번에 하나씩 디바이스들을 돌아가면서 사용하는 것으로 미국에서 비디오 스트리밍을 제공하는 네플릭스사가 좋은 예가 된다. 넥플릭스는 원래 온라인에서 비디오 대여를 주업으로 하다가 DVD까지 사업을 잘 이끌어왔다. 우리나라는 수 많은 비디오 대여점이 인터넷의 역풍을 맞고 이젠 대부분 문을 닫았지만 넥플릭스는 우편으로 DVD 대여 및 회수를 하는 비지니스 모델을 성공적으로 인터넷으로 옮겨서 더 큰 스트리밍 시장의 기회를 잡게 되었다. 최근에는 미국내 가장 중요한 콘텐츠 소비 채널 중에 하나로 자리집게 되면서 강력한 시장 영향력을 가지는 업체로 성장하게 되었다.
넥플릭스는 N스크린에 대응하기 위해서 다양한 클라이언트를 지원하는 쪽으로 방향을 선회 하면서 XBOX나 Wii, PS3와 같은 게임 콘솔과 스마트 TV 그리고 안드로이드, 아이폰 그리고 원도우폰7등 모바일 환경과 아이패드에 이르기까지 다양한 클라이언트에 대한 지원이 이미 마무리 되어 있다.
집 밖에서 모바일로 영화를 보고 있다가도 집에 와서 TV를 통해서 계속 이어서 보는 등의 직렬적인 시나리오를 충실히 구현하고 있다.
최근 국내에서도 비슷한 서비스가 제공되고 있는데 아직 네플릭스 보다는 부족한 면이 많이 보인다.
N스크린 시대의 사용자 인터페이스
N스크린 시대가 되면서 사용자들이 다를 수 있는 기기가 많아지고 사이즈가 다양해 지면서 이를 조작할 수 있는 방법도 다양한 방법이 제공되고 있다. 기존에는 키보드나 마우스를 사용하는 시나리오가 많았지만 이제는 직접적으로 화면을 조작하는 터치 방식이 주류를 이루고 있다. 개발자의 입장에서는 사용할 수 있는 방법이 늘었다는 점에서는 환영할 만한 변화겠지만 다르게 보면 하드웨어의 특징까지 잘 이해 해야하는 점에서는 또 다른 어려움일 것이다.
터치는 크게 감압식과 정전식 그리고 주로 대형 스크린에 사용되는 적외선 방식이 있으며 카메라를 이용한 모션 인식 방식등이 있을 수 있다. 감압식은 구조가 간단하고 구현 비용이 간단해서 이전에 많이 사용되었지만 감도가 약해서 사용 감이 떨어지는 이유로 최근에는 많이 사용되지는 않는다. 최근에 가장 많이 사용되는 방식은 뭐니 뭐니해도 정전식인데 정전식의 경우는 손가락에 흐르는 미세 전류를 이용하는 방식으로 감도가 뛰어나 최근 나오는 대부분의 터치 장비에 활용되고 있다. 하지만 스크린의 사이즈가 커지면 전기적 잡음이 늘어나서 대형 스크린에는 사용하지 못한다. 그래서 감도는 떨어지지만 대형 스크린에 적합한 기술로 주로 적외선 방식을 사용하는데 적외선 방식의 경우는 주위의 온도나 열이 많이 나는 조명등의 영향을 받는 경향이 있으므로 주의해서 사용해야 한다.
<그림10>적외선 방식의 터치 센서 <그림11>카메라 방식의 터치를 사용하는 서피스
카메라 방식의 경우는 인식도 비교적 용의하고 멀티터치나 제스추어등을 구현하는데에도 적합한 기술이지만 카메라가 영상을 인식하고 분석하는데 시간이 걸리기 때문에 사용자의 조작보다 다소 늦게 반응한다. 카메라 방식의 터치 인식을 사용하는 마이크로소프트사의 서피스 같은 제품의 경우는 이미지 프로세싱을 전담하는 하드웨어를 별도로 배치해서 이미지 처리에 걸리는 시간을 최소화 하는 방법을 선택했다.
앞에서 언급한 마이크로소프트사의 키넥트는 기존의 인터페이스 방식에 비해서 혁신적이라가 할만한 요소들을 두루갖추고 있다. 사람 자체를 인식하고 사람의 모션에 따라 다양한 조작을 할 수 있다. 키넥트는 적외선, RGB, 깊이등을 파악할 수 있는 세 개의 센서를 통해서 사람을 300여개의 관절로 완벽하게 인식해 낸다. 그 결과 사람의 동작이나 제스추어를 비교적 정확하게 인식해내는데 기대이상의 인식률을 자랑한다.
키넥트의 경우 원래 엑스박스의 게임 컨트롤 용도로 출시되었지만 최근에는 PC에 붙여서 사용하는 다양한 사례가 나오기 시작했으며 마이크로소프트에서도 PC용 키넥트SDK를 조만간 발표 할 예정에 있다.(이 글을 여러분들이 보실 때에는 이미 나왔을지도 모르겠다 꼭 한번 검색해 보기를 바란다.
정리
N스크린 시대에 개발자들이 지켜봐야 할 두 가지 시나리오와 각종 인터페이스에 관한 이야기를 했지만 그럼에 불구하고 뭔가 아쉬움이 남는 것은 N스크린 시대에 가장 중요한 이야기 하나를 빼먹었기 때문이다. N스크린 시대라는 단어에서 우리는 스크린에 현혹되기 쉽다. 하지만 디바이스가 많아지고 그게 병렬이든 직렬이든 어떤 형태로 사용되던 간에 각각의 디바이스간의 데이터 동기화 혹은 단일 인증모델 그리고 작업 턴의 전환등을 제대로 해결하기 위해서는 뭔가 늘 대기상태로 네트워크에서 존재하는 안정된 서비스가 필요하다는 점이다.
지금은 이를 해결할 수 있는 가장 가까운 기술이 클라우드 기술이라고 보는 사람들이 많고 필자역시 그렇게 생각하는 바이다. 이런 면에서 클라우드와 N스크리는 전혀 다른 주제처럼 보이지만 사실은 떼어 놓고 생각하기 어려운 주제이기도 하다. ---(*)---
|
김영욱 차장 iwinkey@hotmail.com 국내 유수의 대기업 프로젝트에 참여했던 풍부한 경험과 마이크로소프트 MVP로서 다양한 활동을 바탕으로 .NET과 관련된 개발 기술에 전념하고 있다. 현재 한국마이크로소프트에서 Evangelist로 근무하고 있다. |
또 이런 이야기를 한다면 필자를 늙은이 취급할 개발자들도 많겠지만 마우스도 없던 시절의 컴퓨팅 환경에 비하면 정말 매일 격세지감을 느낄 수 밖에 없다. 하지만 격세지감 따위를 즐기고 있을 만한 여유는 어디에도 없다. 세상은 정말 빠르게 변화하고 있는 듯 하다.
PC가 메인프레임으로 부터 컴퓨팅의 자유를 이끌어 냈을 때 세상은 퍼스널 컴퓨팅 세상으로 바뀌었고 모바일 혁신은 기존의 PC에서 모빌리티 자유를 이끌어 낼 수 있었다.
인터페이스에서도 다양한 혁신이 이끌어져 오고 있는데 키보드 마우스를 넘어서서 최근은 거의 모든 디바이스에서 볼 수 있는 터치 인터페이스의 확산 속도는 이전의 어떤 인터페이스 보다 확산 속도가 빠르다. 터치 인터페이스는 폰을 넘어서 타블릿PC 그리고 최근 영상이 공개된 원도우즈의 차기 버전(가칭 원도우즈8)까지 광범위 하게 사용되고 있다. 하지만 최근에 마이크로소프트가 발표한 키넥트는 이전에 그 어떤 인터페이스에서도 제시하지 못했던 새로운 차원의 인터페이스를 제시하면서 또 한번의 큰 변화를 예고하고 있다.
게임기에서 Windows로 넘어가는 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 포트가 제공해 줄 수 있는 전력보다 더 많은 전력을 소비해야 하기 특별한 형태의 컨넥터 타입이 필요하게 되었다.
그래서 구형 XBOX 360과 PC에서 키넥트를 사용하기 위해서는 별도로 전력을 공급할 수 있는 어뎁터가 필요하다. 해당 어뎁터는 시중에서 바로 구입할 수는 없고 마이크로소프트 고객센터로 전화해서 신청하면 구입할 수 있다.
하드웨어에 대한 준비가 끝났으면 이제 개발환경을 설정할 차례이다.
개발환경은 기본적으로 원도우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을 사용해서 각 부분의 상태를 확인할 수 있다.
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등의 프로젝트는 흥미로운 요소들을 제공해 줄 것이다.
- 정리
키넥트를 바라보는 사람에 따라서 서로 다른 기대치를 가지고 볼 수 있겠지만 필자가 개발자의 눈으로 바라보는 키넥트는 ‘정말 재미있는 개발자들의 장난감’이다. 즐겁고 재미있게 만들고 고민하다 보면 키넥트와 관련된 정말 재미있는 애플리케이션들을 많이 만들 수 있을 것 같다.
댓글을 달아 주세요
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 샘플 동영상입니다.
윈도우폰망고_개발문서_v1.1.pdf
댓글을 달아 주세요