intro to augmented reality wednesday 230
TRANSCRIPT
Introduction to Augmented Reality Development with Vuforia™
Roy Ashok
Sr. Manager, Business Development
©2012 Qualcomm Incorporated. All rights reserved.
Agenda
• Vuforia Platform Overview
• Cloud Recognition
– Developer workflow
– Tools
– Tutorial
Vuforia Apps
Vuforia Platform Traction
~30,000 Registered Developers
From 130 Countries
400+ Models of Smartphones And tablets supported
1,000+ Apps in Google Play and
Apple App Store
Types of Vuforia Apps
Gaming and Play
Ability to check out the action from any angle; enhancing
physical toys
Interactive Media
Creating engaging consumer experiences at the point of
advertising, point of sale, and point of use
Instructional & Educational
Using your device as a user manual; Making curriculums visually interactive
Vuforia Platform
Device SDK
Tools & Services
Support Forum
• Android • iOS • Unity Extension
• Target Management System • Vuforia Web Services
• Dedicated technical support engineers • Thousands of posts
Vuforia Components
Mobile Application
App Assets, Logic,
Rendering Engine
Target Position
User Interactions
Developer
Qualcomm
Vuforia Library
Web UI
Local Target Database Download & Bundle with App Device Target Database
Content Database
Retrieve Content
Target Management System
Upload Image
Developer Workflow
Choose Targets Integrate with App
• Upload images to TMS via the UI
• Select targets (~80) & download Device Target Database
• Create rich content such as 3D models, animations & video
• Use authoring tools such as Maya,
3dStudiomax, Blender
• Build app with native tools – Eclipse, Xcode, or Unity
• Link target database with app 1.5 version
Develop Content
Vuforia Development Options
Eclipse Xcode Unity
Supported OS Android iOS Android / iOS
Advantages
• Free
• Low level APIs provide enhanced flexibility and performance
• Free
• Low level APIs provide enhanced flexibility and performance
• Fully integrated game engine reduces development time and cost
• Single project supports both iOS and Android
Download Vuforia SDKs: developer.qualcomm.com/vuforia
Target Management System
Vuforia Cloud-based Recognition
Vuforia Can Now Recognize >1 Million Images
Vuforia Components
Mobile Application
App Assets, Logic,
Rendering Engine
Target Position
User Interactions
Developer
Qualcomm
Vuforia Library Web UI
Local Target Database
Download & Bundle with App Device Target Database
Cloud Target Database
Content
Recognize Image
Retrieve Content
Web Service APIs
Target Management System
Upload Image
Developer Workflow
Choose Targets Integrate with App
• Upload images to TMS via the UI
• Select targets (~80) & download Device Target Database
• Create rich content such as 3D models, animations & video
• Use authoring tools such as Maya
• Build app with native tools – Eclipse, Xcode, or Unity 3D
• Link target database with app 1.5 version
• Upload images via UI or via APIs to Cloud Target Database
• Create simple content – 2D text, images
• Re-use existing online content
• Build app with native tools – Eclipse, Xcode and lightweight rendering engines 2.0
version
Develop Content
Target Databases
Device Cloud
Free Free/Paid
Upload images via web UI Upload images via web UI or web service APIs
Static Dynamic
Supports ~80 images Supports > 1,000,000 images
Reco time: < 200ms Reco time : ~2s (WiFi)
Using Vuforia Web Services (VWS)
1. Access Keys
2. RESTful API – Upload Image
– Query status
– Update target
– Delete target
3. Web UI
Tutorial
Uploading an Image via APIs Request/Responses
Code Flow
Send Request
Process Response
Query Status
Process Status
Response
POST https://vws.vuforia.com/targets HTTP/1.1
Authorization: VWS
df8d23140eb443505c0661c5b58294ef472baf64:jHX6oLeqTXpynyqcvVC2MSHarhU
Content-Type: application/json
{
“name”:”tarmac”,
“width”:20,
“image”:”…base64 encoded image data…”,
“application_metadata”:”… base64 encoded data..”
}
GET https://vws.vuforia.com/targets/f47ac10b58cc4372a5670e02b2c3d479
HTTP/1.1
Authorization: VWS
df8d23140eb443505c0661c5b58294ef472baf64:hJU6oLeqTXpynyqcvVC2MSHauHr
getTargetStatus() {
// Generate signature keys
// Form the HTTP message
// Send the GET Message
. . .
. . .
submitCreateTarget (){
// Generate signature
// Form the HTTP message
// Send the POST Message
. . .
. . .
Process Response
Send Request
Query Status
Process Status
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
“result_code”:”TargetCreated”,
“transaction_id":”550e8400e29b41d4a716446655440000”,
"target_id": ”f47ac10b58cc4372a5670e02b2c3d479”
}
//Parse TargetId from response . . .
}
//Parse TargetId from response . . .
}
HTTP/1.1 200 OK
Content-Type: application/json
{ "result_code":"Success",
"transaction_id":"2d2f9a404fbe4d96ac99ace8cbb1dea2",
"status":"success",
"target_record":
{"target_id":"f47ac10b58cc4372a5670e02b2c3d479",
"active_flag":true,
"name":“tarmac",
"width":20,
"tracking_rating":5,
"reco_rating":5
}
}
Uploading an Image – An Example
Vuforia Engine Programming Model Initialize
SDK
Start Cloud Reco
Handle Cloud Reco
Results
Close SDK
GLRenderer implements
GLSurfaceView.renderer {
. . .
onDrawFrame(..) {
renderFrame()
}
}
initCloudReco() {
. . .
QCAR::TargetFinder.startInit();
QCAR::TargetFinder.
waitUntilInitFinished();
QCAR::TargetFinder.
setCredentials(..); //use client
access keys
}
startCamera() {
. . .
QCAR::CameraDevice.init();
QCAR::CameraDevice.start();
QCAR::ImageTracker.start();
}
renderFrame() {
// Start video background rendering
// Get Pose and render green teapot
}
myApp extends Activity {
. . .
void onCreate() {
. . .
QCAR.init();
GLSurfaceView.init();
initCloudReco();
}
. . .
void onResume() {
. . .
QCAR.onResume();
startCamera();
GLSurfaceView.onResume()
}
void onDestroy() {
. . .
QCAR.deinit();
}
}
Native C/C++ Java
// Called by QCAR each frame
QCAR_onUpdate() {
. . .
QCAR::TargetFinder.getResult();
QCAR::TargetSearchResult.
getTrackableSource();
QCAR::DataSet.createTrackable(); //Start
Tracking
}
Render Content
Initialize SDK
Start Cloud Reco
Handle Cloud Reco
Results
Render Content
Close SDK
Client APIs – Handling Reco Results
Availability
• This Fall in Vuforia 2.0
• Private beta starts now ! – Apply at developer.qualcomm.com/vuforia
• Pricing TBA – Free / Paid
Contact: Roy Ashok, Product Manager, Vuforia, [email protected]
Thank You
Sign-up for Cloud Recognition Today!
developer.qualcomm.com/vuforia
Vuforia Platform Vision Features
Representations of real world elements that can be detected and tracked
Image Target Frame Markers Simple 3D Objects
Game boards, Product packaging , Posters , Signs , Greeting cards, Business cards, Books/magazine pages
Game pieces, Control cards Boxes
Nothing in these materials is an offer to sell any of the components or devices referenced herein. Certain components for use in the U.S. are available only through licensed suppliers. Some components are not available for use in the U.S.
25
QUALCOMM Incorporated
5775 Morehouse Drive
San Diego, CA. 92121-1714
U.S.A.
Copyright © 2012 Qualcomm Incorporated.
All rights reserved.
Not to be used, copied, reproduced in whole or in part, nor its contents revealed in any manner to others without the express written permission
of Qualcomm.
Qualcomm and Uplinq are trademarks of Qualcomm Incorporated, registered in the United States and in other countries.
Vuforia is a trademark of Qualcomm Incorporated.
Other product and brand names may be trademarks or registered trademarks of their respective owners.