Top Banner
X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator) Korea University
31

X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Dec 24, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

X3D Extension for

(Mobile) AR Contents

International AR Standards WorkshopSeoul, Korea

Oct 11-12, 2010

Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Korea University

Page 2: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Approach

Extensibility to existing frameworks

X3D (Scene graph)

Because AR is implemented as VR!

KML, OpenGIS, …

We need location representation

Generality/Flexibility to accommodate

Different AR platforms (~Platform independence)

Mobile, Desktop, HMD, …

Sensors and devices

Vision based, Marker based, Location based, …

Focused on file format (Scene graph based?)

vs. Contents representation

Machine consumption

Page 3: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Various display types and platforms

<Video See-through> <Optical See-through>

<Desktop>

VideoCombiner

Optical Combiner

DisplayCamera

Display

DisplayCamera

VideoCombiner

[R. Azuma, 1997]

<Mobile>

Page 4: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

camera

f

fovVirtual cam

f’ = f

fov’ = fov

Transform T (from tracking system) T = T’

Live camera capturing the real world Synthesized mixed reality world as a virtual space with video placed at the same distance (e.g. f = f’) from virtual camera position but with infinite depth values

AR/MR Implementation

Page 5: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Various sensing

Page 6: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Virtual cam

virtual object

sensed

Live video with depth

Background pixelsrendered at their depth

Virtual cam

virtual object

sensed

Live video with depthVirtual cam

virtual object

sensed

Live video with depth

Background pixelsrendered at their depth

Various sensing

Page 7: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

MR/AR Contents

• Context: Condition or situation that triggers an augmentation and mixing of real and virtual objects

• Resource: Raw data or information used for augmentation

• Content: One or more pairings of contexts and Resources + behaviors (that uses the resources)

context

resource

Page 8: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Related work

Jung et al. (InstantReality Suite)Extension of Sensor nodes – Physical contextsExtension of Viewpoint nodes – Specification of camera parametersLayers: One layer served as background videoExtension of X3DLightNode: Lighting effects

SFImageSenosr : X3DDirectSensorNode {SFImage [in/out] value …SFBool [] out FalseSFString [] label…}

DEF frame SFImageSensor { label “Video Frames” }

ROUTE frame.value_changed TO surfaceTex.set_image

Page 9: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Major proposals

Extend “View” node: Resolution between “live” camera and virtual

Define “Live” camera node (G. Lee / ETRI)

– Not necessarily for “AR” contents (e.g. Video textures)

– Parameters set by user

More detailed parameter specification for “View”

Set by user

Routed from “Live” camera node

– With possibility of behavioral manipulation

“Routed” from sensor

– Camera could be tracked separately

Default: same as the world

– Note that view can be relative to anything

LC, VC

LC

VC

LC, VC

Page 10: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Major proposal

Extending movie texture node (for AR background)

Also proposed by G. Lee / Instant Reality

Extend existing virtual “Sensor” nodes

New X3DARNodes for target real object description

ImagePatch, 3DObject, GPSLocation, SingleValue, …

Existing: E.g. Visibility, Proximity, Touch sensor …

New: RangeSensor, UIClickSensor, …

Page 11: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Not included in this proposal

Lighting and Rendering issue

Depth sensing and occlusion effects

Extended point of interest (e.g. path, hierarchical POI)

Platform type specification

e.g. Resolution difference

Page 12: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

AR contents(Real/

Physical)

X3D (Virtual

)

WORLD

View(Virtual Camera)

OtherX3D Nodes

AR Node + Sensor

ROUTE*

LiveCamera

Movie Texture*

Virtualized Physical Contexts

Page 13: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Abstraction of MR/AR contents as a collection of context and resources

connected by “Event in”’s and “Event out”’s.

Page 14: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

<Scene> <Group> <TouchSensor DEF='TOUCH' description='touch to activate'/> <TimeSensor DEF='TIME' cycleInterval='3'/> <PositionInterpolator DEF='INTERP_POS' key='0 0.25 0.5 0.75 1' keyValue='0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0'/> <Transform DEF='BALL'> <Shape> <Appearance> <Material/> </Appearance> <Sphere/> </Shape> </Transform> </Group><ROUTE fromField='touchTime' fromNode='TOUCH' toField='startTime' toNode='TIME'/><ROUTE fromField='fraction_changed' fromNode='TIME' toField='set_fraction' toNode='INTERP_POS'/><ROUTE fromField='value_changed' fromNode='INTERP_POS' toField='translation' toNode='BALL'/></Scene>

Page 15: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

<Scene>

<Group>

<Marker DEF = “HIRO” enable “TRUE” filename=”C:\

hiro.patt”/>

<VisibilitySensor DEF='Visibility' enabled=”TRUE”/>

<Transform DEF='BALL'>

<Shape>

<Appearance>

<Material/>

</Appearance>

<Sphere/>

</Shape>

</Transform>

</Group>

<ROUTE fromNode=’Vsibility’ fromField='visible' toNode=’BALL’

toField=’visible’ />

</Scene>

Page 16: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

X3DNode

X3DARNode X3DChildNode

X3DSensorNodeImagePatch

3DObject

GPSLocation

X3DEnvironmentalSensorNode

UIConfigNode

VisibilitySensor

ProximitySensorSingleValue

UIDevice

UIClickSensor

UIScrollSensor

RangeSensor

Page 17: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

• Vision based feature recognition and tracking (e.g. fiducials, markers, 3D points)

• Non-vision based env. sensor events and values (e.g. RFID, GPS, distance)

• User interaction devices events and values (e.g. buttons, touch screen, jog dial)

• Context information (e.g. user age)

Real Object X3DARNode Main Attributes Sensor used

Marker ImagePatch ID, Position, Orientation

Visibility

3D point 3DObject ID, Type, Position, Orientation

Visibility

GPS Location GPSLocation ID, Coordinate Range

RFID SingleValue Value (Boolean) Existence

Ultrasonic sensor SingleValue Distance (Integer) Proximity

Button UIDevice Value (Boolean) UIClickSensor

User Age SingleValue Age (Integer) Range

Page 18: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

X3DARNode

Placeholders for physical objects within AR/MR world “implementation”

X3DARNode : X3DNode{

SFNode [in, out] metadataSFNode [in, out] parentSFString [in, out] descriptionSFBool [in, out] enabled

}

X3DARNode is the base type for the Marker, Location and General Event, …

Page 19: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

ImagePatch (Marker) & VisibilitySensor

ImagePatch : X3DARNode{

SFNode [in, out] metadataSFNode [in, out] parentSFString [in, out] descriptionSFBool [in, out] enabledSFString [in, out] filenameSFVec3f [in, out] positionSFRotation [in, out] orientation

}

VisibilitySensor : X3DEnvironmentalSensorNode <!-- Existing -->{

SFVec3f [in, out] centerSFBool [in, out] enabledSFNode [in, out] metadataSFVec3f [in, out] sizeSFTime [out] enterTimeSFTime [out] exitTimeSFBool [out] isActive

}

Page 20: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Location & RangeSensor GPSLocation : X3DSensorNode{

SFNode [in, out] metadataSFNode [in, out] parentSFString [in, out] descriptionSFBool [in, out] enabledSFInt32 [in, out] device_descriptionSFBool [out] statusMFString [out] values

}

RangeSensor : X3DEnvironmentalSensorNode{

SFVec3f [in, out] centerSFBool [in, out] enabledSFNode [in, out] metadataSFVec3f [in, out] sizeSFTime [out] enterTimeSFTime [out] exitTimeSFBool [out] isActiveSFInt32 [in, out] sequenceSFString [in, out] lBoundSFString [in, out] uBoundSFString [in, out] value

}

Page 21: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Live camera LiveCamera = MR/AR Capture Camera

Within the Scene node Image field is the out valueCamera internal parameter projmat fieldCamera external parameter Set to World but can be tracked

Live Camera { SFString [in, out] label "default“ SFString [out] parent SFImage [out] image SFMatrix4f [out] projmat "1 0 0 … " SFBool [out] on FALSE SFBool [out] tracking FALSE SFVec3f [out] position SFRotation [out] orientation}

Page 22: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Routing from LiveCam

From Live Camera node “image” field

ToBackground (LiveURL field)Shape (MovieTexture field)

Page 23: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Live video Background<Scene> <Background groundAngle='1.309 1.571'

groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1' backUrl='mountns.png' frontUrl='mountns.png' leftUrl='mountns.png' rightUrl='mountns.png'/>

</Scene>

<Scene> <LiveCamera DEF='USBCam1' source='dev#'/> <Background liveSource='USBCam1'/> </Scene>

<Scene> <Background videoUrl='bgvideo.mpg'/> </Scene>

Page 24: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

MovieTexture Node

Add MovieTexture to X3DTextureNode hierarchy Used for TextureBackground Fix TextureBackground relative to camera

Allow connection to live camera (not just through streaming server)

Page 25: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

MovieTexture Node<Shape> <Appearance> <MovieTexture loop='true'   url=' "wrlpool.mpg" "http://www.web3d.org/x3d/content/examples/Vrml2.0Sourcebook/wrlpool.mpg" '/> </Appearance>

<IndexedFaceSet ccw='false' coordIndex='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'> <Coordinate point='2.00 0.6 0.00 1.85 0.6 0.67 1.41 0.6 1.41 0.67 0.6 1.85 0.00 0.6 2.00 -0.67 0.6 1.85 -1.41 0.6 1.41 -1.85 0.6 0.67 -2.00 0.6 0.00 -1.85 0.6 -0.67 -1.41 0.6 -1.41 -0.67 0.6 -1.85 0.00 0.6 -2.00 0.67 0.6 -1.85 1.41 0.6 -1.41 1.85 0.6 -0.67 2.00 0.6 0.00'/> </IndexedFaceSet> </Shape>

Page 26: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Live Camera Movie Texture<Scene> <Shape> <Appearance> <MovieTexture loop='true' url='wrlpool.mpg'/> </Appearance> <IndexedFaceSet ccw='false' coordIndex='0 1 2 ... 15 16'> <Coordinate point='2.00 0.6 0.00 ... 2.00 0.6 0.00'/> </IndexedFaceSet> </Shape> </Scene>

<Scene> <LiveCamera DEF='USBCam1' source='dev#'/> <Shape> <Appearance> <MovieTexture liveSource='USBCAM1' keyColor= '0 0 1' /> </Appearance> <IndexedFaceSet ccw='false' coordIndex='0 1 2 ... 15 16'> <Coordinate point='2.00 0.6 0.00 ... 2.00 0.6 0.00'/> </IndexedFaceSet> </Shape> </Scene>

Page 27: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Live Camera and Virtual Camera

Calibrating the virtual camera according to the parameters of live capture camera

Internal parameter = projection matrixExternal parameter = camera pose

Manual Direct specification Routing

From the Live camera From the Sensor

W0

T

Page 28: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Method 1Viewpoint : X3DViewpointNode{ SFMatrix4f [in] projmat SFVec3f [in,out] position SFRotation [in,out]orientation

SFNode [in,out] liveCamera Add distortion parameters here}

<Scene> <LiveCamera DEF='USBCam1' source='dev#'/>

<Viewpoint liveCamera='USBCam1'/>

<Shape> … </Shape></Scene>

Page 29: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Method 2

<Scene> <LiveCamera DEF='USBCam1' source='dev#'/>

<Viewpoint DEF='MRView'/>

<Shape> … </Shape>

<ROUTE fromNode='USBCam1' fromField='projmat' toNode='MRView' toField='projmat'/>

<ROUTE fromNode='Tracker' fromField='position' toNode='MRView' toField='projmat'/>

<ROUTE fromNode='Tracker' fromField='orientation' toNode='MRView' toField='projmat'/> </Scene>

Page 30: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Other Activities Draft document

Teleconferences with Web3D

Implementation: k-MART

Domestic workshop

April, POSTECH, Pohang, Korea

June, KIST, Seoul, Korea

Page 31: X3D Extension for (Mobile) AR Contents International AR Standards Workshop Seoul, Korea Oct 11-12, 2010 Gerard J. Kim (WG 6 AR Standards Study Group Coordinator)

Future

More

Extensions

Examples

Implementations

International consensus