Kinect Open Source Programming Secrets: Hacking the Kinect with OpenNI, NITE, and Java (Paperback)

Andrew Davison

  • 出版商: McGraw-Hill Education
  • 出版日期: 2012-05-09
  • 售價: $1,310
  • 貴賓價: 9.5$1,245
  • 語言: 英文
  • 頁數: 336
  • 裝訂: Paperback
  • ISBN: 0071783172
  • ISBN-13: 9780071783170
  • 相關分類: Java 程式語言Kinect駭客 Hack
  • 海外代購書籍(需單獨結帳)

買這商品的人也買了...

商品描述

Program Kinect to do awesome things using a unique selection of open source software!

The Kinect motion-sensing device for the Xbox 360 and Windows became the world's fastest-selling consumer electronics device when it was released (8 million sold in its first 60 days) and won prestigious awards, such as "Gaming Gadget of the Year." Now Kinect Open Source Programming Secrets lets YOU harness the Kinect's powerful sensing capabilities for gaming, science, multimedia projects, and a mind-boggling array of other applications on platforms running Windows, Mac OS, and Linux.

Dr. Andrew Davison, a user interface programming expert, delivers exclusive coverage of how to program the Kinect sensor with the Java wrappers for OpenNI and NITE, which are APIs created by PrimeSense, the primary developers of the Kinect's technology.

Beginning with the basics--depth imaging, 3D point clouds, skeletal tracking, and hand gestures--the book examines many other topics, including Kinect gaming, FAAST-style gestures that aren't part of standard NITE, motion detection using OpenCV, how to create gesture-driven GUIs, accessing the Kinect's motor and accelerometer, and other tips and techniques.

Inside:

  • Free open source APIs to let you develop amazing Kinect hacks for commercial or private use
  • Full coverage of depth detection, camera, and infrared imaging point clouds; Kinect gaming; 3D programming; gesture-based GUIs, and more
  • Online access to detailed code examples on the author's web site, plus bonus chapters on speech recognition, beamforming, and other exotica

From the Author

Why Buy This Book?
I can suggest four reasons for buying this book:
  • It offers a unique choice of Kinect programming tools.
  • It explains the official Java wrappers for those tools.
  • It covers topics not found elsewhere.
  • It provides depth, but with brevity.

Unique Programming Tools
This is the only book on programming the Kinect using the OpenNI library, NITE, and Java (as of April 2012, when this book went to press).

Official Java Wrappers
This is the only book that explains the official Java wrappers for OpenNI and NITE (again, as of April 2012). By “official,” I mean that these bindings were developed by PrimeSense. Obvious advantages of Java include object-orientation, cross-platform support, availability for free, and many people (including you, probably) knowing how to program with it. Most important, programming in Java gives you access to a massive number of libraries—for graphics, networking, and beyond—that can be linked to the Kinect without much effort. For example, I’ll demonstrate how to use the Java 3D graphics library and the Java binding for the OpenCV computer vision package.

The main drawback of using the PrimeSense Java wrappers is their lack of documentation. As I explain in Chapter 1, I had to decompile the libraries’ JAR files, and work out the correspondences between the Java source and the somewhat better documented C++ OpenNI/NITE APIs. (This is why including Secrets in the book’s title isn’t too excessive.)

A Wide Range of Topics
This book covers programming topics not found elsewhere. I start off with the basics, of course, with chapters on depth, infrared, and RGB imaging, point clouds, skeletal user tracking, hand tracking, and gesture support. Moving beyond that, I cover several novel and unusual features, including the following:

  • Kinect gaming based around a version of the classic Breakout video game.
  • Controls for the Kinect motor, LED, and accelerometer, which are not part of the standard OpenNI API. In fact, their absence is often held up as a serious drawback of the API. It’s actually quite easy to add these capabilities using a custom-built USB driver.
  • 3D graphics programming in the point cloud and skeletal tracking examples, using Java 3D.
  • A computer vision example that demonstrates how to link the Kinect to the popular (and powerful) OpenCV library.
  • The creation of new body gestures (inspired by the FAAST system), which are not part of the limited NITE repertoire.
  • A new type of GUI component controlled by hand gesturing, illustrated with three examples: a button, dial, and slider. These components are controlled without the help of mouse or keyboard.

Depth with Brevity
This book describes a lot of complicated code but, unlike some rather hefty programming tomes, you won’t find all the code tediously printed on these pages. Instead, you can download it from the book’s website. In addition, I’ve been adding supplementary chapters to the website, including ones discussing speech recognition and the Kinect microphone array.

商品描述(中文翻譯)

使用一系列獨特的開源軟體,讓Kinect執行令人驚嘆的功能!Kinect是Xbox 360和Windows的動作感應裝置,在發布時成為全球銷售最快的消費電子產品(在首60天內售出800萬台),並贏得了著名獎項,如“年度遊戲小工具”。現在,《Kinect開源編程秘訣》讓您利用Kinect強大的感應功能進行遊戲、科學、多媒體項目以及在運行Windows、Mac OS和Linux的平台上進行令人難以置信的其他應用。

用戶界面編程專家Andrew Davison博士提供了如何使用Java封裝器(由Kinect技術的主要開發者PrimeSense創建的API)編程Kinect感應器的獨家內容。

從基礎知識開始-深度成像、3D點雲、骨骼追踪和手勢-本書還涵蓋了許多其他主題,包括Kinect遊戲、非標準NITE的FAAST風格手勢、使用OpenCV進行運動檢測、如何創建手勢驅動的GUI、訪問Kinect的馬達和加速度計以及其他技巧和技術。

內容包括:
- 免費開源API,讓您開發令人驚嘆的商業或私人用途的Kinect黑客
- 全面介紹深度檢測、攝像頭和紅外成像點雲、Kinect遊戲、3D編程、基於手勢的GUI等等
- 在作者網站上獲得詳細的代碼示例,以及有關語音識別、波束成形和其他特殊技術的額外章節

作者的話:
為什麼要買這本書?
我可以提出四個購買這本書的理由:
- 它提供了獨特的Kinect編程工具。
- 它解釋了這些工具的官方Java封裝器。
- 它涵蓋了其他書中找不到的主題。
- 它提供了深度,但簡潔明瞭。

獨特的編程工具:
這是唯一一本使用OpenNI庫、NITE和Java編程Kinect的書(截至2012年4月出版時)。

官方Java封裝器:
這是唯一一本解釋OpenNI和NITE的官方Java封裝器的書(同樣是截至2012年4月)。
使用PrimeSense的Java封裝器的主要缺點是缺乏文檔。正如我在第1章中解釋的那樣,我不得不反編譯庫的JAR文件,並找出Java源代碼與C++ OpenNI/NITE API之間的對應關係。(這就是為什麼在書名中包含“秘訣”這個詞並不過分的原因。)

廣泛的主題範圍:
本書涵蓋了其他書中找不到的編程主題。當然,我首先從基礎知識開始,包括深度、紅外和RGB成像、點雲、骨骼用戶追踪、手部追踪和手勢支持。除此之外,我還涵蓋了一些新穎和不尋常的功能,包括:
- 基於經典打磚塊遊戲的Kinect遊戲。
- 控制Kinect馬達、LED和加速度計,這些功能不是標準OpenNI API的一部分。實際上,它們的缺失通常被認為是API的一個嚴重缺點。實際上,使用自定義的USB驅動程序很容易添加這些功能。
- 在點雲和骨骼追踪示例中使用Java 3D進行3D圖形編程。
- 使用Java 3D圖形庫和OpenCV計算機視覺包的Java綁定來進行計算機視覺示例。