SlideShare a Scribd company logo
1 of 18
EasyAR SDK 2.0
New Features and Changes
@EASYAR_CHINA
In today’s session
• VisionStar & EasyAR & AWE
• EasyAR 2.0
• Workflow & API changes
• Samples for different languages
• SLAM
• 3D Object Tracking
VisionStar & EasyAR & AWE
• VisionStar
• EasyAR
• AR SDK and more
• SightPlus
• AR Browser powered by EasyAR
• EasyAR
• 1.0 released at AWE Asia 2015
• 1.3 released a few days before AWE USA 2016
• 2.0 released a few days before AWE USA 2017
EasyAR SDK 2.0
• Workflow & API changes – Data Flow
• 1.0
• 1.3
• 2.0
CameraDevice ImageTracker Augmenter
CameraDevice CameraStreamer Tracker
Renderer
CameraDevice ImageTracker
Augmenter
EasyAR SDK 2.0
• Workflow & API changes – New language bindings
• C API
• C++11 API
• traditional C++ API
• Java API for Android
• Objective-C API for iOS
• Unity3D API
EasyAR SDK 2.0
• Workflow & API changes
• Building up
class HelloCallBack : public TargetLoadCallBack
{
Public:
virtual void operator() (const Target target, const bool status)
{
// log
}
};
CameraDevice camera;
camera.open();
ImageTracker tracker;
tracker.attachCamera(camera_);
ImageTarget target;
target.load(path.c_str(),
EasyAR::kStorageAssets,
targetname.c_str()
);
tracker.loadTarget(target, new HelloCallBack());
auto camera = std::make_shared<easyar::CameraDevice>();
camera->open(static_cast<int>(easyar::CameraDeviceType::Default));
auto streamer = std::make_shared<easyar::CameraFrameStreamer>();
streamer->attachCamera(camera);
auto tracker = std::make_shared<easyar::ImageTracker>();
tracker->attachStreamer(streamer);
auto target = std::make_shared<easyar::ImageTarget>();
target->setup(path,
static_cast<int>(easyar::StorageType::Assets),
targetname
);
tracker->loadTarget(target,
[](std::shared_ptr<easyar::Target> target, bool status) { // log}
);
1.3 2.0
EasyAR SDK 2.0
• Workflow & API changes
• Start
• Frame update & rendering
Frame frame = augmenter.newFrame();
for (int i = 0; i < frame.targets().size(); ++i) {
AugmentedTarget::Status status = frame.targets()[i].status();
if (status == AugmentedTarget::kTargetStatusTracked) {
// render
}
}
auto frame = streamer->peek();
for (auto && targetInstance : frame->targetInstances()) {
auto status = targetInstance->status();
if (status == easyar::TargetStatus::Tracked) {
// render
}
}
camera.start();
tracker.start();
camera->start();
streamer->start();
tracker->start();
1.3 2.0
EasyAR SDK 2.0
• Samples for different languages – C++11
auto camera = std::make_shared<easyar::CameraDevice>();
camera->open(static_cast<int>(easyar::CameraDeviceType::Default));
auto streamer = std::make_shared<easyar::CameraFrameStreamer>();
streamer->attachCamera(camera);
auto tracker = std::make_shared<easyar::ImageTracker>();
tracker->attachStreamer(streamer);
auto target = std::make_shared<easyar::ImageTarget>();
target->setup(path, static_cast<int>(easyar::StorageType::Assets), targetname);
tracker->loadTarget(target, [](std::shared_ptr<easyar::Target> target, bool status) { // log});
camera->start();
streamer->start();
tracker->start();
auto frame = streamer->peek();
for (auto && targetInstance : frame->targetInstances()) {
auto status = targetInstance->status();
if (status == easyar::TargetStatus::Tracked) {
// render
}
}
EasyAR SDK 2.0
• Samples for different languages – Java
CameraDevice camera = new CameraDevice();
camera.open(CameraDeviceType.Default);
CameraFrameStreamer streamer = new CameraFrameStreamer();
streamer.attachCamera(camera);
ImageTracker tracker = new ImageTracker();
tracker.attachStreamer(streamer);
ImageTarget target = new ImageTarget();
target.setup(path, StorageType.Assets, targetname);
tracker.loadTarget(target, new FunctorOfVoidFromPointerOfTargetAndBool() {
@Override
public void invoke(Target target, boolean status) { //log }}
);
camera.start();
streamer.start();
tracker.start();
Frame frame = streamer.peek();
try {
for (TargetInstance targetInstance : frame.targetInstances()) {
int status = targetInstance.status();
if (status == TargetStatus.Tracked) {
// render
}
}
}
finally {
frame.dispose();
}
EasyAR SDK 2.0
• Samples for different languages – Objective-C
easyar_CameraDevice * camera = [easyar_CameraDevice create];
[camera open:easyar_CameraDeviceType_Default];
easyar_CameraFrameStreamer *streamer = [easyar_CameraFrameStreamer create];
[streamer attachCamera:camera];
easyar_ImageTracker * tracker = [easyar_ImageTracker create];
[tracker attachStreamer:streamer];
easyar_ImageTarget * target = [easyar_ImageTarget create];
[target setup:path storageType:easyar_StorageType_Assets name:targetname];
[tracker loadTarget:target callback:^(easyar_Target * target, bool status) {
// log
}];
[camera start];
[streamer start];
[tracker start];
easyar_Frame * frame = [streamer peek];
for (easyar_TargetInstance * targetInstance in [frame targetInstances]) {
easyar_TargetStatus status = [targetInstance status];
if (status == easyar_TargetStatus_Tracked) {
// render
}
}
EasyAR SDK 2.0
• SLAM (Pro)
• Instant initialization
• Fast relocalization
• Robust to strong motion blur
• Optimized for mobile devices
• Optimized for low texture scenes
EasyAR SDK 2.0
• SLAM (Pro)
tracker = new ARSceneTracker();
tracker.attachStreamer(streamer);
tracker.start();
Frame frame = streamer.peek();
try {
for (TargetInstance targetInstance : frame.targetInstances()) {
int status = targetInstance.status();
if (status == TargetStatus.Tracked) {
Target target = targetInstance.target();
ARScene scene = target instanceof ARScene ? (ARScene)(target) : null;
if (scene == null)
continue;
// render
}
}
finally {
frame.dispose();
}
EasyAR SDK 2.0
• 3D Object Tracking (Pro)
EasyAR SDK 2.0
• 3D Object Tracking (Pro)
• Runtime target generation from
standard wavefront obj model files
• No strict limitations for the
physical size of 3D objects
• Recognize and track any 3D object
after loading multiple objects
• Recognize and track multiple
3D objects simultaneously
EasyAR SDK 2.0
• 3D Object Tracking (Pro)
tracker = new ObjectTracker();
tracker.attachStreamer(streamer);
target = new ObjectTarget();
target.setup(path, StorageType.Assets, targetname);
tracker.loadTarget(target, new FunctorOfVoidFromPointerOfTargetAndBool() {
@Override
public void invoke(Target target, boolean status) { //log }}
);
tracker.start();
Frame frame = streamer.peek();
try {
for (TargetInstance targetInstance : frame.targetInstances()) {
int status = targetInstance.status();
if (status == TargetStatus.Tracked) {
Target target = targetInstance.target();
ObjectTarget objecttarget = target instanceof ObjectTarget ? (ObjectTarget)(target) : null;
if (objecttarget == null)
continue;
// render
}
}
}
finally {
frame.dispose();
EasyAR SDK 2.0
• 3D Object Tracking (Pro)
EasyAR SDK 2.0
• More
• Screen Recording (Pro)
• Cloud Recognition Support
• other improvements and bug fixes
• More to come…
Contact Visionstar
SUPPORT@EASYAR.COM
@EASYAR_CHINA
WWW.EASYAR.COM

More Related Content

Similar to Kenn Song (VisionStar): EasyAR 2.0 - New Features and Changes

Improving app performance with Kotlin Coroutines
Improving app performance with Kotlin CoroutinesImproving app performance with Kotlin Coroutines
Improving app performance with Kotlin CoroutinesHassan Abid
 
Mobile AR SDK Tutorial - Augmented World Expo New York 2014
Mobile AR SDK Tutorial - Augmented World Expo New York 2014Mobile AR SDK Tutorial - Augmented World Expo New York 2014
Mobile AR SDK Tutorial - Augmented World Expo New York 2014Patrick O'Shaughnessey
 
Angular 2 - Core Concepts
Angular 2 - Core ConceptsAngular 2 - Core Concepts
Angular 2 - Core ConceptsFabio Biondi
 
Forge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery ServiceForge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery ServiceAutodesk
 
Paug paris 2011
Paug paris 2011Paug paris 2011
Paug paris 2011sekond0
 
Relational Database Access with Python
Relational Database Access with PythonRelational Database Access with Python
Relational Database Access with PythonMark Rees
 
Omnia App With Samsung Sdk
Omnia App With Samsung SdkOmnia App With Samsung Sdk
Omnia App With Samsung Sdksheon shin
 
Breizhcamp Rennes 2011
Breizhcamp Rennes 2011Breizhcamp Rennes 2011
Breizhcamp Rennes 2011sekond0
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core conceptsCodemotion
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineAmazon Web Services
 
Android OpenGL ES Game ImageGrabber Final Report
Android OpenGL ES Game ImageGrabber Final ReportAndroid OpenGL ES Game ImageGrabber Final Report
Android OpenGL ES Game ImageGrabber Final ReportJungsoo Nam
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScriptZeno Rocha
 
JavaScript in 2015
JavaScript in 2015JavaScript in 2015
JavaScript in 2015Igor Laborie
 
Game development with Cocos2d
Game development with Cocos2dGame development with Cocos2d
Game development with Cocos2dVinsol
 
Developing for Leap Motion
Developing for Leap MotionDeveloping for Leap Motion
Developing for Leap MotionIris Classon
 

Similar to Kenn Song (VisionStar): EasyAR 2.0 - New Features and Changes (20)

Cocos2d 소개 - Korea Linux Forum 2014
Cocos2d 소개 - Korea Linux Forum 2014Cocos2d 소개 - Korea Linux Forum 2014
Cocos2d 소개 - Korea Linux Forum 2014
 
Improving app performance with Kotlin Coroutines
Improving app performance with Kotlin CoroutinesImproving app performance with Kotlin Coroutines
Improving app performance with Kotlin Coroutines
 
Mobile AR SDK Tutorial - Augmented World Expo New York 2014
Mobile AR SDK Tutorial - Augmented World Expo New York 2014Mobile AR SDK Tutorial - Augmented World Expo New York 2014
Mobile AR SDK Tutorial - Augmented World Expo New York 2014
 
Angular 2 - Core Concepts
Angular 2 - Core ConceptsAngular 2 - Core Concepts
Angular 2 - Core Concepts
 
Forge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery ServiceForge - DevCon 2016: Building a Drone Imagery Service
Forge - DevCon 2016: Building a Drone Imagery Service
 
Paug paris 2011
Paug paris 2011Paug paris 2011
Paug paris 2011
 
Relational Database Access with Python
Relational Database Access with PythonRelational Database Access with Python
Relational Database Access with Python
 
Omnia App With Samsung Sdk
Omnia App With Samsung SdkOmnia App With Samsung Sdk
Omnia App With Samsung Sdk
 
Angular2 inter3
Angular2 inter3Angular2 inter3
Angular2 inter3
 
Breizhcamp Rennes 2011
Breizhcamp Rennes 2011Breizhcamp Rennes 2011
Breizhcamp Rennes 2011
 
Cocos2d programming
Cocos2d programmingCocos2d programming
Cocos2d programming
 
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion MiddlewareAMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
 
Bye flex. Hey js.
Bye flex. Hey js.Bye flex. Hey js.
Bye flex. Hey js.
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core concepts
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules Engine
 
Android OpenGL ES Game ImageGrabber Final Report
Android OpenGL ES Game ImageGrabber Final ReportAndroid OpenGL ES Game ImageGrabber Final Report
Android OpenGL ES Game ImageGrabber Final Report
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScript
 
JavaScript in 2015
JavaScript in 2015JavaScript in 2015
JavaScript in 2015
 
Game development with Cocos2d
Game development with Cocos2dGame development with Cocos2d
Game development with Cocos2d
 
Developing for Leap Motion
Developing for Leap MotionDeveloping for Leap Motion
Developing for Leap Motion
 

More from AugmentedWorldExpo

Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...
Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...
Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...AugmentedWorldExpo
 
Nick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting Tools
Nick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting ToolsNick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting Tools
Nick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting ToolsAugmentedWorldExpo
 
Rokid: Design a seamless solution for AR glasses
Rokid: Design a seamless solution for AR glassesRokid: Design a seamless solution for AR glasses
Rokid: Design a seamless solution for AR glassesAugmentedWorldExpo
 
How AR is Transforming the Online Retail Experience
How AR is Transforming the Online Retail ExperienceHow AR is Transforming the Online Retail Experience
How AR is Transforming the Online Retail ExperienceAugmentedWorldExpo
 
Chloe Doyeon Kim (MAXST): The Current and Future State of MAXST Platform
Chloe Doyeon Kim (MAXST): The Current and Future State of MAXST PlatformChloe Doyeon Kim (MAXST): The Current and Future State of MAXST Platform
Chloe Doyeon Kim (MAXST): The Current and Future State of MAXST PlatformAugmentedWorldExpo
 
AWE USA 2019: Owning Augmented Space
AWE USA 2019: Owning Augmented SpaceAWE USA 2019: Owning Augmented Space
AWE USA 2019: Owning Augmented SpaceAugmentedWorldExpo
 
Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?
Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?
Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?AugmentedWorldExpo
 
Chris Pickett (DigiLens): XR is Hard: Here’s Why
Chris Pickett (DigiLens): XR is Hard: Here’s WhyChris Pickett (DigiLens): XR is Hard: Here’s Why
Chris Pickett (DigiLens): XR is Hard: Here’s WhyAugmentedWorldExpo
 
Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...
Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...
Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...AugmentedWorldExpo
 
Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...
Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...
Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...AugmentedWorldExpo
 
Augmented reality meets Television -Ellen DeGeneres' Game of Games AR App
Augmented reality meets Television -Ellen DeGeneres' Game of Games AR AppAugmented reality meets Television -Ellen DeGeneres' Game of Games AR App
Augmented reality meets Television -Ellen DeGeneres' Game of Games AR AppAugmentedWorldExpo
 
Jennifer Cook (Dreamscape Immersive): Dreamscape Immersive Presentation
Jennifer Cook (Dreamscape Immersive): Dreamscape Immersive PresentationJennifer Cook (Dreamscape Immersive): Dreamscape Immersive Presentation
Jennifer Cook (Dreamscape Immersive): Dreamscape Immersive PresentationAugmentedWorldExpo
 
AWE USA 2019: 2 Partners sharing 1 vision for smart operators
AWE USA 2019: 2 Partners sharing 1 vision for smart operatorsAWE USA 2019: 2 Partners sharing 1 vision for smart operators
AWE USA 2019: 2 Partners sharing 1 vision for smart operatorsAugmentedWorldExpo
 
Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...
Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...
Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...AugmentedWorldExpo
 
Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...
Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...
Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...AugmentedWorldExpo
 
Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...
Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...
Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...AugmentedWorldExpo
 
Valentin Heun (PTC): One Reality - A 3rd generation AR User Interface
Valentin Heun (PTC): One Reality - A 3rd generation AR User InterfaceValentin Heun (PTC): One Reality - A 3rd generation AR User Interface
Valentin Heun (PTC): One Reality - A 3rd generation AR User InterfaceAugmentedWorldExpo
 
Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...
Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...
Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...AugmentedWorldExpo
 
Sarah Hill (Healium by StoryUP Studios): Healing Stories Powered by Biometrics
Sarah Hill (Healium by StoryUP Studios): Healing Stories Powered by BiometricsSarah Hill (Healium by StoryUP Studios): Healing Stories Powered by Biometrics
Sarah Hill (Healium by StoryUP Studios): Healing Stories Powered by BiometricsAugmentedWorldExpo
 
Iva Leon (ARVR Women and Allies): Building community with social VR
Iva Leon (ARVR Women and Allies): Building community with social VRIva Leon (ARVR Women and Allies): Building community with social VR
Iva Leon (ARVR Women and Allies): Building community with social VRAugmentedWorldExpo
 

More from AugmentedWorldExpo (20)

Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...
Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...
Bill Meyer (Virtual Science Center): Turning Kids on to STEM by Letting Them ...
 
Nick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting Tools
Nick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting ToolsNick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting Tools
Nick Klingensmith (Microsoft): Increasing Immersion with the MR Lighting Tools
 
Rokid: Design a seamless solution for AR glasses
Rokid: Design a seamless solution for AR glassesRokid: Design a seamless solution for AR glasses
Rokid: Design a seamless solution for AR glasses
 
How AR is Transforming the Online Retail Experience
How AR is Transforming the Online Retail ExperienceHow AR is Transforming the Online Retail Experience
How AR is Transforming the Online Retail Experience
 
Chloe Doyeon Kim (MAXST): The Current and Future State of MAXST Platform
Chloe Doyeon Kim (MAXST): The Current and Future State of MAXST PlatformChloe Doyeon Kim (MAXST): The Current and Future State of MAXST Platform
Chloe Doyeon Kim (MAXST): The Current and Future State of MAXST Platform
 
AWE USA 2019: Owning Augmented Space
AWE USA 2019: Owning Augmented SpaceAWE USA 2019: Owning Augmented Space
AWE USA 2019: Owning Augmented Space
 
Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?
Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?
Victor Sun (Shadow Creator): How to turn Mixed Reality “headset” into “glasses”?
 
Chris Pickett (DigiLens): XR is Hard: Here’s Why
Chris Pickett (DigiLens): XR is Hard: Here’s WhyChris Pickett (DigiLens): XR is Hard: Here’s Why
Chris Pickett (DigiLens): XR is Hard: Here’s Why
 
Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...
Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...
Antti Sunnari (Dispelix Ltd): Full-color, single-waveguide near-eye displays ...
 
Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...
Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...
Jian Liang (HiScene): AR for Industry in China: From Concepts to Real Applica...
 
Augmented reality meets Television -Ellen DeGeneres' Game of Games AR App
Augmented reality meets Television -Ellen DeGeneres' Game of Games AR AppAugmented reality meets Television -Ellen DeGeneres' Game of Games AR App
Augmented reality meets Television -Ellen DeGeneres' Game of Games AR App
 
Jennifer Cook (Dreamscape Immersive): Dreamscape Immersive Presentation
Jennifer Cook (Dreamscape Immersive): Dreamscape Immersive PresentationJennifer Cook (Dreamscape Immersive): Dreamscape Immersive Presentation
Jennifer Cook (Dreamscape Immersive): Dreamscape Immersive Presentation
 
AWE USA 2019: 2 Partners sharing 1 vision for smart operators
AWE USA 2019: 2 Partners sharing 1 vision for smart operatorsAWE USA 2019: 2 Partners sharing 1 vision for smart operators
AWE USA 2019: 2 Partners sharing 1 vision for smart operators
 
Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...
Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...
Phil LaFond (Bosch Automotive Service Solutions Inc.): Bosch Technical Traini...
 
Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...
Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...
Scott Montgomerie (Scope AR): AR’s Influence on the Workforce of Tomorrow: Jo...
 
Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...
Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...
Hugo Swart (Qualcomm, Inc.): How 5G, Distributed Processing and Technology Ad...
 
Valentin Heun (PTC): One Reality - A 3rd generation AR User Interface
Valentin Heun (PTC): One Reality - A 3rd generation AR User InterfaceValentin Heun (PTC): One Reality - A 3rd generation AR User Interface
Valentin Heun (PTC): One Reality - A 3rd generation AR User Interface
 
Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...
Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...
Anton Ebert (Siemens Healthcare): Challenges and approaches on integrating a ...
 
Sarah Hill (Healium by StoryUP Studios): Healing Stories Powered by Biometrics
Sarah Hill (Healium by StoryUP Studios): Healing Stories Powered by BiometricsSarah Hill (Healium by StoryUP Studios): Healing Stories Powered by Biometrics
Sarah Hill (Healium by StoryUP Studios): Healing Stories Powered by Biometrics
 
Iva Leon (ARVR Women and Allies): Building community with social VR
Iva Leon (ARVR Women and Allies): Building community with social VRIva Leon (ARVR Women and Allies): Building community with social VR
Iva Leon (ARVR Women and Allies): Building community with social VR
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Kenn Song (VisionStar): EasyAR 2.0 - New Features and Changes

  • 1. EasyAR SDK 2.0 New Features and Changes @EASYAR_CHINA
  • 2. In today’s session • VisionStar & EasyAR & AWE • EasyAR 2.0 • Workflow & API changes • Samples for different languages • SLAM • 3D Object Tracking
  • 3. VisionStar & EasyAR & AWE • VisionStar • EasyAR • AR SDK and more • SightPlus • AR Browser powered by EasyAR • EasyAR • 1.0 released at AWE Asia 2015 • 1.3 released a few days before AWE USA 2016 • 2.0 released a few days before AWE USA 2017
  • 4. EasyAR SDK 2.0 • Workflow & API changes – Data Flow • 1.0 • 1.3 • 2.0 CameraDevice ImageTracker Augmenter CameraDevice CameraStreamer Tracker Renderer CameraDevice ImageTracker Augmenter
  • 5. EasyAR SDK 2.0 • Workflow & API changes – New language bindings • C API • C++11 API • traditional C++ API • Java API for Android • Objective-C API for iOS • Unity3D API
  • 6. EasyAR SDK 2.0 • Workflow & API changes • Building up class HelloCallBack : public TargetLoadCallBack { Public: virtual void operator() (const Target target, const bool status) { // log } }; CameraDevice camera; camera.open(); ImageTracker tracker; tracker.attachCamera(camera_); ImageTarget target; target.load(path.c_str(), EasyAR::kStorageAssets, targetname.c_str() ); tracker.loadTarget(target, new HelloCallBack()); auto camera = std::make_shared<easyar::CameraDevice>(); camera->open(static_cast<int>(easyar::CameraDeviceType::Default)); auto streamer = std::make_shared<easyar::CameraFrameStreamer>(); streamer->attachCamera(camera); auto tracker = std::make_shared<easyar::ImageTracker>(); tracker->attachStreamer(streamer); auto target = std::make_shared<easyar::ImageTarget>(); target->setup(path, static_cast<int>(easyar::StorageType::Assets), targetname ); tracker->loadTarget(target, [](std::shared_ptr<easyar::Target> target, bool status) { // log} ); 1.3 2.0
  • 7. EasyAR SDK 2.0 • Workflow & API changes • Start • Frame update & rendering Frame frame = augmenter.newFrame(); for (int i = 0; i < frame.targets().size(); ++i) { AugmentedTarget::Status status = frame.targets()[i].status(); if (status == AugmentedTarget::kTargetStatusTracked) { // render } } auto frame = streamer->peek(); for (auto && targetInstance : frame->targetInstances()) { auto status = targetInstance->status(); if (status == easyar::TargetStatus::Tracked) { // render } } camera.start(); tracker.start(); camera->start(); streamer->start(); tracker->start(); 1.3 2.0
  • 8. EasyAR SDK 2.0 • Samples for different languages – C++11 auto camera = std::make_shared<easyar::CameraDevice>(); camera->open(static_cast<int>(easyar::CameraDeviceType::Default)); auto streamer = std::make_shared<easyar::CameraFrameStreamer>(); streamer->attachCamera(camera); auto tracker = std::make_shared<easyar::ImageTracker>(); tracker->attachStreamer(streamer); auto target = std::make_shared<easyar::ImageTarget>(); target->setup(path, static_cast<int>(easyar::StorageType::Assets), targetname); tracker->loadTarget(target, [](std::shared_ptr<easyar::Target> target, bool status) { // log}); camera->start(); streamer->start(); tracker->start(); auto frame = streamer->peek(); for (auto && targetInstance : frame->targetInstances()) { auto status = targetInstance->status(); if (status == easyar::TargetStatus::Tracked) { // render } }
  • 9. EasyAR SDK 2.0 • Samples for different languages – Java CameraDevice camera = new CameraDevice(); camera.open(CameraDeviceType.Default); CameraFrameStreamer streamer = new CameraFrameStreamer(); streamer.attachCamera(camera); ImageTracker tracker = new ImageTracker(); tracker.attachStreamer(streamer); ImageTarget target = new ImageTarget(); target.setup(path, StorageType.Assets, targetname); tracker.loadTarget(target, new FunctorOfVoidFromPointerOfTargetAndBool() { @Override public void invoke(Target target, boolean status) { //log }} ); camera.start(); streamer.start(); tracker.start(); Frame frame = streamer.peek(); try { for (TargetInstance targetInstance : frame.targetInstances()) { int status = targetInstance.status(); if (status == TargetStatus.Tracked) { // render } } } finally { frame.dispose(); }
  • 10. EasyAR SDK 2.0 • Samples for different languages – Objective-C easyar_CameraDevice * camera = [easyar_CameraDevice create]; [camera open:easyar_CameraDeviceType_Default]; easyar_CameraFrameStreamer *streamer = [easyar_CameraFrameStreamer create]; [streamer attachCamera:camera]; easyar_ImageTracker * tracker = [easyar_ImageTracker create]; [tracker attachStreamer:streamer]; easyar_ImageTarget * target = [easyar_ImageTarget create]; [target setup:path storageType:easyar_StorageType_Assets name:targetname]; [tracker loadTarget:target callback:^(easyar_Target * target, bool status) { // log }]; [camera start]; [streamer start]; [tracker start]; easyar_Frame * frame = [streamer peek]; for (easyar_TargetInstance * targetInstance in [frame targetInstances]) { easyar_TargetStatus status = [targetInstance status]; if (status == easyar_TargetStatus_Tracked) { // render } }
  • 11. EasyAR SDK 2.0 • SLAM (Pro) • Instant initialization • Fast relocalization • Robust to strong motion blur • Optimized for mobile devices • Optimized for low texture scenes
  • 12. EasyAR SDK 2.0 • SLAM (Pro) tracker = new ARSceneTracker(); tracker.attachStreamer(streamer); tracker.start(); Frame frame = streamer.peek(); try { for (TargetInstance targetInstance : frame.targetInstances()) { int status = targetInstance.status(); if (status == TargetStatus.Tracked) { Target target = targetInstance.target(); ARScene scene = target instanceof ARScene ? (ARScene)(target) : null; if (scene == null) continue; // render } } finally { frame.dispose(); }
  • 13. EasyAR SDK 2.0 • 3D Object Tracking (Pro)
  • 14. EasyAR SDK 2.0 • 3D Object Tracking (Pro) • Runtime target generation from standard wavefront obj model files • No strict limitations for the physical size of 3D objects • Recognize and track any 3D object after loading multiple objects • Recognize and track multiple 3D objects simultaneously
  • 15. EasyAR SDK 2.0 • 3D Object Tracking (Pro) tracker = new ObjectTracker(); tracker.attachStreamer(streamer); target = new ObjectTarget(); target.setup(path, StorageType.Assets, targetname); tracker.loadTarget(target, new FunctorOfVoidFromPointerOfTargetAndBool() { @Override public void invoke(Target target, boolean status) { //log }} ); tracker.start(); Frame frame = streamer.peek(); try { for (TargetInstance targetInstance : frame.targetInstances()) { int status = targetInstance.status(); if (status == TargetStatus.Tracked) { Target target = targetInstance.target(); ObjectTarget objecttarget = target instanceof ObjectTarget ? (ObjectTarget)(target) : null; if (objecttarget == null) continue; // render } } } finally { frame.dispose();
  • 16. EasyAR SDK 2.0 • 3D Object Tracking (Pro)
  • 17. EasyAR SDK 2.0 • More • Screen Recording (Pro) • Cloud Recognition Support • other improvements and bug fixes • More to come…