Designing Apps for Intel RealSense Technology

  • View
    3.700

  • Download
    1

  • Category

    Design

Preview:

Citation preview

1

Developed By You

2

Designing Apps for Intel® RealSense™ Technology: User Experience Guidelines with Examples for Windows®

Kevin Arthur – Senior User Experience Researcher, Intel Corporation

Meghana Rao – Developer Evangelist, Intel Corporation

SFTS018

3

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

4

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

5

F200 Short Range Camera

• Integrated into Laptop and All-In-One Devices

• Front, user-facing configuration

F200

6

F200 Features

• Features available with the Intel® RealSense™ SDK

- Hand tracking and gestures

- Face recognition and animation

- Background replacement

- 3D scanning

- Speech

F200

7

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

8

UX Guidelines Learned from F200 Apps

• Dozens of rounds of 1-on-1 usability testing with prototypes

• Co-design with select software vendors

Selected apps from the Intel® RealSense™ App Showcasehttps://appshowcase.intel.com/realsense/

F200

9

What the Camera Sees:Know the Effective Range and Capture Volume

Effective Range for Gestures 0.2 - 0.6 m

Effective Range for Face Tracking 0.35 - 1.2 m

RGB Resolution Up to 1080p at 30 fps

Depth ResolutionUp to 640x480 at 60 fps

F200

10

Provide Visual Feedback About Range

Distance Prompts

World Diagrams

F200

11

Provide Continuous Feedback When Needed

User Viewport

Move It! by Umajin

F200

12

Provide Continuous Feedback When Needed

User Overlay

Kagura by Shikumi Design

F200

13

User Input: Choose the Right Technology

Hand Gestures

• Fun and engaging for short experiences

• Natural and unencumbered

Mouse

• Precise, fast, and efficient

• Comfortable for long-term use

Understand the strengths of input technologies. Use gestures to enhance, not replace.

Touch

• Simple and direct

F200

14

Follow Gesture Best Practices to Minimize Fatigue

• Design for left-right or arc gesture motion

• Avoid actions that require your users to lift their hand above the height of their shoulder

• Design for breaks, and break up activities into small, short actions

• Do not require many repeating gestures

• Do not require precise input, like entering text or selecting small items

• Continuous and low-risk actions are best for gesture

F200

15

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

16

APIs To Detect Capture Volume

• Developers should use device neutral functions to obtain Field of View (FOV) frustrum information to help guide users through visual feedback

• Device interface – QueryColorFieldofView and QueryDepthFieldofViewfunctions allow you to obtain the Depth and Color capture volumes

Code:

F200

17

APIs To Detect Capture Volume

Other Device interface functions of interest:

• PXCMCapture.Device. QueryDepthSensorRange – returns depth sensor range in mm

• PXCMCapture.Device. QueryColorFocalLengthMM – returns color sensor focal length in mm

• PXCMCapture.Device. QueryDepthFocalLengthMM – returns depth sensor focal length in mm

F200

18

Alerts to Indicate Face Out of the Field of View

• PXCMFaceData.AlertData.AlertType

• AlertType enumerator itemizes alert events

Alert Type Description

ALERT_NEW_FACE_DETECTED A new face is detected

ALERT_FACE_NOT_DETECTED There is no face in the scene.

ALERT_FACE_OUT_OF_FOV The face is out of camera field of view.

ALERT_FACE_BACK_TO_FOV The face is back to field of view.

ALERT_FACE_LOST Face tracking is lost

F200

19

Coding Face Alerts in Your AppF200

20

Contd…Alert Handling

}

}

F200

21

Alerts to Indicate Hands Out of FOV

Use PXCMHandData.TrackingStatusType

Alert Name Description

ALERT_HAND_OUT_OF_BORDERS A tracked hand is outside of a 2D bounding box or 3D bounding cube defined by the user

ALERT_HAND_INSIDE_BORDERS A tracked hand has moved back inside the 2D bounding box or 3D bounding cube defined by the user.

ALERT_HAND_TOO_FAR A tracked hand is too far to the camera

ALERT_HAND_TOO_CLOSE A tracked Hand is too close to the camera.

ALERT_HAND_DETECTED A tracked hand is identified and its mask is available

ALERT_HAND_NOT_DETECTED A previously detected hand is lost, either because it left the field of view or because it is occluded.

And more… Refer to the documentation

F200

22

Coding the Hand Alerts in Your AppF200

23

Contd…Alert HandlingF200

24

World Space to Screen Space Mapping –Projection Interface

• The Projection interface provides functions to map or project among color, depth and world coordinates

- MapColorToDepth

- MapDepthToColor

- ProjectCameraToColor

- ProjectCameraToDepth

- ProjectColorToCamera

- ProjectDepthToCamera

F200

25

Adjusting UI to Different Screen Resolutions – Unity

To make the App go Full-screen in windowed/unwindowed mode, whatever the resolution of the display:

• Pre-compilation, in player’s settings, make sure the "Use Direct3D 11" box is checked

• Set it to use ONLY specific aspect ratios (16:9 and 16:10 and matching children)

Result - when the ‘resolution selection screen’ appears:

• If the “Windowed” check box is UNchecked, it will always start at Full Screen

• If it’s checked, it will start windowed but can be resized/maximized

F200

26

APIs to Detect Speed and Precision

• Joint Speed – Enabling joint speed allows developers to obtain the absolute/average speed of motion of each joint

- PXCMHandConfiguration.EnableJointSpeed

- Disabled by default to preserve CPU and memory resources. Only enable as necessary.

• Hand jitters can hamper tracking. Use PXC[M]Smoother to reduce jitter

F200

27

APIs to Detect Speed and Precision

• Use PXCMHandData.TrackingStatusType to obtain tracking status for speed

- TRACKING_STATUS_HIGH_SPEED

• If using hand gestures to control the OS using Touchless Controller, use the PXC[M]TouchlessController member functions to set pointer and scroll sensitivity:

- SetPointerSensitivity

- SetScrollSensitivity

• For face detection, fast movements may lead to lost tracking. Use PXCMFaceData.AlertData.AlertType – ALERT_FACE_LOST to determine if tracking is lost

F200

28

Bounding Boxes

• Provide clear visual cues to the user on the source and destination areas for object of interaction

• Bounding boxes provide a rough boundary for user action thus alleviating the need for high precision

• Hand bounding boxes:

- PXCMHandData.IHand.QueryBoundingBoxImage

- Use PXCMHandData.AlertType – ALERT_HAND_OUT_OF_BORDERS to detect if hand is out of the bounding box

• Face bounding boxes:

- PXCMFaceData.DetectionData.QueryBoundingRect

F200

29

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

30

R200 Long Range Camera

• Integrated into Tablets and Two-In-One Detachable Devices

• Rear, world-facing configuration

R200

31

R200 Features

• Features available with the Intel® RealSense™ SDK

- 3D scanning

- Depth-enabled photo and video

- Measurement

- Gaming and play with mixed and augmented reality

Scene perception module

Camera tracking and localization

Mesh reconstruction

- Face detection and tracking

- Speech (Windows® SDK only)

R200

32

Video – ToyZ Game Prototype

• Shows real-time scene perception for collision and occlusion (no pre-scan)

• By Shachar Oz, OmekStudio at Intel

R200

33

Video – Procedural Island Prototype

• Shows scan as part of “capture and play”

• Illustrates procedural shaders and set dressing

• By Eddy Ortega, Garrett Stevens, Perceptual Computing at Intel

R200

34

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

35

R200 Range and Capture VolumeR200

Effective Range

0.6 - 3.5 m indoors

RGB Resolution

Up to 1080pat 30 fps

Depth Resolution

Up to 640x480at 60 fps

36 36

3D Scanning: Plan for the Scene

Small object capture: Instruct users to place object on flat surface and move around the object to capture it from side and top views

Person capture: The subject must remain still while the user walks around them and captures side views

Scene capture: User will scan the tablet around the room as if taking a panoramic photo

Focus 3D scanning applications on one of these 3 scenarios, as the interaction flow will differ according to the size and surfaces being captured

R200

37

User Prompts

• Give simple instructions to start

• Preview the subject or area that will be captured

R200

38

User Prompts

• Tell user if tracking is lost

• Give distance cues

R200

39

Augmented Reality:Give People a Reason to Move, or They Won’t

• Tablet as window into a virtual space vs. tablet as fixed screen

• Address with motion hints –explicitly with instructions or implicitly with content

Google Spotlight Stories “Windy Day”

R200

40

Minimize Fatigue from Holding the Device

Active Camera Mode: Tiring Inactive Camera Mode: Less tiring

Support both active and inactive camera modes

R200

41

Choose the Right Mode for the Activity

Active Camera Mode

Touch interaction less comfortable, less precise. Best for short capture interactions.

Inactive Camera Mode

Touch interaction more comfortable, more precise. Best for extended play interactions.

Touch Zones Touch Zones

R200

42

Two Styles of Mixed-Reality Games

R200

43

Plan for the Scene and Camera Qualities

• Understand the camera limitations. Depth data is less accurate on

- Very bright areas

- Clear glass

- Black surfaces

• Give relevant feedback when problems are detected

• Fail gracefully and don’t prevent play

R200

44

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

45

APIs to Obtain R200 Camera Device Information• The Device interface provides the following functions:

API Description

QueryDSLeftRightCroppingSetDSLeftRightCropping

Access to the left/right image cropping mode.

QueryDSLeftRightExposureQueryDSLeftRightExposureInfoSetDSLeftRightAutoExposureSetDSLeftRightExposureSetDSLeftRightExposure

Access to the left/right stream exposure value.

QueryDSLeftRightGainQueryDSLeftRightGainInfoSetDSLeftRightGain

Access to the left/right stream gain adjustment.

QueryDSMinMaxZSetDSMinMaxZ

Access to the distance value range.

R200

46

Checking Scene Quality

• Use PXC[M]ScenePerception:CheckSceneQuality to check whether the stream quality is suitable to start scene perception

• Returns a value between 0 and 1. Higher the return value, better the scene

• Code:

R200

47

Checking Tracking Accuracy

• Use PXCScenePerception::TrackingAccuracy to obtain tracking accuracy data

- The TrackingAccuracy enumerator itemizes the tracking accuracy definitions

Name Description

HIGH High tracking accuracy

LOW Low tracking accuracy

MED Median tracking accuracy

FAILED Tracking failed

R200

48

Setting Voxel Resolution in Your Application

• Use PXC[M]ScenePerception:SetVoxelResolution/QueryVoxelResolution

• The PXC[M]VoxelResolution enumerator itemizes the supported voxel resolutions

Name Description

LOW_RESOLUTION The low voxel resolution. Use this resolution in a room-sized scenario (4/256m).

MED_RESOLUTION The median voxel resolution. Use this resolution in a table-top-sized scenario (2/256m).

HIGH_RESOLUTION The high voxel resolution. Use this resolution in a object-sized scenario (1/256m).

R200

49

3D Scanning Tracking Alerts

• Use PXC3DScan::AlertEvent for 3D Scanning tracking alerts

Name Description

ALERT_IN_RANGE The scanning object is in the right range

ALERT_TOO_CLOSE The scanning object is too close to the camera. Prompt the user to move the object away from the camera

ALERT_TOO_FAR The scanning object is too far away from the camera. Prompt the user to move the object closer

ALERT_TRACKING The scanning object is in good tracking

ALERT_LOST_TRACKING Lost tracking on the scanning object

R200

50

Agenda

• F200 Short Range Camera

• F200 UX Guidelines for Laptop and All-In-One Experiences

• F200 SDK tips

• R200 Long Range Camera

• R200 UX Guidelines for Tablet and Two-In-One Experiences

• R200 SDK tips

• Summary and Q&A

F200

R200

51

Summary and Next Steps

• Understand what the camera sees and give the user effective feedback

• Choose the right technology: Know when and when not to use gestures

• Understand your users and do iterative usability testing!

• Check out the UX guidelines and videos and send us feedback

- software.intel.com/articles/realsense-ux-design-guidelines

R200F200

52

Day 1 Prize

Completing an Online Session Evaluation by 10am Tomorrow Automatically Enters You in a Drawing to Win!

Day 2 PrizeIntel® Compute Stick (20)

Copies of the complete sweepstakes rules are available at the Info Desk

Winners will be notified by email

You will receive an email with a link to the online evaluation prior to the end of this session.

Day 3 PrizeMicrosoft* Surface* 3 (6) Dell Venue 10 7000 Series (4)

53

Q&A

54

What will you develop?

55

Legal Notices and DisclaimersIntel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer.

No computer system can be absolutely secure.

Tests document performance of components on a particular test, in specific systems. Differences in hardware, software, or configuration will affect actual performance. Consult other sources of information to evaluate performance as you consider your purchase. For more complete information about performance and benchmark results, visit http://www.intel.com/performance.

Cost reduction scenarios described are intended as examples of how a given Intel-based product, in the specified circumstances and configurations, may affect future costs and provide cost savings. Circumstances will vary. Intel does not guarantee any costs or cost reduction.

This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps.

Statements in this document that refer to Intel’s plans and expectations for the quarter, the year, and the future, are forward-looking statements that involve a number of risks and uncertainties. A detailed discussion of the factors that could affect Intel’s results and plans is included in Intel’s SEC filings, including the annual report on Form 10-K.

The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.

Intel does not control or audit third-party benchmark data or the web sites referenced in this document. You should visit the referenced web site and confirm whether referenced data are accurate.

Intel, RealSense, and the Intel logo are trademarks of Intel Corporation in the United States and other countries.

*Other names and brands may be claimed as the property of others.

© 2015 Intel Corporation.

56

Risk FactorsThe above statements and any others in this document that refer to plans and expectations for the second quarter, the year and the future are forward-looking statements that involve a number of risks and uncertainties. Words such as "anticipates," "expects," "intends," "plans," "believes," "seeks," "estimates," "may," "will," "should" and their variations identify forward-looking statements. Statements that refer to or are based on projections, uncertain events or assumptions also identify forward-looking statements. Many factors could affect Intel's actual results, and variances from Intel's current expectations regarding such factors could cause actual results to differ materially from those expressed in these forward-looking statements. Intel presently considers the following to be important factors that could cause actual results to differ materially from the company's expectations. Demand for Intel's products is highly variable and could differ from expectations due to factors including changes in business and economic conditions; consumer confidence or income levels; the introduction, availability and market acceptance of Intel's products, products used together with Intel products and competitors' products; competitive and pricing pressures, including actions taken by competitors; supply constraints and other disruptions affecting customers; changes in customer order patterns including order cancellations; and changes in the level of inventory at customers. Intel's gross margin percentage could vary significantly from expectations based on capacity utilization; variations in inventory valuation, including variations related to the timing of qualifying products for sale; changes in revenue levels; segment product mix; the timing and execution of the manufacturing ramp and associated costs; excess or obsolete inventory; changes in unit costs; defects or disruptions in the supply of materials or resources; and product manufacturing quality/yields. Variations in gross margin may also be caused by the timing of Intel product introductions and related expenses, including marketing expenses, and Intel's ability to respond quickly to technological developments and to introduce new products or incorporate new features into existing products, which may result in restructuring and asset impairment charges. Intel's results could be affected by adverse economic, social, political and physical/infrastructure conditions in countries where Intel, its customers or its suppliers operate, including military conflict and other security risks, natural disasters, infrastructure disruptions, health concerns and fluctuations in currency exchange rates. Results may also be affected by the formal or informal imposition by countries of new or revised export and/or import and doing-business regulations, which could be changed without prior notice. Intel operates in highly competitive industries and its operations have high costs that are either fixed or difficult to reduce in the short term. The amount, timing and execution of Intel's stock repurchase program could be affected by changes in Intel's priorities for the use of cash, such as operational spending, capital spending, acquisitions, and as a result of changes to Intel's cash flows or changes in tax laws. Product defects or errata (deviations from published specifications) may adversely impact our expenses, revenues and reputation. Intel's results could be affected by litigation or regulatory matters involving intellectual property, stockholder, consumer, antitrust, disclosure and other issues. An unfavorable ruling could include monetary damages or an injunction prohibiting Intel from manufacturing or selling one or more products, precluding particular business practices, impacting Intel's ability to design its products, or requiring other remedies such as compulsory licensing of intellectual property. Intel's results may be affected by the timing of closing of acquisitions, divestitures and other significant transactions. A detailed discussion of these and other factors that could affect Intel's results is included in Intel's SEC filings, including the company's most recent reports on Form 10-Q, Form 10-K and earnings release.

Rev. 4/14/15

Recommended