Win8 on Intel Programming Course Desktop : Perceptual Computing Cédric Andreolli Intel.

Slides:



Advertisements
Similar presentations
Intel Do-It-Yourself Challenge Networking
Advertisements

Intel Do-It-Yourself Challenge Lab 5: Controlling Galileo from a webpage Nicolas Vailliet
Win8 on Intel Programming Course Win8 for developers, in detail Cédric Andreolli Intel.
Win8 on Intel Programming Course Desktop : Introduction Cédric Andreolli Intel Software.
Win8 on Intel Programming Course Desktop : WPF Cédric Andreolli Intel Software
10+10 Descending the Design Funnel Chapter 1.4 in Sketching User Experiences: The Workbook.
Intel Do-It-Yourself Challenge node.js
The State Transition Diagram
Win8 on Intel Programming Course Desktop : Sensors Cédric Andreolli Intel Software
Intel Do-It-Yourself Challenge Intel Galileo and Edison Paul Guermonprez Intel Software.
Internet of Things with Intel Edison Getting started with your board Pierre Collet Intel.
Internet of Things with Intel Edison Web controller
Internet of Things with Intel Edison GPIO on Edison
Win8 on Intel Programming Course Win8 and Intel Paul Guermonprez Intel Software
Macromedia Director 8 Foundation Level Course. What is Director? Director is a challenging program for creating animation and multimedia productions for.
Why Should I Sketch? Chapter 1.2 in Sketching User Experiences: The Workbook.
® Page 1 Intel Compiler Lab – Intel Array Visualizer HDF Workshop VI December 5, 2002 John Readey
Intel Do-It-Yourself Challenge : Let’s build an autonomous drone Paul Guermonprez Intel.
The Keyboard Study Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Notice: some material in this deck is used from other.
Intel Do-It-Yourself Challenge Arduino sketches and full SD image Nicolas Vailliet Intel.
The Branching Storyboard Chapter 4.3 in Sketching the User Interface: The Workbook Image from:
Internet of Things with Intel Edison Presentation Paul Guermonprez Intel Software
Gavin S Page OpenCV Tutorial Part I Using OpenCV with Microsoft Visual Studio.net November 2005.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
Internet of Things with Intel Edison Led sensor lab
CP — Concurrent Programming X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
12. eToys. © O. Nierstrasz PS — eToys 12.2 Denotational Semantics Overview:  … References:  …
Sequential Storyboards Chapter 4.1 in Sketching the User Interface: The Workbook Image from:
Intel Software Incubators Student project definition Paul Guermonprez Intel Software.
Intel Do-It-Yourself Challenge Hello World with the Arduino IDE Nicolas Vailliet Intel.
Intel Do-It-Yourself Challenge Lab 1: Intel Galileo’s Arduino side Nicolas Vailliet
CPSC 581 Human Computer Interaction II Interaction Design Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Notice: some material.
Collecting Images & Clippings Chapter 2.3 in Sketching User Experiences: The Workbook.
September 2008 IT Software Development Guide.
Graphical Screen Design Part 1: Contrast, Repetition, Alignment, Proximity Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada.
Win8 on Intel Programming Course Modern UI : Sensors Cédric Andreolli Intel Software.
Win8 on Intel Programming Course Modern UI : Features Cédric Andreolli Intel Software.
Intel Do-It-Yourself Challenge OpenCV
Win8 on Intel Programming Course The challenge Paul Guermonprez Intel Software
11 Getting Started with C# Chapter Objectives You will be able to: 1. Say in general terms how C# differs from C. 2. Create, compile, and run a.
Win8 on Intel Programming Course Modern UI HelloWorld in HTML5/JS Cédric Andreolli Intel.
What is a sketch? Chapter 1.2 addendum Sketching User Experiences: The Workbook.
Internet of Things with Intel Edison Compiling and running Pierre Collet Intel Software.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. The IQ-Table & Collection Viewer A.
The Animated Sequence Chapter 5.1 in Sketching User Experiences: The Workbook.
Intel Do-It-Yourself Challenge Wi-Fi Nicolas Vailliet Intel Software
Internet of Things with Intel Edison CylonJS Pierre Collet Intel Software
The Sketchbook Chapter 1.4 in Sketching User Experiences: The Workbook.
Sketching Vocabulary Chapter 3.4 in Sketching User Experiences: The Workbook Drawing objects, people, and their activities.
Win8 on Intel Programming Course Paul Guermonprez Intel Software
Design of Everyday Things Part 2: Useful Designs? Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Images from:
The Narrative Storyboard Chapter 4.4 in Sketching User Experiences: The Workbook.
© I-Logix Rhapsody C++ V /01/2004E1-1 “Essential” Tool Training Basic Rhapsody Basic Rhapsody Rhapsody in C++ V /01/04.
1 Getting Started with C++ Part 1 Windows. 2 Objective You will be able to create, compile, and run a very simple C++ program on Windows, using Microsoft.
Open project in Microsoft Visual Studio → build program in “Release” mode.
Chapter 27 Getting “Web-ified” (Web Applications) Clearly Visual Basic: Programming with Visual Basic nd Edition.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
How to develop a VoIP softphone in C# by using OZEKI VoIP SIP SDK This presentation demonstrates the first steps concerning to how to develop a fully-functional.
PHPBelgium – Belgian PHP community PHPBelgium event MVC = Make Venerated Code? Patrick Allaert.
KINECT AMERICAN SIGN TRANSLATOR (KAST)
Sketching Vocabulary Chapter 3.4 in Sketching User Experiences: The Workbook Drawing objects, people, and their activities.
OpenCV Tutorial Part I Using OpenCV with Microsoft Visual Studio .net November 2005 Gavin S Page
Data Virtualization Tutorial: Introduction to SQL Script
Android Studio, Android System Basics and Git
Agenda Video pre-presentations Digital sketches & photo traces
Methodology Overview 2 basics in user studies Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Notice: some material in this.
Presentation transcript:

Win8 on Intel Programming Course Desktop : Perceptual Computing Cédric Andreolli Intel Software

Agenda

Introduction to Perceptual Computing What is the Perceptual Computing? The Intel Perceptual Computing SDK What can the SDK do? What is it for? Set up the programming environment Setting up the Visual Studio C++ environment will be explained here Using the SDK Some of the SDK functionalities will be explained here

Introduction to Perceptual Computing

Introduction What is Perceptual Computing? Perceptual computing offers a new way to interact with your computer What do I need? It works with: A camera created by Creative* A SDK created by Intel*

Introduction The Creative camera 3D depth sensor 720p camera Dual-array microphone

Introduction The Intel* Perceptual SDK Provides a lot of services that use the camera as input Gesture recognition Skeleton tracking Face recognition Voice recognition Voice synthesis Image capture The camera associated with the SDK provides a new way to interact with your Ultrabook

The Intel* Perceptual SDK

Architecture The SDK provides libraries and header files that you must add to your projects It can be used in C++ but also in C#

The Intel* Perceptual SDK High and low levels programming The SDK is flexible You can use Utility classes that provide an easy way to access gesture recognition and high level process You can also work directly on the raw images and implement your own algorithms More information You can download the SDK for free us/vcsource/tools/perceptual-computing-sdk

The Intel* Perceptual SDK Starting with the SDK Download the SDK and install it Be sure to remember the installation directory

The Intel* Perceptual SDK SDK directories The bin folder contains a lot of examples that give you an idea of what you can do with the SDK The doc folder contains the documentation in PDF format The include folder contains the main headers The lib folder contains the SDK library libpcx.lib The sample folder contains the source code of the programs in the bin folder

The Intel* Perceptual SDK The Sample folder in details This folder also contains important tools in the common folder

The Intel* Perceptual SDK The Sample/common folder in details This folder contains Important headers in the include directory Important library in the lib directory

The Intel* Perceptual SDK The Sample/common folder in details In the lib folder, you can find 2 libraries libpxcutils.lib for the release libpxcutils_d.lib for the debug Headers can be found in the $(SDK)/include directory but also in the $(SDK)/sample/common/include. Libraries can be found in the $(SDK)/lib directory But also in the $(SDK)/sample/common/lib.

Set up the environment

Using the SDK in C++ The SDK has been programmed in C++ This is an efficient language Using the SDK in C++ Open Visual Studio and create a C++ win32 console application project

Set up the environment What do we have to do? Visual Studio’s compiler must know where to find Header files Library directories Libraries to link Open your project properties Right click on your project’s name and select Properties In C/C++ -> Code Generation -> Runtime Library Select /MTd (we are working in Debug mode)

Set up the environment Change the Runtime Library

Set up the environment Add include directories The SDK installation added some macro to your Visual Studio environment In your project properties, on the left, select VC++ Directories In Include Directories, select and add $(PCSDK_DIR)/include $(PCSDK_DIR)/sample/common/include

Set up the environment Add include directories Setting up the include Directories allows Visual Studio to find the headers

Set up the environment Add library directories We also need to indicate Visual Studio where to find the libraries In your project properties, on the left, select VC++ Directories In Library Directories, select and add $(PCSDK_DIR)/lib/$(Platform) $(PCSDK_DIR)/sample/common/lib/$(PlatformName)/$(PlatformToolset)

Set up the environment Add library directories Setting up the library Directories allows Visual Studio to look for the libraries in the good directories

Set up the environment Link the libraries Setting up the library directories is not enough, we must also tell the compiler which are the libraries that our project will use In the project properties, on the left, select Linker, then Input In the field Additional Dependencies, click on

Set up the environment Link the libraries Add the following libraries: libpxc_d.lib libpxcutils_d.lib We are working in Debug mode, if you work in release mode, remove the “_d”

Set up the environment Link the libraries Linking the libraries tells the compiler which are The libraries that contain the implementation of the Functions that you are using

Using the SDK - HelloWorld

Programming a Hello World Programming an application that displays the images acquired by the camera is really simple with the SDK You only need 1 C++ file and few lines of code

Using the SDK - HelloWorld 1- Add the includes 2- Request access to the depth image

Using the SDK - HelloWorld 3- Create the main loop

Using the SDK - HelloWorld Full code

Using the SDK - HelloWorld See the result You can run the program, you will see windows displaying the depth map Using the SDK to display an image that comes from the Camera is really simple. You can also try to retrieve the color image.

Using the SDK - Gestures

Create your own class A good practice when using the SDK is to create your own class that inherits from the UtilPipeline Create and set a new project named SDKTest (win32 application) Create also a new class (PipelineTest) that inherits from UtilPipeline Right click on the project’s name and select Add and Class

Using the SDK - Gestures Create your own class In the popup, click on Add Set the name for your class and click on Finish

Using the SDK - Gestures Inherit from UtilPipeline Open the header (PipelineTest.h) and change the content to

Using the SDK - Gestures Step 1 - The OnGesture method When a gesture is recognized by the SDK, the method OnGesture is called

Using the SDK - Gestures Step 2 - The OnAlert method The OnAlert method is called when an unusual event append (your hands go out of the camera range, etc.)

Using the SDK - Gestures Step 3 - The OnNewFrame method The OnNewFrame method is called when the SDK is able to provide a new frame

Using the SDK - Gestures Bonus – Add a function to debug later This example will also be used to work on skeleton tracking so add a function to display logs

Using the SDK - Gestures It’s time to code! Go in the.cpp file and enable the gesture pipeline in the constructor This step is mandatory when you want to use the gesture recognition but also when you want to track the skeleton nodes

Using the SDK - Gestures Implement the OnGesture The SDK informs your application when a gesture is identified by calling the function OnGesture The variable data provides information that let you know which gesture has been recognized

Using the SDK - Gestures The full OnGesture function

Using the SDK - Gestures The full OnAlert function

Using the SDK - Gestures Work with nodes Using the skeleton nodes can be intereseting to implement new controls in your application To print out the nodes positions, fill the printNodes function Here is the Full code

Using the SDK - Gestures Full code explained

Using the SDK - Gestures The label definitions More information You can get more information in the documentation

Using the SDK - Gestures Gestures and alerts As you can see, manipulating the gestures or the alerts is done in a similar way. You can let the SDK inform you when such an event has been detected.

Using the SDK - Gestures Lot of features The UtilPipeline class provides 4 main features in realtion with gestures recognition, voice recognition, face recognition and access to raw images

Using the SDK - Gestures Access raw images Manipulating raw images allows you to implement your own algorithms The UtilPipeline allows you to access the raw images through the UtilPipelineRaw class Create a new project Configure a new C++ win32 console application that works with the SDK Name it « RawImages »

Using the SDK - Gestures New project creation

Using the SDK - Gestures Inherit from UtilPipeline The UtilPipeline inherits from UtilPipelineRaw so everything needed to manipulate raw images is also included in the UtilPipeline class

Using the SDK - Gestures OnNewFrame implementation

Using the SDK - Gestures How to get image pixels? From the previous code, you can directly manipulate the images

Using the SDK - Gestures Working with planes The planes hold different kind of informations For the depth map plane[0] holds the depth map plane[1] holds the confidence map plane[2] holds the UV map

Using the SDK - Gestures Write your filters Manipulating raw images allows to write your own filters The lab will show you how to retrieve the first 20 centimeters starting from the closest object in front of the camera Using the raw images provides a full control on the events you want to work on.

Using the SDK - Gestures Try the lab A lab is available with this course! You will learn to use the Perceptual SDK in C++ C# Unity You will also learn how to create a simple filter and how to control a character in a 3D game

License Creative Commons – By 3.0 You are free: to Share — to copy, distribute and transmit the work to Remix — to adapt the work to make commercial use of the work Under the following conditions: Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). With the understanding that: Waiver — Any of the above conditions can be waived if you get permission from the copyright holder. Public Domain — Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. Other Rights — In no way are any of the following rights affected by the license: – Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; – The author's moral rights; – Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. Notice — For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page.