이제 시작이야! 키넥트 프로그래밍
저자: 자렛 웹, 제임스 애쉴리
역자: 김태경, 정해권
출간예정일: 2012년 12월 11일 (화)
정가: 27,000원
페이지: 387p
판형: 190 x 245
ISBN: 978-89-94774-26-8 (93560)
원서정보: Beginning Kinect Programming with the Microsoft Kinect SDK
책 소개
이 책을 읽는 데 딱 30분만 투자해도 여러분은 키넥트 프로그래밍을 할 수 있는 기본 지식과 능력을 익힐 수 있을 것이다. 1장의 시작하기를 따라 진행하다 보면 SDK과 툴들을 쉽게 설치할 수 있고, 그 이후 장들을 통해 3D 비전, 스켈레톤 트래킹, 오디오 처리, 음성 인식과 제스처 인식 등을 쉽게 익힐 수 있다. 또한 MS에서 제공하는 SDK과 써드 파티 라이브러리들의 조합을 통해 여러 효과를 내는 방법도 알아볼 것이고, 다양한 예제들을 통해 플레이어의 움직임에 반응하는 간단한 게임들을 살펴보면서 기본적인 개념에 대해 알아볼 것이다.
이 책과 함께 여러분은 아래와 같은 내용을 배울 수 있다:
- 개발 환경 구축하기
- 키넥트 센서를 이용해서 데이터 스트림 관리하기
- 인터랙티브한 어플리케이션에 스켈레톤 트레킹 적용하기
- 키넥트 센서로 음성 인식 구현하기
- 키넥트 센서로 PC에서 작동하는 게임 만들기
- 3D 프로그래밍을 위한 다양한 수학 공식 활용하기
《이제 시작이야! 키넥트 프로그래밍》은 미디어아트, 인터랙티브 게임, 3D 모델링, 오피스 자동화 등 여러 분야에 키넥트를 적용할 수 있도록 여러분에게 혁신적인 아이디어를 제공할 것이다.
소스코드 다운로드
http://www.apress.com/9781430241041
독자 대상
초급
추천사
세상에서 가장 빨리 팔린 제품으로 기네스북에 오른 전자 제품이 바로 키넥트다. XBOX 360용으로키넥트가 출시되었을 때 키넥트 자체가 세상에 던지는 충격은 대단했다. 세 개의 센서가 만들어내는 데이터를 이용해서 ‘사람을 이해하는 기계’로서 키넥트는 기존의 어떤 물건과도 다르면서도 또 충분히 혁신적이었다.
이 키넥트 충격은 게임업계를 넘어서서 UX, NUI 등 다양한 분야에서도 집중적인 관심을 받게 되었는데, 학술적으로나 상업적으로 사용할 수 있는 개발툴킷의 정식버전의 출시는 업계와 학회의 열렬한 환영을 받았다. 이렇게 키넥트가 많은 이들의 열정을 이끌어 낼 수 있었던 이유는 사람이 특별하게 준비된 행동이나 센서를 부착하지 않고도 컴퓨터와 인터랙션할 수 있는 가능성을 많은 분야에서 찾을 수 있게 되어서일 것이다. 물론 이미 오픈 소스 기반의 프레임워크가 제공되고 있었지만, 그럼에도 불구하고 공식 발표된 개발툴킷은 공식이라는 그 이유만으로도 활용과 기술지원에 대한 충분한 이유가 된다.
그런 면에서 이번에 번역된 본 개발서는 UX나 NUI를 연구하는 학회뿐만 아니라 수많은 프로 개발자들과 업체들에게 훌륭한 시작점이 될 것이라고 믿어 의심치 않는다. 특히 이번에 번역한 역자들은 이전에도 WPF나 Silverlight와 같이 Microsoft의 기술에 대한 경험과 활동이력을 가지고 있기에 더더욱 이 책의 결과물에 두터운 신뢰가 간다.
키넥트는 아날로그적인 감성을 가진 인간을 디지털로 구성된 컴퓨터와 연결해주는 멋진 기술이다.국내의 여러 전시회에서 키넥트를 사용하고 있는 사례를 쉽게 찾아볼 수 있을 정도로 이미 충분한 관심을 받고 있다. 다만 간단한 소개 자료를 제외하고는 모두 영문으로 되어있고 또 이마저도 인터넷에 단편적으로 펼쳐져 있어서 이를 참조해서 결과물을 만드는 데 많은 시행착오를 겪으며 개발해온 것도 사실이다. 그런 면에서 본서는 키넥트에 관심을 가지고 있는 모든 이에게 정말 고마운 첫 시작을 열어줄 것이다. 자, 이제 아폴로 13호를 타고 달나라에 도착한 암스트롱의 말처럼 이 책을 통해서 새로운 세상을 꿈꾸는 모든 이에게 위대한 Hello World를 만들어보기로 하자. 마지막으로, 번역이라는 어려운 길을 선택한 역자들에게 깊은 감사를 드린다.
- 한국마이크로소프트 개발자 및 플랫폼 사업총괄, 김영욱 부장
저자소개
자렛 웹 (Jarrett Webb)
상상력이 풍부하고 역동적이며 상호작용하고 몰입도 있는 인터페이스를 다양한 멀티 터치 환경과 키넥트를 활용하여 만들고 있다. 현재 텍사스의 오스틴에 거주하고 있다.
제임스 애쉴리 (James Ashley)
15년 동안 마이크로소프트의 기술을 이용한 소프트웨어를 개발해왔다. 최근에는 www.imaginativeuniversal.com이라는 블로그를 운영하고 있다. 그리고 2년 동안 Atlanta XAML이라는 모임을 운영하는 것을 도왔고 아틀란타에서 reMIX 컨퍼런스를 기획하였다. 현재는 Razorfish 사의 Emerging Experiences Group에서 Presentation Layer Architect로 근무하면서 최신 기술들을 응용하여 구현하기 불가능할 것만 같은 다양한 애플리케이션에 도전하고 있다. 그는 아내와 세 아이들(소피아, 폴, 사샤)과 함께 조지아의 아틀란타에 살고 있다.
역자소개
김태경
《PRO WPF IN C# 2008》의 역자이며, 현재 모바일 플랫폼에 관심을 가지고 공부하고 있다.
정해권
인디애나 주립대에서 컴퓨터 사이언스를 공부했고 현재 클라우드 기반의 글로벌 모바일 메신저 서비스를 개발 및 운영하고 있다.
목차
CHAPTER 1. 시작하기
키넥트 탄생 이야기
배경
마이너리티 리포트
마이크로소프트의 비밀 프로젝트
Microsoft Research(MSR)
키넥트 해킹 경쟁
Kinect for Windows SDK
하드웨어 살펴보기
SDK 설치를 위한 하드웨어, 소프트웨어 요구사항
Step-By-Step 설치하기
키넥트 Visual Studio 프로젝트의 구성요소
키넥트 SDK 샘플 애플리케이션
Kinect Explorer
Shape Game
Record Audio
Speech 샘플
정리하기
CHAPTER 2. 애플리케이션 개발하기
키넥트 센서
연결된 센서 발견하기
센서 시작하기
센서 정지시키기
컬러 이미지 스트림
이미지 스트림 성능 향상시키기
간단한 이미지 조작하기
스냅샷 얻어오기
객체 모델로 컬러 이미지 스트림 살펴보기
데이터 획득하기: 이벤트 방식과 폴링 방식
정리하기
CHAPTER 3. 깊이 이미지 프로세싱
키넥트의 눈으로 바라보기
깊이 측정하기
개선된 깊이 이미지
나아진 그레이 스케일 음영처리
깊이 이미지에 색 입히기
간단한 깊이 이미지 프로세싱
히스토그램
참고사항
깊이값과 플레이어 인덱스
수치 측정하기
깊이 이미지와 비디오 이미지 정렬하기
깊이 Near 모드
정리하기
CHAPTER 4. 스켈레톤 트래킹
스켈레톤 얻어오기
스켈레톤 객체 모델
SkeletonStream
SkeletonFrame
Skeleton
Joint 119
Kinect the Dots
사용자 인터페이스
손 트래킹
퍼즐 그리기
퍼즐 풀기
게임 확장하기
공간과 변환
공간 변환
거울을 통해 보기
SkeletonViewer 유저 컨트롤
정리하기
CHAPTER 5. 어드밴스드 스켈레톤 트래킹
사용자 상호작용
WPF 입력 시스템의 간략한 이해
사용자 상호작용 감지하기
Simon Says
Simon Says, “UI를 디자인하라”
Simon Says, “기반을 구축하라”
Simon Says, “게임 플레이 기반을 추가하라”
새 게임 시작하기
Simon Says 발전시키기
Simon Says 다시 보기
깊이 기반의 사용자 상호작용
포즈
포즈 감지하기
포즈에 반응하기
Simon Says에 포즈 적용하기
Simon Says 정리하기
정리하기
CHAPTER 6. 제스처
제스처 정의하기
NUI
제스처는 어디에서 오는가?
제스처 구현하기
알고리즘을 사용한 인식
뉴럴 네트워크
표본기반 인식
흔히 사용되는 제스처 인식하기
손 흔들기(Wave)
기본적인 손 트래킹
호버 버튼(Hover Button)
푸시 버튼(Push Button)
자석 버튼(Magnet Button)
스와이프(Swipe)
자석 슬라이드(Magnetic Slide)
수직 스크롤(Vertical Scroll)
유니버설 일시정지(Universal Pause)
제스처의 미래
정리하기
CHAPTER 7. 음성
마이크 배열 기초
MSR 키넥트 오디오
음성 인식
오디오 캡처
사운드 스트림 작업하기
잡음 제거하기
음향 반향 제거하기
빔 트래킹으로 지향성 마이크 구현하기
음성 인식
정리하기
CHAPTER 8. 중급 과정 맛보기
이미지 조작 헬퍼 메서드
Coding4Fun Kinect Toolkit
확장 메서드 만들기
근접 감지
간단한 근접 감지 구현하기
깊이 데이터로 근접 감지 구현하기
근접 감지 개선하기
모션 감지하기
영상 저장하기
얼굴 감지하기
홀로그램
살펴봐야 할 라이브러리
정리하기
APPENDIX. 키넥트 수학
측정 단위
비트 조작
비트 필드
비트 논리합(Bitwise OR)
비트 논리곱(Bitwise AND)
비트 논리 부정(Bitwise NOT) / 보수연산(Complement)
비트 시프트(Bit Shifting)
기하학과 삼각법(Geometry and Trigonometry)
이 책의 구성
Chapter 1: 시작하기
여러분은 당장이라도 키넥트를 이용하여 머릿속에 그렸던 인터페이스를 현실로 구현하고, 애플리케이션을 위한 아키텍처 디자인을 하고 싶을 것이다. 하지만 그보다 먼저 알아야 할 것이 있다. 1장에서는 Kinect for Windows SDK가 나오기까지의 오랜 역사를 설명하고 있다. 그리고 SDK 사용시 필요한 라이브러리와 툴들을 다운로드하고 설치할 수 있도록 친절하게 안내할 것이다.
Chapter 2: 애플리케이션 개발하기
2장에서는 키넥트를 처음 접하는 여러분이 애플리케이션을 만들어볼 수 있도록 안내할 것이다. 2장이 끝날 때쯤에는 키넥트 SDK를 이용하여 더 복잡한 애플리케이션을 만들 수 있는 기초가 완성될 것이다. 그리고 키넥트에서 이미지 스트림을 통해 데이터를 얻어와 실시간으로 이미지를 화면에 보여주는 애플리케이션을 만들어볼 것이다. 여기에 소개되는 코드는 이후에 소개할 샘플들의 기초가 될 것이다.
Chapter 3: 깊이 이미지 프로세싱
깊이 스트림은 키넥트 기술의 핵심이다. 3장에서 나오는 코드들을 통해 깊이 스트림을 자세히 알아볼 것이다. 즉 키넥트가 제공하는 데이터에 대해 알아보고, 이 데이터를 어떻게 사용하는지 알아볼 것이다. 예제에서는 사용자들을 인식하고, 간단한 트릭을 통해 사용자의 실루엣에 색을 입혀 깊이 정보를 시각적으로 보이게 할 것이다.
Chapter 4: 스켈레톤 트래킹
키넥트 SDK는 깊이 스트림에서 얻은 데이터를 이용하여 사람의 형태를 구별해낼 수 있었다. 바로 이것이 스켈레톤 트래킹이다. 여러분은 어떻게 스켈레톤 트래킹 데이터를 얻는지, 데이터가 어떠한 의미를 갖는지, 어떻게 사용해야 하는지 배우게 될 것이다. 여러분은 관절과 뼈를 트래킹하여 게임을 만들어보면서 재미를 느낄 것이다.
Chapter 5: 어드밴스드 스켈레톤 트래킹
단순히 아바타를 생성하고 스켈레톤을 생성하는 것보다 더 다양한 스켈레톤 트래킹의 응용 예에 대해 알아볼 것이다. 스켈레톤 데이터는 휘발성이고, 예측하기 힘들다는 특성을 지니고 있다. 5장에서는 데이터를 스무딩 처리하여 좀 더 멋진 애플리케이션을 만들 수 있는 팁과 트릭을 소개할 것이다. 이 장에서는 깊이 이미지뿐만 아니라 실시간으로 얻는 RGB 이미지를 조합하여 더 나은 결과를 만들 것이다. 깊이 이미지와 RGB 실시간 이미지를 통해 생성된 데이터를 이용하여 증강 현실 애플리케이션을 만들어볼 것이다.
Chapter 6: 제스처
키넥트 개발의 다음 단계는 스켈레톤 트래킹 데이터를 이용하여 제스처를 인식하는 것이다. 제스처 인식은 여러분의 애플리케이션이 더 자연스럽게 상호작용할 수 있도록 도와줄 것이다. 6장에서는 NUI를 소개하고 어떻게 애플리케이션 개발에 적용 가능한지 알아볼 것이다. 키넥트는 워낙 새로운 기술이기 때문에 잘 확립된 제스처 라이브러리와 도구들이 아직도 부족한 상황이다. 이 장에서는 어떻게 제스처를 정의하고, 어떻게 기초적인 제스처 라이브러리를 만드는지 안내할 것이다.
Chapter 7: 음성
키넥트는 세상을 보는 기능 이상을 제공하는 센서이다. 세상을 듣는 기능도 제공하는 센서이기 때문이다. 키넥트는 마이크 배열을 갖고 있어 소리를 감지하고 오디오 프로세싱을 할 수 있도록 도와준다. 그럼으로써 여러분은 음성 명령을 이용할 수 있고, 더 발전시켜 제스처 인식과 조합하
여 여러분의 애플리케이션의 사용자 경험을 더 풍부하게 할 수 있다. 7장에서는 Microsoft Speech
Recognition SDK에 대해 알아보고, 어떻게 키넥트의 마이크 배열과 조합하여 사용할 수 있는지 알아볼 것이다.
Chapter 8: 중급 과정 맛보기
8장에서는 키넥트를 사용하여 할 수 있는 더 복잡한 작업에 대해 알아볼 것이다. 그리고 다양한 라이브러리와 툴을 이용하여 키넥트에서 생성된 데이터를 조작하여 발전된 키넥트 애플리케이션을 만드는 방법을 알아볼 것이다.
Appendix A: 키넥트 수학
키넥트를 이용하여 개발할 때 필요한 수학 지식과 공식을 소개할 것이다. 실용적인 정보를 제공하여 개발에 도움을 줄 것이다.
리눅스 커맨드라인 완벽 입문서 (7) | 2012.12.27 |
---|---|
OpenCL 프로그래밍 가이드 (0) | 2012.11.16 |
포렌식 전문가와 법률가를 위한 디지털 포렌식 (1) | 2012.11.02 |
댓글 영역